tbb-commits
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- 1 participants
- 18729 discussions

16 Aug '18
commit c28ce61d5429ca305934c78c900d129570590fae
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Aug 16 08:27:36 2018 +0000
Bump NoScript version to 10.1.8.16
---
projects/tor-browser/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/tor-browser/config b/projects/tor-browser/config
index e421dfe..549df34 100644
--- a/projects/tor-browser/config
+++ b/projects/tor-browser/config
@@ -67,7 +67,7 @@ input_files:
name: snowflake
enable: '[% c("var/snowflake") %]'
- filename: Bundle-Data
- - URL: https://addons.cdn.mozilla.net/user-media/addons/722/noscript_security_suit…
+ - URL: https://addons.cdn.mozilla.net/user-media/addons/722/noscript_security_suit…
name: noscript
sha256sum: d41f5d36337569d1a1633303d7d07505ab905efba0644e73edccf43edc0d39e0
- filename: 'RelativeLink/start-tor-browser.desktop'
1
0

[tor-browser-build/master] Bug 25485: replace firefox by a wrapper script
by gk@torproject.org 16 Aug '18
by gk@torproject.org 16 Aug '18
16 Aug '18
commit 5933f5916a68fdafd7103a4800e156a0100c3a6c
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Aug 15 10:55:47 2018 +0200
Bug 25485: replace firefox by a wrapper script
In a previous patch for bug 25485 we changed how we set LD_LIBRARY_PATH
in start-tor-browser. However this change is not taken into account when
the browser is restarted by the updater. To avoid this issue we replace
the firefox binary by a wrapper setting LD_LIBRARY_PATH.
---
projects/firefox/build | 6 +++++-
projects/firefox/config | 2 ++
projects/firefox/start-firefox | 14 ++++++++++++++
projects/tor-browser/RelativeLink/start-tor-browser | 9 ---------
4 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/projects/firefox/build b/projects/firefox/build
index 4dd0945..489d087 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -165,6 +165,10 @@ rm -f js/src/configure
# subsequent builds could test to see if they've been uploaded before...
# But let's find out if it actually matters first..
rm -f $distdir/Browser/*.chk
+ # Replace firefox by a wrapper script (#25485)
+ mv $distdir/Browser/firefox $distdir/Browser/firefox.real
+ mv $rootdir/start-firefox $distdir/Browser/firefox
+ chmod 755 $distdir/Browser/firefox
[% END %]
[% IF c("var/windows-x86_64") -%]
@@ -203,7 +207,7 @@ cd $distdir
[% IF c("var/linux-x86_64") %]
# Strip and generate debuginfo for the firefox binary that we keep, all *.so
# files, the plugin-container, and the updater (see ticket #10126)
- for LIB in Browser/*.so Browser/firefox Browser/plugin-container Browser/updater
+ for LIB in Browser/*.so Browser/firefox.real Browser/plugin-container Browser/updater
do
objcopy --only-keep-debug $LIB Debug/$LIB
strip $LIB
diff --git a/projects/firefox/config b/projects/firefox/config
index 02a380d..7546d24 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -118,3 +118,5 @@ input_files:
enable: '[% c("var/windows") %]'
- filename: abicheck.cc
enable: '[% c("var/linux") %]'
+ - filename: start-firefox
+ enable: '[% c("var/linux") %]'
diff --git a/projects/firefox/start-firefox b/projects/firefox/start-firefox
new file mode 100644
index 0000000..dc30574
--- /dev/null
+++ b/projects/firefox/start-firefox
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+basedir=$(dirname "$0")
+
+LD_LIBRARY_PATH="$basedir/TorBrowser/Tor/"
+# Check if the system has a more recent version of libstdc++.so.6; if yes, use
+# that instead of the bundled version.
+"$basedir/abicheck" >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$basedir/TorBrowser/Tor/libstdc++/"
+fi
+export LD_LIBRARY_PATH
+
+exec "$basedir/firefox.real" "$@"
diff --git a/projects/tor-browser/RelativeLink/start-tor-browser b/projects/tor-browser/RelativeLink/start-tor-browser
index 47fbdef..722caa5 100755
--- a/projects/tor-browser/RelativeLink/start-tor-browser
+++ b/projects/tor-browser/RelativeLink/start-tor-browser
@@ -273,15 +273,6 @@ if [ $SYSARCHITECTURE -ne $TORARCHITECTURE ]; then
exit 1
fi
-LD_LIBRARY_PATH="${HOME}/TorBrowser/Tor/"
-# Check if the system has a more recent version of libstdc++.so.6; if yes, use
-# that instead of the bundled version.
-./abicheck >/dev/null 2>&1
-if [ $? -ne 0 ]; then
- LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${HOME}/TorBrowser/Tor/libstdc++/"
-fi
-export LD_LIBRARY_PATH
-
[% IF ! c("var/release") %]
export SELFRANDO_write_layout_file=
[% END %]
1
0

16 Aug '18
commit fdfb70045d431257eb8654dfb49a8c4f70d2923e
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Aug 16 10:28:10 2018 +0000
Release preparations for 8.0a10
Versions bump and Changelog update
---
.../tor-browser/Bundle-Data/Docs/ChangeLog.txt | 68 ++++++++++++++++++++++
projects/tor/config | 2 +-
rbm.conf | 6 +-
3 files changed, 72 insertions(+), 4 deletions(-)
diff --git a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
index b8d30f1..cda434d 100644
--- a/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
+++ b/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt
@@ -1,3 +1,71 @@
+Tor Browser 8.0a10 -- August 20 2018
+ * All platforms
+ * Update Tor to 0.3.4.6-rc
+ * Update Torbutton to 2.0.2
+ * Bug 26960: Implement new about:tor start page
+ * Bug 26961: Implement new user onboarding
+ * Bug 26321: Move 'New Identity', 'New Circuit' to File, hamburger menus
+ * Bug 26590: Use new svg.disabled pref in security slider
+ * Bug 26655: Adjust color and size of onion button
+ * Bug 26500: Reposition circuit display relay icon for RTL locales
+ * Bug 26409: Remove spoofed locale implementation
+ * Bug 26189: Remove content-policy.js
+ * Bug 27129: Add locales ca, ga, id, is, nb
+ * Translations update
+ * Update Tor Launcher to 0.2.16.2
+ * Bug 26985: Help button icons missing
+ * Bug 25509: Improve the proxy help text
+ * Bug 27129: Add locales ca, ga, id, is, nb
+ * Translations update
+ * Update NoScript to 10.1.8.16
+ * Update meek to 0.31
+ * Bug 26477: Make meek extension compatible with ESR 60
+ * Bug 27082: Enable a limited UITour for user onboarding
+ * Bug 26961: New user onboarding
+ * Bug 14952: Enable HTTP2 and AltSvc
+ * Bug 17252: Enable TLS session identifiers with first-party isolation
+ * Bug 26353: Prevent speculative connects that violate first-party isolation
+ * Bug 24056: Use en-US strings in HTML forms if locale is spoofed to english
+ * Bug 26456: HTTP .onion sites inherit previous page's certificate information
+ * Bug 26321: Move 'New Identity', 'New Circuit' to File, hamburger menus
+ * Bug 26833: Backport Mozilla's bug 1473247
+ * Bug 26628: Backport Mozilla's bug 1470156
+ * Bug 26237: Clean up toolbar for ESR60-based Tor Browser
+ * Bug 26519: Avoid Firefox icons in ESR60
+ * Bug 26039: Load our preferences that modify extensions (fixup)
+ * Bug 26515: Update Tor Browser blog post URLs
+ * Bug 27129: Add locales ca, ga, id, is, nb
+ * Bug 26216: Fix broken MAR file generation
+ * Bug 26409: Remove spoofed locale implementation
+ * Bug 26603: Remove obsolete HTTP pipelining preferences
+ * Windows
+ * Bug 26514: Fix intermittent updater failures on Win64 (Error 19)
+ * Bug 26874: Fix UNC path restrictions failure in Tor Browser 8.0a9
+ * Bug 12968: Enable HEASLR in Windows x86_64 builds
+ * Bug 9145: Fix broken hardware acceleration
+ * Update tbb-windows-installer to 0.4
+ * Bug 26355: Update tbb-windows-installer to check for Windows7+
+ * Bug 26355: Require Windows7+ for updates to Tor Browser 8
+ * OS X
+ * Bug 26795: Bump snowflake to 6077141f4a for bug 25600
+ * Linux
+ * Bug 25485: Unbreak Tor Browser on systems with newer libstdc++
+ * Bug 20866: Fix OpenGL software rendering on systems with newer libstdc++
+ * Bug 26951+18022: Fix execdesktop argument passing
+ * Bug 26795: Bump snowflake to 6077141f4a for bug 25600
+ * Build System
+ * All
+ * Bug 26410: Stop using old MAR format in the alpha series
+ * Bug 27020: RBM build fails with runc version 1.0.1
+ * Bug 26949: Use GitHub repository for STIX
+ * Bug 26773: Add --verbose to the ./mach build flag for firefox
+ * Bug 26569: Redirect pre-8.0a9 alpha users to a separate update directory
+ * Bug 26319: Don't package up Tor Browser in the `mach package` step
+ * OS X
+ * Bug 26489: Fix .app directory name in tools/dmg2mar
+ * Windows
+ * Bug 27152: Use mozilla/fxc2.git for the fxc2 repository
+
Tor Browser 8.0a9 -- June 27 2018
* All platforms
* Update Firefox to 60.1.0esr
diff --git a/projects/tor/config b/projects/tor/config
index c873db2..8c50e6f 100644
--- a/projects/tor/config
+++ b/projects/tor/config
@@ -1,6 +1,6 @@
# vim: filetype=yaml sw=2
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %]'
-version: 0.3.4.2-alpha
+version: 0.3.4.6-rc
git_hash: 'tor-[% c("version") %]'
git_url: https://git.torproject.org/tor.git
git_submodule: 1
diff --git a/rbm.conf b/rbm.conf
index cd6dc08..f0ea58e 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -15,10 +15,10 @@ buildconf:
git_signtag_opt: '-s'
var:
- torbrowser_version: '8.0a9'
- torbrowser_build: 'build3'
+ torbrowser_version: '8.0a10'
+ torbrowser_build: 'build1'
torbrowser_incremental_from:
- - 8.0a8
+ - 8.0a9
project_name: tor-browser
multi_lingual: 0
build_mar: 1
1
0

16 Aug '18
commit d06cb31abd3a5b45bc70b3ba3a4fb70198779a36
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Aug 16 10:14:00 2018 +0000
Move bn-BD to locales for non-official builds
---
trans_tools/import-translations.sh | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/trans_tools/import-translations.sh b/trans_tools/import-translations.sh
index 342188d0..adb728a9 100755
--- a/trans_tools/import-translations.sh
+++ b/trans_tools/import-translations.sh
@@ -2,14 +2,16 @@
# This var comes from the TBB locale list.
# XXX: Find some way to keep this, tor-launcher, and Tor Browser in sync
-BUNDLE_LOCALES="ar bn-BD ca da de es fa fr ga he id is it ja ko nb nl pl pt-BR ru sv tr vi zh-CN zh-TW"
+BUNDLE_LOCALES="ar ca da de es fa fr ga he id is it ja ko nb nl pl pt-BR ru sv tr vi zh-CN zh-TW"
# XXX: Basque (eu) by request in #10687.
# This is not used for official builds, but should remain
# so Basque XPIs can be build independently. We can do
# this for other languages too, if anyone requests this
# and translations are available.
-BUNDLE_LOCALES="$BUNDLE_LOCALES eu"
+# XXX: Adding bn-BD as well as we don't ship that locale ourselves due to bug
+# 26498. Others might want to fix, build, and use it, though.
+BUNDLE_LOCALES="$BUNDLE_LOCALES eu bn-BD"
LOCALE_DIR=../src/chrome/locale
1
0
commit 1f316a27edf886f450a4ad1a1d684fb1df8ead66
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Aug 16 10:10:56 2018 +0000
Translations update
---
src/chrome/locale/ar/aboutTor.dtd | 42 ++++--------
src/chrome/locale/ar/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/ar/torbutton.properties | 4 +-
src/chrome/locale/bn-BD/aboutTor.dtd | 42 ++++--------
.../locale/bn-BD/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/bn-BD/torbutton.dtd | 4 +-
src/chrome/locale/bn-BD/torbutton.properties | 10 +--
src/chrome/locale/ca/aboutDialog.dtd | 19 ++++++
src/chrome/locale/ca/aboutTBUpdate.dtd | 6 ++
src/chrome/locale/ca/aboutTor.dtd | 54 +++++-----------
src/chrome/locale/ca/aboutTor.properties | 19 ++++--
src/chrome/locale/ca/brand.dtd | 15 +++--
src/chrome/locale/ca/brand.properties | 15 +++--
src/chrome/locale/ca/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/ca/torbutton.dtd | 61 +++++++++++++-----
src/chrome/locale/ca/torbutton.properties | 67 +++++++++++++------
src/chrome/locale/da/aboutTBUpdate.dtd | 2 +-
src/chrome/locale/da/aboutTor.dtd | 42 ++++--------
src/chrome/locale/da/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/da/torbutton.dtd | 6 +-
src/chrome/locale/da/torbutton.properties | 10 +--
src/chrome/locale/de/aboutTor.dtd | 42 ++++--------
src/chrome/locale/de/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/de/torbutton.dtd | 4 +-
src/chrome/locale/de/torbutton.properties | 8 +--
src/chrome/locale/es/aboutTor.dtd | 42 ++++--------
src/chrome/locale/es/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/es/torbutton.properties | 6 +-
src/chrome/locale/eu/aboutTor.dtd | 42 ++++--------
src/chrome/locale/eu/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/fa/aboutTor.dtd | 42 ++++--------
src/chrome/locale/fa/brand.properties | 2 +-
src/chrome/locale/fa/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/fa/torbutton.dtd | 6 +-
src/chrome/locale/fr/aboutTor.dtd | 42 ++++--------
src/chrome/locale/fr/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/fr/torbutton.dtd | 2 +-
src/chrome/locale/fr/torbutton.properties | 6 +-
src/chrome/locale/ga/aboutDialog.dtd | 19 ++++++
src/chrome/locale/ga/aboutTBUpdate.dtd | 6 ++
src/chrome/locale/ga/aboutTor.dtd | 54 +++++-----------
src/chrome/locale/ga/aboutTor.properties | 19 ++++--
src/chrome/locale/ga/brand.dtd | 15 +++--
src/chrome/locale/ga/brand.properties | 17 ++---
src/chrome/locale/ga/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/ga/torbutton.dtd | 67 +++++++++++++------
src/chrome/locale/ga/torbutton.properties | 75 +++++++++++++++-------
src/chrome/locale/he/aboutDialog.dtd | 2 +-
src/chrome/locale/he/aboutTor.dtd | 42 ++++--------
src/chrome/locale/he/brand.properties | 4 +-
src/chrome/locale/he/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/he/torbutton.properties | 8 +--
src/chrome/locale/id/aboutDialog.dtd | 19 ++++++
src/chrome/locale/id/aboutTBUpdate.dtd | 6 ++
src/chrome/locale/id/aboutTor.dtd | 54 +++++-----------
src/chrome/locale/id/aboutTor.properties | 21 +++---
src/chrome/locale/id/brand.dtd | 15 +++--
src/chrome/locale/id/brand.properties | 17 ++---
src/chrome/locale/id/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/id/torbutton.dtd | 43 +++++++++++--
src/chrome/locale/id/torbutton.properties | 51 ++++++++++++---
src/chrome/locale/is/aboutDialog.dtd | 19 ++++++
src/chrome/locale/is/aboutTBUpdate.dtd | 6 ++
src/chrome/locale/is/aboutTor.dtd | 54 +++++-----------
src/chrome/locale/is/aboutTor.properties | 19 ++++--
src/chrome/locale/is/brand.dtd | 15 +++--
src/chrome/locale/is/brand.properties | 17 ++---
src/chrome/locale/is/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/is/torbutton.dtd | 65 +++++++++++++------
src/chrome/locale/is/torbutton.properties | 67 +++++++++++++------
src/chrome/locale/it/aboutTor.dtd | 42 ++++--------
src/chrome/locale/it/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/it/torbutton.properties | 6 +-
src/chrome/locale/ja/aboutTor.dtd | 42 ++++--------
src/chrome/locale/ja/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/ko/aboutTor.dtd | 42 ++++--------
src/chrome/locale/ko/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/nb/aboutDialog.dtd | 19 ++++++
src/chrome/locale/nb/aboutTBUpdate.dtd | 6 ++
src/chrome/locale/nb/aboutTor.dtd | 54 +++++-----------
src/chrome/locale/nb/aboutTor.properties | 19 ++++--
src/chrome/locale/nb/brand.dtd | 15 +++--
src/chrome/locale/nb/brand.properties | 17 ++---
src/chrome/locale/nb/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/nb/torbutton.dtd | 51 +++++++++++----
src/chrome/locale/nb/torbutton.properties | 63 +++++++++++++-----
src/chrome/locale/nl/aboutTor.dtd | 42 ++++--------
src/chrome/locale/nl/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/nl/torbutton.dtd | 4 +-
src/chrome/locale/nl/torbutton.properties | 4 +-
src/chrome/locale/pl/aboutTor.dtd | 44 ++++---------
src/chrome/locale/pl/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/pt-BR/aboutTor.dtd | 42 ++++--------
.../locale/pt-BR/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/pt-BR/torbutton.properties | 14 ++--
src/chrome/locale/ru/aboutTor.dtd | 43 ++++---------
src/chrome/locale/ru/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/ru/torbutton.properties | 4 +-
src/chrome/locale/sv/aboutTor.dtd | 42 ++++--------
src/chrome/locale/sv/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/tr/aboutTor.dtd | 42 ++++--------
src/chrome/locale/tr/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/tr/torbutton.dtd | 2 +-
src/chrome/locale/vi/aboutTor.dtd | 42 ++++--------
src/chrome/locale/vi/aboutTor.properties | 2 +-
src/chrome/locale/vi/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/vi/torbutton.dtd | 26 ++++----
src/chrome/locale/vi/torbutton.properties | 8 +--
src/chrome/locale/zh-CN/aboutTor.dtd | 42 ++++--------
.../locale/zh-CN/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/zh-TW/aboutTor.dtd | 42 ++++--------
.../locale/zh-TW/browserOnboarding.properties | 38 +++++++++++
src/chrome/locale/zh-TW/torbutton.dtd | 4 +-
src/chrome/locale/zh-TW/torbutton.properties | 6 +-
114 files changed, 2121 insertions(+), 1176 deletions(-)
diff --git a/src/chrome/locale/ar/aboutTor.dtd b/src/chrome/locale/ar/aboutTor.dtd
index 86fe2cd2..6a71cdd9 100644
--- a/src/chrome/locale/ar/aboutTor.dtd
+++ b/src/chrome/locale/ar/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "عن تور">
-<!ENTITY aboutTor.outOfDateTorOn.label "تحذير: هذه نسخة قديمة من المتصفح.">
-<!ENTITY aboutTor.outOfDateTorOff.label "أيضاً، هذه نسخة قديمة من المتصفح.">
-<!ENTITY aboutTor.outOfDate2.label "اضغط على رمز البصلة ثم اختر "تحقق من تحديثات متصفح تور"">
-
-<!ENTITY aboutTor.check.label "اختبر إعدادات شبكة تور.">
-
-<!ENTITY aboutTor.success.label "أهلاً بك في متصفح تور">
-<!ENTITY aboutTor.success2.label "متصل بشبكة تور">
-<!ENTITY aboutTor.success3.label "يمكنك الآن تصفح الانترنت بشكل يحمي هويتك.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "حدث خطأ ما!">
<!ENTITY aboutTor.failure2.label "تور لا يعمل في هذا المتصفح.">
-<!ENTITY aboutTor.search.label "بحث">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "معلومات إضافية:">
-<!ENTITY aboutTor.torInfo2.label "الدولة وعنوان الإنترنت:">
-<!ENTITY aboutTor.torInfo3.label "نقطة الخروج:">
-<!ENTITY aboutTor.torInfo4.label "هذا المخدم لا يحتفظ بأي معلومات عن زواره.">
-<!ENTITY aboutTor.whatnextQuestion.label "ماذا بعد؟">
-<!ENTITY aboutTor.whatnextAnswer.label "لا يمثل تور كل ما تحتاجه للتصفح بشكل يحمي هويتك! قد تحتاج لتغيير بعد عاداتك أثناء التصفّح لضمان سرية هويتك.">
-<!ENTITY aboutTor.whatnext.label "نصائح للحفاظ على سريّة هويتك »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "أية أسئلة؟">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "س">
-<!ENTITY aboutTor.torbrowser_user_manual.label "دليل استخدام متصفّح تور">
-<!ENTITY aboutTor.helpInfo1.label "بإمكانك المساعدة!">
-<!ENTITY aboutTor.helpInfo2.label "يمكنك مساعدة شبكة تور و جعلها أكثر سرعة و قوّة بإحدي الطرق الآتية:">
-<!ENTITY aboutTor.helpInfo3.label "شغّل نقطة تور »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "تبرع بخدماتك »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "تبرع »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "مشروع تور هو مشروع غير ربحي (حسب US 501(c)(3)) مُكرس للبحث، والتطوير، والتوعية حول موضوع إخفاء الهوية والخصوصية.">
-<!ENTITY aboutTor.learnMore.label "اقرأ المزيد عن مشروع تور »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/ar/browserOnboarding.properties b/src/chrome/locale/ar/browserOnboarding.properties
new file mode 100644
index 00000000..6910fd7b
--- /dev/null
+++ b/src/chrome/locale/ar/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=مرحباً
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=الخصوصية
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=إكتشاف
+
+onboarding.tour-tor-security=الأمان
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=خدمات البصلة (Onion)
+onboarding.tour-tor-onion-services.title=خدمات البصلة (Onion)
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/ar/torbutton.properties b/src/chrome/locale/ar/torbutton.properties
index 815004f9..5dd4c283 100644
--- a/src/chrome/locale/ar/torbutton.properties
+++ b/src/chrome/locale/ar/torbutton.properties
@@ -54,5 +54,5 @@ profileAccessDenied=لا يمتلك %S الصلاحيات المطلوبة لم
profileMigrationFailed=فشل نقل ملف إعدادات %S الموجود إلى الإصدارة الجديدة.\nسيستخدم ملف إعدادات جديد.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=الاتصال معمى (خدمة بصلة، %1$S، مفاتيح %2$S بتة، %3$S)
+pageInfo_OnionEncryption=الاتصال معمى (خدمة بصلة)
diff --git a/src/chrome/locale/bn-BD/aboutTor.dtd b/src/chrome/locale/bn-BD/aboutTor.dtd
index f9226bf1..dffca8a8 100644
--- a/src/chrome/locale/bn-BD/aboutTor.dtd
+++ b/src/chrome/locale/bn-BD/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Tor সম্পর্কে">
-<!ENTITY aboutTor.outOfDateTorOn.label "সতর্কতা: এই ব্রাউজারটি পুরানো।">
-<!ENTITY aboutTor.outOfDateTorOff.label "এছাড়াও, এই ব্রাউজারটিও পুরানো।">
-<!ENTITY aboutTor.outOfDate2.label "Onion এর উপর ক্লিক করুন এবং তারপর টর ব্রাউজার আপডেট জন্য চেক নির্বাচন করুন।">
-
-<!ENTITY aboutTor.check.label "টর নেটওয়ার্ক সেটিংস টেস্ট করুন">
-
-<!ENTITY aboutTor.success.label "টর ব্রাউজারে স্বাগতম">
-<!ENTITY aboutTor.success2.label "টর নেটওয়ার্কে সংযুক্ত">
-<!ENTITY aboutTor.success3.label "আপনি এখন নিরাপদে ইন্টারনেট ব্রাউজ করতে পারবেন।">
+<!ENTITY aboutTor.ready.label "এক্সপ্লোর. গোপনে.">
+<!ENTITY aboutTor.ready2.label "আপনি বিশ্বের সবচেয়ে ব্যক্তিগত ব্রাউজিং অভিজ্ঞতার জন্য প্রস্তুত ।">
<!ENTITY aboutTor.failure.label "কিছু ভুল হয়েছে!">
<!ENTITY aboutTor.failure2.label "টর এই ব্রাউজারে কাজ করছে না">
-<!ENTITY aboutTor.search.label "খুজুন">
+<!ENTITY aboutTor.search.label "DuckDuckGo সঙ্গে অনুসন্ধান">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "অতিরিক্ত তথ্য:">
-<!ENTITY aboutTor.torInfo2.label "দেশ এবং IP ঠিকানা:">
-<!ENTITY aboutTor.torInfo3.label "প্রস্থান নোড:">
-<!ENTITY aboutTor.torInfo4.label "এই সার্ভার দর্শক সম্পর্কে কোনও তথ্য লগ করে না।">
-<!ENTITY aboutTor.whatnextQuestion.label "এরপর কী?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor আপনি সমস্ত বেনামে ব্রাউজ করতে হবে না! আপনার পরিচয় নিরাপদ থাকে তা নিশ্চিত করতে আপনাকে আপনার ব্রাউজিং অভ্যাসগুলির কিছু পরিবর্তন করতে হবে।">
-<!ENTITY aboutTor.whatnext.label "নিরাপদে থাকার থাকার টিপস »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "প্রশ্ন?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "আমাদের টর ব্রাউজারের ম্যানুয়াল পরীক্ষা করুন»">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "টর ব্রাউজার ইউজার ম্যানুয়াল">
-<!ENTITY aboutTor.helpInfo1.label "তুমি সাহায্য করতে পার!">
-<!ENTITY aboutTor.helpInfo2.label "টর নেটওয়ার্ক দ্রুত এবং শক্তিশালী করতে আপনি অনেক উপায় আছে:">
-<!ENTITY aboutTor.helpInfo3.label "একটি টর্ রিলে নাড চালান »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "আপনার পরিষেবাগুলি স্বেচ্ছাসেবক »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "দান করুন »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "আমাদের টর ব্রাউজারের ম্যানুয়াল পরীক্ষা করুন»">
-<!ENTITY aboutTor.footer.label "টর প্রকল্পটি মার্কিন যুক্তরাষ্ট্রের 501 (সি) (3) অ-লাভজনক গবেষণা, উন্নয়ন এবং অনলাইন গোপনীয়তা এবং গোপনীয়তার শিক্ষা।">
-<!ENTITY aboutTor.learnMore.label "Tor প্রকল্প সম্পর্কে আরও জানুন »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "টর প্রকল্পটি একটি মার্কিন 501 (c) (3) অলাভজনক প্রতিষ্ঠান, মানবাধিকার এবং মুক্ত এবং উন্মুক্ত উৎস সনদে এবং গোপনীয়তা প্রযুক্তিকে সমর্থন করে, তাদের নিষিদ্ধ সহজলভ্যতা এবং ব্যবহার এবং তাদের বৈজ্ঞানিক ও জনপ্রিয় বোঝাপড়া ।">
+<!ENTITY aboutTor.getInvolved.label "যুক্ত হোন»">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/bn-BD/browserOnboarding.properties b/src/chrome/locale/bn-BD/browserOnboarding.properties
new file mode 100644
index 00000000..aaf75ba1
--- /dev/null
+++ b/src/chrome/locale/bn-BD/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=গোপনীয়তা
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Security
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion সেবা
+onboarding.tour-tor-onion-services.title=Onion সেবা
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/bn-BD/torbutton.dtd b/src/chrome/locale/bn-BD/torbutton.dtd
index 98b928cc..201f3111 100644
--- a/src/chrome/locale/bn-BD/torbutton.dtd
+++ b/src/chrome/locale/bn-BD/torbutton.dtd
@@ -47,5 +47,5 @@
<!ENTITY torbutton.prefs.sec_limit_typography "কিছু ফন্ট এবং গণিত চিহ্ন অক্ষম আছে।">
<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "কিছু ফন্ট, আইকন, গণিত প্রতীক এবং ছবি অক্ষম রয়েছে।">
<!ENTITY torbutton.prefs.sec_click_to_play_media "অডিও এবং ভিডিও (HTML5 মিডিয়া) ক্লিক-টু-খেলা।">
-<!ENTITY torbutton.circuit_display.title "Tor Circuit">
-<!ENTITY torbutton.circuit_display.new_circuit "New Circuit for this Site">
+<!ENTITY torbutton.circuit_display.title "টর সার্কিট">
+<!ENTITY torbutton.circuit_display.new_circuit "এই সাইটের জন্য নতুন সার্কিট">
diff --git a/src/chrome/locale/bn-BD/torbutton.properties b/src/chrome/locale/bn-BD/torbutton.properties
index 377fd910..45634d87 100644
--- a/src/chrome/locale/bn-BD/torbutton.properties
+++ b/src/chrome/locale/bn-BD/torbutton.properties
@@ -2,11 +2,11 @@ torbutton.circuit_display.internet = ইন্টারনেটের
torbutton.circuit_display.ip_unknown = আইপি অজানা
torbutton.circuit_display.onion_site = অনিওন সাইট
torbutton.circuit_display.this_browser = এই ব্রাউজার
-torbutton.circuit_display.relay = Relay
+torbutton.circuit_display.relay = রিলেই
torbutton.circuit_display.tor_bridge = ব্রিজ
torbutton.circuit_display.unknown_country = অজানা দেশ
-torbutton.circuit_display.guard = Guard
-torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.guard = গার্ড
+torbutton.circuit_display.guard_note = আপনার [গার্ড] নোড পরিবর্তন হতে পারে না।
torbutton.circuit_display.learn_more = আরও জানুন
torbutton.content_sizer.margin_tooltip = টর ব্রাউজার আপনার উইন্ডো প্রস্থ এবং উচ্চতা নিখুঁত করতে এই মার্জিন যোগ করে, এবং এইভাবে মানুষ আপনাকে অনলাইন ট্র্যাক করার ক্ষমতা হ্রাস করে।
torbutton.panel.tooltip.disabled = টর সক্রিয় করতে ক্লিক করুন
@@ -54,5 +54,5 @@ profileAccessDenied=%S প্রোফাইলটি অ্যাক্সে
profileMigrationFailed=আপনার বিদ্যমান %S প্রোফাইলে স্থানান্তর ব্যর্থ হয়েছে।\nনতুন সেটিংস ব্যবহার করা হবে।
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=সংযোগ এনক্রিপ্ট (Onion Service, %1$S, %2$S bit keys, %3$S)
+pageInfo_OnionEncryption=সংযোগ এনক্রিপ্ট (Onion Service)
diff --git a/src/chrome/locale/ca/aboutDialog.dtd b/src/chrome/locale/ca/aboutDialog.dtd
new file mode 100644
index 00000000..4ab33f91
--- /dev/null
+++ b/src/chrome/locale/ca/aboutDialog.dtd
@@ -0,0 +1,19 @@
+<!ENTITY project.start "&brandShortName; és desenvolupat per">
+<!-- LOCALIZATION NOTE (project.tpoLink): This is a link title that links to https://www.torproject.org -->
+<!ENTITY project.tpoLink "El &vendorShortName;">
+<!ENTITY project.end ", un treball sense ànim de lucre per defensar la privacitat i llibertat virtual.">
+
+<!ENTITY help.start "Vols ajudar?">
+<!-- LOCALIZATION NOTE (help.donate): This is a link title that links to https://www.torproject.org/donate/donate.html.en -->
+<!ENTITY help.donateLink "Fes una donació">
+<!ENTITY help.or "o">
+<!-- LOCALIZATION NOTE (help.getInvolvedLink): This is a link title that links to https://www.torproject.org/getinvolved/volunteer.html.en -->
+<!ENTITY help.getInvolvedLink "Forma'n part">
+<!ENTITY help.end "!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/docs/trademark-faq.html.en -->
+<!ENTITY bottomLinks.questions "Preguntes?">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/getinvolved/relays -->
+<!ENTITY bottomLinks.grow "Ajuda la xarxa Tor a créixer!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to about:license -->
+<!ENTITY bottomLinks.license "Informació de la llicència">
+<!ENTITY tor.TrademarkStatement "'Tor' i 'Onion Logo' són marques registrades per Tor Project, Inc.">
diff --git a/src/chrome/locale/ca/aboutTBUpdate.dtd b/src/chrome/locale/ca/aboutTBUpdate.dtd
new file mode 100644
index 00000000..515e1e79
--- /dev/null
+++ b/src/chrome/locale/ca/aboutTBUpdate.dtd
@@ -0,0 +1,6 @@
+<!ENTITY aboutTBUpdate.title "Actualització del navegador Tor">
+<!ENTITY aboutTBUpdate.updated "El navegador Tor s'ha actualitzat. ">
+<!ENTITY aboutTBUpdate.linkPrefix "Per la informació més actualitzada sobre aquesta versió,">
+<!ENTITY aboutTBUpdate.linkLabel "visiteu el lloc web">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.changeLogHeading "Registre de canvis:">
diff --git a/src/chrome/locale/ca/aboutTor.dtd b/src/chrome/locale/ca/aboutTor.dtd
index 9f14022b..3adff326 100644
--- a/src/chrome/locale/ca/aboutTor.dtd
+++ b/src/chrome/locale/ca/aboutTor.dtd
@@ -1,47 +1,25 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "About Tor">
+<!ENTITY aboutTor.title "Quant a Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "HOWEVER, this browser is out of date.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ALSO, this browser is out of date.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
+<!ENTITY aboutTor.failure.label "Hi ha algun error.">
+<!ENTITY aboutTor.failure2.label "Tor no funciona en aquest navegador.">
-<!ENTITY aboutTor.check.label "Test Tor Network Settings">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
+<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.success.label "Congratulations!">
-<!ENTITY aboutTor.success2.label "This browser is configured to use Tor.">
-<!ENTITY aboutTor.success3.label "You are now free to browse the Internet anonymously.">
-<!ENTITY aboutTor.failure.label "Something Went Wrong!">
-<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
-<!ENTITY aboutTor.failure3prefix.label "For assistance, please contact ">
-<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
-<!ENTITY aboutTor.failure3suffix.label ".">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Preguntes?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.search.label "Search">
-<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/do/search">
-<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
-
-<!ENTITY aboutTor.torInfo1.label "Additional Info:">
-<!ENTITY aboutTor.torInfo2.label "Country & IP Address:">
-<!ENTITY aboutTor.torInfo3.label "Exit Node:">
-<!ENTITY aboutTor.torInfo4.label "This server does not log any information about visitors.">
-<!ENTITY aboutTor.whatnextQuestion.label "What Next?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
-<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
-<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
-<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
-<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-
-<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
-<!ENTITY aboutTor.learnMore.label "Learn more about The Tor Project »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/ca/aboutTor.properties b/src/chrome/locale/ca/aboutTor.properties
index 02088f01..169ac01c 100644
--- a/src/chrome/locale/ca/aboutTor.properties
+++ b/src/chrome/locale/ca/aboutTor.properties
@@ -2,14 +2,19 @@
# See LICENSE for licensing information.
# vim: set sw=2 sts=2 ts=8 et:
-aboutTor.searchSP.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">Startpage</a>.
-# The following string is a link which replaces %1$S above.
-aboutTor.searchSP.privacy.link=https://startpage.com/eng/protect-privacy.html
-# The following string is a link which replaces %2$S above.
-aboutTor.searchSP.search.link=https://startpage.com/
-
-aboutTor.searchDDG.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">DuckDuckGo</a>.
+aboutTor.searchDDG.privacy=Cerca <a href="%1$S">de forma segura</a> amb <a href="%2$S">DuckDuckGo</a>.
# The following string is a link which replaces %1$S above.
aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
# The following string is a link which replaces %2$S above.
aboutTor.searchDDG.search.link=https://duckduckgo.com/
+
+aboutTor.donationBanner.donate=Fes una donació ara!
+
+aboutTor.donationBanner.slogan=Tor: Potenciant la resistència digital
+aboutTor.donationBanner.mozilla=Dona avui i Mozilla us recompensarà!
+
+aboutTor.donationBanner.tagline1=Protegint periodistes, denunciants i activistes des de 2006
+aboutTor.donationBanner.tagline2=Interconectant llibertat global
+aboutTor.donationBanner.tagline3=Llibertat online
+aboutTor.donationBanner.tagline4=Fomentant la lliure expresió global
+aboutTor.donationBanner.tagline5=Protegint la Privacitat de milions de persones cada dia
diff --git a/src/chrome/locale/ca/brand.dtd b/src/chrome/locale/ca/brand.dtd
index 59f665e8..a0ffa28e 100644
--- a/src/chrome/locale/ca/brand.dtd
+++ b/src/chrome/locale/ca/brand.dtd
@@ -2,7 +2,14 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "Tor Browser">
-<!ENTITY brandFullName "Tor Browser">
-<!ENTITY vendorShortName "Tor Project">
-<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
+<!ENTITY brandShorterName "Navegador Tor">
+<!ENTITY brandShortName "Navegador Tor">
+<!ENTITY brandFullName "Navegador Tor">
+<!ENTITY vendorShortName "Projecte Tor">
+<!ENTITY trademarkInfo.part1 "El Firefox i els logotips del Firefox són marques registrades de la Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Cliqueu per carregar els complements de sistema instal·lats">
+<!ENTITY plugins.installed.enable "Activa els complements">
+<!ENTITY plugins.installed.disable "Desactiva els complements">
+<!ENTITY plugins.installed.disable.tip "Clicqueu per evitar que es carreguin els complements de sistema">
diff --git a/src/chrome/locale/ca/brand.properties b/src/chrome/locale/ca/brand.properties
index f63def38..8c65dd7e 100644
--- a/src/chrome/locale/ca/brand.properties
+++ b/src/chrome/locale/ca/brand.properties
@@ -2,14 +2,15 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-brandShortName=Tor Browser
-brandFullName=Tor Browser
-vendorShortName=Tor Project
+brandShorterName=Navegador Tor
+brandShortName=Navegador Tor
+brandFullName=Navegador Tor
+vendorShortName=Projecte Tor
-homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-homePageImport=Import your home page from %S
+homePageSingleStartMain=Inici de Firefox, pàgina d'inici amb cerca ràpida
+homePageImport=Importa la pàgina d'inici des de %S
-homePageMigrationPageTitle=Home Page Selection
-homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=Selecció de pàgina d'inici
+homePageMigrationDescription=Trieu la pàgina d'inici que voleu:
syncBrandShortName=Sync
diff --git a/src/chrome/locale/ca/browserOnboarding.properties b/src/chrome/locale/ca/browserOnboarding.properties
new file mode 100644
index 00000000..8f47794f
--- /dev/null
+++ b/src/chrome/locale/ca/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privadesa
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Seguretat
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion Services
+onboarding.tour-tor-onion-services.title=Onion Services
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/ca/torbutton.dtd b/src/chrome/locale/ca/torbutton.dtd
index 1ee6378f..8bd89b77 100644
--- a/src/chrome/locale/ca/torbutton.dtd
+++ b/src/chrome/locale/ca/torbutton.dtd
@@ -1,22 +1,51 @@
<!ENTITY torbutton.context_menu.new_identity "Nova identitat">
<!ENTITY torbutton.context_menu.new_identity_key "I">
-<!ENTITY torbutton.context_menu.networksettings "Open Network Settings…">
-<!ENTITY torbutton.context_menu.downloadUpdate "Download Tor Browser Bundle Update...">
+<!ENTITY torbutton.context_menu.new_circuit "Nou circuit Tor per a aquest lloc">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
+<!ENTITY torbutton.context_menu.preferences "Paràmetres de seguretat...">
+<!ENTITY torbutton.context_menu.preferences.key "S">
+<!ENTITY torbutton.context_menu.networksettings "Preferències de la Xarxa Tor...7">
+<!ENTITY torbutton.context_menu.networksettings.key "N">
+<!ENTITY torbutton.context_menu.downloadUpdate "Cerca una actualització del navegador Tor...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "A">
-<!ENTITY torbutton.context_menu.cookieProtections "Protecció de les galetes">
+<!ENTITY torbutton.context_menu.cookieProtections "Proteccions de les Galetes...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
<!ENTITY torbutton.button.tooltip "Feu clic per a iniciar Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Reestableix predeterminats">
-<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
-<!ENTITY torbutton.cookiedialog.lockCol "Protected">
-<!ENTITY torbutton.cookiedialog.domainCol "Host">
+<!ENTITY torbutton.prefs.security_settings "Paràmetres de seguretat del navegador Tor">
+<!ENTITY torbutton.prefs.restore_defaults "Torna a les opcions per defecte">
+<!ENTITY torbutton.prefs.custom_warning "El navegador personalitzat ha obtingut uns paràmetres inusuals de seguretat. Per raons de privacitat i de seguretat, recomanem l'elecció d'un nivell de seguretat per defecte.">
+<!ENTITY torbutton.cookiedialog.title "Configura proteccions de les galetes">
+<!ENTITY torbutton.cookiedialog.lockCol "Protegit">
+<!ENTITY torbutton.cookiedialog.domainCol "Allotjador">
<!ENTITY torbutton.cookiedialog.nameCol "Nom">
-<!ENTITY torbutton.cookiedialog.pathCol "Path">
-<!ENTITY torbutton.cookiedialog.protectCookie "Protect Cookie">
-<!ENTITY torbutton.cookiedialog.removeCookie "Remove Cookie">
-<!ENTITY torbutton.cookiedialog.unprotectCookie "Unprotect Cookie">
-<!ENTITY torbutton.cookiedialog.removeAllBut "Remove All But Protected">
-<!ENTITY torbutton.cookiedialog.saveAllCookies "Protect New Cookies">
-<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Do Not Protect New Cookies">
-<!ENTITY torbutton.prefs.restrict_thirdparty "Restrict third party cookies and other tracking data">
-<!ENTITY torbutton.prefs.resist_fingerprinting "Change details that distinguish you from other Tor Browser users">
+<!ENTITY torbutton.cookiedialog.pathCol "Camí">
+<!ENTITY torbutton.cookiedialog.protectCookie "Protegir les galetes">
+<!ENTITY torbutton.cookiedialog.removeCookie "Suprimir galetes">
+<!ENTITY torbutton.cookiedialog.unprotectCookie "Galetes sense protecció">
+<!ENTITY torbutton.cookiedialog.removeAllBut "Suprimir totes amb protecció">
+<!ENTITY torbutton.cookiedialog.saveAllCookies "Protegir noves galetes">
+<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "No protegir noves galetes">
+<!ENTITY torbutton.prefs.restrict_thirdparty "Restringir galetes de tercers i dades de seguiment">
+<!ENTITY torbutton.prefs.restrict_thirdparty.accesskey "R">
+<!ENTITY torbutton.prefs.restrict_thirdparty_tooltip "Marca la casella de selecció per prevenir característiques d'abús i seguiments al consultar un web. Les característiques modificables son les URL blob, canals de difusió, memòria cau del navegador, galetes, favicons, capçaleres HTTP Auth, enllaços de preconexió, emmagatzemament local, URL mediaSource, sol·licitud OCSP, SharedWorkers i tiquets TLS.">
+<!ENTITY torbutton.prefs.resist_fingerprinting "Canviar detalls que distingeixen d'altres usuaris del navegador Tor">
+<!ENTITY torbutton.prefs.resist_fingerprinting.accesskey "F">
+<!ENTITY torbutton.prefs.resist_fingerprinting_tooltip "Mantingueu aquesta casella marcada per a ocultar informació sensible sobre vosté a les pàgines web, tal com les capacitats de l'ordinador, la distribució del teclat, la localització dels connectors instal·lats, la llista de connectors, el seu estat de xarxa, la orientació de la pantalla, el seu tamany, el zoom específic per a cada lloc, els tipus de fitxer acceptats, els colors de sistema i les capacitats WebGL.">
+<!ENTITY torbutton.prefs.sec_caption "Nivell de seguretat">
+<!ENTITY torbutton.prefs.sec_caption_tooltip "El control lliscant de seguretat permet deshabilitar característiques del navegador que poden permetre vulnerabilitats en atemptats de furoners.">
+<!ENTITY torbutton.prefs.sec_standard_label "Estàndard">
+<!ENTITY torbutton.prefs.sec_standard_description "Totes les característiques del buscador Tor i de la pàgina web estan actives.">
+<!ENTITY torbutton.prefs.sec_safer_label "Més segur.">
+<!ENTITY torbutton.prefs.sec_safer_description "Desactivar les funcions del lloc web que sovint són perilloses, pot fent que alguns llocs perden funcionalitat.">
+<!ENTITY torbutton.prefs.sec_safer_list_label "A la configuració més segura:">
+<!ENTITY torbutton.prefs.sec_safest_label "més segur">
+<!ENTITY torbutton.prefs.sec_safest_description "Només es permeten funcions del lloc web requerides per a llocs estàtics i serveis bàsics. Aquests canvis afecten imatges, mitjans de comunicació i scripts.">
+<!ENTITY torbutton.prefs.sec_safest_list_label "A la configuració més segura:">
+<!ENTITY torbutton.prefs.sec_learn_more_label "Apreneu-ne més">
+<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "El JavaScript està desactivat per defecte en tots els llocs no-HTTPS">
+<!ENTITY torbutton.prefs.sec_js_disabled "El JavaScript està desactivat per defecte a tots els llocs.">
+<!ENTITY torbutton.prefs.sec_limit_typography "Algunes fonts i símbols matemàtics estan desactivats. ">
+<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Algunes fonts, icones, símbols matemàtics, i imatges estan desactivats. ">
+<!ENTITY torbutton.prefs.sec_click_to_play_media "L'àudio i el vídeo (mitjans de comunicació HTML5) són click-to-play.">
+<!ENTITY torbutton.circuit_display.title "Circuit de Tor">
+<!ENTITY torbutton.circuit_display.new_circuit " Circuit de Tor per a aquest lloc ">
diff --git a/src/chrome/locale/ca/torbutton.properties b/src/chrome/locale/ca/torbutton.properties
index 232359a2..978d6b91 100644
--- a/src/chrome/locale/ca/torbutton.properties
+++ b/src/chrome/locale/ca/torbutton.properties
@@ -1,27 +1,58 @@
-torbutton.panel.tooltip.disabled = Feu clic per a activar Tor
-torbutton.panel.tooltip.enabled = Feu clic per a desactivar Tor
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP desconeguda
+torbutton.circuit_display.onion_site = Lloc .onion
+torbutton.circuit_display.this_browser = Aquest navegador
+torbutton.circuit_display.relay = Repetidor
+torbutton.circuit_display.tor_bridge = Pont
+torbutton.circuit_display.unknown_country = País desconegut
+torbutton.circuit_display.guard = Guarda
+torbutton.circuit_display.guard_note = El vostre node de [Guarda] pot no canviar.
+torbutton.circuit_display.learn_more = Apreneu-ne més
+torbutton.content_sizer.margin_tooltip = El navegador Tor afegeix aquest marge per a minorar la diferència de alçada i amplada de la finestra, això fa reduir la capacitat de rastrejar-te.
+torbutton.panel.tooltip.disabled = Feu clic per activar Tor
+torbutton.panel.tooltip.enabled = Feu clic per desactivar Tor
torbutton.panel.label.disabled = Tor està desactivat
torbutton.panel.label.enabled = Tor està activat
-extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
-torbutton.popup.external.title = Voleu carregar els continguts externs?
-torbutton.popup.external.app = Es necessita una aplicació externa per a manejar:\n\n
-torbutton.popup.external.note = \n\nAvís: les aplicacions externes no estan adaptades a Tor per defecte i podrien revelar la vostra identitat.\n
-torbutton.popup.external.suggest = \nSi aquest arxiu no és de fiar, haurieu o bé desar-lo per inspeccionar-lo desconectat o a una VM (màquina virtual),\n o bé considerar a usar un proxy transparent per Tor tipus Tails LiveCD o torsocks.\n
-torbutton.popup.launch = Inicia l'aplicació
+extensions.torbutton(a)torproject.org.description = Torbutton permet accedir a la configuració de Tor i esborrar fàcilment i ràpidament les dades privades de navegació per internet.
+torbutton.popup.external.title = Voleu descarregar un tipus de fitxer extern?
+torbutton.popup.external.app = Tor Browser no pot visualitzar aquest fitxer. Cal obrir-lo amb una altra aplicació.\n\n
+torbutton.popup.external.note = Alguns tipus de fitxers poden fer que les aplicacions es connectin a Internet sense passar per Tor.\n\n
+torbutton.popup.external.suggest = Per seguretat, obriu els fitxers descarregats havent desactivat la connexió a Internet, o fer servir un CD de sistema operatiu preconfigurat com Tails.\n
+torbutton.popup.launch = Descarrega el fitxer
torbutton.popup.cancel = Cancel·la
-torbutton.popup.dontask = Inicia les aplicacions automàticament
-torbutton.popup.prompted_language = Per donar-vos més privacitat, Torbutton pot demanar la versió en anglès de les pàgines web. Això pot provocar que pàgines web que preferiu veure a la vostra llengua nativa siguin mostrades en anglès.\n\nDesitjeu demanar les pàgines web en anglès per una major privacitat?
-torbutton.popup.no_newnym = Torbutton no pot adjudicar-vos de forma segura una nova identitat. No disposa d'accés al Tor Control Port.\n\nEsteu usant Tor Browser Bundle?
-torbutton.title.prompt_torbrowser = Important Torbutton Information
-torbutton.popup.prompt_torbrowser = Torbutton works differently now: you can't turn it off any more.\n\nWe made this change because it isn't safe to use Torbutton in a browser that's also used for non-Tor browsing. There were too many bugs there that we couldn't fix any other way.\n\nIf you want to keep using Firefox normally, you should uninstall Torbutton and download Tor Browser Bundle. The privacy properties of Tor Browser are also superior to those of normal Firefox, even when Firefox is used with Torbutton.\n\nTo remove Torbutton, go to Tools->Addons->Extensions and then click the Remove button next to Torbutton.
-torbutton.popup.short_torbrowser = Important Torbutton Information!\n\nTorbutton is now always enabled.\n\nClick on the Torbutton for more information.
+torbutton.popup.dontask = A partir d'ara, descarrega els fitxers automàticament
+torbutton.popup.prompted_language = Per donar-vos més privacitat, el Torbutton pot demanar la versió en anglès de les pàgines web. Això pot provocar que les pàgines web que vulgueu veure en una altra llengua siguin mostrades en anglès.\n\nVoleu demanar les pàgines web en anglès per una major privadesa?
+torbutton.popup.no_newnym = El Torbutton no pot adjudicar-vos de forma segura una nova identitat. No disposeu d'accés al Tor Control Port.\n\nEsteu usant el Tor Browser Bundle?
+torbutton.title.prompt_torbrowser = Informació important sobre Torbutton
+torbutton.popup.prompt_torbrowser = Torbutton Funciona de forma diferent ara: ja no el pot tancar.\n\nHem fet aquest canvi per que l'ús de Torbutton en un navegador utilitzat també per navegar fora de l'entorn de Tor ja no es segur. Hi havien moltes incidències i no hem trobat cap altre solució per arreglar-les. \n\nSi desitja continuar utilitzant Firefox de forma habitual, ha de desinstalar Torbutton i descarregar Tor Browser Bundle. La seguretat de Tor Browser es millor que la de Firefox, fins i tot quan es fa servir Torbutton. \n\nPer desinstalar Torbutton, seleccioni Eines->Addons->Extensions and faci click sobre el botó Desinstalar al costat de Torbutton
+torbutton.popup.short_torbrowser = Informació important sobre Torbutton! \n\nTorbutton ara és troba sempre activat.\n\nFaci click sobre Torbutton per més informació.
-torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy and anonymity.\n\nThey can also bypass Tor to reveal your current location and IP address.\n\nAre you sure you want to enable plugins?\n\n
+torbutton.popup.confirm_plugins = Alguns Plugins com Flash poden afectar la seva privacitat i el seu anonimat.\n\nTambé poden curt-circuitar Tor per revelar la ubicació actual i l'adreça IP.\n\nEstà segur de voler activar aquests plugins? \n\n
torbutton.popup.never_ask_again = No torneu a preguntar
+torbutton.popup.confirm_newnym = El navegador Tor tancarà totes les finestres i pestanyes. Totes les sessions web es perdran. \n\nVol reiniciar el navegador Tor per reiniciar la seva identitat?\n\n
+
+torbutton.slider_notification = El menú de la ceba verda té ara un slider que li permet ajustar el seu nivell de seguretat. Fes-li un cop d'ull!
+torbutton.slider_notification_button = Obrir les preferències de seguretat
+
+torbutton.maximize_warning = Maximitzar Tor Browser por permetre als llocs web determinar les dimensions del teu monitor, que pot utilitzar-se per a rastrejar-li. Li recomanem que deixe la finestra de Tor Browser amb la seva mida per defecte.
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=This website (%S) attempted to access image data on a canvas. Since canvas image data can be used to discover information about your computer, blank image data was returned this time.
-canvas.allow=Permetre en el futur
+canvas.siteprompt=Aquest lloc web (%S) ha intentat extreure les dades de la imatge del llenç HTML5, que es poden utilitzar per identificar el seu ordinador.\n\nEl Navegador Tor hauria de permetre que aquest lloc web extregui les dades de la imatge del llenç HTML5?
+canvas.notNow=Ara no
+canvas.notNowAccessKey=N
+canvas.allow=Permet a partir d'ara
canvas.allowAccessKey=A
-canvas.never=Mai per aquest lloc
+canvas.never=Mai per a aquest lloc (recomanat)
canvas.neverAccessKey=e
+
+# Profile/startup error messages. Strings are kept here for ease of translation.
+# LOCALIZATION NOTE: %S is the application name.
+profileProblemTitle=Problema en el perfil %S
+profileReadOnly=No pot executar %S des de un sistema de fitxers de només lectura. Si us plau, copie $S a un altra localització avanç de intentar usar-ho.
+profileReadOnlyMac=No pot executar %S des de un sistema de fitxers de només lectura. Si us plau, copie $S a la seva carpeta Escriptori o Aplicacions avanç de intentar usar-ho.
+profileAccessDenied=%S no té permisos per accedir al perfil. Si us plau, ajuste els permisos del seu sistema de fitxers i intente-ho de nou.
+profileMigrationFailed=La migració del vostre perfil %S ha fallat.\nEs fara servir una nova configuració.
+
+# .Onion Page Info prompt. Strings are kept here for ease of translation.
+pageInfo_OnionEncryptionWithBitsAndProtocol=Connexió xifrada (Onion Service, %1$S, claus de %2$S bits, %3$S)
+pageInfo_OnionEncryption=Connexió xifrada (Onion Service)
diff --git a/src/chrome/locale/da/aboutTBUpdate.dtd b/src/chrome/locale/da/aboutTBUpdate.dtd
index d0167c73..450e65ce 100644
--- a/src/chrome/locale/da/aboutTBUpdate.dtd
+++ b/src/chrome/locale/da/aboutTBUpdate.dtd
@@ -1,4 +1,4 @@
-<!ENTITY aboutTBUpdate.title "Tor Browser-opdatering">
+<!ENTITY aboutTBUpdate.title "Opdateringer til Tor Browser">
<!ENTITY aboutTBUpdate.updated "Tor Browser er blevet opdateret.">
<!ENTITY aboutTBUpdate.linkPrefix "For den mest aktuelle information om denne udgivelse,">
<!ENTITY aboutTBUpdate.linkLabel "Besøg vores webside">
diff --git a/src/chrome/locale/da/aboutTor.dtd b/src/chrome/locale/da/aboutTor.dtd
index 6e2679a1..9bd057c8 100644
--- a/src/chrome/locale/da/aboutTor.dtd
+++ b/src/chrome/locale/da/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Om Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "ADVARSEL: denne browser er forældet.">
-<!ENTITY aboutTor.outOfDateTorOff.label "Denne browser er desuden forældet.">
-<!ENTITY aboutTor.outOfDate2.label "Klik på løget og vælg så Søg efter Tor Browser-opdateringer.">
-
-<!ENTITY aboutTor.check.label "Test Tor-netværksindstillinger">
-
-<!ENTITY aboutTor.success.label "Velkommen til Tor Browser">
-<!ENTITY aboutTor.success2.label "Forbundet til Tor-netværket.">
-<!ENTITY aboutTor.success3.label "Du kan nu frit bruge internettet anonymt">
+<!ENTITY aboutTor.ready.label "Udforsk. Privat.">
+<!ENTITY aboutTor.ready2.label "Du er klar til verdenens mest private browseroplevelse.">
<!ENTITY aboutTor.failure.label "Noget gik galt!">
<!ENTITY aboutTor.failure2.label "Tor virker ikke i denne browser.">
-<!ENTITY aboutTor.search.label "Søg">
+<!ENTITY aboutTor.search.label "Søg med DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Yderligere information:">
-<!ENTITY aboutTor.torInfo2.label "Land og IP-adresse:">
-<!ENTITY aboutTor.torInfo3.label "Udgangsknudepunkt:">
-<!ENTITY aboutTor.torInfo4.label "Denne server logger ikke nogle informationer om besøgende.">
-<!ENTITY aboutTor.whatnextQuestion.label "Hvad er næste skridt?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor er IKKE al den sikkerhed du har brug for for at browse anonymt. Du bliver muligvis også nødt til at ændre nogle af dine browsingvaner for at sikre, at din identitet er sikker.">
-<!ENTITY aboutTor.whatnext.label "Tips til at være anonym »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Spørgsmål?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Tjek vores Tor Browser-manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser-brugermanual">
-<!ENTITY aboutTor.helpInfo1.label "Du kan hjælpe!">
-<!ENTITY aboutTor.helpInfo2.label "Der er mange måder du kan hjælpe med at gøre Tor-netværket hurtigere og stærkere:">
-<!ENTITY aboutTor.helpInfo3.label "Kør et Tor-relæknudepunkt »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Tilbyd din hjælp »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Foretag en donation »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser-manual">
-<!ENTITY aboutTor.footer.label "Tor-projektet er et US 501(c)(3) nonprofit-projekt dedikeret til forskning, udvikling og uddannelse af online anonymitet og privatliv.">
-<!ENTITY aboutTor.learnMore.label "Lær mere om Tor-projektet »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Deltag »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/da/browserOnboarding.properties b/src/chrome/locale/da/browserOnboarding.properties
new file mode 100644
index 00000000..d94aa845
--- /dev/null
+++ b/src/chrome/locale/da/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privatliv
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Sikkerhed
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion-tjenester
+onboarding.tour-tor-onion-services.title=Onion-tjenester
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/da/torbutton.dtd b/src/chrome/locale/da/torbutton.dtd
index 7936505c..694792e8 100644
--- a/src/chrome/locale/da/torbutton.dtd
+++ b/src/chrome/locale/da/torbutton.dtd
@@ -6,7 +6,7 @@
<!ENTITY torbutton.context_menu.preferences.key "S">
<!ENTITY torbutton.context_menu.networksettings "Tor-netværksindstillinger...">
<!ENTITY torbutton.context_menu.networksettings.key "N">
-<!ENTITY torbutton.context_menu.downloadUpdate "Søg efter Tor Browser-opdatering...">
+<!ENTITY torbutton.context_menu.downloadUpdate "Søg efter opdateringer til Tor Browser...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "O">
<!ENTITY torbutton.context_menu.cookieProtections "Cookie-beskyttelser...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
@@ -37,10 +37,10 @@
<!ENTITY torbutton.prefs.sec_standard_description "Alle Tor Browser- og webstedsfunktionaliteter er aktiveret.">
<!ENTITY torbutton.prefs.sec_safer_label "Mere sikker">
<!ENTITY torbutton.prefs.sec_safer_description "Deaktiverer webstedsfunktionaliteter som ofte er farlige, hvilket kan gøre at nogle steder mister deres funktionalitet.">
-<!ENTITY torbutton.prefs.sec_safer_list_label "Ved den mere sikker indstilling:">
+<!ENTITY torbutton.prefs.sec_safer_list_label "Ved mere sikker-indstillingen:">
<!ENTITY torbutton.prefs.sec_safest_label "Mest sikker">
<!ENTITY torbutton.prefs.sec_safest_description "Tillader kun webstedsfunktionaliteter som kræves til statiske steder og grundlæggende tjenester. Ændringerne påvirker billeder, medier og scripts.">
-<!ENTITY torbutton.prefs.sec_safest_list_label "Ved den sikreste indstilling:">
+<!ENTITY torbutton.prefs.sec_safest_list_label "Ved mest sikker-indstillingen:">
<!ENTITY torbutton.prefs.sec_learn_more_label "Lær mere">
<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript er deaktiveret på ikke-HTTPS steder.">
<!ENTITY torbutton.prefs.sec_js_disabled "JavaScript er som standard deaktiveret på alle steder.">
diff --git a/src/chrome/locale/da/torbutton.properties b/src/chrome/locale/da/torbutton.properties
index 12b79807..978691c4 100644
--- a/src/chrome/locale/da/torbutton.properties
+++ b/src/chrome/locale/da/torbutton.properties
@@ -1,7 +1,7 @@
-torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.internet = Internettet
torbutton.circuit_display.ip_unknown = Ukendt IP-adresse
torbutton.circuit_display.onion_site = Løg side
-torbutton.circuit_display.this_browser = Denne browser
+torbutton.circuit_display.this_browser = Browseren
torbutton.circuit_display.relay = Relæ
torbutton.circuit_display.tor_bridge = Bro
torbutton.circuit_display.unknown_country = Ukendt land
@@ -32,7 +32,7 @@ torbutton.popup.never_ask_again = Spørg mig aldrig igen
torbutton.popup.confirm_newnym = Tor Browser vil lukke alle vinduer og faneblade. Alle webside-sessioner vil gå tabt.\nGenstart Tor Browser nu for at nulstille din identitet?\n
torbutton.slider_notification = Nu har det grønne løg menuen en sikkerheds skyder som lader dig tilpasse dit sikkerhedsniveau. Tjek det ud!
-torbutton.slider_notification_button = Åben sikkerhedsindstillinger
+torbutton.slider_notification_button = Åbn sikkerhedsindstillinger
torbutton.maximize_warning = Hvis du maksimere Tor Browser kan websteder fastslå din skærmstørrelse, hvilket kan blive brugt til at spore dig. Vi anbefaler at du lader Tor Browser-vinduet være i sin originale standardstørrelse.
@@ -54,5 +54,5 @@ profileAccessDenied= %S har ikke rettigheder til at bruge profilen. Skift venlig
profileMigrationFailed=Overførsel af din eksisterende %S profil fejlede.\nNye indstillinger vil blive brugt.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=Forbindelse krypteret (løg-tjeneste, %1$S, %2$S-bit nøgler, %3$S)
+pageInfo_OnionEncryption=Forbindelse krypteret (løg-tjeneste)
diff --git a/src/chrome/locale/de/aboutTor.dtd b/src/chrome/locale/de/aboutTor.dtd
index 8e1d77fc..a653661a 100644
--- a/src/chrome/locale/de/aboutTor.dtd
+++ b/src/chrome/locale/de/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Über Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "WARNUNG: Dieser Browser ist nicht mehr aktuell!">
-<!ENTITY aboutTor.outOfDateTorOff.label "AUSSERDEM, dieser Browser ist nicht aktuell.">
-<!ENTITY aboutTor.outOfDate2.label "Klicken Sie auf die Zwiebel und wählen Sie dann Suche nach Tor-Browser-Aktualisierung.">
-
-<!ENTITY aboutTor.check.label "Tor-Netzwerkeinstellungen testen">
-
-<!ENTITY aboutTor.success.label "Willkommen im Tor Browser">
-<!ENTITY aboutTor.success2.label "Mit dem Tor-Netzwerk verbunden.">
-<!ENTITY aboutTor.success3.label "Sie können jetzt anonym im Internet surfen.">
+<!ENTITY aboutTor.ready.label "Entdecken. Privat.">
+<!ENTITY aboutTor.ready2.label "Sie sind bereit für das privateste Browsing-Erlebnis der Welt.">
<!ENTITY aboutTor.failure.label "Irgend etwas lief schief!">
<!ENTITY aboutTor.failure2.label "Tor funktioniert mit diesem Browser nicht.">
-<!ENTITY aboutTor.search.label "Suche">
+<!ENTITY aboutTor.search.label "Mit DuckDuckGo suchen">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Zusätzliche Informationen:">
-<!ENTITY aboutTor.torInfo2.label "Land & IP-Adresse:">
-<!ENTITY aboutTor.torInfo3.label "Austrittsknoten:">
-<!ENTITY aboutTor.torInfo4.label "Dieser Server speichert keine Informationen über Besucher.">
-<!ENTITY aboutTor.whatnextQuestion.label "Was nun?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor ist NICHT alles was benötigt wird, um anonym zu surfen! Sie müssen eventuell einige Gewohnheiten ändern, um sicherzustellen, dass Ihre Identität geschützt bleibt.">
-<!ENTITY aboutTor.whatnext.label "Tipps, um anonym zu bleiben »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Fragen?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Schauen Sie unser Tor-Browser-Handbuch an »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor-Browser-Benutzerhandbuch">
-<!ENTITY aboutTor.helpInfo1.label "Sie können helfen!">
-<!ENTITY aboutTor.helpInfo2.label "Es gibt viele Möglichkeiten, um das Tor-Netzwerk schneller und stärker zu machen:">
-<!ENTITY aboutTor.helpInfo3.label "Einen Tor-Relaisknoten betreiben »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Ihre Dienste bereitstellen »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Etwas spenden »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor-Browser-Handbuch">
-<!ENTITY aboutTor.footer.label "Die Organisation »The Tor Project« ist nach dem US-Gesetz US 501(c)(3) als gemeinnützig eingestuft und widmet sich der Forschung, der Entwicklung und der Schulung zum Thema Internetanonymität und Datenschutz.">
-<!ENTITY aboutTor.learnMore.label "Mehr über das Tor-Projekt erfahren »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Machen Sie mit »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/de/browserOnboarding.properties b/src/chrome/locale/de/browserOnboarding.properties
new file mode 100644
index 00000000..6b6c63fc
--- /dev/null
+++ b/src/chrome/locale/de/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Willkommen
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privatsphäre
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Entdecken
+
+onboarding.tour-tor-security=Sicherheit
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion-Dienste
+onboarding.tour-tor-onion-services.title=Onion-Dienste
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/de/torbutton.dtd b/src/chrome/locale/de/torbutton.dtd
index 7fbb0f1c..0b22921a 100644
--- a/src/chrome/locale/de/torbutton.dtd
+++ b/src/chrome/locale/de/torbutton.dtd
@@ -48,5 +48,5 @@
<!ENTITY torbutton.prefs.sec_limit_typography "Einige Schriftarten und mathematische Symbole sind deaktiviert.">
<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Einige Schriftarten, Symbole, mathematische Symbole und Bilder sind deaktiviert.">
<!ENTITY torbutton.prefs.sec_click_to_play_media "Audio und Video (HTML5-Medien) müssen zur Wiedergabe angeklickt werden.">
-<!ENTITY torbutton.circuit_display.title "Tor Circuit">
-<!ENTITY torbutton.circuit_display.new_circuit "New Circuit for this Site">
+<!ENTITY torbutton.circuit_display.title "Tor Kanal">
+<!ENTITY torbutton.circuit_display.new_circuit "Neuen Kanal für diese Seite">
diff --git a/src/chrome/locale/de/torbutton.properties b/src/chrome/locale/de/torbutton.properties
index 6564c22e..d03bb543 100644
--- a/src/chrome/locale/de/torbutton.properties
+++ b/src/chrome/locale/de/torbutton.properties
@@ -5,8 +5,8 @@ torbutton.circuit_display.this_browser = Dieser Browser
torbutton.circuit_display.relay = Verteiler
torbutton.circuit_display.tor_bridge = Brücke
torbutton.circuit_display.unknown_country = Unbekanntes Land
-torbutton.circuit_display.guard = Guard
-torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.guard = Wächter
+torbutton.circuit_display.guard_note = Dein [Wächter] Knotenpunkt darf sich nicht ändern.
torbutton.circuit_display.learn_more = Erfahren Sie mehr
torbutton.content_sizer.margin_tooltip = Tor Browser fügt diese Begrenzung hinzu, um die Breite und Höhe Ihres Fensters weniger einzigartig zu machen. Dadurch wird es anderen erschwert, Sie im Internet zu verfolgen.
torbutton.panel.tooltip.disabled = Klicken, um Tor zu aktivieren
@@ -54,5 +54,5 @@ profileAccessDenied=%S hat keine Berechtigung um dieses Profil abzurufen. Bitte
profileMigrationFailed=Übernahme des bestehenden %S Profils ist fehlgeschlagen.\nEs werden neue Einstellungen verwendet.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=Verbindung verschlüsselt (Onion-Dienst, %1$S, %2$S bit Schlüssel, %3$S)
+pageInfo_OnionEncryption=Verbindung verschlüsselt (Onion-Dienst)
diff --git a/src/chrome/locale/es/aboutTor.dtd b/src/chrome/locale/es/aboutTor.dtd
index 73ce9ef0..2c7494e7 100644
--- a/src/chrome/locale/es/aboutTor.dtd
+++ b/src/chrome/locale/es/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Acerca de Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "ADVERTENCIA: Este navegador no está actualizado.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ADEMÁS, este navegador tampoco está actualizado.">
-<!ENTITY aboutTor.outOfDate2.label "Haz clic en la cebolla y selecciona Comprobar actualización del Navegador Tor.">
-
-<!ENTITY aboutTor.check.label "Probar las preferencias de red Tor">
-
-<!ENTITY aboutTor.success.label "Bienvenido al Navegador Tor">
-<!ENTITY aboutTor.success2.label "Conectado a la red Tor.">
-<!ENTITY aboutTor.success3.label "Ahora es libre de navegar por Internet anónimamente.">
+<!ENTITY aboutTor.ready.label "Explora. Privadamente.">
+<!ENTITY aboutTor.ready2.label "Estás listo para experimentar la navegación más privada del mundo.">
<!ENTITY aboutTor.failure.label "¡Algo fue mal!">
<!ENTITY aboutTor.failure2.label "Tor no está funcionando en este navegador.">
-<!ENTITY aboutTor.search.label "Buscar">
+<!ENTITY aboutTor.search.label "Buscar con DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Información adicional:">
-<!ENTITY aboutTor.torInfo2.label "País y dirección IP:">
-<!ENTITY aboutTor.torInfo3.label "Nodo de salida:">
-<!ENTITY aboutTor.torInfo4.label "Este servidor no registra ninguna información sobre los visitantes.">
-<!ENTITY aboutTor.whatnextQuestion.label "¿Qué sigue?">
-<!ENTITY aboutTor.whatnextAnswer.label "¡Tor NO es todo lo que necesita para navegar anónimamente! Puede necesitar cambiar alguno de sus hábitos de navegación para asegurar que su identidad permanezca segura.">
-<!ENTITY aboutTor.whatnext.label "Consejos para permenecer anónimo »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "¿Preguntas?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Comprobar nuestro Manual del Navegador Tor">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Manual de usuario del Navegador Tor »">
-<!ENTITY aboutTor.helpInfo1.label "¡Usted puede ayudar!">
-<!ENTITY aboutTor.helpInfo2.label "Hay muchas formas en que las puede ayudar a hacer la red Tor más rápida y fuerte.">
-<!ENTITY aboutTor.helpInfo3.label "Ejecutar un nodo de repetidor Tor »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Ofrece tus serviciosde forma voluntaria »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Realiza una donación »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Manual del Navegador Tor">
-<!ENTITY aboutTor.footer.label "El Projecto Tor es una US 501(c)(3) sin ánimo de lucro dedicada a la investigación, desarrollo y educación sobre anonimidad y privacidad en línea.">
-<!ENTITY aboutTor.learnMore.label "Aprenda más acerca del El Proyecto Tor »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "El proyecto Tor es una organización sin fines de lucro definida legalmente en EUA 501(c)(3), avanzando libertades y derechos humanos mediante la creación y despliegue de tecnologías de anonimato y privacidad sin costo y de fuente abierta, soportando su disponibilidad y uso sin restricciones y ampliando su entendimiento científico y popular.">
+<!ENTITY aboutTor.getInvolved.label "Involúcrese">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/es/browserOnboarding.properties b/src/chrome/locale/es/browserOnboarding.properties
new file mode 100644
index 00000000..6b8764e4
--- /dev/null
+++ b/src/chrome/locale/es/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Bienvenido
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privacidad
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explorar
+
+onboarding.tour-tor-security=Seguridad
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Servicios Onion
+onboarding.tour-tor-onion-services.title=Servicios Onion
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/es/torbutton.properties b/src/chrome/locale/es/torbutton.properties
index 3afb1be3..9335f4df 100644
--- a/src/chrome/locale/es/torbutton.properties
+++ b/src/chrome/locale/es/torbutton.properties
@@ -2,7 +2,7 @@ torbutton.circuit_display.internet = Internet
torbutton.circuit_display.ip_unknown = IP desconocida
torbutton.circuit_display.onion_site = Sitio onion
torbutton.circuit_display.this_browser = Este navegador
-torbutton.circuit_display.relay = Relay
+torbutton.circuit_display.relay = Repetidor
torbutton.circuit_display.tor_bridge = Repetidor puente (bridge)
torbutton.circuit_display.unknown_country = País desconocido
torbutton.circuit_display.guard = Protección
@@ -54,5 +54,5 @@ profileAccessDenied=%S no tiene permiso para acceder al perfil. Ajuste los permi
profileMigrationFailed=Ha ocurrido un error en la migración de tu perfil %S. \nSe usarán los nuevos ajustes.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Conexión encriptada (Servicio Onion, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Conexión encpritada (Servicio Onion)
+pageInfo_OnionEncryptionWithBitsAndProtocol=Conexión cifrada (Servicio Onion, %1$S, %2$S bit keys, %3$S)
+pageInfo_OnionEncryption=Conexión cifrada (Servicio Onion)
diff --git a/src/chrome/locale/eu/aboutTor.dtd b/src/chrome/locale/eu/aboutTor.dtd
index 3b6a11eb..3fb2f888 100644
--- a/src/chrome/locale/eu/aboutTor.dtd
+++ b/src/chrome/locale/eu/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Tori buruz">
-<!ENTITY aboutTor.outOfDateTorOn.label "KONTUZ: nabigatzaile hau zaharkituta dago.">
-<!ENTITY aboutTor.outOfDateTorOff.label "BAITA, nabigatzaile hau zaharkituta dago.">
-<!ENTITY aboutTor.outOfDate2.label "Tipulan sakatu eta ondoren Tor Browser Bundlea egiaztatu hautatu">
-
-<!ENTITY aboutTor.check.label "Tor sare ezarpenak frogatu">
-
-<!ENTITY aboutTor.success.label "Ongi etorri Tor Browserera">
-<!ENTITY aboutTor.success2.label "Tor sarera konektatuta.">
-<!ENTITY aboutTor.success3.label "Aske zara orain Internet anonimotasunez nabigatzeko.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Zerbait gaizki joan da!">
<!ENTITY aboutTor.failure2.label "Tor ez da nabigatzaile honetan funtzionatzen ari.">
-<!ENTITY aboutTor.search.label "Bilatu">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Informazio gehiago:">
-<!ENTITY aboutTor.torInfo2.label "Herrialde eta IP helbidea:">
-<!ENTITY aboutTor.torInfo3.label "Irteera nodoa:">
-<!ENTITY aboutTor.torInfo4.label "Ostalari honek ez du bisitarien inguruko inolako informaziorik biltzen.">
-<!ENTITY aboutTor.whatnextQuestion.label "Eta orain zer?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor EZ da anonimoki nabigatzeko behar duzun guztia! Baliteke zure nabigatze ohitura batzuk aldatu behar izatea zure nortasuna seguru mantentzen dela ziurtatzeko.">
-<!ENTITY aboutTor.whatnext.label "Anonimo mantentzeko aholkuak »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Galderarik?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser User Manual">
-<!ENTITY aboutTor.helpInfo1.label "Lagundu dezakezu!">
-<!ENTITY aboutTor.helpInfo2.label "Tor sarea bizkorragoa eta indartsuagoa egiteko hainbat modutan lagundu dezakezu:">
-<!ENTITY aboutTor.helpInfo3.label "Tor errele nodo bat exekutatu »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Zure zerbitzuak bolondrestu »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Dohaintza egin »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "The Tor Project irabazi asmorik gabeko US 501(c)(3) bat da, ikerketara, garapenera, eta onlineko anonimotasuna eta pribatutasunaren hezkuntzara zuzendutakoa.">
-<!ENTITY aboutTor.learnMore.label "The Tor Projecti buruz gehiago ikasi »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/eu/browserOnboarding.properties b/src/chrome/locale/eu/browserOnboarding.properties
new file mode 100644
index 00000000..9d378850
--- /dev/null
+++ b/src/chrome/locale/eu/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Pribatutasuna
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Segurtasuna
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion Services
+onboarding.tour-tor-onion-services.title=Onion Services
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/fa/aboutTor.dtd b/src/chrome/locale/fa/aboutTor.dtd
index 7ed77f81..92674b09 100644
--- a/src/chrome/locale/fa/aboutTor.dtd
+++ b/src/chrome/locale/fa/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "دربارهی تور">
-<!ENTITY aboutTor.outOfDateTorOn.label "هشدار: این مرورگر به روز نیست.">
-<!ENTITY aboutTor.outOfDateTorOff.label "همچنین ٫ این مرورگر قدیمی می باشد .">
-<!ENTITY aboutTor.outOfDate2.label "روی پیاز کلیک کنید و سپس انتخاب کنید Check را برای به روز رسانی Tor Browser">
-
-<!ENTITY aboutTor.check.label "تنظیمات شبکهی تور را بررسی کنید">
-
-<!ENTITY aboutTor.success.label "به مرورگر تور خوش آمدید.">
-<!ENTITY aboutTor.success2.label "اتصال با شبکهی تور برقرار شد.">
-<!ENTITY aboutTor.success3.label "اکنون شما به طور ناشناس به اینترنت دسترسی دارید.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "خطایی پیش آمده است!">
<!ENTITY aboutTor.failure2.label "تا با این مرورگر کار نمیکند.">
-<!ENTITY aboutTor.search.label "جستجو">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "اطلاعات بيشتر">
-<!ENTITY aboutTor.torInfo2.label "كشور و آدرس آى پی:">
-<!ENTITY aboutTor.torInfo3.label "مسيرياب مخرج">
-<!ENTITY aboutTor.torInfo4.label "این سرور هیچ گزارشی از فعالیت بازدید کنندگان خود ثبت نمی کند.">
-<!ENTITY aboutTor.whatnextQuestion.label "بعدی چیست؟">
-<!ENTITY aboutTor.whatnextAnswer.label "تور همهی نیاز شما برای ناشناس ماندن در وب را برآورده نمیکند! برای اطمینان از ایمنی هویتتان، نیاز دارید برخی عادات وبگردیتان را تغییر دهید.">
-<!ENTITY aboutTor.whatnext.label "راهنمایی برای ناشناس ماندن.">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "پرسش؟">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "راهنمای کاربری مرورگر تور">
-<!ENTITY aboutTor.helpInfo1.label "میتوانید کمک کنید!">
-<!ENTITY aboutTor.helpInfo2.label "راه های زیادی برای کمک کردن شما جهت سریعتر کردن و مستحکم کردن شبکه تور وجود دارد:">
-<!ENTITY aboutTor.helpInfo3.label "مسيرياب تورى اداره كنيد »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "داوطلب شويد »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "اهدا كنيد »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "پروژهٔ تور سازمان غیر انتفاعی آمریکایی 501(c)3 مختص پژوهش, توسعه و آموزش در زمین ناشناسی و حریم شخصی آنلاين هست.">
-<!ENTITY aboutTor.learnMore.label "اطلاعات بیشتر در پروژهٔ تور كسب كنيد">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/fa/brand.properties b/src/chrome/locale/fa/brand.properties
index e9eb95f4..f5ec5a29 100644
--- a/src/chrome/locale/fa/brand.properties
+++ b/src/chrome/locale/fa/brand.properties
@@ -11,6 +11,6 @@ homePageSingleStartMain=صفحهٔ Firefox Start, صفحهٔ خانگی تند
homePageImport=صفحهٔ خانگیتانرا از %S وارد كنيد
homePageMigrationPageTitle=انتخاب صفحهٔ خانگی
-homePageMigrationDescription=بفرمایید صفحهٔ خانگی انتخاب گنید:
+homePageMigrationDescription=لطفاً صفحه خانگی مورد نظر خود را انتخاب نمایید:
syncBrandShortName=همگام سازی
diff --git a/src/chrome/locale/fa/browserOnboarding.properties b/src/chrome/locale/fa/browserOnboarding.properties
new file mode 100644
index 00000000..663555ad
--- /dev/null
+++ b/src/chrome/locale/fa/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=خوش آمدید
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=حریم خصوصی
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=گشت و گذار
+
+onboarding.tour-tor-security=امنیت
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=خدمات پیازی
+onboarding.tour-tor-onion-services.title=خدمات پیازی
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/fa/torbutton.dtd b/src/chrome/locale/fa/torbutton.dtd
index 61323e64..6bf62d14 100644
--- a/src/chrome/locale/fa/torbutton.dtd
+++ b/src/chrome/locale/fa/torbutton.dtd
@@ -33,12 +33,12 @@
<!ENTITY torbutton.prefs.resist_fingerprinting_tooltip "Keep this box checked to hide things from websites that could be unique about you, including your computer performance, keyboard layout, locale, the location of installed plugins, the list of installed plugins, your network status, screen orientation, screen size, site-specific zoom levels, supported file types, system colors, and WebGL capabilities.">
<!ENTITY torbutton.prefs.sec_caption "سطح امنیت">
<!ENTITY torbutton.prefs.sec_caption_tooltip "The Security Slider lets you disable certain browser features that may make your browser more vulnerable to hacking attempts.">
-<!ENTITY torbutton.prefs.sec_standard_label "Standard">
+<!ENTITY torbutton.prefs.sec_standard_label "استاندارد">
<!ENTITY torbutton.prefs.sec_standard_description "All Tor Browser and website features are enabled.">
-<!ENTITY torbutton.prefs.sec_safer_label "Safer">
+<!ENTITY torbutton.prefs.sec_safer_label "ایمن تر ">
<!ENTITY torbutton.prefs.sec_safer_description "Disables website features that are often dangerous, causing some sites to lose functionality.">
<!ENTITY torbutton.prefs.sec_safer_list_label "At the safer setting:">
-<!ENTITY torbutton.prefs.sec_safest_label "Safest">
+<!ENTITY torbutton.prefs.sec_safest_label "ایمن ترین ">
<!ENTITY torbutton.prefs.sec_safest_description "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.">
<!ENTITY torbutton.prefs.sec_safest_list_label "At the safest setting:">
<!ENTITY torbutton.prefs.sec_learn_more_label "اطلاعات بیشتر">
diff --git a/src/chrome/locale/fr/aboutTor.dtd b/src/chrome/locale/fr/aboutTor.dtd
index 6a551d95..66b7f11b 100644
--- a/src/chrome/locale/fr/aboutTor.dtd
+++ b/src/chrome/locale/fr/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "À propos de Tor ">
-<!ENTITY aboutTor.outOfDateTorOn.label "AVERTISSEMENT : ce navigateur n’est pas à jour.">
-<!ENTITY aboutTor.outOfDateTorOff.label "DE PLUS, ce navigateur n’est pas à jour.">
-<!ENTITY aboutTor.outOfDate2.label "Cliquez sur l’oignon, puis choisissez Vérifier les mises à jour du Navigateur Tor.">
-
-<!ENTITY aboutTor.check.label "Tester les paramètres du réseau Tor">
-
-<!ENTITY aboutTor.success.label "Bienvenue dans le Navigateur Tor">
-<!ENTITY aboutTor.success2.label "Connecté au réseau Tor.">
-<!ENTITY aboutTor.success3.label "Vous êtes maintenant libre de naviguer anonymement sur Internet.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Une erreur s’est produite !">
<!ENTITY aboutTor.failure2.label "Tor ne fonctionne pas dans ce navigateur.">
-<!ENTITY aboutTor.search.label "Chercher">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Informations supplémentaires :">
-<!ENTITY aboutTor.torInfo2.label "Pays & adresse IP :">
-<!ENTITY aboutTor.torInfo3.label "Nœud de sortie :">
-<!ENTITY aboutTor.torInfo4.label "Ce serveur ne journalise aucune information sur les visteurs.">
-<!ENTITY aboutTor.whatnextQuestion.label "Que faire ensuite ?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor n’est PAS le seul outil dont vous avez besoin pour naviguer anonymement ! Vous aurez peut-être à changer certaines de vos habitudes de navigation pour garantir la sécurité de votre identité.">
-<!ENTITY aboutTor.whatnext.label "Conseils pour rester anonyme »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Des questions ?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "G">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Guide d’utilisation du Navigateur Tor">
-<!ENTITY aboutTor.helpInfo1.label "Vous pouvez aider !">
-<!ENTITY aboutTor.helpInfo2.label "Vous pouvez aider à rendre le réseau Tor plus rapide et plus puissant de plusieurs façons :">
-<!ENTITY aboutTor.helpInfo3.label "Exploiter un nœud-relais Tor »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html">
-<!ENTITY aboutTor.helpInfo4.label "Devenir bénévole »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html">
-<!ENTITY aboutTor.helpInfo5.label "Faire un don »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Le Projet Tor est une organisation sans but lucratif US 501(c)(3) dédiée à la recherche, au développement et à l’éducation sur l’anonymat et à la vie privée en ligne.">
-<!ENTITY aboutTor.learnMore.label "En savoir plus sur le Projet Tor »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html">
diff --git a/src/chrome/locale/fr/browserOnboarding.properties b/src/chrome/locale/fr/browserOnboarding.properties
new file mode 100644
index 00000000..1dc86527
--- /dev/null
+++ b/src/chrome/locale/fr/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Bienvenue
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Confidentialité
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explorer
+
+onboarding.tour-tor-security=Sécurité
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Les services oignon
+onboarding.tour-tor-onion-services.title=Les services oignon
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/fr/torbutton.dtd b/src/chrome/locale/fr/torbutton.dtd
index 052b0adf..65b9e7d2 100644
--- a/src/chrome/locale/fr/torbutton.dtd
+++ b/src/chrome/locale/fr/torbutton.dtd
@@ -27,7 +27,7 @@
<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Ne pas protéger les nouveaux fichiers témoins">
<!ENTITY torbutton.prefs.restrict_thirdparty "Limiter les fichiers témoins tiers et les autres données de suivi à la trace">
<!ENTITY torbutton.prefs.restrict_thirdparty.accesskey "L">
-<!ENTITY torbutton.prefs.restrict_thirdparty_tooltip "Gardez cette case cochée pour empêcher que diverses fonctions du navigateur soient utilisées pour vous suivre à la trace lorsque vous surfez sur le Web. Les fonctions modifiées incluent les URL de grands objets binaires, les canaux de diffusion, le cache du navigateur, les fichiers fichiers témoins, les favoricônes, les en-têtes Auth HTTP, les préconnexions de liens, localStorage, les URL de sources de médias, les requêtes OCSP, les travailleurs Web SharedWorker, et les billets de session TLS.">
+<!ENTITY torbutton.prefs.restrict_thirdparty_tooltip "Gardez cette case cochée pour empêcher que diverses fonctions du navigateur soient utilisées pour vous suivre à la trace quand vous surfez sur le Web. Les fonctions modifiées incluent les URL de grands objets binaires, les canaux de diffusion, le cache du navigateur, les fichiers fichiers témoins, les favoricônes, les en-têtes Auth HTTP, les préconnexions de liens, localStorage, les URL de sources de médias, les requêtes OCSP, les travailleurs Web SharedWorker, et les billets de session TLS.">
<!ENTITY torbutton.prefs.resist_fingerprinting "Modifier les détails qui vous distingue d’autres utilisateurs du Navigateur Tor">
<!ENTITY torbutton.prefs.resist_fingerprinting.accesskey "F">
<!ENTITY torbutton.prefs.resist_fingerprinting_tooltip "Gardez cette case cochée pour cacher aux sites Web certaines choses qui pourraient être uniques à votre sujet, incluant les performances de votre ordinateur, l’agencement du clavier, les paramètres de langue, l’emplacement des greffons installés, la liste des greffons installés, l’état de votre réseau, l’orientation de l’écran, la taille de l’écran, les niveaux de zoom particuliers aux sites, les types de fichiers pris en charge, les couleurs système et les capacités WebGL.">
diff --git a/src/chrome/locale/fr/torbutton.properties b/src/chrome/locale/fr/torbutton.properties
index 00dd0ac2..919fdc8c 100644
--- a/src/chrome/locale/fr/torbutton.properties
+++ b/src/chrome/locale/fr/torbutton.properties
@@ -17,14 +17,14 @@ extensions.torbutton(a)torproject.org.description = BoutonTor fournit un bouton po
torbutton.popup.external.title = Télécharger un type de fichier externe ?
torbutton.popup.external.app = Le Navigateur Tor ne peut pas afficher ce fichier. Il est necessaire de l’ouvrir avec une autre application.
torbutton.popup.external.note = Certains types de fichiers peuvent causer des connexions à l’Internet sans passer par Tor pour certaines applications
-torbutton.popup.external.suggest = Par sécurité, vous ne devriez ouvrir les fichiers téléchargés que lorsque vous êtes hors ligne, ou en utilisant un CD autonome Tor comme Tails.\n
+torbutton.popup.external.suggest = Par sécurité, vous ne devriez ouvrir les fichiers téléchargés qu’une fois hors ligne ou en utilisant un CD autonome Tor comme Tails.\n
torbutton.popup.launch = Télécharger le fichier
torbutton.popup.cancel = Annuler
torbutton.popup.dontask = Télécharger automatiquement à partir de maintenant
torbutton.popup.prompted_language = Pour renforcer votre anonymat, BoutonTor peut demander la version anglaise des pages Web. Les pages que vous préférez lire dans votre langue maternelle pourraient alors s’afficher en anglais.\n\nVoulez-vous demander des pages Web en anglais pour améliorer votre anonymat ?
-torbutton.popup.no_newnym = BoutonTor ne peut pas vous attribuer une nouvelle identité de façon sûre. Il n’a pas accès au port de contrôle de Tor.\n\nUtilisez-vous l’offre groupée de navigation Tor ?
+torbutton.popup.no_newnym = BoutonTor ne peut pas vous attribuer une nouvelle identité de façon sûre. Il n’a pas accès au port de contrôle de Tor.\n\nUtilisez-vous l’offre groupée du Navigateur Tor ?
torbutton.title.prompt_torbrowser = Informations importantes concernant BoutonTor
-torbutton.popup.prompt_torbrowser = BoutonTor fonctionne différemment maintenant : vous ne pouvez plus le désactiver.\n\nNous avons effectué ce changement car il n’est pas sécuritaire d’utiliser BoutonTor dans un navigateur qui est également utiliser pour une navigation sans Tor. Trop de bogues ne pouvaient être réglés autrement.\n\nSi vous voulez continuer à utiliser Firefox normalement, vous devriez désinstaller BoutonTor et télécharger l’offre groupée de navigation Tor. Les propriétés de confidentialité du Navigateur Tor sont aussi supérieures à celles de Firefox, même s’il est utilisé avec BoutonTor.\n\nPour enlever BoutonTor, allez dans Outils->Modules complémentaires->Extensions et cliquer sur Supprimer à coté de BoutonTor.
+torbutton.popup.prompt_torbrowser = BoutonTor fonctionne différemment maintenant : vous ne pouvez plus le désactiver.\n\nNous avons effectué ce changement car il n’est pas sécuritaire d’utiliser BoutonTor dans un navigateur qui est également utiliser pour une navigation sans Tor. Trop de bogues ne pouvaient être réglés autrement.\n\nSi vous voulez continuer à utiliser Firefox normalement, vous devriez désinstaller BoutonTor et télécharger l’offre groupée du Navigateur Tor. Les propriétés de confidentialité du Navigateur Tor sont aussi supérieures à celles de Firefox, même s’il est utilisé avec BoutonTor.\n\nPour enlever BoutonTor, allez dans Outils->Modules complémentaires->Extensions et cliquer sur Supprimer à coté de BoutonTor.
torbutton.popup.short_torbrowser = Informations importantes concernant BoutonTor !\n\nBoutonTor est toujours activé dorénavant.\n\nCliquer sur BoutonTor pour plus d’informations.
torbutton.popup.confirm_plugins = Les greffons tels que Flash peuvent nuire à vos anonymat et vie privée.\n\nIls peuvent également contourner Tor afin de révéler votre position actuelle ainsi que votre adresse IP.\n\nÊtes-vous certain de vouloir activer les greffons ?\n\n
diff --git a/src/chrome/locale/ga/aboutDialog.dtd b/src/chrome/locale/ga/aboutDialog.dtd
new file mode 100644
index 00000000..6ad9a5ca
--- /dev/null
+++ b/src/chrome/locale/ga/aboutDialog.dtd
@@ -0,0 +1,19 @@
+<!ENTITY project.start "Tá &brandShortName; forbartha ag">
+<!-- LOCALIZATION NOTE (project.tpoLink): This is a link title that links to https://www.torproject.org -->
+<!ENTITY project.tpoLink "&vendorShortName;">
+<!ENTITY project.end ", eagraíocht neamhbhrabhúis a chosnaíonn do phríobháideachas agus do shaoirse ar líne.">
+
+<!ENTITY help.start "Ar mhaith leat cuidiú linn?">
+<!-- LOCALIZATION NOTE (help.donate): This is a link title that links to https://www.torproject.org/donate/donate.html.en -->
+<!ENTITY help.donateLink "Tabhair síntiús airgid">
+<!ENTITY help.or "nó">
+<!-- LOCALIZATION NOTE (help.getInvolvedLink): This is a link title that links to https://www.torproject.org/getinvolved/volunteer.html.en -->
+<!ENTITY help.getInvolvedLink "glac páirt">
+<!ENTITY help.end "!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/docs/trademark-faq.html.en -->
+<!ENTITY bottomLinks.questions "Ceisteanna?">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/getinvolved/relays -->
+<!ENTITY bottomLinks.grow "Cabhraigh linn borradh a chur faoi Líonra Tor!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to about:license -->
+<!ENTITY bottomLinks.license "Ceadúnas">
+<!ENTITY tor.TrademarkStatement "Is trádmharcanna de chuid Tor Project, Inc. iad 'Tor' agus an 'Onion Logo'">
diff --git a/src/chrome/locale/ga/aboutTBUpdate.dtd b/src/chrome/locale/ga/aboutTBUpdate.dtd
new file mode 100644
index 00000000..1c4063a3
--- /dev/null
+++ b/src/chrome/locale/ga/aboutTBUpdate.dtd
@@ -0,0 +1,6 @@
+<!ENTITY aboutTBUpdate.title "Nuashonrú Brabhsálaí Tor">
+<!ENTITY aboutTBUpdate.updated "Nuashonraíodh Brabhsálaí Tor">
+<!ENTITY aboutTBUpdate.linkPrefix "Chun teach ar an eolas is déanaí maidir leis an leagan seo,">
+<!ENTITY aboutTBUpdate.linkLabel "tabhair cuairt ar ár suíomh Gréasáin">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.changeLogHeading "Logchomhad athruithe:">
diff --git a/src/chrome/locale/ga/aboutTor.dtd b/src/chrome/locale/ga/aboutTor.dtd
index 9f14022b..fd31fd4a 100644
--- a/src/chrome/locale/ga/aboutTor.dtd
+++ b/src/chrome/locale/ga/aboutTor.dtd
@@ -1,47 +1,25 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "About Tor">
+<!ENTITY aboutTor.title "Maidir le Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "HOWEVER, this browser is out of date.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ALSO, this browser is out of date.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
+<!ENTITY aboutTor.failure.label "Chuaigh rud éigin ar strae!">
+<!ENTITY aboutTor.failure2.label "Níl Tor ag obair sa bhrabhsálaí seo.">
-<!ENTITY aboutTor.check.label "Test Tor Network Settings">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
+<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.success.label "Congratulations!">
-<!ENTITY aboutTor.success2.label "This browser is configured to use Tor.">
-<!ENTITY aboutTor.success3.label "You are now free to browse the Internet anonymously.">
-<!ENTITY aboutTor.failure.label "Something Went Wrong!">
-<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
-<!ENTITY aboutTor.failure3prefix.label "For assistance, please contact ">
-<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
-<!ENTITY aboutTor.failure3suffix.label ".">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Ceisteanna?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.search.label "Search">
-<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/do/search">
-<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
-
-<!ENTITY aboutTor.torInfo1.label "Additional Info:">
-<!ENTITY aboutTor.torInfo2.label "Country & IP Address:">
-<!ENTITY aboutTor.torInfo3.label "Exit Node:">
-<!ENTITY aboutTor.torInfo4.label "This server does not log any information about visitors.">
-<!ENTITY aboutTor.whatnextQuestion.label "What Next?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
-<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
-<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
-<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
-<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-
-<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
-<!ENTITY aboutTor.learnMore.label "Learn more about The Tor Project »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/ga/aboutTor.properties b/src/chrome/locale/ga/aboutTor.properties
index 02088f01..7db055e4 100644
--- a/src/chrome/locale/ga/aboutTor.properties
+++ b/src/chrome/locale/ga/aboutTor.properties
@@ -2,14 +2,19 @@
# See LICENSE for licensing information.
# vim: set sw=2 sts=2 ts=8 et:
-aboutTor.searchSP.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">Startpage</a>.
-# The following string is a link which replaces %1$S above.
-aboutTor.searchSP.privacy.link=https://startpage.com/eng/protect-privacy.html
-# The following string is a link which replaces %2$S above.
-aboutTor.searchSP.search.link=https://startpage.com/
-
-aboutTor.searchDDG.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">DuckDuckGo</a>.
+aboutTor.searchDDG.privacy=<a href="%1$S">Cuardach slán</a> le <a href="%2$S">DuckDuckGo</a>.
# The following string is a link which replaces %1$S above.
aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
# The following string is a link which replaces %2$S above.
aboutTor.searchDDG.search.link=https://duckduckgo.com/
+
+aboutTor.donationBanner.donate=Tabhair Síntiús Airgid Anois!
+
+aboutTor.donationBanner.slogan=Tor: Cumhacht na Frithbheartaíochta Digití
+aboutTor.donationBanner.mozilla=Tabhair síntiús airgid inniu agus meaitseálfaidh Mozilla é!
+
+aboutTor.donationBanner.tagline1=Iriseoirí, sceithirí, agus gníomhaígh á gcosaint ó 2006
+aboutTor.donationBanner.tagline2=Saoirse Líonraithe ar fud an domhain
+aboutTor.donationBanner.tagline3=Saoirse Ar Líne
+aboutTor.donationBanner.tagline4=Saoirse Cainte á cothú ar fud an domhain
+aboutTor.donationBanner.tagline5=Príobháideachas na milliún á chosaint chuile lá
diff --git a/src/chrome/locale/ga/brand.dtd b/src/chrome/locale/ga/brand.dtd
index 59f665e8..7a8c4860 100644
--- a/src/chrome/locale/ga/brand.dtd
+++ b/src/chrome/locale/ga/brand.dtd
@@ -2,7 +2,14 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "Tor Browser">
-<!ENTITY brandFullName "Tor Browser">
-<!ENTITY vendorShortName "Tor Project">
-<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
+<!ENTITY brandShorterName "Brabhsálaí Tor">
+<!ENTITY brandShortName "Brabhsálaí Tor">
+<!ENTITY brandFullName "Brabhsálaí Tor">
+<!ENTITY vendorShortName "Tionscadal Tor">
+<!ENTITY trademarkInfo.part1 "Is trádmharcanna de chuid Fondúireacht Mozilla 'Firefox' agus lógónna Firefox.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Cliceáil chun forlíontáin an chórais a lódáil">
+<!ENTITY plugins.installed.enable "Cumasaigh breiseáin">
+<!ENTITY plugins.installed.disable "Díchumasaigh breiseáin">
+<!ENTITY plugins.installed.disable.tip "Cliceáil chun cosc a chur ar fhorlíontáin an chórais">
diff --git a/src/chrome/locale/ga/brand.properties b/src/chrome/locale/ga/brand.properties
index f63def38..4f96f506 100644
--- a/src/chrome/locale/ga/brand.properties
+++ b/src/chrome/locale/ga/brand.properties
@@ -2,14 +2,15 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-brandShortName=Tor Browser
-brandFullName=Tor Browser
-vendorShortName=Tor Project
+brandShorterName=Brabhsálaí Tor
+brandShortName=Brabhsálaí Tor
+brandFullName=Brabhsálaí Tor
+vendorShortName=Tionscadal Tor
-homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-homePageImport=Import your home page from %S
+homePageSingleStartMain=Firefox Start, leathanach baile sciobtha, le cuardach ionsuite
+homePageImport=Iompórtáil do leathanach baile ó %S
-homePageMigrationPageTitle=Home Page Selection
-homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=Roghnú Leathanaigh Bhaile
+homePageMigrationDescription=Roghnaigh do leathanach baile:
-syncBrandShortName=Sync
+syncBrandShortName=Sioncronú
diff --git a/src/chrome/locale/ga/browserOnboarding.properties b/src/chrome/locale/ga/browserOnboarding.properties
new file mode 100644
index 00000000..1a26ba8e
--- /dev/null
+++ b/src/chrome/locale/ga/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Príobháideachas
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Security
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Seirbhísí Onion
+onboarding.tour-tor-onion-services.title=Seirbhísí Onion
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/ga/torbutton.dtd b/src/chrome/locale/ga/torbutton.dtd
index d8d88e49..26c3f555 100644
--- a/src/chrome/locale/ga/torbutton.dtd
+++ b/src/chrome/locale/ga/torbutton.dtd
@@ -1,22 +1,51 @@
-<!ENTITY torbutton.context_menu.new_identity "New Identity">
+<!ENTITY torbutton.context_menu.new_identity "Aitheantas Nua">
<!ENTITY torbutton.context_menu.new_identity_key "I">
-<!ENTITY torbutton.context_menu.networksettings "Open Network Settings…">
-<!ENTITY torbutton.context_menu.downloadUpdate "Download Tor Browser Bundle Update...">
+<!ENTITY torbutton.context_menu.new_circuit "Ciorcad Nua Tor don Suíomh seo">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
+<!ENTITY torbutton.context_menu.preferences "Socruithe Slándála...">
+<!ENTITY torbutton.context_menu.preferences.key "S">
+<!ENTITY torbutton.context_menu.networksettings "Socruithe Líonra Tor...">
+<!ENTITY torbutton.context_menu.networksettings.key "N">
+<!ENTITY torbutton.context_menu.downloadUpdate "Lorg Nuashonrú ar Bhrabhsálaí Tor...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
+<!ENTITY torbutton.context_menu.cookieProtections "Caomhnú Fianán...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
-<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
-<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
-<!ENTITY torbutton.cookiedialog.lockCol "Protected">
-<!ENTITY torbutton.cookiedialog.domainCol "Host">
-<!ENTITY torbutton.cookiedialog.nameCol "Name">
-<!ENTITY torbutton.cookiedialog.pathCol "Path">
-<!ENTITY torbutton.cookiedialog.protectCookie "Protect Cookie">
-<!ENTITY torbutton.cookiedialog.removeCookie "Remove Cookie">
-<!ENTITY torbutton.cookiedialog.unprotectCookie "Unprotect Cookie">
-<!ENTITY torbutton.cookiedialog.removeAllBut "Remove All But Protected">
-<!ENTITY torbutton.cookiedialog.saveAllCookies "Protect New Cookies">
-<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Do Not Protect New Cookies">
-<!ENTITY torbutton.prefs.restrict_thirdparty "Restrict third party cookies and other tracking data">
-<!ENTITY torbutton.prefs.resist_fingerprinting "Change details that distinguish you from other Tor Browser users">
+<!ENTITY torbutton.button.tooltip "Cliceáil chun cnaipe Tor a thúsú">
+<!ENTITY torbutton.prefs.security_settings "Socruithe Slándála Bhrabhsálaí Tor">
+<!ENTITY torbutton.prefs.restore_defaults "Fill ar na Réamhshocruithe">
+<!ENTITY torbutton.prefs.custom_warning "Tá socruithe slándála an bhrabhsálaí as an ngnáth faoi láthair, mar thoradh ar do chuid sainroghanna. Ar chúiseanna slándála agus príobháideachais, molaimid duit ceann de na leibhéil slándála réamhshocraithe a roghnú.">
+<!ENTITY torbutton.cookiedialog.title "Bainistigh Caomhnú Fianán">
+<!ENTITY torbutton.cookiedialog.lockCol "Cosanta">
+<!ENTITY torbutton.cookiedialog.domainCol "Óstríomhaire">
+<!ENTITY torbutton.cookiedialog.nameCol "Ainm">
+<!ENTITY torbutton.cookiedialog.pathCol "Cosán">
+<!ENTITY torbutton.cookiedialog.protectCookie "Caomhnaigh an Fianán">
+<!ENTITY torbutton.cookiedialog.removeCookie "Scrios an Fianán">
+<!ENTITY torbutton.cookiedialog.unprotectCookie "Ná caomhnaigh an fianán">
+<!ENTITY torbutton.cookiedialog.removeAllBut "Scrios iad nach bhfuil caomhnaithe">
+<!ENTITY torbutton.cookiedialog.saveAllCookies "Caomhnaigh Fianáin Nua">
+<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Ná Caomhnaigh Fianáin Nua">
+<!ENTITY torbutton.prefs.restrict_thirdparty "Cuir srian le fianáin tríú páirtí agus le sonraí lorgaireachta eile">
+<!ENTITY torbutton.prefs.restrict_thirdparty.accesskey "R">
+<!ENTITY torbutton.prefs.restrict_thirdparty_tooltip "Coinnigh tic sa bhosca seo chun cosc a chur ar ghnéithe éagsúla sa bhrabhsálaí a mbaintear mí-úsáid astu chun do ghníomhaíocht ar an nGréasán a lorg. I measc na ngnéithe seo: blob-URLanna, cainéil chraolta, taisce an bhrabhsálaí, fianáin, deilbhíní suímh, ceanntásca HTTP Auth, réamhcheangal nascanna, stóras áitiúil, URLanna mediaSource, iarratais OCSP, Oibrithe Roinnte, agus ticéid seisiún TLS. ">
+<!ENTITY torbutton.prefs.resist_fingerprinting "Athraigh na mionsonraí a dhéanann idirdhealú ó úsáideoirí Tor eile">
+<!ENTITY torbutton.prefs.resist_fingerprinting.accesskey "H">
+<!ENTITY torbutton.prefs.resist_fingerprinting_tooltip "Coinnigh tic sa bhosca seo chun sonraí a bhaineann leatsa go pearsanta a chur i bhfolach ó shuímh Ghréasáin, mar shampla luas do ríomhaire, leagan amach do mhéarchláir, an logchaighdeán, an áit ina bhfuil forlíontáin suiteáilte, na forlíontáin shuiteáilte féin, stádas do líonra, treoshuíomh an scáileáin, méid an scáileáin, leibhéil zúmála ar shuímh ar leith, cineálacha comhaid a dtacaíonn do bhrabhsálaí leo, dathanna an chórais, agus acmhainní WebGL.">
+<!ENTITY torbutton.prefs.sec_caption "Leibhéal Slándála">
+<!ENTITY torbutton.prefs.sec_caption_tooltip "Ligeann an Sleamhnán Slándála duit gnéithe áirithe sa bhrabhsálaí a dhíchumasú nuair is féidir le bradaí iad a úsáid chun ionsaí a dhéanamh ort.">
+<!ENTITY torbutton.prefs.sec_standard_label "Gnáthshlándáil">
+<!ENTITY torbutton.prefs.sec_standard_description "Gach gné de bhrabhsálaí Tor agus gach gné de shuímh Ghréasáin ar siúl.">
+<!ENTITY torbutton.prefs.sec_safer_label "Níos Sábháilte">
+<!ENTITY torbutton.prefs.sec_safer_description "Díchumasaítear gnéithe de shuímh atá contúirteach go minic; dá bharr seo, ní fheidhmeoidh gach suíomh mar is ceart.">
+<!ENTITY torbutton.prefs.sec_safer_list_label "Leis an rogha níos sábháilte:">
+<!ENTITY torbutton.prefs.sec_safest_label "Is Sábháilte">
+<!ENTITY torbutton.prefs.sec_safest_description "Ní cheadaítear ach na gnéithe atá de dhíth ar shuímh statacha agus ar bhunseirbhísí. Téann na hathruithe seo i bhfeidhm ar íomhánna, ar mheáin, agus ar scripteanna.">
+<!ENTITY torbutton.prefs.sec_safest_list_label "Leis an rogha is sábháilte:">
+<!ENTITY torbutton.prefs.sec_learn_more_label "Tuilleadh eolais">
+<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "Tá JavaScript díchumasaithe ar shuímh nach mbaineann úsáid as HTTPS.">
+<!ENTITY torbutton.prefs.sec_js_disabled "Tá JavaScript díchumasaithe ar gach suíomh de réir réamhshocraithe.">
+<!ENTITY torbutton.prefs.sec_limit_typography "Tá roinnt clófhoirne agus siombailí matamaiticiúla díchumasaithe.">
+<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Tá roinnt clófhoirne, deilbhíní, siombailí matamaiticiúla, agus íomhánna díchumasaithe.">
+<!ENTITY torbutton.prefs.sec_click_to_play_media "Caithfidh tú fuaimeanna agus físeáin (meáin HTML5) a chliceáil lena seinm.">
+<!ENTITY torbutton.circuit_display.title "Ciorcad Tor">
+<!ENTITY torbutton.circuit_display.new_circuit "Ciorcad Nua don Suíomh seo">
diff --git a/src/chrome/locale/ga/torbutton.properties b/src/chrome/locale/ga/torbutton.properties
index ee5b1f95..a8e1578a 100644
--- a/src/chrome/locale/ga/torbutton.properties
+++ b/src/chrome/locale/ga/torbutton.properties
@@ -1,27 +1,58 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
-extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
-torbutton.popup.external.title = Load external content?
-torbutton.popup.external.app = An external application is needed to handle:\n\n
-torbutton.popup.external.note = \n\nNOTE: External applications are NOT Tor safe by default and can unmask you!\n
-torbutton.popup.external.suggest = \nIf this file is untrusted, you should either save it to view while offline or in a VM,\nor consider using a transparent Tor proxy like Tails LiveCD or torsocks.\n
-torbutton.popup.launch = Launch application
-torbutton.popup.cancel = Cancel
-torbutton.popup.dontask = Always launch applications from now on
-torbutton.popup.prompted_language = To give you more privacy, Torbutton can request the English language version of web pages. This may cause web pages that you prefer to read in your native language to display in English instead.\n\nWould you like to request English language web pages for better privacy?
-torbutton.popup.no_newnym = Torbutton cannot safely give you a new identity. It does not have access to the Tor Control Port.\n\nAre you running Tor Browser Bundle?
-torbutton.title.prompt_torbrowser = Important Torbutton Information
-torbutton.popup.prompt_torbrowser = Torbutton works differently now: you can't turn it off any more.\n\nWe made this change because it isn't safe to use Torbutton in a browser that's also used for non-Tor browsing. There were too many bugs there that we couldn't fix any other way.\n\nIf you want to keep using Firefox normally, you should uninstall Torbutton and download Tor Browser Bundle. The privacy properties of Tor Browser are also superior to those of normal Firefox, even when Firefox is used with Torbutton.\n\nTo remove Torbutton, go to Tools->Addons->Extensions and then click the Remove button next to Torbutton.
-torbutton.popup.short_torbrowser = Important Torbutton Information!\n\nTorbutton is now always enabled.\n\nClick on the Torbutton for more information.
+torbutton.circuit_display.internet = An tIdirlíon
+torbutton.circuit_display.ip_unknown = IP anaithnid
+torbutton.circuit_display.onion_site = Suíomh Onion
+torbutton.circuit_display.this_browser = An brabhsálaí seo
+torbutton.circuit_display.relay = Relay
+torbutton.circuit_display.tor_bridge = Droichead
+torbutton.circuit_display.unknown_country = Tír anaithnid
+torbutton.circuit_display.guard = Guard
+torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.learn_more = Tuilleadh eolais
+torbutton.content_sizer.margin_tooltip = Cuireann Brabhsálaí Tor an chiumhais seo leis an bhfuinneog ionas nach mbeidh leithead agus airde na fuinneoige chomh suntasach, sa chaoi go mbíonn sé níos deacra do ghníomhaíocht ar líne a lorg.
+torbutton.panel.tooltip.disabled = Cliceáil le Tor a chumasú
+torbutton.panel.tooltip.enabled = Cliceáil le Tor a dhíchumasú
+torbutton.panel.label.disabled = Tá Tor Díchumasaithe
+torbutton.panel.label.enabled = Tá Tor Cumasaithe
+extensions.torbutton(a)torproject.org.description = Is féidir leat an cnaipe Tor a úsáid chun Tor a chumrú agus do chuid sonraí brabhsála príobháideacha a ghlanadh go tapa agus go héasca.
+torbutton.popup.external.title = Íoslódáil cineál comhaid seachtrach?
+torbutton.popup.external.app = Ní féidir le Brabhsálaí Tor an comhad seo a thaispeáint. Ní mór duit é a oscailt le feidhmchlár eile.\n\n
+torbutton.popup.external.note = Déanann feidhmchláir áirithe ceangal díreach leis an Idirlín gan dul trí Tor mar gheall ar chineálacha comhaid áirithe.\n\n
+torbutton.popup.external.suggest = Le bheith slán sábháilte, níor chóir duit comhaid íoslódáilte a oscailt go dtí go mbeidh tú as líne, nó CD Beo Tor ar nós Tails a úsáid.\n
+torbutton.popup.launch = Íoslódáil an comhad
+torbutton.popup.cancel = Cealaigh
+torbutton.popup.dontask = Íoslódáil comhaid go huathoibríoch as seo amach
+torbutton.popup.prompted_language = Is féidir leis an gcnaipe Tor an leagan Béarla de leathanaigh Ghréasáin a iarraidh, chun tuilleadh príobháideachais a thabhairt duit. Leis seo i bhfeidhm, seans go bhfaighidh tú an leagan Béarla de leathanaigh dhátheangacha ab fhearr leat a léamh i nGaeilge.\n\nAn bhfuil fonn ort leaganacha Béarla a iarraidh mar sin féin?
+torbutton.popup.no_newnym = Níl an cnaipe Tor in ann aitheantas nua a thabhairt duit go sábháilte. Níl sé in ann teacht ar Phort Rialaithe Tor.\n\nAn bhfuil tú ag úsáid Burla Brabhsálaí Tor?
+torbutton.title.prompt_torbrowser = Eolas Tábhachtach faoi Chnaipe Tor
+torbutton.popup.prompt_torbrowser = Feidhmíonn an cnaipe Tor go difriúil anois; ní féidir leat é a mhúchadh a thuilleadh.\n\nD'athraíomar é seo toisc nach bhfuil sé sábháilte an cnaipe Tor a úsáid i mbrabhsálaí a úsáidtear le brabhsáil lasmuigh de Tor. Bhí an iomarca fabhtanna ann nach rabhamar in ann deisiú ar aon bhealach eile.\n\nMás mian leat leanúint ar aghaidh le Firefox mar is gnáth, ba chóir duit an cnaipe Tor a dhíshuiteáil agus Brabhsálaí Tor a íoslódáil. Tá na hairíonna slándála i mBrabhsálaí Tor i bhfad níos fearr ná na cinn i ngnáth-Firefox, fiú nuair a úsáidtear Firefox leis an gcnaipe Tor.\n\nChun an cnaipe Tor a bhaint, oscail Uirlisí->Breiseáin->Eisínteachtaí ansin cliceáil an cnaipe Bain in aice le Cnaipe Tor.
+torbutton.popup.short_torbrowser = Eolas Tábhachtach maidir leis an gCnaipe Tor!\n\nTá an Cnaipe Tor cumasaithe i gcónaí.\n\nCliceáil air chun tuilleadh eolais a fháil.
-torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy and anonymity.\n\nThey can also bypass Tor to reveal your current location and IP address.\n\nAre you sure you want to enable plugins?\n\n
-torbutton.popup.never_ask_again = Never ask me again
+torbutton.popup.confirm_plugins = Is féidir le forlíontáin ar nós Flash dochar a dhéanamh do do phríobháideachas agus d'aitheantas a nochtadh ar líne.\n\nTá siad in ann Tor a sheachaint agus an áit ina bhfuil tú agus do sheoladh IP a nochtadh.\n\nAn bhfuil tú cinnte gur mhaith leat forlíontáin a chumasú?\n\n
+torbutton.popup.never_ask_again = Ná fiafraigh díom arís
+torbutton.popup.confirm_newnym = Dúnfaidh Brabhsálaí Tor gach fuinneog agus gach cluaisín. Caillfidh tú gach seisiún oscailte.\n\nAn bhfuil fonn ort Brabhsálaí Tor a atosú anois agus d'aitheantas a athshocrú?\n\n
+
+torbutton.slider_notification = Anois gheobhaidh tú sleamhnán slándála faoin oinniún glas a ligeann duit an leibhéal slándála a athrú. Bain triail as!
+torbutton.slider_notification_button = Oscail na socruithe slándála
+
+torbutton.maximize_warning = Bíonn suímh Ghréasáin in ann méid do scáileáin a fháil amach nuair a uasmhéadaíonn tú Brabhsálaí Tor, rud a chabhraíonn leo do ghníomhaíocht ar líne a lorg. Molaimid duit fuinneoga an bhrabhsálaí a fhágáil ar a méid réamhshocraithe.
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=This website (%S) attempted to access image data on a canvas. Since canvas image data can be used to discover information about your computer, blank image data was returned this time.
-canvas.allow=Allow in the Future
+canvas.siteprompt=Rinne an suíomh seo (%S) iarracht sonraí íomhá a bhaint ó chanbhás HTML5, sonraí a d'fhéadfaí a úsáid chun do ríomhaire féin a aithint.\n\nAn bhfuil fonn ort cead a thabhairt don suíomh seo sonraí íomhá a bhaint ó chanbhás HTML5?
+canvas.notNow=Níl Anois
+canvas.notNowAccessKey=N
+canvas.allow=Ceadaigh amach anseo
canvas.allowAccessKey=A
-canvas.never=Never for This Site
+canvas.never=Ná ceadaigh don suíomh seo riamh (molta)
canvas.neverAccessKey=e
+
+# Profile/startup error messages. Strings are kept here for ease of translation.
+# LOCALIZATION NOTE: %S is the application name.
+profileProblemTitle=Fadhb leis an bPróifíl %S
+profileReadOnly=Ní féidir leat %S a rith ó chóras comhad inléite amháin. Cóipeáil %S go dtí suíomh eile agus ansin bain triail eile as.
+profileReadOnlyMac=Ní féidir leat %S a rith ó chóras comhad inléite amháin. Cóipeáil %S go dtí do Dheasc nó an fillteán Applications, ansin bain triail eile as.
+profileAccessDenied=Níl cead rochtana ag %S ar an bpróifíl. Athraigh na ceadanna ar do chóras comhad agus bain triail eile as.
+profileMigrationFailed=Níorbh fhéidir an phróifíl %S atá agat a aistriú.\nÚsáidfear socruithe nua.
+
+# .Onion Page Info prompt. Strings are kept here for ease of translation.
+pageInfo_OnionEncryptionWithBitsAndProtocol=Ceangal Criptithe (Seirbhís Onion, %1$S, eochracha %2$S giotán, %3$S)
+pageInfo_OnionEncryption=Ceangal Criptithe (Seirbhís Onion)
diff --git a/src/chrome/locale/he/aboutDialog.dtd b/src/chrome/locale/he/aboutDialog.dtd
index ce1bcbaa..d334bfd0 100644
--- a/src/chrome/locale/he/aboutDialog.dtd
+++ b/src/chrome/locale/he/aboutDialog.dtd
@@ -16,4 +16,4 @@
<!ENTITY bottomLinks.grow "עזור לרשת Tor לגדול!">
<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to about:license -->
<!ENTITY bottomLinks.license "מידע רישוי">
-<!ENTITY tor.TrademarkStatement "'Tor' ו-'סמליל הבצל' הם סימנים מסחריים רשומים של Tor Project, Inc.">
+<!ENTITY tor.TrademarkStatement "'Tor' ו'סמליל הבצל' הם סימנים מסחריים רשומים של Tor Project, Inc.">
diff --git a/src/chrome/locale/he/aboutTor.dtd b/src/chrome/locale/he/aboutTor.dtd
index 819cc8e8..46f110f4 100644
--- a/src/chrome/locale/he/aboutTor.dtd
+++ b/src/chrome/locale/he/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "אודות Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "אזהרה: דפדפן זה אינו מעודכן.">
-<!ENTITY aboutTor.outOfDateTorOff.label "כמו כן, דפדפן זה אינו מעודכן.">
-<!ENTITY aboutTor.outOfDate2.label "לחץ על הבצל ואז בחר בבדוק אחר עדכון לדפדפן Tor">
-
-<!ENTITY aboutTor.check.label "בחן הגדרות רשת Tor">
-
-<!ENTITY aboutTor.success.label "ברוך הבא אל דפדפן Tor">
-<!ENTITY aboutTor.success2.label "מחובר אל רשת Tor.">
-<!ENTITY aboutTor.success3.label "אתה עכשיו חופשי לגלוש באינטרנט באופן אלמוני.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "משהו השתבש!">
<!ENTITY aboutTor.failure2.label "Tor אינו עובד בדפדפן זה.">
-<!ENTITY aboutTor.search.label "חפש">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "מידע נוסף:">
-<!ENTITY aboutTor.torInfo2.label "מדינה וכתובת IP:">
-<!ENTITY aboutTor.torInfo3.label "צומת יציאה:">
-<!ENTITY aboutTor.torInfo4.label "שרת זה אינו רושם ביומן מידע כלשהו אודות מבקריו.">
-<!ENTITY aboutTor.whatnextQuestion.label "מה הלאה?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor אינה כל מה שתזדקק לו על מנת לגלוש באופן אנונימי! ייתכן שתצטרך לשנות חלק מהרגלי הגלישה שלך כדי להבטיח שזהותך תיוותר בטוחה.">
-<!ENTITY aboutTor.whatnext.label "טיפים לשמירה על אנונימיות ברשת »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "שאלות?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "מדריך משתמש של דפדפן Tor">
-<!ENTITY aboutTor.helpInfo1.label "אתה יכול לעזור!">
-<!ENTITY aboutTor.helpInfo2.label "ישנן דרכים רבות בהן אתה יכול לעשות את רשת Tor מהירה יותר וחזקה יותר:">
-<!ENTITY aboutTor.helpInfo3.label "להקים ולהפעיל בעצמך שרת Tor">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "נדב את שירותיך »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "תרום »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "מיזם Tor הוא ארגון US 501(c)(3) ללא מטרות רווח המוקדש למחקר, פיתוח וחינוך של אלמוניות מקוונת ופרטיות.">
-<!ENTITY aboutTor.learnMore.label "למד עוד אודות מיזם Tor »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/he/brand.properties b/src/chrome/locale/he/brand.properties
index baf4637f..85cd3896 100644
--- a/src/chrome/locale/he/brand.properties
+++ b/src/chrome/locale/he/brand.properties
@@ -8,9 +8,9 @@ brandFullName=דפדפן Tor
vendorShortName=מיזם Tor
homePageSingleStartMain=Firefox Start, דף בית מהיר עם חיפוש מובנה
-homePageImport=ייבא את דף הבית שלך מ-%S
+homePageImport=ייבא את דף הבית שלך מן %S
homePageMigrationPageTitle=בחירת דף בית
-homePageMigrationDescription=אנא בחר את דף הבית שברצונך להשתמש בו:
+homePageMigrationDescription=אנא בחר את דף הבית שאתה רוצה להשתמש בו:
syncBrandShortName=סנכרן
diff --git a/src/chrome/locale/he/browserOnboarding.properties b/src/chrome/locale/he/browserOnboarding.properties
new file mode 100644
index 00000000..a4f1edf0
--- /dev/null
+++ b/src/chrome/locale/he/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=פרטיות
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=אבטחה
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=שירותי בצל
+onboarding.tour-tor-onion-services.title=שירותי בצל
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/he/torbutton.properties b/src/chrome/locale/he/torbutton.properties
index c153c619..cdcd18c7 100644
--- a/src/chrome/locale/he/torbutton.properties
+++ b/src/chrome/locale/he/torbutton.properties
@@ -21,20 +21,20 @@ torbutton.popup.external.suggest = ליתר ביטחון, עליך לפתוח ק
torbutton.popup.launch = הורד קובץ
torbutton.popup.cancel = בטל
torbutton.popup.dontask = הורד קבצים באופן אוטומטי מעתה ואילך
-torbutton.popup.prompted_language = כדי לתת לך יותר פרטיות, Torbutton יכול לבקש את הגרסה האנגלית של אתרי אינטרנט. זה עשוי לגרום לאתרים שאתה מעדיף לקרוא בשפת האם שלך להיות מוצגים באנגלית במקום.\n\nהאם ברצונך לבקש אתרים בשפה האנגלית עבור פרטיות טובה יותר?
+torbutton.popup.prompted_language = כדי לתת לך יותר פרטיות, Torbutton יכול לבקש את הגרסה האנגלית של אתרי אינטרנט. זה עשוי לגרום לאתרים שאתה מעדיף לקרוא בשפת האם שלך להיות מוצגים באנגלית במקום.\n\nהאם אתה רוצה לבקש אתרים בשפה האנגלית עבור פרטיות טובה יותר?
torbutton.popup.no_newnym = Torbutton אינו יכול לתת לך בבטחה זהות חדשה. אין לו גישה אל פתחת הבקרה של Tor.\n\nהאם אתה מריץ את מאגדת דפדפן Tor?
torbutton.title.prompt_torbrowser = מידע חשוב של Torbutton
-torbutton.popup.prompt_torbrowser = Torbutton עובד כיום אחרת: אינך יכול לכבות אותו יותר.\n\nעשינו שינוי זה כי אין זה בטוח להשתמש ב-Torbutton בדפדפן הנמצא בשימוש גם עבור גלישה שאינה Tor. היו יותר מדי תקלים שלא יכולנו לתקן בכל דרך אחרת.\n\nאם ברצונך להמשיך להשתמש ב-Firefox כרגיל, עליך להסיר את Torbutton ולהוריד את מאגדת דפדפן Tor. מאפייני הפרטיות של דפדפן Tor גם נעלים יותר מאשר אלו של Firefox רגיל, אפילו כאשר Firefox נמצא בשימוש עם Torbutton.\n\nכדי להסיר את Torbutton, לך אל כלים->תוספות->הרחבות ואז לחץ על הכפתור הסר ליד Torbutton.
+torbutton.popup.prompt_torbrowser = Torbutton עובד כיום אחרת: אינך יכול לכבות אותו יותר.\n\nעשינו שינוי זה כי אין זה בטוח להשתמש ב-Torbutton בדפדפן הנמצא בשימוש גם עבור גלישה שאינה Tor. היו יותר מדי תקלים שלא יכולנו לתקן בכל דרך אחרת.\n\nאם אתה רוצה להמשיך להשתמש ב-Firefox כרגיל, עליך להסיר את Torbutton ולהוריד את מאגדת דפדפן Tor. מאפייני הפרטיות של דפדפן Tor גם נעלים יותר מאשר אלו של Firefox רגיל, אפילו כאשר Firefox נמצא בשימוש עם Torbutton.\n\nכדי להסיר את Torbutton, לך אל כלים->תוספות->הרחבות ואז לחץ על הכפתור הסר ליד Torbutton.
torbutton.popup.short_torbrowser = מידע חשוב על Torbutton!\nTorbutton תמיד מאופשר עכשיו.\nלחץ על ה-Torbutton לעוד מידע.
-torbutton.popup.confirm_plugins = מתקעים כגון Flash יכולים לפגוע בפרטיותך ובאלמוניותך.\n\nהם יכולים גם לעקוף את Tor כדי לחשוף את מיקומך הנוכחי ואת כתובת ה-IP שלך.\n\nהאם אתה בטוח שברצונך לאפשר מתקעים?\n\n
+torbutton.popup.confirm_plugins = מתקעים כגון Flash יכולים לפגוע בפרטיותך ובאלמוניותך.\n\nהם יכולים גם לעקוף את Tor כדי לחשוף את מיקומך הנוכחי ואת כתובת ה-IP שלך.\n\nהאם אתה בטוח שאתה רוצה לאפשר מתקעים?\n\n
torbutton.popup.never_ask_again = אף פעם אל תשאל אותי שוב
torbutton.popup.confirm_newnym = דפדפן Tor יסגור את כל החלונות והלשוניות. כל שיחי האתרים יאבדו. \n\nלהפעיל מחדש את דפדפן Tor עכשיו כדי לאפס את זהותך?\n\n
torbutton.slider_notification = לתפריט של הבצל הירוק יש כעת מחוון אבטחה המאפשר לך להתאים את רמת האבטחה שלך. נסה אותו!
torbutton.slider_notification_button = פתח הגדרות אבטחה
-torbutton.maximize_warning = הפעלת מסך מלא בדפדפן Tor עלולה להתיר לאתרים לקבוע את גודל הצג שלך, מה שעלול לשמש לאתר אותך. אנו ממליצים שתותיר את חלונות דפדפן Tor בגודל ברירת המחדל המקורי שלהם.
+torbutton.maximize_warning = הפעלת מסך מלא בדפדפן Tor עלולה להתיר לאתרים לקבוע את גודל הצג שלך, מה שעלול לשמש כדי לאתר אותך. אנו ממליצים שתשאיר את חלונות דפדפן Tor בגודל ברירת המחדל המקורי שלהם.
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=אתר זה (%S) ניסה לחלץ נתוני תמונות קנבס HTML5, אשר עשויים לשמש כדי לזהות באופן ייחודי את מחשבך.\n\nהאם על דפדפן Tor להתיר לחלץ נתוני תמונות קנבס HTML5?
diff --git a/src/chrome/locale/id/aboutDialog.dtd b/src/chrome/locale/id/aboutDialog.dtd
new file mode 100644
index 00000000..4d73913c
--- /dev/null
+++ b/src/chrome/locale/id/aboutDialog.dtd
@@ -0,0 +1,19 @@
+<!ENTITY project.start "&brandShortName; dikembangkan oleh">
+<!-- LOCALIZATION NOTE (project.tpoLink): This is a link title that links to https://www.torproject.org -->
+<!ENTITY project.tpoLink "&vendorShortName;">
+<!ENTITY project.end ", sebuah perusahaan nirlaba yang bekerja untuk melindungi privasi dan kebebasan penjelajahan Anda.">
+
+<!ENTITY help.start "Ingin membantu?">
+<!-- LOCALIZATION NOTE (help.donate): This is a link title that links to https://www.torproject.org/donate/donate.html.en -->
+<!ENTITY help.donateLink "Donasi">
+<!ENTITY help.or "atau">
+<!-- LOCALIZATION NOTE (help.getInvolvedLink): This is a link title that links to https://www.torproject.org/getinvolved/volunteer.html.en -->
+<!ENTITY help.getInvolvedLink "ikut terlibat">
+<!ENTITY help.end "!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/docs/trademark-faq.html.en -->
+<!ENTITY bottomLinks.questions "Pertanyaan?">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/getinvolved/relays -->
+<!ENTITY bottomLinks.grow "Bantu Kembangakan Jaringan Tor!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to about:license -->
+<!ENTITY bottomLinks.license "Informasi Lisensi">
+<!ENTITY tor.TrademarkStatement "'Tor' dan 'Logo Onion' adalah merek dagang terdaftar Tor Project, Inc.">
diff --git a/src/chrome/locale/id/aboutTBUpdate.dtd b/src/chrome/locale/id/aboutTBUpdate.dtd
new file mode 100644
index 00000000..ba3aa4df
--- /dev/null
+++ b/src/chrome/locale/id/aboutTBUpdate.dtd
@@ -0,0 +1,6 @@
+<!ENTITY aboutTBUpdate.title "Pemutakhiran peramban Tor">
+<!ENTITY aboutTBUpdate.updated "Peramban Tor telah diperbarui.">
+<!ENTITY aboutTBUpdate.linkPrefix "Untuk informasi paling terbaru mengenai rilisan ini,">
+<!ENTITY aboutTBUpdate.linkLabel "kunjungi situs web kami">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.changeLogHeading "Catatan Perubahan:">
diff --git a/src/chrome/locale/id/aboutTor.dtd b/src/chrome/locale/id/aboutTor.dtd
index 9f14022b..aa7e72fa 100644
--- a/src/chrome/locale/id/aboutTor.dtd
+++ b/src/chrome/locale/id/aboutTor.dtd
@@ -1,47 +1,25 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "About Tor">
+<!ENTITY aboutTor.title "Tentang Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "HOWEVER, this browser is out of date.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ALSO, this browser is out of date.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
+<!ENTITY aboutTor.failure.label "Ada Masalah!">
+<!ENTITY aboutTor.failure2.label "Tor tidak dapat digunakan di peramban ini.">
-<!ENTITY aboutTor.check.label "Test Tor Network Settings">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
+<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.success.label "Congratulations!">
-<!ENTITY aboutTor.success2.label "This browser is configured to use Tor.">
-<!ENTITY aboutTor.success3.label "You are now free to browse the Internet anonymously.">
-<!ENTITY aboutTor.failure.label "Something Went Wrong!">
-<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
-<!ENTITY aboutTor.failure3prefix.label "For assistance, please contact ">
-<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
-<!ENTITY aboutTor.failure3suffix.label ".">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Pertanyaan?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "m">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.search.label "Search">
-<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/do/search">
-<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
-
-<!ENTITY aboutTor.torInfo1.label "Additional Info:">
-<!ENTITY aboutTor.torInfo2.label "Country & IP Address:">
-<!ENTITY aboutTor.torInfo3.label "Exit Node:">
-<!ENTITY aboutTor.torInfo4.label "This server does not log any information about visitors.">
-<!ENTITY aboutTor.whatnextQuestion.label "What Next?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
-<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
-<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
-<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
-<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-
-<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
-<!ENTITY aboutTor.learnMore.label "Learn more about The Tor Project »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/terlibat/relawan.html.id">
diff --git a/src/chrome/locale/id/aboutTor.properties b/src/chrome/locale/id/aboutTor.properties
index 02088f01..d3ffe671 100644
--- a/src/chrome/locale/id/aboutTor.properties
+++ b/src/chrome/locale/id/aboutTor.properties
@@ -2,14 +2,19 @@
# See LICENSE for licensing information.
# vim: set sw=2 sts=2 ts=8 et:
-aboutTor.searchSP.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">Startpage</a>.
+aboutTor.searchDDG.privacy=Cari <a href="%1$S">secara aman</a> dengan <a href="%2$S">DuckDuckGo</a>.
# The following string is a link which replaces %1$S above.
-aboutTor.searchSP.privacy.link=https://startpage.com/eng/protect-privacy.html
-# The following string is a link which replaces %2$S above.
-aboutTor.searchSP.search.link=https://startpage.com/
-
-aboutTor.searchDDG.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">DuckDuckGo</a>.
-# The following string is a link which replaces %1$S above.
-aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
+aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privasi.html
# The following string is a link which replaces %2$S above.
aboutTor.searchDDG.search.link=https://duckduckgo.com/
+
+aboutTor.donationBanner.donate=Donasi Sekarang!
+
+aboutTor.donationBanner.slogan=Tor: Menggerakan Perlawanan Digital
+aboutTor.donationBanner.mozilla=Beri hari ini dan Mozilla akan mencocokkan hadiah anda
+
+aboutTor.donationBanner.tagline1=Melindungi jurnalis, pelapor pelanggaran dan aktivis sejak 2006
+aboutTor.donationBanner.tagline2=Kebebasan Jaringan di seluruh dunia
+aboutTor.donationBanner.tagline3=Bebas berinternet
+aboutTor.donationBanner.tagline4=Merawat Kebebasan Berekspresi di Seluruh Dunia
+aboutTor.donationBanner.tagline5=Melindungi Privasi Jutaan Orang Setiap Hari
diff --git a/src/chrome/locale/id/brand.dtd b/src/chrome/locale/id/brand.dtd
index 59f665e8..213c71d5 100644
--- a/src/chrome/locale/id/brand.dtd
+++ b/src/chrome/locale/id/brand.dtd
@@ -2,7 +2,14 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "Tor Browser">
-<!ENTITY brandFullName "Tor Browser">
-<!ENTITY vendorShortName "Tor Project">
-<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
+<!ENTITY brandShorterName "Peramban Tor">
+<!ENTITY brandShortName "Peramban Tor">
+<!ENTITY brandFullName "Peramban Tor">
+<!ENTITY vendorShortName "Proyek Tor">
+<!ENTITY trademarkInfo.part1 "Firefox dan logo Firefox merupakan merek dagang dari Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Klik untuk memuat pengaya sistem yang terpasang">
+<!ENTITY plugins.installed.enable "Fungsikan pengaya">
+<!ENTITY plugins.installed.disable "Nonfungsikan pengaya">
+<!ENTITY plugins.installed.disable.tip "Klik untuk mencegah pemuatan pengaya sistem">
diff --git a/src/chrome/locale/id/brand.properties b/src/chrome/locale/id/brand.properties
index f63def38..8b36aae3 100644
--- a/src/chrome/locale/id/brand.properties
+++ b/src/chrome/locale/id/brand.properties
@@ -2,14 +2,15 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-brandShortName=Tor Browser
-brandFullName=Tor Browser
-vendorShortName=Tor Project
+brandShorterName=Peramban Tor
+brandShortName=Peramban Tor
+brandFullName=Peramban Tor
+vendorShortName=Proyek Tor
-homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-homePageImport=Import your home page from %S
+homePageSingleStartMain=Firefox Start, halaman muka yang cepat dengan pencarian bawaan
+homePageImport=Impor halaman beranda Anda dari %S
-homePageMigrationPageTitle=Home Page Selection
-homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=Pemilihan Halaman Muka
+homePageMigrationDescription=Silahkan pilih halaman beranda yang ingin Anda gunakan:
-syncBrandShortName=Sync
+syncBrandShortName=Sinkronkan
diff --git a/src/chrome/locale/id/browserOnboarding.properties b/src/chrome/locale/id/browserOnboarding.properties
new file mode 100644
index 00000000..b914d96c
--- /dev/null
+++ b/src/chrome/locale/id/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Selamat datang
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privasi
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Keamanan
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Layanan Onion
+onboarding.tour-tor-onion-services.title=Layanan Onion
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/id/torbutton.dtd b/src/chrome/locale/id/torbutton.dtd
index 73c4ed73..b3a1c136 100644
--- a/src/chrome/locale/id/torbutton.dtd
+++ b/src/chrome/locale/id/torbutton.dtd
@@ -1,12 +1,19 @@
<!ENTITY torbutton.context_menu.new_identity "Identitas Baru">
<!ENTITY torbutton.context_menu.new_identity_key "I">
-<!ENTITY torbutton.context_menu.networksettings "Open Network Settings…">
-<!ENTITY torbutton.context_menu.downloadUpdate "Download Tor Browser Bundle Update...">
-<!ENTITY torbutton.context_menu.downloadUpdate.key "A">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
+<!ENTITY torbutton.context_menu.new_circuit "Sirkuit Tor Baru untuk Situs ini">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
+<!ENTITY torbutton.context_menu.preferences "Pengaturan Keamanan...">
+<!ENTITY torbutton.context_menu.preferences.key "S">
+<!ENTITY torbutton.context_menu.networksettings "Pengaturan Jaringan Tor…">
+<!ENTITY torbutton.context_menu.networksettings.key "N">
+<!ENTITY torbutton.context_menu.downloadUpdate "Cek Versi Peramban Tor Terkini">
+<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
+<!ENTITY torbutton.context_menu.cookieProtections "Perlindungan Cookie...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
-<!ENTITY torbutton.button.tooltip "Klik untuk mengaktifkan Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Kembalikan ke asal">
+<!ENTITY torbutton.button.tooltip "Klik untuk mengaktifkan TombolTor">
+<!ENTITY torbutton.prefs.security_settings "Pengaturan Keamanan Tor Browser">
+<!ENTITY torbutton.prefs.restore_defaults "Kembalikan Kestandar">
+<!ENTITY torbutton.prefs.custom_warning "Preferensi browser khusus anda telah membuat pengaturan keamanan yang tidak biasa. Untuk alasan keamanan dan privasi, kami menyarankan anda untuk memilih satu dari tingkat keamanan bawaan.">
<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
<!ENTITY torbutton.cookiedialog.lockCol "Protected">
<!ENTITY torbutton.cookiedialog.domainCol "Host">
@@ -19,4 +26,26 @@
<!ENTITY torbutton.cookiedialog.saveAllCookies "Protect New Cookies">
<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Do Not Protect New Cookies">
<!ENTITY torbutton.prefs.restrict_thirdparty "Restrict third party cookies and other tracking data">
-<!ENTITY torbutton.prefs.resist_fingerprinting "Change details that distinguish you from other Tor Browser users">
+<!ENTITY torbutton.prefs.restrict_thirdparty.accesskey "R">
+<!ENTITY torbutton.prefs.restrict_thirdparty_tooltip "Jaga kotak ini tetap tercentang untuk mencegah berbagai fitur browser dari penyalahgunaan untuk melacak anda saat sedang menelusuri web. Fitur modifikasi termasuk URL blob, saluran siaran, cache browser, cookies, favicon, kepala HTTP Auth, link preconnect, localStorage, URL mediaSource, permintaan OCSP, SharedWorkets, dan sesi tiket TLS.">
+<!ENTITY torbutton.prefs.resist_fingerprinting "Ubah rincian yang membedakan Anda dari pengguna peramban Tor lain.">
+<!ENTITY torbutton.prefs.resist_fingerprinting.accesskey "F">
+<!ENTITY torbutton.prefs.resist_fingerprinting_tooltip "Biarkan kotak ini tetap dicentang untuk menyembunyikan hal-hal yang unik tentang Anda dari situs web, termasuk kinerja komputer Anda, susunan keyboard, bahasa, lokasi pengaya terpasang, daftar dari pengaya terpasang, status jaringan, orientasi layar, ukuran layar, tingkat pembesaran situs-spesifik, tipe berkas yang didukung, warna sistem, dan kemampuan WebGL.">
+<!ENTITY torbutton.prefs.sec_caption "Tingkat Keamanan">
+<!ENTITY torbutton.prefs.sec_caption_tooltip "Penggeser keamanan memungkinkan anda untuk menonaktifkan fitur browser yang dapat membuat browser anda menjadi lebih rentant dari upaya peretasan.">
+<!ENTITY torbutton.prefs.sec_standard_label "Standar">
+<!ENTITY torbutton.prefs.sec_standard_description "Semua fitur dari Tor Browser dan situs web diaktifkan.">
+<!ENTITY torbutton.prefs.sec_safer_label "Lebih aman">
+<!ENTITY torbutton.prefs.sec_safer_description "Menonaktifkan fitur-fitur situs web yang sering berbahaya, ini akan membuat beberapa situs kehilangan fungsionalitas.">
+<!ENTITY torbutton.prefs.sec_safer_list_label "Di pengaturan yang lebih aman:">
+<!ENTITY torbutton.prefs.sec_safest_label "Paling aman">
+<!ENTITY torbutton.prefs.sec_safest_description "Hanya menjalankan fitur-fitur situs yang diperlukan untuk menjalankan situs web statis dan servis dasar. Perubahan ini mempengaruhi gambar, media, dan skrip.">
+<!ENTITY torbutton.prefs.sec_safest_list_label "Di pengaturan yang paling aman:">
+<!ENTITY torbutton.prefs.sec_learn_more_label "Pelajari lebih lanjut">
+<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript dinonaktifkan di semua situs non-HTTPS.">
+<!ENTITY torbutton.prefs.sec_js_disabled "JavaScript dinonaktifkan secara default di semua situs.">
+<!ENTITY torbutton.prefs.sec_limit_typography "Beberapa font dan simbol matematika dinonaktifkan.">
+<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Beberapa font, icon, simbol matematika, dan gambar dinonaktifkan.">
+<!ENTITY torbutton.prefs.sec_click_to_play_media "Audio dan video (media HTML5 media) dijalankan saat diklik.">
+<!ENTITY torbutton.circuit_display.title "Sirkuit Tor">
+<!ENTITY torbutton.circuit_display.new_circuit "Sirkuit Baru untuk Situs Ini">
diff --git a/src/chrome/locale/id/torbutton.properties b/src/chrome/locale/id/torbutton.properties
index ed812e8a..01ec5cae 100644
--- a/src/chrome/locale/id/torbutton.properties
+++ b/src/chrome/locale/id/torbutton.properties
@@ -1,15 +1,26 @@
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = IP tidak diketahui
+torbutton.circuit_display.onion_site = Situs onion
+torbutton.circuit_display.this_browser = Peramban ini
+torbutton.circuit_display.relay = Relay
+torbutton.circuit_display.tor_bridge = Jembatan
+torbutton.circuit_display.unknown_country = Negara tidak diketahui
+torbutton.circuit_display.guard = Penjaga
+torbutton.circuit_display.guard_note = Titik [Penjaga] Anda tidak dapat berubah
+torbutton.circuit_display.learn_more = Pelajari lebih lanjut
+torbutton.content_sizer.margin_tooltip = Adds Browser Tor margin ini untuk membuat Lebar dan tinggi dari window anda kurang khas
torbutton.panel.tooltip.disabled = Klik untuk mengaktifkan Tor
torbutton.panel.tooltip.enabled = Klik untuk menonaktifkan Tor
torbutton.panel.label.disabled = Tor dinonaktifkan
torbutton.panel.label.enabled = Tor diaktifkan
extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
-torbutton.popup.external.title = Muat konten eksternal?
-torbutton.popup.external.app = Sebuah aplikasi eksternal butuh untuk ditangani:\n\n
-torbutton.popup.external.note = \n\nCATATAN: secara default, aplikasi eksternal tidaklah aman untuk Tor dan dapat membuka penyamaran Anda!\n
-torbutton.popup.external.suggest = \nIf this file is untrusted, you should either save it to view while offline or in a VM,\nor consider using a transparent Tor proxy like Tails LiveCD or torsocks.\n
-torbutton.popup.launch = Luncurkan aplikasi.
+torbutton.popup.external.title = Unduh sebuah tipe file eksternal?
+torbutton.popup.external.app = Browser Tor tidak dapat menampilkan file ini. Anda butuh aplikasi lain untuk membukanya\n
+torbutton.popup.external.note = Beberapa tipe file dapat menyebabkan aplikasi terkoneksi ke internet tanpa menggunakan Tor\n\n
+torbutton.popup.external.suggest = Agar aman, sebaiknya anda hanya membuka file selagi offline, atau gunakan Tor Live CD seperti Tails.\n
+torbutton.popup.launch = Unduh file
torbutton.popup.cancel = Batal
-torbutton.popup.dontask = Selalu luncurkan aplikasi mulai dari sekarang
+torbutton.popup.dontask = Secara otomatis file-file akan di unduh mulai sekarang
torbutton.popup.prompted_language = Untuk memberikan Anda kerahasiaan yang lebih, Torbutton akan meminta versi bahasa Inggris dari halaman web. Ini mungkin menyebabkan halaman web yang Anda ingin baca dalam bahasa asli Anda akan ditampilkan dalam bahasa Inggris. ⏎ ⏎ Apakah anda mau meminta halaman web bahasa Inggris untuk kerahasiaan yang lebih baik?
torbutton.popup.no_newnym = Torbution tidak dapat memberikan Anda identitas baru secara aman. Torbutton tidak memiliki akses terhadap Tor Control Port. ⏎⏎ Apakah Anda sedang menjalankan paket browser Tor?
torbutton.title.prompt_torbrowser = Important Torbutton Information
@@ -17,11 +28,31 @@ torbutton.popup.prompt_torbrowser = Torbutton works differently now: you can't t
torbutton.popup.short_torbrowser = Important Torbutton Information!\n\nTorbutton is now always enabled.\n\nClick on the Torbutton for more information.
torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy and anonymity.\n\nThey can also bypass Tor to reveal your current location and IP address.\n\nAre you sure you want to enable plugins?\n\n
-torbutton.popup.never_ask_again = Never ask me again
+torbutton.popup.never_ask_again = Jangan pernah ditanyakan kembali
+torbutton.popup.confirm_newnym = Peramban Tor akan menutup semua jendela dan tab. Semua sesi website akan terhapus.\n\nJalankan ulang peramban Tor untuk
+
+torbutton.slider_notification = Menu green onion sekarang memiliki slider keamanan yang memungkinkan anda mengatur level keamanan . silakan cek !
+torbutton.slider_notification_button = Buka pengaturan keamanan
+
+torbutton.maximize_warning = Maksimalkan Browser Tor dapat mengizinkan website untuk menentukan ukuran monitor anda, yang dapat digunakan untuk track/jalur anda. kami menyarankan bahwa nda meninggalkan windows browser Tor dalam ukuran asli default nya
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=This website (%S) attempted to access image data on a canvas. Since canvas image data can be used to discover information about your computer, blank image data was returned this time.
-canvas.allow=Allow in the Future
+canvas.siteprompt=Situs ini (%S) butuh untuk mengekstrak data gambar HTML5 , yang mungkin akan mengetahui identitas komputer anda.\n\nApakah anda mengizinkan peramban Tor untuk mengekstrak data gambar HTML5
+canvas.notNow=Tidak untuk Sekarang
+canvas.notNowAccessKey=N
+canvas.allow=Izinkan kedepannya
canvas.allowAccessKey=A
-canvas.never=Never for This Site
+canvas.never=Jangan pernah untuk situs ini (disarankan)
canvas.neverAccessKey=e
+
+# Profile/startup error messages. Strings are kept here for ease of translation.
+# LOCALIZATION NOTE: %S is the application name.
+profileProblemTitle=%S Profile bermasalah
+profileReadOnly=Anda tidak dapat menjalankan %S dari Sistem File Read only. Silakan copy %S ke lokasi lain sebelum mencoba menggunakannya
+profileReadOnlyMac=Anda tidak bisa menjalankan %S dari File sistem read-only . Silakan copy %S ke desktop anda atau folder aplikasi sebelum mencoba menggunakannya.
+profileAccessDenied=%S tidak memiliki izin untuk mengakses profile .Silakan atur perizinan sistem file anda dan coba lagi .
+profileMigrationFailed=Migrasi dari profil %S gagal.\nSetting baru akan digunakan.
+
+# .Onion Page Info prompt. Strings are kept here for ease of translation.
+pageInfo_OnionEncryptionWithBitsAndProtocol=Koneksi terenkripsi (Layanan Onion, %1$S, %2$S bit kunci, %3$S)
+pageInfo_OnionEncryption=Koneksi terenkripsi (Layanan Onion)
diff --git a/src/chrome/locale/is/aboutDialog.dtd b/src/chrome/locale/is/aboutDialog.dtd
new file mode 100644
index 00000000..24b79d09
--- /dev/null
+++ b/src/chrome/locale/is/aboutDialog.dtd
@@ -0,0 +1,19 @@
+<!ENTITY project.start "&brandShortName; er þróað af ">
+<!-- LOCALIZATION NOTE (project.tpoLink): This is a link title that links to https://www.torproject.org -->
+<!ENTITY project.tpoLink "&vendorShortName;">
+<!ENTITY project.end ", frjálsum félagasamtökum sem vinna að því að verja rétt þinn til einkalífs og frelsi þitt á netinu.">
+
+<!ENTITY help.start "Viltu hjálpa?">
+<!-- LOCALIZATION NOTE (help.donate): This is a link title that links to https://www.torproject.org/donate/donate.html.en -->
+<!ENTITY help.donateLink "Styrkja">
+<!ENTITY help.or "eða">
+<!-- LOCALIZATION NOTE (help.getInvolvedLink): This is a link title that links to https://www.torproject.org/getinvolved/volunteer.html.en -->
+<!ENTITY help.getInvolvedLink "taka þátt">
+<!ENTITY help.end "!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/docs/trademark-faq.html.en -->
+<!ENTITY bottomLinks.questions "Spurningar?">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/getinvolved/relays -->
+<!ENTITY bottomLinks.grow "Hjálpaðu Tor-netinu að vaxa!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to about:license -->
+<!ENTITY bottomLinks.license "Upplýsingar um notkunarleyfi">
+<!ENTITY tor.TrademarkStatement "'Tor' og 'Laukmerkið' (Onion Logo) eru skráð vörumerki Tor Project, Inc.">
diff --git a/src/chrome/locale/is/aboutTBUpdate.dtd b/src/chrome/locale/is/aboutTBUpdate.dtd
new file mode 100644
index 00000000..3a2cdec8
--- /dev/null
+++ b/src/chrome/locale/is/aboutTBUpdate.dtd
@@ -0,0 +1,6 @@
+<!ENTITY aboutTBUpdate.title "Uppfærsla Tor-vafra">
+<!ENTITY aboutTBUpdate.updated "Tor-vafrinn var uppfærður.">
+<!ENTITY aboutTBUpdate.linkPrefix "Til að sjá allra nýjustu upplýsingar um þessa útgáfu,">
+<!ENTITY aboutTBUpdate.linkLabel "heimsæktu vefsvæðið okkar">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.changeLogHeading "Breytingaannáll:">
diff --git a/src/chrome/locale/is/aboutTor.dtd b/src/chrome/locale/is/aboutTor.dtd
index 9f14022b..63152e0a 100644
--- a/src/chrome/locale/is/aboutTor.dtd
+++ b/src/chrome/locale/is/aboutTor.dtd
@@ -1,47 +1,25 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "About Tor">
+<!ENTITY aboutTor.title "Um Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "HOWEVER, this browser is out of date.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ALSO, this browser is out of date.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
+<!ENTITY aboutTor.failure.label "Eitthvað fór úrskeiðis!">
+<!ENTITY aboutTor.failure2.label "Tor virkar ekki í þessum vafra.">
-<!ENTITY aboutTor.check.label "Test Tor Network Settings">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
+<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.success.label "Congratulations!">
-<!ENTITY aboutTor.success2.label "This browser is configured to use Tor.">
-<!ENTITY aboutTor.success3.label "You are now free to browse the Internet anonymously.">
-<!ENTITY aboutTor.failure.label "Something Went Wrong!">
-<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
-<!ENTITY aboutTor.failure3prefix.label "For assistance, please contact ">
-<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
-<!ENTITY aboutTor.failure3suffix.label ".">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Spurningar?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.search.label "Search">
-<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/do/search">
-<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
-
-<!ENTITY aboutTor.torInfo1.label "Additional Info:">
-<!ENTITY aboutTor.torInfo2.label "Country & IP Address:">
-<!ENTITY aboutTor.torInfo3.label "Exit Node:">
-<!ENTITY aboutTor.torInfo4.label "This server does not log any information about visitors.">
-<!ENTITY aboutTor.whatnextQuestion.label "What Next?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
-<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
-<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
-<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
-<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-
-<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
-<!ENTITY aboutTor.learnMore.label "Learn more about The Tor Project »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/is/aboutTor.properties b/src/chrome/locale/is/aboutTor.properties
index 02088f01..fde655f3 100644
--- a/src/chrome/locale/is/aboutTor.properties
+++ b/src/chrome/locale/is/aboutTor.properties
@@ -2,14 +2,19 @@
# See LICENSE for licensing information.
# vim: set sw=2 sts=2 ts=8 et:
-aboutTor.searchSP.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">Startpage</a>.
-# The following string is a link which replaces %1$S above.
-aboutTor.searchSP.privacy.link=https://startpage.com/eng/protect-privacy.html
-# The following string is a link which replaces %2$S above.
-aboutTor.searchSP.search.link=https://startpage.com/
-
-aboutTor.searchDDG.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">DuckDuckGo</a>.
+aboutTor.searchDDG.privacy=Leita á <a href="%1$S">öruggan hátt</a> með <a href="%2$S">DuckDuckGo</a>.
# The following string is a link which replaces %1$S above.
aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
# The following string is a link which replaces %2$S above.
aboutTor.searchDDG.search.link=https://duckduckgo.com/
+
+aboutTor.donationBanner.donate=Styrkja núna!
+
+aboutTor.donationBanner.slogan=Tor: Keyrir áfram stafrænu andspyrnuhreyfinguna
+aboutTor.donationBanner.mozilla=Gefðu í dag og Mozilla kemur með mótframlag!
+
+aboutTor.donationBanner.tagline1=Verndar blaðamenn, aðgerðasinna og uppljóstrara síðan 2006
+aboutTor.donationBanner.tagline2=Frelsi á netinu út um allan heim
+aboutTor.donationBanner.tagline3=Frelsi á netinu
+aboutTor.donationBanner.tagline4=Fóstrar frjáls skoðanaskipti út um allan heim
+aboutTor.donationBanner.tagline5=Verndar einkalíf milljóna manna á hverjum degi
diff --git a/src/chrome/locale/is/brand.dtd b/src/chrome/locale/is/brand.dtd
index 59f665e8..5b4ded3a 100644
--- a/src/chrome/locale/is/brand.dtd
+++ b/src/chrome/locale/is/brand.dtd
@@ -2,7 +2,14 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "Tor Browser">
-<!ENTITY brandFullName "Tor Browser">
-<!ENTITY vendorShortName "Tor Project">
-<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
+<!ENTITY brandShorterName "Tor-vafrinn">
+<!ENTITY brandShortName "Tor-vafrinn">
+<!ENTITY brandFullName "Tor-vafrinn">
+<!ENTITY vendorShortName "Tor-verkefnið">
+<!ENTITY trademarkInfo.part1 "Firefox og Firefox merkin eru vörumerki Mozilla Foundation.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Smelltu til að hlaða inn uppsettum kerfisviðbótum">
+<!ENTITY plugins.installed.enable "Virkja viðbætur">
+<!ENTITY plugins.installed.disable "Gera viðbætur óvirkar">
+<!ENTITY plugins.installed.disable.tip "Smelltu til að koma í veg fyrir að kerfisviðbótum sé hlaðið inn">
diff --git a/src/chrome/locale/is/brand.properties b/src/chrome/locale/is/brand.properties
index f63def38..d00a3f5f 100644
--- a/src/chrome/locale/is/brand.properties
+++ b/src/chrome/locale/is/brand.properties
@@ -2,14 +2,15 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-brandShortName=Tor Browser
-brandFullName=Tor Browser
-vendorShortName=Tor Project
+brandShorterName=Tor-vafrinn
+brandShortName=Tor-vafrinn
+brandFullName=Tor-vafrinn
+vendorShortName=Tor-verkefnið
-homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-homePageImport=Import your home page from %S
+homePageSingleStartMain=Upphafssíða Firefox, hraðvirk og með innbyggðri leit
+homePageImport=Flytja inn heimasíðuna þína frá %s
-homePageMigrationPageTitle=Home Page Selection
-homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=Val heimasíðu
+homePageMigrationDescription=Veldu heimasíðuna sem þú vilt nota:
-syncBrandShortName=Sync
+syncBrandShortName=Samræma
diff --git a/src/chrome/locale/is/browserOnboarding.properties b/src/chrome/locale/is/browserOnboarding.properties
new file mode 100644
index 00000000..3da820ef
--- /dev/null
+++ b/src/chrome/locale/is/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Friðhelgi
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Security
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion-þjónustur
+onboarding.tour-tor-onion-services.title=Onion-þjónustur
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/is/torbutton.dtd b/src/chrome/locale/is/torbutton.dtd
index 629ea245..de0c5ecc 100644
--- a/src/chrome/locale/is/torbutton.dtd
+++ b/src/chrome/locale/is/torbutton.dtd
@@ -1,22 +1,51 @@
<!ENTITY torbutton.context_menu.new_identity "Nýtt auðkenni">
<!ENTITY torbutton.context_menu.new_identity_key "I">
-<!ENTITY torbutton.context_menu.networksettings "Open Network Settings…">
-<!ENTITY torbutton.context_menu.downloadUpdate "Download Tor Browser Bundle Update...">
+<!ENTITY torbutton.context_menu.new_circuit "Ný Tor-rás fyrir þetta vefsvæði">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
+<!ENTITY torbutton.context_menu.preferences "Öryggisstillingar…">
+<!ENTITY torbutton.context_menu.preferences.key "S">
+<!ENTITY torbutton.context_menu.networksettings "Netkerfisstillingar Tor…">
+<!ENTITY torbutton.context_menu.networksettings.key "N">
+<!ENTITY torbutton.context_menu.downloadUpdate "Athugaðu með uppfærslur Tor-vafra...">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Cookie Protections">
+<!ENTITY torbutton.context_menu.cookieProtections "Varnir gegn vefkökum...">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
-<!ENTITY torbutton.button.tooltip "Click to initialize Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Restore Defaults">
-<!ENTITY torbutton.cookiedialog.title "Manage Cookie Protections">
-<!ENTITY torbutton.cookiedialog.lockCol "Protected">
-<!ENTITY torbutton.cookiedialog.domainCol "Host">
-<!ENTITY torbutton.cookiedialog.nameCol "Name">
-<!ENTITY torbutton.cookiedialog.pathCol "Path">
-<!ENTITY torbutton.cookiedialog.protectCookie "Protect Cookie">
-<!ENTITY torbutton.cookiedialog.removeCookie "Remove Cookie">
-<!ENTITY torbutton.cookiedialog.unprotectCookie "Unprotect Cookie">
-<!ENTITY torbutton.cookiedialog.removeAllBut "Remove All But Protected">
-<!ENTITY torbutton.cookiedialog.saveAllCookies "Protect New Cookies">
-<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Do Not Protect New Cookies">
-<!ENTITY torbutton.prefs.restrict_thirdparty "Restrict third party cookies and other tracking data">
-<!ENTITY torbutton.prefs.resist_fingerprinting "Change details that distinguish you from other Tor Browser users">
+<!ENTITY torbutton.button.tooltip "Smelltu til að kveikja á Tor-hnapp">
+<!ENTITY torbutton.prefs.security_settings "Öryggisstillingar Tor-vafrans">
+<!ENTITY torbutton.prefs.restore_defaults "Frumstilla á sjálfgefið">
+<!ENTITY torbutton.prefs.custom_warning "Your custom browser preferences have resulted in unusual security settings. For security and privacy reasons, we recommend you choose one of the default security levels.">
+<!ENTITY torbutton.cookiedialog.title "Sýsla með varnir gegn vefkökum">
+<!ENTITY torbutton.cookiedialog.lockCol "Varið">
+<!ENTITY torbutton.cookiedialog.domainCol "Hýsilvél">
+<!ENTITY torbutton.cookiedialog.nameCol "Heiti">
+<!ENTITY torbutton.cookiedialog.pathCol "Slóð">
+<!ENTITY torbutton.cookiedialog.protectCookie "Vernda vefköku">
+<!ENTITY torbutton.cookiedialog.removeCookie "Fjarlægja vefköku">
+<!ENTITY torbutton.cookiedialog.unprotectCookie "Afvernda vefköku">
+<!ENTITY torbutton.cookiedialog.removeAllBut "Fjarlægja allar aðrar en verndaðar">
+<!ENTITY torbutton.cookiedialog.saveAllCookies "Vernda nýjar vefkökur">
+<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Ekki vernda nýjar vefkökur">
+<!ENTITY torbutton.prefs.restrict_thirdparty "Takmarka vefkökur frá þriðja aðila og önnur ferligögn">
+<!ENTITY torbutton.prefs.restrict_thirdparty.accesskey "R">
+<!ENTITY torbutton.prefs.restrict_thirdparty_tooltip "Keep this box checked to prevent various browser features from being abused to track you as you browse the web. Modified features include blob URLs, broadcast channels, the browser cache, cookies, favicons, HTTP Auth headers, link preconnects, localStorage, mediaSource URLs, OCSP requests, SharedWorkers, and TLS session tickets.">
+<!ENTITY torbutton.prefs.resist_fingerprinting "Breyta atriðum sem gera þig ólíkan öðrum notendum Tor-vafrans">
+<!ENTITY torbutton.prefs.resist_fingerprinting.accesskey "F">
+<!ENTITY torbutton.prefs.resist_fingerprinting_tooltip "Hafðu hakað í þennan reit til að fela fyrir vefsvæðum atriði sem gætu verið einstök hjá þér, þar með talin atriði eins og upplýsingar um afköst tölvunnar, lyklaborðsuppsetningu, staðfærslu, staðsetningu uppsettra viðbóta, lista yfir uppsettar viðbætur, stöðu netkerfis, stærð og stefnu skjás, sértækan aðdrátt fyrir vefsvæði, studdar skráategundir, kerfisliti og getu varðandi WebGL.">
+<!ENTITY torbutton.prefs.sec_caption "Öryggisstig">
+<!ENTITY torbutton.prefs.sec_caption_tooltip "The Security Slider lets you disable certain browser features that may make your browser more vulnerable to hacking attempts.">
+<!ENTITY torbutton.prefs.sec_standard_label "Staðlað">
+<!ENTITY torbutton.prefs.sec_standard_description "Allir eiginleikar Tor-vafrans og vefsvæðisins eru virkjaðir.">
+<!ENTITY torbutton.prefs.sec_safer_label "Öruggara">
+<!ENTITY torbutton.prefs.sec_safer_description "Gerir óvirka ýmsa eiginleika vefsvæða sem oft eru hættulegir, en veldur því að sum vefsvæði hætta að virka eins og þau eiga að gera.">
+<!ENTITY torbutton.prefs.sec_safer_list_label "Með öruggari stillingum:">
+<!ENTITY torbutton.prefs.sec_safest_label "Öruggast">
+<!ENTITY torbutton.prefs.sec_safest_description "Leyfir aðeins þá eiginleika vefsvæða sem krafist er fyrir beinan lestur (static sites) og grunnþjónustur. Þessar breytingar hafa áhrif á myndir, margmiðlunargögn og skriftur.">
+<!ENTITY torbutton.prefs.sec_safest_list_label "Með öruggustu stillingum:">
+<!ENTITY torbutton.prefs.sec_learn_more_label "Læra meira">
+<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript er óvirkt á öllum ekki-HTTPS vefjum.">
+<!ENTITY torbutton.prefs.sec_js_disabled "JavaScript er sjálfgefið óvirkt á öllum vefsvæðum.">
+<!ENTITY torbutton.prefs.sec_limit_typography "Sumt letur og stærðfræðitákn eru óvirk.">
+<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Sumt letur, táknmyndir, myndir og stærðfræðitákn eru óvirk.">
+<!ENTITY torbutton.prefs.sec_click_to_play_media "Hljóð og myndskeið (HTML5-gagnamiðlar) þarf að smella á til að spila.">
+<!ENTITY torbutton.circuit_display.title "Tor-rás">
+<!ENTITY torbutton.circuit_display.new_circuit "Ný rás fyrir þetta vefsvæði">
diff --git a/src/chrome/locale/is/torbutton.properties b/src/chrome/locale/is/torbutton.properties
index 701209ba..81fc5305 100644
--- a/src/chrome/locale/is/torbutton.properties
+++ b/src/chrome/locale/is/torbutton.properties
@@ -1,27 +1,58 @@
-torbutton.panel.tooltip.disabled = Click to enable Tor
-torbutton.panel.tooltip.enabled = Click to disable Tor
-torbutton.panel.label.disabled = Tor Disabled
-torbutton.panel.label.enabled = Tor Enabled
-extensions.torbutton(a)torproject.org.description = Torbutton provides a button to configure Tor settings and quickly and easily clear private browsing data.
-torbutton.popup.external.title = Load external content?
-torbutton.popup.external.app = An external application is needed to handle:\n\n
-torbutton.popup.external.note = \n\nNOTE: External applications are NOT Tor safe by default and can unmask you!\n
-torbutton.popup.external.suggest = \nIf this file is untrusted, you should either save it to view while offline or in a VM,\nor consider using a transparent Tor proxy like Tails LiveCD or torsocks.\n
-torbutton.popup.launch = Launch application
+torbutton.circuit_display.internet = Internet
+torbutton.circuit_display.ip_unknown = Óþekkt IP-tala
+torbutton.circuit_display.onion_site = Onion-vefsvæði
+torbutton.circuit_display.this_browser = Þessi vafri
+torbutton.circuit_display.relay = Relay
+torbutton.circuit_display.tor_bridge = Brú
+torbutton.circuit_display.unknown_country = Óþekkt land
+torbutton.circuit_display.guard = Guard
+torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.learn_more = Læra meira
+torbutton.content_sizer.margin_tooltip = Tor Browser adds this margin to make the width and height of your window less distinctive, and thus reduces the ability of people to track you online.
+torbutton.panel.tooltip.disabled = Smelltu til að virkja Tor
+torbutton.panel.tooltip.enabled = Smelltu til að afvirkja Tor
+torbutton.panel.label.disabled = Tor óvirkt
+torbutton.panel.label.enabled = Tor virkt
+extensions.torbutton(a)torproject.org.description = Torbutton útbýr hnapp til uppsetningar á stillingum Tor svo að einfalt og hraðvirkt sé að hreinsa út öll gögn vegna einkavafurs.
+torbutton.popup.external.title = Sækja utanaðkomandi skráartegund?
+torbutton.popup.external.app = Tor-vafrinn getur ekki birt þessa skrá. Þú verður að opna hana með öðru forriti.\n\n
+torbutton.popup.external.note = Sumar skráartegundir geta látið forrit tengjast netinu án þess að fara í gegnum Tor.
+torbutton.popup.external.suggest = To be safe, you should only open downloaded files while offline, or use a Tor Live CD such as Tails.\n
+torbutton.popup.launch = Ná í skrá
torbutton.popup.cancel = Hætta við
-torbutton.popup.dontask = Always launch applications from now on
+torbutton.popup.dontask = Hlaða sjálfkrafa inn skrám héðan í frá
torbutton.popup.prompted_language = To give you more privacy, Torbutton can request the English language version of web pages. This may cause web pages that you prefer to read in your native language to display in English instead.\n\nWould you like to request English language web pages for better privacy?
torbutton.popup.no_newnym = Torbutton cannot safely give you a new identity. It does not have access to the Tor Control Port.\n\nAre you running Tor Browser Bundle?
-torbutton.title.prompt_torbrowser = Important Torbutton Information
+torbutton.title.prompt_torbrowser = Mikilvægar upplýsingar um Tor-hnappinn
torbutton.popup.prompt_torbrowser = Torbutton works differently now: you can't turn it off any more.\n\nWe made this change because it isn't safe to use Torbutton in a browser that's also used for non-Tor browsing. There were too many bugs there that we couldn't fix any other way.\n\nIf you want to keep using Firefox normally, you should uninstall Torbutton and download Tor Browser Bundle. The privacy properties of Tor Browser are also superior to those of normal Firefox, even when Firefox is used with Torbutton.\n\nTo remove Torbutton, go to Tools->Addons->Extensions and then click the Remove button next to Torbutton.
-torbutton.popup.short_torbrowser = Important Torbutton Information!\n\nTorbutton is now always enabled.\n\nClick on the Torbutton for more information.
+torbutton.popup.short_torbrowser = Mikilvægar upplýsingar um Tor-hnappinn!\n\nTor-hnappurinn er núna alltaf virkur.\n\nSmelltu á Tor-hnappinn til að sjá nánar.
-torbutton.popup.confirm_plugins = Plugins such as Flash can harm your privacy and anonymity.\n\nThey can also bypass Tor to reveal your current location and IP address.\n\nAre you sure you want to enable plugins?\n\n
-torbutton.popup.never_ask_again = Never ask me again
+torbutton.popup.confirm_plugins = Viðbætur eins og til dæmis Flash geta skaðað friðhelgi þína og gagnaleynd.\n\nÞær geta einnig farið framhjá Tor til að gefa upp staðsetningu þína og IP-vistfang.\n\nErtu viss um að þú viljir virkja viðbætur?\n\n
+torbutton.popup.never_ask_again = Ekki spyrja mig aftur
+torbutton.popup.confirm_newnym = Tor-vafrinn mun núna loka öllum flipum og gluggum. Allar setur á vefsvæðum munu tapast.\n\nÁ að endurræsa Tor-vafrann til að núllstilla auðkennið þitt?\n\n
+
+torbutton.slider_notification = The green onion menu now has a security slider which lets you adjust your security level. Check it out!
+torbutton.slider_notification_button = Opna öryggisstillingar
+
+torbutton.maximize_warning = Maximizing Tor Browser can allow websites to determine your monitor size, which can be used to track you. We recommend that you leave Tor Browser windows in their original default size.
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=This website (%S) attempted to access image data on a canvas. Since canvas image data can be used to discover information about your computer, blank image data was returned this time.
-canvas.allow=Allow in the Future
+canvas.siteprompt=This website (%S) attempted to extract HTML5 canvas image data, which may be used to uniquely identify your computer.\n\nShould Tor Browser allow this website to extract HTML5 canvas image data?
+canvas.notNow=Ekki núna
+canvas.notNowAccessKey=N
+canvas.allow=Leyfa í framtíðinni
canvas.allowAccessKey=A
-canvas.never=Never for This Site
+canvas.never=Aldrei fyrir þetta vefsvæði (mælt með þessu)
canvas.neverAccessKey=e
+
+# Profile/startup error messages. Strings are kept here for ease of translation.
+# LOCALIZATION NOTE: %S is the application name.
+profileProblemTitle=Vandamál við %S snið
+profileReadOnly=You cannot run %S from a read-only file system. Please copy %S to another location before trying to use it.
+profileReadOnlyMac=You cannot run %S from a read-only file system. Please copy %S to your Desktop or Applications folder before trying to use it.
+profileAccessDenied=%S does not have permission to access the profile. Please adjust your file system permissions and try again.
+profileMigrationFailed=Yfirfærsla á fyrirliggjandi %S sniðinu þínu mistókst.\nNýjar stillingar verða notaðar.
+
+# .Onion Page Info prompt. Strings are kept here for ease of translation.
+pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
+pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
diff --git a/src/chrome/locale/it/aboutTor.dtd b/src/chrome/locale/it/aboutTor.dtd
index a016f6bb..f373ceb1 100644
--- a/src/chrome/locale/it/aboutTor.dtd
+++ b/src/chrome/locale/it/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Info su Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "ATTENZIONE: questo browser non è aggiornato.">
-<!ENTITY aboutTor.outOfDateTorOff.label "INOLTRE, questo browser non è aggiornato.">
-<!ENTITY aboutTor.outOfDate2.label "Clicca sulla cipolla e scegli "Scarica Aggiornamento Tor Browser Bundle".">
-
-<!ENTITY aboutTor.check.label "Test Impostazioni della Rete Tor">
-
-<!ENTITY aboutTor.success.label "Benvenuto nel browser TOR">
-<!ENTITY aboutTor.success2.label "Connesso alla rete TOR.">
-<!ENTITY aboutTor.success3.label "Ora sei libero di navigare in internet anonimamente.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Qualcosa è Andato Storto!">
<!ENTITY aboutTor.failure2.label "Tor non sta funzionando su questo browser.">
-<!ENTITY aboutTor.search.label "Cerca">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Ulteriori Info:">
-<!ENTITY aboutTor.torInfo2.label "Nazione & Indirizzo IP:">
-<!ENTITY aboutTor.torInfo3.label "Nodo di Uscita:">
-<!ENTITY aboutTor.torInfo4.label "Questo server non registra alcuna informazione circa i visitatori.">
-<!ENTITY aboutTor.whatnextQuestion.label "E adesso?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor NON è tutto ciò che ti serve per navigare anonimamente! Potresti aver bisogno di cambiare le tue abitudini di navigazione per accertarti che la tua identità rimanga al sicuro.">
-<!ENTITY aboutTor.whatnext.label "Consigli Per Restare Anonimo »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Domande?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Manuale utente di Tor Browser">
-<!ENTITY aboutTor.helpInfo1.label "Puoi Aiutare!">
-<!ENTITY aboutTor.helpInfo2.label "Ci sono molti modi in cui puoi aiutare a rendere la Rete Tor più veloce e stabile:">
-<!ENTITY aboutTor.helpInfo3.label "Gestisci un Nodo Relay di Tor »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Aiutaci in Vari Modi »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Fai una Donazione »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Il Tor Project è un'organizzazione 501(c)(3) non-profit americana dedicata alla ricerca, sviluppo ed educazione sull'anonimato e privacy online.">
-<!ENTITY aboutTor.learnMore.label "Maggiori info sul Tor Project »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/it/browserOnboarding.properties b/src/chrome/locale/it/browserOnboarding.properties
new file mode 100644
index 00000000..c3169b1d
--- /dev/null
+++ b/src/chrome/locale/it/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Benvenuto
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privacy
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Esplora
+
+onboarding.tour-tor-security=Sicurezza
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Servizi Onion
+onboarding.tour-tor-onion-services.title=Servizi Onion
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/it/torbutton.properties b/src/chrome/locale/it/torbutton.properties
index aa1279b7..3f8f2bac 100644
--- a/src/chrome/locale/it/torbutton.properties
+++ b/src/chrome/locale/it/torbutton.properties
@@ -5,8 +5,8 @@ torbutton.circuit_display.this_browser = Questo browser
torbutton.circuit_display.relay = Ripetitore
torbutton.circuit_display.tor_bridge = Bridge
torbutton.circuit_display.unknown_country = Paese sconosciuto
-torbutton.circuit_display.guard = Guard
-torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.guard = Guardia
+torbutton.circuit_display.guard_note = Il tuo nodo [Guardia] non deve cambiare.
torbutton.circuit_display.learn_more = Per saperne di più
torbutton.content_sizer.margin_tooltip = Il browser Tor aggiunge questo margine per rendere l'ampiezza e altezza della tua finestra meno distintiva, così si riduce la possibilità di che tu sia tracciato in linea.
torbutton.panel.tooltip.disabled = Fai clic per attivare Tor
@@ -40,7 +40,7 @@ torbutton.maximize_warning = Massimizzando Tor Browser, i siti web possono risal
canvas.siteprompt=Questo sito (%S) ha tentato di estrarre i dati di immagine HTML5 canvas, che possono essere utilizzati per identificare in modo univoco il computer.\n\nPermettere a Tor Browser di estrarre l'immagine HTML5 canvas per questo sito?
canvas.notNow=Non ora
canvas.notNowAccessKey=N
-canvas.allow=acconsenti in futuro
+canvas.allow=Acconsenti in futuro
canvas.allowAccessKey=A
canvas.never=Mai per questo sito (raccomandato)
canvas.neverAccessKey=e
diff --git a/src/chrome/locale/ja/aboutTor.dtd b/src/chrome/locale/ja/aboutTor.dtd
index 9d1b9c91..661cfdb9 100644
--- a/src/chrome/locale/ja/aboutTor.dtd
+++ b/src/chrome/locale/ja/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Torについて">
-<!ENTITY aboutTor.outOfDateTorOn.label "警告:このブラウザは古いバージョンです。">
-<!ENTITY aboutTor.outOfDateTorOff.label "また、このブラウザは古いバージョンです。">
-<!ENTITY aboutTor.outOfDate2.label "Onion をクリックして Tor Browser のアップデートを確認してください。">
-
-<!ENTITY aboutTor.check.label "Torのネットワーク設定をテストする">
-
-<!ENTITY aboutTor.success.label "Tor Browserにようこそ">
-<!ENTITY aboutTor.success2.label "Torネットワークに接続しました">
-<!ENTITY aboutTor.success3.label "現在、自由に匿名でインターネットをブラウズ出来ます。">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "何かが間違っています!">
<!ENTITY aboutTor.failure2.label "Torは、このブラウザでは動作しません。">
-<!ENTITY aboutTor.search.label "検索">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "追加情報: ">
-<!ENTITY aboutTor.torInfo2.label "国とIPアドレス:">
-<!ENTITY aboutTor.torInfo3.label "出口ノード:">
-<!ENTITY aboutTor.torInfo4.label "このサーバーは、訪問者のいかなる情報も記録しません。">
-<!ENTITY aboutTor.whatnextQuestion.label "次はなんですか?">
-<!ENTITY aboutTor.whatnextAnswer.label "Torだけが匿名にブラウズするのに必要というわけではないのです! あなたの身元を安全に保つには、ブラウジングの習慣の一部を変える必要があるかもしれません。">
-<!ENTITY aboutTor.whatnext.label "匿名性を保つことについてのヒント »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "質問がありますか?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser ユーザーマニュアル">
-<!ENTITY aboutTor.helpInfo1.label "助けてください!">
-<!ENTITY aboutTor.helpInfo2.label "Torネットワークをさらに高速に、さらに強力にするのに役立てるたくさんのやり方があります。">
-<!ENTITY aboutTor.helpInfo3.label "Torリレーノードを起動 »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "ボランティアに志願する >>">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "寄付する »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Tor Projectは、オンラインの匿名性とプライバシーの研究・開発・教育を専門に行う米国の501(c)(3)非営利団体です。">
-<!ENTITY aboutTor.learnMore.label "Tor Projectに関する詳細 »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/ja/browserOnboarding.properties b/src/chrome/locale/ja/browserOnboarding.properties
new file mode 100644
index 00000000..b5b7601b
--- /dev/null
+++ b/src/chrome/locale/ja/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=ようこそ
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=プライバシー
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=探索
+
+onboarding.tour-tor-security=セキュリティ
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion Services
+onboarding.tour-tor-onion-services.title=Onion Services
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/ko/aboutTor.dtd b/src/chrome/locale/ko/aboutTor.dtd
index 65b9b769..83ea0c93 100644
--- a/src/chrome/locale/ko/aboutTor.dtd
+++ b/src/chrome/locale/ko/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Tor에 대해서">
-<!ENTITY aboutTor.outOfDateTorOn.label "주의: 현재 구버전 브라우저를 사용하고 계십니다.">
-<!ENTITY aboutTor.outOfDateTorOff.label "또한, 현재 구버전 브라우저를 사용하고 계십니다.">
-<!ENTITY aboutTor.outOfDate2.label "onion을 클릭하고 Tor Browser 업데이트 체크를 선택하세요.">
-
-<!ENTITY aboutTor.check.label "Tor 네트워크 설정 테스트">
-
-<!ENTITY aboutTor.success.label "Tor 브라우저에 오신 것을 환영합니다">
-<!ENTITY aboutTor.success2.label "Tor 네트워크에 연결되었습니다.">
-<!ENTITY aboutTor.success3.label "이제 자유롭게 익명으로 인터넷을 탐색할 수 있습니다.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "뭔가 잘못되었습니다!">
<!ENTITY aboutTor.failure2.label "Tor는 이 브라우저에서 작동하지 않습니다.">
-<!ENTITY aboutTor.search.label "검색">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "추가 정보 :">
-<!ENTITY aboutTor.torInfo2.label "국가 & IP 주소 :">
-<!ENTITY aboutTor.torInfo3.label "출구 노드: ">
-<!ENTITY aboutTor.torInfo4.label "이 서버는 방문자에 대한 정보를 기록하지 않습니다.">
-<!ENTITY aboutTor.whatnextQuestion.label "그 다음은?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor는 완벽한 익명 브라우징을 보장하지 않습니다! 따라서 신분을 안전하게 유지하기 위해서는 브라우징 습관을 바꾸셔야 합니다.">
-<!ENTITY aboutTor.whatnext.label "익명으로 알짱거릴 때의 팁 >>">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "질문이 있으신가요?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor 브라우저 사용자 설명서">
-<!ENTITY aboutTor.helpInfo1.label "여러분도 도울 수 있습니다!">
-<!ENTITY aboutTor.helpInfo2.label "여러분이 Tor 네트워크를 보다 빠르고 강하게 만들 수 있는 방법이 있습니다.">
-<!ENTITY aboutTor.helpInfo3.label "Tor 중계 서버 node 실행 »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "자원 봉사로 Tor 돕기 »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "후원하기 »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Tor 프로젝트란? 온라인 익명 및 개인 정보 보호의 연구, 개발 및 교육에 힘쓰는 US 501(c)(3) 비영리 단체입니다.">
-<!ENTITY aboutTor.learnMore.label "Tor 프로젝트에 대해서 더 알아보기 »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/ko/browserOnboarding.properties b/src/chrome/locale/ko/browserOnboarding.properties
new file mode 100644
index 00000000..93f3774d
--- /dev/null
+++ b/src/chrome/locale/ko/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=사생활
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security= 보안
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion 서비스
+onboarding.tour-tor-onion-services.title=Onion 서비스
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/nb/aboutDialog.dtd b/src/chrome/locale/nb/aboutDialog.dtd
new file mode 100644
index 00000000..78293397
--- /dev/null
+++ b/src/chrome/locale/nb/aboutDialog.dtd
@@ -0,0 +1,19 @@
+<!ENTITY project.start "&bransShortName; blir utviklet av">
+<!-- LOCALIZATION NOTE (project.tpoLink): This is a link title that links to https://www.torproject.org -->
+<!ENTITY project.tpoLink "&vendorShortName;">
+<!ENTITY project.end ", en veldedig organisasjon som jobber for å forsvare ditt personvern og din frihet på nett.">
+
+<!ENTITY help.start "Vil du bidra?">
+<!-- LOCALIZATION NOTE (help.donate): This is a link title that links to https://www.torproject.org/donate/donate.html.en -->
+<!ENTITY help.donateLink "Doner">
+<!ENTITY help.or "eller">
+<!-- LOCALIZATION NOTE (help.getInvolvedLink): This is a link title that links to https://www.torproject.org/getinvolved/volunteer.html.en -->
+<!ENTITY help.getInvolvedLink "involver deg">
+<!ENTITY help.end "!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/docs/trademark-faq.html.en -->
+<!ENTITY bottomLinks.questions "Spørsmål?">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to https://www.torproject.org/getinvolved/relays -->
+<!ENTITY bottomLinks.grow "Hjelp Tor-nettverket å vokse!">
+<!-- LOCALIZATION NOTE (bottom.questions): This is a link title that links to about:license -->
+<!ENTITY bottomLinks.license "Lisensinformasjon">
+<!ENTITY tor.TrademarkStatement ""Tor" og "Løk-logoen" er registrerte varemerker tilhørende the Tor Project, Inc.">
diff --git a/src/chrome/locale/nb/aboutTBUpdate.dtd b/src/chrome/locale/nb/aboutTBUpdate.dtd
new file mode 100644
index 00000000..919a7f7b
--- /dev/null
+++ b/src/chrome/locale/nb/aboutTBUpdate.dtd
@@ -0,0 +1,6 @@
+<!ENTITY aboutTBUpdate.title "Oppdatering av Tor-nettleseren">
+<!ENTITY aboutTBUpdate.updated "Tor-nettleseren har blitt oppdatert.">
+<!ENTITY aboutTBUpdate.linkPrefix "For den mest oppdaterte informasjonen om denne utgivelsen,">
+<!ENTITY aboutTBUpdate.linkLabel "besøk vårt nettsted">
+<!ENTITY aboutTBUpdate.linkSuffix ".">
+<!ENTITY aboutTBUpdate.changeLogHeading "Endringslogg:">
diff --git a/src/chrome/locale/nb/aboutTor.dtd b/src/chrome/locale/nb/aboutTor.dtd
index 9f14022b..7b37ddbe 100644
--- a/src/chrome/locale/nb/aboutTor.dtd
+++ b/src/chrome/locale/nb/aboutTor.dtd
@@ -1,47 +1,25 @@
<!--
- - Copyright (c) 2014, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
-<!ENTITY aboutTor.title "About Tor">
+<!ENTITY aboutTor.title "Om Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "HOWEVER, this browser is out of date.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ALSO, this browser is out of date.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Download Tor Browser Bundle Update.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
+<!ENTITY aboutTor.failure.label "Noe gikk galt!">
+<!ENTITY aboutTor.failure2.label "Tor fungerer ikke i denne nettleseren.">
-<!ENTITY aboutTor.check.label "Test Tor Network Settings">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
+<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.success.label "Congratulations!">
-<!ENTITY aboutTor.success2.label "This browser is configured to use Tor.">
-<!ENTITY aboutTor.success3.label "You are now free to browse the Internet anonymously.">
-<!ENTITY aboutTor.failure.label "Something Went Wrong!">
-<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
-<!ENTITY aboutTor.failure3prefix.label "For assistance, please contact ">
-<!ENTITY aboutTor.failure3Link "help(a)rt.torproject.org">
-<!ENTITY aboutTor.failure3suffix.label ".">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Spørsmål?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
+<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.search.label "Search">
-<!ENTITY aboutTor.searchSPPost.link "https://startpage.com/do/search">
-<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/html/">
-
-<!ENTITY aboutTor.torInfo1.label "Additional Info:">
-<!ENTITY aboutTor.torInfo2.label "Country & IP Address:">
-<!ENTITY aboutTor.torInfo3.label "Exit Node:">
-<!ENTITY aboutTor.torInfo4.label "This server does not log any information about visitors.">
-<!ENTITY aboutTor.whatnextQuestion.label "What Next?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
-<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
-<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
-<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
-<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-
-<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
-<!ENTITY aboutTor.learnMore.label "Learn more about The Tor Project »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/nb/aboutTor.properties b/src/chrome/locale/nb/aboutTor.properties
index 02088f01..b72d167f 100644
--- a/src/chrome/locale/nb/aboutTor.properties
+++ b/src/chrome/locale/nb/aboutTor.properties
@@ -2,14 +2,19 @@
# See LICENSE for licensing information.
# vim: set sw=2 sts=2 ts=8 et:
-aboutTor.searchSP.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">Startpage</a>.
-# The following string is a link which replaces %1$S above.
-aboutTor.searchSP.privacy.link=https://startpage.com/eng/protect-privacy.html
-# The following string is a link which replaces %2$S above.
-aboutTor.searchSP.search.link=https://startpage.com/
-
-aboutTor.searchDDG.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">DuckDuckGo</a>.
+aboutTor.searchDDG.privacy=Søk <a href="%1$S">sikkert</a> med <a href="%2$S">DuckDuckGo</a>.
# The following string is a link which replaces %1$S above.
aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
# The following string is a link which replaces %2$S above.
aboutTor.searchDDG.search.link=https://duckduckgo.com/
+
+aboutTor.donationBanner.donate=Doner nå.
+
+aboutTor.donationBanner.slogan=Tor: Pådriver for digital motstandsdyktighet
+aboutTor.donationBanner.mozilla=Gi i dag og Mozilla vil matche bidraget ditt!
+
+aboutTor.donationBanner.tagline1=Beskyttelse av journalister, fløyteblåsere og aktivister siden 2006
+aboutTor.donationBanner.tagline2=Verdensomspennende nettverksfrihet
+aboutTor.donationBanner.tagline3=Frihet på nett
+aboutTor.donationBanner.tagline4=Grobunn til verdensomspennende ytringsfrihet
+aboutTor.donationBanner.tagline5=Beskytter privatlivet til millioner hver dag
diff --git a/src/chrome/locale/nb/brand.dtd b/src/chrome/locale/nb/brand.dtd
index 59f665e8..7ae614c1 100644
--- a/src/chrome/locale/nb/brand.dtd
+++ b/src/chrome/locale/nb/brand.dtd
@@ -2,7 +2,14 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
-<!ENTITY brandShortName "Tor Browser">
-<!ENTITY brandFullName "Tor Browser">
-<!ENTITY vendorShortName "Tor Project">
-<!ENTITY trademarkInfo.part1 "Firefox and the Firefox logos are trademarks of the Mozilla Foundation.">
+<!ENTITY brandShorterName "Tor-nettleseren">
+<!ENTITY brandShortName "Tor-nettleseren">
+<!ENTITY brandFullName "Tor-nettleseren">
+<!ENTITY vendorShortName "Tor-prosjektet">
+<!ENTITY trademarkInfo.part1 "Firefox og Firefox-logene er varemarker tilhørende Mozilla-stiftelsen.">
+
+<!-- The following strings are for bug #10280's UI. We place them here for our translators -->
+<!ENTITY plugins.installed.find "Klikk for å laste inn installerte systemtillegg">
+<!ENTITY plugins.installed.enable "Skru på programtillegg">
+<!ENTITY plugins.installed.disable "Skru av programtillegg">
+<!ENTITY plugins.installed.disable.tip "Klikk for å blokkere innlasting av systemtillegg">
diff --git a/src/chrome/locale/nb/brand.properties b/src/chrome/locale/nb/brand.properties
index f63def38..3101ebc6 100644
--- a/src/chrome/locale/nb/brand.properties
+++ b/src/chrome/locale/nb/brand.properties
@@ -2,14 +2,15 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-brandShortName=Tor Browser
-brandFullName=Tor Browser
-vendorShortName=Tor Project
+brandShorterName=Tor-nettleseren
+brandShortName=Tor-nettleseren
+brandFullName=Tor-nettleseren
+vendorShortName=Tor-prosjektet
-homePageSingleStartMain=Firefox Start, a fast home page with built-in search
-homePageImport=Import your home page from %S
+homePageSingleStartMain=Firefox Start, en rask startside med innebygd søk
+homePageImport=Importer startsiden din fra %S
-homePageMigrationPageTitle=Home Page Selection
-homePageMigrationDescription=Please select the home page you wish to use:
+homePageMigrationPageTitle=Utvalg av startsider
+homePageMigrationDescription=Velg startsiden du vil bruke:
-syncBrandShortName=Sync
+syncBrandShortName=Synkroniser
diff --git a/src/chrome/locale/nb/browserOnboarding.properties b/src/chrome/locale/nb/browserOnboarding.properties
new file mode 100644
index 00000000..49968370
--- /dev/null
+++ b/src/chrome/locale/nb/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Personvern
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Sikkerhet
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Løk-tjenester
+onboarding.tour-tor-onion-services.title=Løk-tjenester
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/nb/torbutton.dtd b/src/chrome/locale/nb/torbutton.dtd
index 7e5150f8..1b58f104 100644
--- a/src/chrome/locale/nb/torbutton.dtd
+++ b/src/chrome/locale/nb/torbutton.dtd
@@ -1,13 +1,20 @@
-<!ENTITY torbutton.context_menu.new_identity "Ny Identitet">
+<!ENTITY torbutton.context_menu.new_identity "Ny identitet">
<!ENTITY torbutton.context_menu.new_identity_key "I">
-<!ENTITY torbutton.context_menu.networksettings "Åpne nettverksinnstillinger...">
-<!ENTITY torbutton.context_menu.downloadUpdate "Last ned Tor Browser Bundle oppdatering...">
+<!ENTITY torbutton.context_menu.new_circuit "Ny Tor-krets for denne siden">
+<!ENTITY torbutton.context_menu.new_circuit_key "C">
+<!ENTITY torbutton.context_menu.preferences "Sikkerhetsinnstillinger…">
+<!ENTITY torbutton.context_menu.preferences.key "S">
+<!ENTITY torbutton.context_menu.networksettings "Nettverksinnstillinger for Tor…">
+<!ENTITY torbutton.context_menu.networksettings.key "N">
+<!ENTITY torbutton.context_menu.downloadUpdate "Se etter oppdatering for Tor-nettleseren…">
<!ENTITY torbutton.context_menu.downloadUpdate.key "U">
-<!ENTITY torbutton.context_menu.cookieProtections "Informasjonskapsel Beskyttelser">
+<!ENTITY torbutton.context_menu.cookieProtections "Informasjonskapsels-beskyttelse…">
<!ENTITY torbutton.context_menu.cookieProtections.key "C">
-<!ENTITY torbutton.button.tooltip "Klikk for å initialisere Torbutton">
-<!ENTITY torbutton.prefs.restore_defaults "Gjenopprett standard">
-<!ENTITY torbutton.cookiedialog.title "Administrér Informasjonskapslenes Beskyttelser">
+<!ENTITY torbutton.button.tooltip "Klikk for å igangsette Torbutton">
+<!ENTITY torbutton.prefs.security_settings "Sikkerhetsinnstillinger for Tor-nettleseren">
+<!ENTITY torbutton.prefs.restore_defaults "Gjenopprett forvalg">
+<!ENTITY torbutton.prefs.custom_warning "Dine nettleserinnstillinger har ført med seg uvanlige sikkerhetsvalg. Av sikkerhet- og personverns-hensyn anbefaler vi at du velger en av de forvalgte sikkerhetsnivåene.">
+<!ENTITY torbutton.cookiedialog.title "Administrer beskyttelse av informasjonskapsler">
<!ENTITY torbutton.cookiedialog.lockCol "Beskyttet">
<!ENTITY torbutton.cookiedialog.domainCol "Vert">
<!ENTITY torbutton.cookiedialog.nameCol "Navn">
@@ -15,8 +22,30 @@
<!ENTITY torbutton.cookiedialog.protectCookie "Beskytt Informasjonskapsel">
<!ENTITY torbutton.cookiedialog.removeCookie "Fjern Informasjonskapsel">
<!ENTITY torbutton.cookiedialog.unprotectCookie "Ikke Beskytt Informasjonskapsel">
-<!ENTITY torbutton.cookiedialog.removeAllBut "Fjern Alle Bortsett Fra Beskyttede">
-<!ENTITY torbutton.cookiedialog.saveAllCookies "Beskytt Nye Informasjonskapsler">
-<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Ikke Beskytt Nye Informasjonskapsler">
+<!ENTITY torbutton.cookiedialog.removeAllBut "Fjern alle bortsett fra beskyttede">
+<!ENTITY torbutton.cookiedialog.saveAllCookies "Beskytt nye informasjonskapsler">
+<!ENTITY torbutton.cookiedialog.doNotSaveAllCookies "Ikke beskytt nye informasjonskapsler">
<!ENTITY torbutton.prefs.restrict_thirdparty "Begrens tredjeparts informasjonskapsler og andre sporingsdata.">
-<!ENTITY torbutton.prefs.resist_fingerprinting "Endre detaljer som skiller deg fra andre Tor Browser brukere.">
+<!ENTITY torbutton.prefs.restrict_thirdparty.accesskey "R">
+<!ENTITY torbutton.prefs.restrict_thirdparty_tooltip "Hold denne boksen avhuket for å forebygge at ulike nettleserfunksjoner blir misbrukt til å spore deg når du surfer på nettet. Modifiserte funksjoner inkluderer blob-nettadresser, kringkastinskanaler, nettleserens mellomlager, informasjonskapsler, favicon, HTTP-autentiserings overskrifter, link preconnects, localstorage , Mediasource-nettadresser, OCSP-forespørsler, SharedWorkers og TLS øktbilletter.">
+<!ENTITY torbutton.prefs.resist_fingerprinting "Endre detaljer som skiller deg fra andre brukere av Tor-nettleseren.">
+<!ENTITY torbutton.prefs.resist_fingerprinting.accesskey "F">
+<!ENTITY torbutton.prefs.resist_fingerprinting_tooltip "La denne avkryssingsboksen være utkrysset for å skjule ting som kan være unikt med deg fra nettsteder, inkludert datamaskinens ytelse, tastaturoppsett , lokale, plasseringen av- og listen over installerte programtillegg, nettverksstatus, skjermretning , skjermstørrelse , sidespesifikke forstørrelsesnivåer , filtyper som støttes, systemfarger og WebGL-evner.">
+<!ENTITY torbutton.prefs.sec_caption "Sikkerhetsnivå">
+<!ENTITY torbutton.prefs.sec_caption_tooltip "Sikkerhetsglidebryteren lar deg skru av forskjellige nettleserfunksjoner som kan eksponere deg for risiko.">
+<!ENTITY torbutton.prefs.sec_standard_label "Forvalg">
+<!ENTITY torbutton.prefs.sec_standard_description "Alle Tor-nettleser- og nettside-funksjoner er på.">
+<!ENTITY torbutton.prefs.sec_safer_label "Tryggere">
+<!ENTITY torbutton.prefs.sec_safer_description "Skrur av nettsidefunksjoner som ofte er farlige, som gjør at noen sider blir skadelidende.">
+<!ENTITY torbutton.prefs.sec_safer_list_label "På den tryggere innstillingen:">
+<!ENTITY torbutton.prefs.sec_safest_label "Tryggest">
+<!ENTITY torbutton.prefs.sec_safest_description "Tillater bare nettsidefunksjoner som kreves for statiske sider og grunnleggende tjenester. Disse endringene har innvirkning på bilder, media, og skript.">
+<!ENTITY torbutton.prefs.sec_safest_list_label "På den tryggeste innstillingen:">
+<!ENTITY torbutton.prefs.sec_learn_more_label "Lær mer">
+<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript er avskrudd på sider som ikke er HTTPS.">
+<!ENTITY torbutton.prefs.sec_js_disabled "JavaScript er som forvalg slått av for alle nettsteder.">
+<!ENTITY torbutton.prefs.sec_limit_typography "Noen skrifter og mattesymboler er avskrudd.">
+<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Noen skrifter, ikoner, mattesymboler og bilder er avskrudd.">
+<!ENTITY torbutton.prefs.sec_click_to_play_media "Lyd og video (HTML5-media) må klikkes for å spilles av.">
+<!ENTITY torbutton.circuit_display.title "Tor Krets">
+<!ENTITY torbutton.circuit_display.new_circuit "Ny Krets for denne siden">
diff --git a/src/chrome/locale/nb/torbutton.properties b/src/chrome/locale/nb/torbutton.properties
index 12ad8eff..b1942b4a 100644
--- a/src/chrome/locale/nb/torbutton.properties
+++ b/src/chrome/locale/nb/torbutton.properties
@@ -1,27 +1,58 @@
+torbutton.circuit_display.internet = Internett
+torbutton.circuit_display.ip_unknown = Ukjent IP
+torbutton.circuit_display.onion_site = Løk-side
+torbutton.circuit_display.this_browser = Denne nettleseren
+torbutton.circuit_display.relay = Relè
+torbutton.circuit_display.tor_bridge = Bro
+torbutton.circuit_display.unknown_country = Ukjent land
+torbutton.circuit_display.guard = Vakt
+torbutton.circuit_display.guard_note = Din [Vakt] node kan ikke endres.
+torbutton.circuit_display.learn_more = Lær mer
+torbutton.content_sizer.margin_tooltip = Tor nettleseren legger til denne marginen for å lage bredden og høyden på ditt vindu mindre unikt, og reduserer slik muligheten for andre til å spore deg på nett.
torbutton.panel.tooltip.disabled = Klikk for å aktivere Tor
-torbutton.panel.tooltip.enabled = Klikk for å deaktivere Tor
-torbutton.panel.label.disabled = Tor er deaktivert
+torbutton.panel.tooltip.enabled = Klikk for å skru av Tor
+torbutton.panel.label.disabled = Tor er avskrudd
torbutton.panel.label.enabled = Tor er aktivert
-extensions.torbutton(a)torproject.org.description = Torbutton tilbyr en knapp til å konfigurere Tor-innstillinger, samt rask og enkel tilgang til å slette privat nettleserhistorikk.
-torbutton.popup.external.title = Laste eksternt innhold?
-torbutton.popup.external.app = Et eksternt program er nødvendig for å håndtere:\n\n
-torbutton.popup.external.note = \n\nMERK: Eksterne program er IKKE Tor-sikker som standard og kan røpe deg!\n
-torbutton.popup.external.suggest = \nHvis du ikke vet om denne filen er trygg, bør du enten lagre og åpne den frakoblet, eller i en virtuell maskin,\neventuelt vurdere å bruker en transparent Torproxy som Tails LiveCD eller torsocks.\n
-torbutton.popup.launch = Start program
+extensions.torbutton(a)torproject.org.description = Torbutton tilbyr en knapp til å sette opp Tor-innstillinger, samt rask og enkel tilgang til å slette privat nettleserhistorikk.
+torbutton.popup.external.title = Last ned en ekstern filtype?
+torbutton.popup.external.app = Tor-nettleseren kan ikke åpne denne filen. Du er nødt til å åpne den med et annet program.\n
+torbutton.popup.external.note = Noen filtyper kan forårsake at programmer kobler til internett uten å bruke Tor.\n
+torbutton.popup.external.suggest = For å være på den sikre siden, bør du kun åpne nedlastede filer når du frakoblet internett, eller bruke en Tor Live CD som Tails.\n
+torbutton.popup.launch = Last ned fil
torbutton.popup.cancel = Avbryt
-torbutton.popup.dontask = Start alltid programmer fra nå av
+torbutton.popup.dontask = Last ned filer automatisk fra nå av
torbutton.popup.prompted_language = For å gi deg et bedre personvern, kan Torbutton spørre om en engelskspråklig versjon av nettsider. Dette kan resultere i at nettsider du foretrekker å lese på morsmålet ditt vises på engelsk istedet.\n\nVil du spørre om engelskspråklige nettsider for å bedre personvernet?
-torbutton.popup.no_newnym = Torbutton kan ikke trygt gi deg en ny identitet. Den har ikke tilgang til Tor Control Port.\n\nKjører du Tor Browser Bundle?
-torbutton.title.prompt_torbrowser = Viktig Torbutton informasjon
-torbutton.popup.prompt_torbrowser = Torbutton fungerer annerledes nå. Du kan ikke skru den av lenger.\n\nVi gjorde denne forandringen fordi det ikke er sikkert å bruke Torbutton i en nettleser som også brukers til annen surfing enn Tor. \nDet var for mange bugs der til at vi kunne fikse det på en annen måte.\n\nHvis du ønsker å bruke Firefox normalt, bør du avinstallere Torbutton og laste ned Tor Browser Bundle. Personvernsinnstillingene til Tor Browser er også overlegen en normal Firefox, selv når Firefox brukes med Torbutton.\n\nFor å fjerne Torbutton, gå til Verktøy->Tillegg->Utvidelser og klikk på Fjern-knappen ved siden av Torbutton.
-torbutton.popup.short_torbrowser = Viktig Torbutton informasjon!\n\nTorbutton er alltid aktivert nå.\n\nKlikk på Torbutton for mer informasjon.
+torbutton.popup.no_newnym = Torbutton kan ikke trygt gi deg en ny identitet. Den har ikke tilgang til Tor-kontrollporten.\n\nKjører du Tor-nettleserpakken?
+torbutton.title.prompt_torbrowser = Viktig Torbutton-informasjon
+torbutton.popup.prompt_torbrowser = Torbutton fungerer annerledes nå. Du kan ikke skru den av lenger.\n\nVi gjorde denne forandringen fordi det ikke er sikkert å bruke Torbutton i en nettleser som også brukers til annen surfing enn Tor. \nDet var for mange feil der til at vi kunne fikse det på en annen måte.\n\nHvis du ønsker å bruke Firefox normalt, bør du avinstallere Torbutton og laste ned Tor-nettleserforpakningen. Personvernsinnstillingene til Tor-nettleseren er også overlegen forvalget i Firefox, selv når Firefox brukes med Torbutton.\n\nFor å fjerne Torbutton, gå til Verktøy->Tillegg->Utvidelser og klikk på Fjern-knappen ved siden av Torbutton.
+torbutton.popup.short_torbrowser = Viktig Torbutton-informasjon!\n\nTorbutton er alltid aktivert nå.\n\nKlikk på Torbutton for mer informasjon.
torbutton.popup.confirm_plugins = Nettlesertillegg som f.eks Flash kan skade personvernet og anonymiteten din.\n\nDe kan også omgå Tor og dermed avsløre din nåværende plassering og IP-adresse.\n\nEr du sikker på at du vil aktivere nettlesertillegg?\n\n
torbutton.popup.never_ask_again = Ikke spør meg igjen
+torbutton.popup.confirm_newnym = TOR-nettleseren vil stenge alle vinduer og faner. Alle nettstedeøkter vil gå tapt.\n\n\nRestart TOR-nettleseren nå for å tilbakestille din identitet?\n\n
+
+torbutton.slider_notification = Den grønne løk-menyen har nå en sikkerhetsglidebryter som lar deg justere ditt sikkerhetsnivå. Sjekk den ut!
+torbutton.slider_notification_button = Åpne sikkerhetsinnstillinger
+
+torbutton.maximize_warning = Å blåse opp vinduet Tor-nettleseren befinner seg i til full størrelse gir nettsteder muligheten til å fastslå din skjermoppløsning, som igjen kan brukes til å spore deg. Vi anbefaler at du lar Tor-nettleservinduet være i orginal størrelse.
# Canvas permission prompt. Strings are kept here for ease of translation.
-canvas.siteprompt=Denne nettsiden (%S) forsøkte å få tilgang til bildedata på et lerret. Siden bildedata på lerret kan bli brukt til å avlsøre informasjon om datamaskinen din, ble blank bildedata returnert denne gangen.
-canvas.allow=Tillat i framtiden
+canvas.siteprompt=Denne nettsiden (%S) prøvde å pakke ut HTML5-canvas-billeddata, hvilket kan brukes til å tilkjennegi din datamaskin spesifikt i identifiseringsøyemed.\n\nSkal Tor-nettleseren tillate denne nettsiden å pakke ut HTML5-canvas-billeddata?
+canvas.notNow=Ikke nå
+canvas.notNowAccessKey=N
+canvas.allow=Tillat i fremtiden
canvas.allowAccessKey=A
-canvas.never=Aldri på denne siden
+canvas.never=Aldri for denne siden (anbefalt)
canvas.neverAccessKey=e
+
+# Profile/startup error messages. Strings are kept here for ease of translation.
+# LOCALIZATION NOTE: %S is the application name.
+profileProblemTitle=%S profil-problem
+profileReadOnly=Du kan ikke kjøre %S fra et filsystem som bare er lesbart. Kopier %S til en annen plass før du prøver å bruke det.
+profileReadOnlyMac=Du kan ikke kjøre %S fra et filsystem som bare er lesbart. Kopier %S til skrivebordet eller programmappa før du bruker det.
+profileAccessDenied=%S har ikke tilgang til endring av profilen. Juster filrettighetene og prøv igjen.
+profileMigrationFailed=Migrering av din eksisterende %S-profil mislykkes.\nNye innstillinger vil bli benyttet.
+
+# .Onion Page Info prompt. Strings are kept here for ease of translation.
+pageInfo_OnionEncryptionWithBitsAndProtocol=Tilkobling kryptert (Løk Tjeneste, %1$S, %2$S bits nøkler, %3$S)
+pageInfo_OnionEncryption=Tilkobling kryptert (Løk Tjeneste)
diff --git a/src/chrome/locale/nl/aboutTor.dtd b/src/chrome/locale/nl/aboutTor.dtd
index 95b19b9c..f1bb675c 100644
--- a/src/chrome/locale/nl/aboutTor.dtd
+++ b/src/chrome/locale/nl/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Over Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "Waarschuwing: deze browser is verouderd!">
-<!ENTITY aboutTor.outOfDateTorOff.label "BOVENDIEN is deze browser verouderd.">
-<!ENTITY aboutTor.outOfDate2.label "Klik op de ui en kies Controleer op Tor-browserupdate.">
-
-<!ENTITY aboutTor.check.label "Test Tor-netwerkinstellingen">
-
-<!ENTITY aboutTor.success.label "Welkom bij Tor-browser">
-<!ENTITY aboutTor.success2.label "Verbonden met het Tor-netwerk.">
-<!ENTITY aboutTor.success3.label "Je kan nu anoniem over het internet browsen.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Er ging iets mis!">
<!ENTITY aboutTor.failure2.label "Tor werkt niet in deze browser.">
-<!ENTITY aboutTor.search.label "Zoeken">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com/">
-<!ENTITY aboutTor.torInfo1.label "Bijkomende informatie:">
-<!ENTITY aboutTor.torInfo2.label "Land & IP-adres:">
-<!ENTITY aboutTor.torInfo3.label "Exitnode:">
-<!ENTITY aboutTor.torInfo4.label "Deze server houdt geen enkele informatie over bezoekers bij.">
-<!ENTITY aboutTor.whatnextQuestion.label "Wat nu?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NIET alles wat je nodig hebt om anoniem te kunnen browsen. Mogelijk is het nodig dat je bepaalde browsegewoontes verandert om te verzekeren dat je identiteit veilig blijft.">
-<!ENTITY aboutTor.whatnext.label "Tips om anoniem te blijven »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Vragen?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Gebruikershandleiding">
-<!ENTITY aboutTor.helpInfo1.label "Jij kan helpen!">
-<!ENTITY aboutTor.helpInfo2.label "Er zijn veel verschillende manieren hoe jij kan helpen het Tor-netwerk sneller en sterker te maken:">
-<!ENTITY aboutTor.helpInfo3.label "Draai een Tor-relaynode »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Word vrijwilliger">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Doneer »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Het Tor Project is een US 501(c)(3) non-profit voor onderzoek, ontwikkeling en onderwijs in online anonimiteit en privacy.">
-<!ENTITY aboutTor.learnMore.label "Leer meer over het Tor-project » ">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/nl/browserOnboarding.properties b/src/chrome/locale/nl/browserOnboarding.properties
new file mode 100644
index 00000000..c5810bdb
--- /dev/null
+++ b/src/chrome/locale/nl/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welkom
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privacy
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Verkennen
+
+onboarding.tour-tor-security=Beveiliging
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion Services
+onboarding.tour-tor-onion-services.title=Onion Services
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/nl/torbutton.dtd b/src/chrome/locale/nl/torbutton.dtd
index 7b7e6dbb..27e0003d 100644
--- a/src/chrome/locale/nl/torbutton.dtd
+++ b/src/chrome/locale/nl/torbutton.dtd
@@ -47,5 +47,5 @@
<!ENTITY torbutton.prefs.sec_limit_typography "Sommige lettertypen en wiskundige symbolen zijn uitgeschakeld.">
<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Sommige lettertypen, pictogrammen, wiskundige symbolen en afbeeldingen zijn uitgeschakeld.">
<!ENTITY torbutton.prefs.sec_click_to_play_media "Audio en video (HTML5-media) zijn klik-bij-afspelen.">
-<!ENTITY torbutton.circuit_display.title "Tor Circuit">
-<!ENTITY torbutton.circuit_display.new_circuit "New Circuit for this Site">
+<!ENTITY torbutton.circuit_display.title "Torcircuit">
+<!ENTITY torbutton.circuit_display.new_circuit "Nieuw circuit voor deze website">
diff --git a/src/chrome/locale/nl/torbutton.properties b/src/chrome/locale/nl/torbutton.properties
index d190ceed..9379a730 100644
--- a/src/chrome/locale/nl/torbutton.properties
+++ b/src/chrome/locale/nl/torbutton.properties
@@ -54,5 +54,5 @@ profileAccessDenied=%S heeft niet de juiste permissies om toegang te krijgen tot
profileMigrationFailed=Migreren van uw bestaande %S profiel is mislukt.\nNieuwe instellingen zijn nu van toepassing.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=Verbinding versleuteld (Oniondienst, %1$S, %2$S bit sleutels, %3$S)
+pageInfo_OnionEncryption=Verbinding versleuteld (Oniondienst)
diff --git a/src/chrome/locale/pl/aboutTor.dtd b/src/chrome/locale/pl/aboutTor.dtd
index 71d69e78..f7f4c143 100644
--- a/src/chrome/locale/pl/aboutTor.dtd
+++ b/src/chrome/locale/pl/aboutTor.dtd
@@ -1,47 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Informacje na temat Tor'a">
-<!ENTITY aboutTor.outOfDateTorOn.label "Ostrzeżenie: ta przeglądarka jest nieaktualna.">
-<!ENTITY aboutTor.outOfDateTorOff.label "PONADTO, ta przeglądarka jest nieaktualna.">
-<!ENTITY aboutTor.outOfDate2.label "Kliknij na ikonę cebuli, a następnie wybierz Sprawdź czy są dostępne aktualizacje.">
-
-<!ENTITY aboutTor.check.label "Przetestuj Ustawienia Sieci Tor">
-
-<!ENTITY aboutTor.success.label "Witamy w Tor Browser">
-<!ENTITY aboutTor.success2.label "Połączono z siecią Tor">
-<!ENTITY aboutTor.success3.label "Możesz teraz swobodnie przeglądać Internet anonimowo.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Coś poszło nie tak!">
<!ENTITY aboutTor.failure2.label "Tor nie działa w tej przeglądarce.">
-<!ENTITY aboutTor.search.label "Szukaj">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Dodatkowe informacje:">
-<!ENTITY aboutTor.torInfo2.label "Kraj i adres IP:">
-<!ENTITY aboutTor.torInfo3.label "Węzeł Wyjściowy:">
-<!ENTITY aboutTor.torInfo4.label "Ten serwer nie rejestruje żadnych informacji o odwiedzających.">
-<!ENTITY aboutTor.whatnextQuestion.label "Co dalej?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor, to NIE jest wszystko czego potrzebujesz, aby przeglądać sieć anonimowo! Być może potrzeba będzie zmienić niektóre Twoje nawyki internetowe, aby zapewnić Twojej tożsamości bezpieczeństwo.">
-<!ENTITY aboutTor.whatnext.label "Porady: Jak pozostać anonimowym w internecie »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Pytania?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Instrukcja korzystania z Tor Browser">
-<!ENTITY aboutTor.helpInfo1.label "Możesz pomóc!">
-<!ENTITY aboutTor.helpInfo2.label "Istnieje wiele sposobów, abyś mógł uczynić sieć Tor'a szybszą i silniejszą:">
-<!ENTITY aboutTor.helpInfo3.label "Uruchom Przekaźnikowy Węzeł Tora »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Zgłoś się na ochotnika »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Przekaż darowiznę »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
-
-<!ENTITY aboutTor.footer.label "Projekt Tor jest organizacją non-profit*, zajmująca się badaniami, rozwojem i edukacji o anonimowości i prywatności w internecie.
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-* 501(c)(3)">
-<!ENTITY aboutTor.learnMore.label "Dowiedz się więcej na temat Tor Project »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/pl/browserOnboarding.properties b/src/chrome/locale/pl/browserOnboarding.properties
new file mode 100644
index 00000000..629a09a3
--- /dev/null
+++ b/src/chrome/locale/pl/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Witamy
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Prywatność
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Bezpieczeństwo
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Usługi Tor
+onboarding.tour-tor-onion-services.title=Usługi Tor
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/pt-BR/aboutTor.dtd b/src/chrome/locale/pt-BR/aboutTor.dtd
index 99a3c6bc..97e5e0f8 100644
--- a/src/chrome/locale/pt-BR/aboutTor.dtd
+++ b/src/chrome/locale/pt-BR/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Sobre Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "AVISO: este navegador está desatualizado.">
-<!ENTITY aboutTor.outOfDateTorOff.label "AINDA, este navegador está desatualizado.">
-<!ENTITY aboutTor.outOfDate2.label "Clique na cebola e escolha Verificar Atualizações do Navegador Tor.">
-
-<!ENTITY aboutTor.check.label "Testar as configurações de rede Tor">
-
-<!ENTITY aboutTor.success.label "Boas-vindas ao Navegador Tor!">
-<!ENTITY aboutTor.success2.label "Conectad0 à rede Tor!">
-<!ENTITY aboutTor.success3.label "Sinta-se à vontade para navegar anonimamente na Internet.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Alguma coisa deu errado!">
<!ENTITY aboutTor.failure2.label "Tor não está funcionando neste navegador. ">
-<!ENTITY aboutTor.search.label "Buscar">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Para mais informações:">
-<!ENTITY aboutTor.torInfo2.label "País e Endereço IP:">
-<!ENTITY aboutTor.torInfo3.label "Nó de saída:">
-<!ENTITY aboutTor.torInfo4.label "Este servidor não registra nenhuma informação sobre os seus usuários.">
-<!ENTITY aboutTor.whatnextQuestion.label "O que mais?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor NÃO é tudo o que você precisa para navegar anonimamente! Para isso, você precisará mudar alguns hábitos de utilização da Internet, que garantirão a proteção da sua identidade. ">
-<!ENTITY aboutTor.whatnext.label "Dicas para garantir seu anonimato"">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Perguntas?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Manual de Uso do Navegador Tor ">
-<!ENTITY aboutTor.helpInfo1.label "Você pode ajudar!">
-<!ENTITY aboutTor.helpInfo2.label "Existem várias maneiras de ajudar a rede Tor a tornar-se mais rápida e eficaz:">
-<!ENTITY aboutTor.helpInfo3.label "Rodar um Nó de Retransmissor Tor »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Trabalhar voluntariamente"">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Fazer uma doação"">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "O Projeto Tor é uma organização sem fins lucrativos - EUA 501(c)(3) -, dedicada à pesquisa, ao desenvolvimento e à educação relacionados ao anonimato e à privacidade na Internet.">
-<!ENTITY aboutTor.learnMore.label "Informe-se mais sobre o Projeto Tor"">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/pt-BR/browserOnboarding.properties b/src/chrome/locale/pt-BR/browserOnboarding.properties
new file mode 100644
index 00000000..3d39f44a
--- /dev/null
+++ b/src/chrome/locale/pt-BR/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Bem Vindo
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privacidade
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explorar
+
+onboarding.tour-tor-security=Segurança
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Serviços Onion
+onboarding.tour-tor-onion-services.title=Serviços Onion
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/pt-BR/torbutton.properties b/src/chrome/locale/pt-BR/torbutton.properties
index 0a8453c4..09ea7581 100644
--- a/src/chrome/locale/pt-BR/torbutton.properties
+++ b/src/chrome/locale/pt-BR/torbutton.properties
@@ -31,10 +31,10 @@ torbutton.popup.confirm_plugins = Plugins como o Flash podem prejudicar sua priv
torbutton.popup.never_ask_again = Não me pergunte novamente
torbutton.popup.confirm_newnym = O navegador Tor fechará todas as janelas e abas. Todas as sessões de websites serão perdidas.\n\nVocê deseja reiniciar o navegador Tor agora para reiniciar a sua identidade?\n\n
-torbutton.slider_notification = O menu cebola verde agora dispõe de uma opcão que lhe permite ajustar o seu nivel de seguranca. Dê uma conferida!
+torbutton.slider_notification = O menu cebola verde agora dispõe de uma opção que lhe permite ajustar o seu nivel de seguranca. Dê uma conferida!
torbutton.slider_notification_button = Abra as definições de segurança.
-torbutton.maximize_warning = Maximizar o Navegador Tor pode permitir aos websites determinar o tamanho do seu monitor, que pode ser usado para rastreá-lo. Nós recomendamos que você deixe a janela do Navegador Tor no seu tamanho original.
+torbutton.maximize_warning = Maximizar o Navegador Tor pode permitir que websites determinem o tamanho do monitor, o que pode ser usado para rastreá-lo. Recomenda-se deixar a janela do Navegador Tor no seu tamanho original.
# Canvas permission prompt. Strings are kept here for ease of translation.
canvas.siteprompt=Este website (%S) tentou extrair dados de imagem CANVAS HTML5, que podem ser usados para identificar o seu computador.\n\nVocê deseja que o Navegador Tor permita que este website extraia dados de imagem CANVAS HTML5?
@@ -48,11 +48,11 @@ canvas.neverAccessKey=e
# Profile/startup error messages. Strings are kept here for ease of translation.
# LOCALIZATION NOTE: %S is the application name.
profileProblemTitle=Problema com o Perfil %S
-profileReadOnly=Não é possível executar %S a partir de um sistema de arquivo "somente-leitura". Por favor, copie %S em um outro local antes de tentar utilizá-lo.
-profileReadOnlyMac=Não é possível executar %S a partir de um sistema de arquivo "somente-leitura". Por favor, copie %S no seu Desktop ou em uma pasta de Aplicações antes de tentar utilizá-lo.\n
+profileReadOnly=Não é possível executar %S a partir de um sistema de arquivo "somente-leitura". Copie %S em um outro local antes de tentar usá-lo.
+profileReadOnlyMac=Não é possível executar %S a partir de um sistema de arquivo "somente-leitura". Copie %S no seu Desktop ou em uma pasta de Aplicações antes de tentar usá-lo.\n
profileAccessDenied=%S não possui permissão para acessar o perfil. Por favor, ajuste as suas permissões de arquivo de sistema e tente novamente.
-profileMigrationFailed=Migração de seu perfil %S existente falhou.\nNovas configurações serão utilizadas.
+profileMigrationFailed=Migração de seu perfil %S existente falhou.\nNovas configurações serão usadas.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=Conexão criptografada (Serviço Onion, %1$S, %2$S bit keys, %3$S)
+pageInfo_OnionEncryption=Conexão criptografada (Serviço Onion)
diff --git a/src/chrome/locale/ru/aboutTor.dtd b/src/chrome/locale/ru/aboutTor.dtd
index f12276e0..f30e3c4a 100644
--- a/src/chrome/locale/ru/aboutTor.dtd
+++ b/src/chrome/locale/ru/aboutTor.dtd
@@ -1,46 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "О проекте Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "ВНИМАНИЕ: Вы используете старую версию браузера.">
-<!ENTITY aboutTor.outOfDateTorOff.label "КРОМЕ ТОГО, данный браузер устарел.">
-<!ENTITY aboutTor.outOfDate2.label "Нажмите на "луковицу"и затем выберите "Проверить обновления браузера Tor"">
-
-<!ENTITY aboutTor.check.label "Проверить настройки сети Tor">
-
-<!ENTITY aboutTor.success.label "Вас приветствует Tor Browser">
-<!ENTITY aboutTor.success2.label "Сеть Tor подключена.">
-<!ENTITY aboutTor.success3.label "Теперь Вы можете просматривать интернет-сайты в анонимном режиме.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Что-то пошло не так!">
<!ENTITY aboutTor.failure2.label "Tor не работает в этом браузере.">
-<!ENTITY aboutTor.search.label "Поиск">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Дополнительные сведения:">
-<!ENTITY aboutTor.torInfo2.label "Страна и IP-адрес">
-<!ENTITY aboutTor.torInfo3.label "Конечный узел:">
-<!ENTITY aboutTor.torInfo4.label "Данный сервер не собирает какую-либо информацию о посетителях.">
-<!ENTITY aboutTor.whatnextQuestion.label "Что дальше?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor НЕ является исчерпывающим средством для анонимного использования сети! Возможно, чтобы обезопасить свои личные данные, Вам придется изменить некоторые привычки работы в Интернете.">
-<!ENTITY aboutTor.whatnext.label "Рекомендации для сохранения анонимности »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Вопросы?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "М">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Руководство использования Tor Browser.">
-<!ENTITY aboutTor.helpInfo1.label "Вы можете помочь!">
-<!ENTITY aboutTor.helpInfo2.label "Есть много способов сделать сеть Tor более быстрой и устойчивой:">
-<!ENTITY aboutTor.helpInfo3.label "Запустить цепочку Tor »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html#ru">
-<!ENTITY aboutTor.helpInfo4.label "Станьте нашим добровольцем »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html#ru">
-<!ENTITY aboutTor.helpInfo5.label "Сделайте взнос »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html#ru">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Проект Tor - это пользующаяся привилегиями США 501(c)(3) некоммерческая организация, целью которой является проведение исследований, развитие и образование в сфере анонимности и личных данных онлайн.">
-<!ENTITY aboutTor.learnMore.label "Узнайте больше о проекте Tor »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html#ru
-">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html#ru">
diff --git a/src/chrome/locale/ru/browserOnboarding.properties b/src/chrome/locale/ru/browserOnboarding.properties
new file mode 100644
index 00000000..d7f4a352
--- /dev/null
+++ b/src/chrome/locale/ru/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Добро пожаловать
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Приватность
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Обзор
+
+onboarding.tour-tor-security=Безопасность
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion-сервисы
+onboarding.tour-tor-onion-services.title=Onion-сервисы
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/ru/torbutton.properties b/src/chrome/locale/ru/torbutton.properties
index d3ccbd89..687a52e2 100644
--- a/src/chrome/locale/ru/torbutton.properties
+++ b/src/chrome/locale/ru/torbutton.properties
@@ -54,5 +54,5 @@ profileAccessDenied=У %S нет разрешения на доступ к пр
profileMigrationFailed=Перемещение вашего существующего %S профиля не удалось.\nБудут использоваться новые настройки.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=Соединение зашифровано (Onion Service, %1$S, %2$S битные ключи, %3$S)
+pageInfo_OnionEncryption=Соединение зашифровано (Onion Service)
diff --git a/src/chrome/locale/sv/aboutTor.dtd b/src/chrome/locale/sv/aboutTor.dtd
index 1e4b30fc..2a02c639 100644
--- a/src/chrome/locale/sv/aboutTor.dtd
+++ b/src/chrome/locale/sv/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Om Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "VARNING: den här webbläsaren är inte uppdaterad.">
-<!ENTITY aboutTor.outOfDateTorOff.label "DESSUTOM, denna webbläsare är ej uppdaterad.">
-<!ENTITY aboutTor.outOfDate2.label "Klicka på Tor-löken och välj sedan 'Sök efter uppdateringar för Tor webbläsare'.">
-
-<!ENTITY aboutTor.check.label "Testa nätverksinställningarna för Tor">
-
-<!ENTITY aboutTor.success.label "Välkommen till Tor-webbläsaren">
-<!ENTITY aboutTor.success2.label "Ansluten till Tor-nätverket.">
-<!ENTITY aboutTor.success3.label "Du kan nu surfa på nätet anonymt.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Någonting gick fel!">
<!ENTITY aboutTor.failure2.label "Tor fungerar inte i den här webbläsaren.">
-<!ENTITY aboutTor.search.label "Sök">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Ytterligare information:">
-<!ENTITY aboutTor.torInfo2.label "Land och IP-adress:">
-<!ENTITY aboutTor.torInfo3.label "Exitnod:">
-<!ENTITY aboutTor.torInfo4.label "Den här servern sparar inte någon information om besökare.">
-<!ENTITY aboutTor.whatnextQuestion.label "Och nu då?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor är INTE allt som behövs för att vara anonym på nätet! Du behöver kanske ändra några av dina vanor för att säkerställa att din identitet förblir skyddad.">
-<!ENTITY aboutTor.whatnext.label "Tips på hur man förblir anonym »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Frågor?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser användarmanual">
-<!ENTITY aboutTor.helpInfo1.label "Du kan hjälpa till!">
-<!ENTITY aboutTor.helpInfo2.label "Det finns många sätt du kan hjälpa till med att göra Tor-nätverket snabbare och säkrare:">
-<!ENTITY aboutTor.helpInfo3.label "Kör ett Tor-relä »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Erbjud din hjälp »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Gör en donation »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Tor projektet är en US 501(c)(3) non-profit organisation som utför forskning, utveckling, och utbildning inom online anonymitet och integritet.">
-<!ENTITY aboutTor.learnMore.label "Mer information om Tor-projektet »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/sv/browserOnboarding.properties b/src/chrome/locale/sv/browserOnboarding.properties
new file mode 100644
index 00000000..6ad7b625
--- /dev/null
+++ b/src/chrome/locale/sv/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Sekretess
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Säkerhet
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion tjänster
+onboarding.tour-tor-onion-services.title=Onion tjänster
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/tr/aboutTor.dtd b/src/chrome/locale/tr/aboutTor.dtd
index 9ebd8452..f0f68b49 100644
--- a/src/chrome/locale/tr/aboutTor.dtd
+++ b/src/chrome/locale/tr/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Tor Hakkında">
-<!ENTITY aboutTor.outOfDateTorOn.label "UYARI: bu tarayıcı güncel değil.">
-<!ENTITY aboutTor.outOfDateTorOff.label "AYRICA, bu tarayıcı güncel değil.">
-<!ENTITY aboutTor.outOfDate2.label "Soğan simgesine tıklayın ve ardından Tor Browser Güncellemesini denetleyin.">
-
-<!ENTITY aboutTor.check.label "Tor Ağ Ayarlarını Sınayın">
-
-<!ENTITY aboutTor.success.label "Tor Browser Uygulamasına Hoş Geldiniz">
-<!ENTITY aboutTor.success2.label "Tor ağına bağlanıldı.">
-<!ENTITY aboutTor.success3.label "Artık İnternet'te özgürce ve anonim olarak dolaşabilirsiniz.">
+<!ENTITY aboutTor.ready.label "Keşfet. Gizlice.">
+<!ENTITY aboutTor.ready2.label "Dünyanın en kişisel web tarama deneyimine hazırsınız.">
<!ENTITY aboutTor.failure.label "Bir Şeyler Ters Gitti!">
<!ENTITY aboutTor.failure2.label "Tor bu tarayıcı ile çalışmıyor.">
-<!ENTITY aboutTor.search.label "Arama">
+<!ENTITY aboutTor.search.label "DuckDuckGo ile Arayın">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Ek Bilgiler:">
-<!ENTITY aboutTor.torInfo2.label "Ülke ve IP Adresi:">
-<!ENTITY aboutTor.torInfo3.label "Çıkış Noktası:">
-<!ENTITY aboutTor.torInfo4.label "Bu sunucu ziyaretçiler hakkında herhangi bir bilgi toplamaz.">
-<!ENTITY aboutTor.whatnextQuestion.label "Şimdi ne olacak?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor, anonim kalmanız için gerek duyacağınız her şeyi sağlamaz! Kimliğinizin güvende kalması için bazı İnternet alışkanlıklarınızı değiştirmeniz gerekebilir.">
-<!ENTITY aboutTor.whatnext.label "Anonim Kalma İpuçları »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Sorularınız mı var?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Tor Browser Rehberine Bakın">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Kullanım Kılavuzu">
-<!ENTITY aboutTor.helpInfo1.label "Yardım Edebilirsiniz!">
-<!ENTITY aboutTor.helpInfo2.label "Tor ağını daha hızlı güçlü kılmaya yardımcı olabilmenin çeşitli yolları var:">
-<!ENTITY aboutTor.helpInfo3.label "Tor Aktarıcı Noktası Çalıştır »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Gönüllü Destekte Bulunun »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Bağış Yapın »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Rehberi">
-<!ENTITY aboutTor.footer.label "Tor Projesi, ABD 501(c)(3) kapsamında çevrim içi gizlilik ve mahremiyet üzerine araştırma, geliştirme ve eğitim çalışmaları yapan ve kar amacı gütmeyen bir kuruluştur.">
-<!ENTITY aboutTor.learnMore.label "Tor Projesi hakkında daha çok şey öğrenin »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "Tor Projesi, US 501(c)(3) koşullarına uygun olarak, özgür ve açık kaynaklı anonimlik ve kişisel gizlilik teknolojileri geliştirerek insan hakları ve özgürlüklerini ileriye götürmeyi, bu teknolojilerin bilimsel ve kültürel olarak bilinirliğini arttırmayı ve herkes tarafından erişebilmesini sağlamak amacıyla çalışan, kar amacı gütmeyen bir kuruluştur.">
+<!ENTITY aboutTor.getInvolved.label "Katkıda Bulunun »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/tr/browserOnboarding.properties b/src/chrome/locale/tr/browserOnboarding.properties
new file mode 100644
index 00000000..22bd337d
--- /dev/null
+++ b/src/chrome/locale/tr/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Courier'a
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Gizlilik
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Keşfet
+
+onboarding.tour-tor-security=Güvenlik
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion Hizmetleri
+onboarding.tour-tor-onion-services.title=Onion Hizmetleri
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/tr/torbutton.dtd b/src/chrome/locale/tr/torbutton.dtd
index ab781315..052c0932 100644
--- a/src/chrome/locale/tr/torbutton.dtd
+++ b/src/chrome/locale/tr/torbutton.dtd
@@ -1,6 +1,6 @@
<!ENTITY torbutton.context_menu.new_identity "Yeni Kimlik">
<!ENTITY torbutton.context_menu.new_identity_key "I">
-<!ENTITY torbutton.context_menu.new_circuit "Bu site için Tor devresini yenile">
+<!ENTITY torbutton.context_menu.new_circuit "Bu Sitenin Tor Devresini Yenile">
<!ENTITY torbutton.context_menu.new_circuit_key "C">
<!ENTITY torbutton.context_menu.preferences "Güvenlik Ayarları...">
<!ENTITY torbutton.context_menu.preferences.key "S">
diff --git a/src/chrome/locale/vi/aboutTor.dtd b/src/chrome/locale/vi/aboutTor.dtd
index 4bc3ad53..c79065b5 100644
--- a/src/chrome/locale/vi/aboutTor.dtd
+++ b/src/chrome/locale/vi/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "Thông tin về Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "CẢNH BÁO: trình duyệt này đã lỗi thời">
-<!ENTITY aboutTor.outOfDateTorOff.label "Thêm nữa, trình duyệt này đã lỗi thời.">
-<!ENTITY aboutTor.outOfDate2.label "Bấm chuột vào củ hành và sau đó chọn Kiểm tra bản cập nhật của Trình duyệt Tor">
-
-<!ENTITY aboutTor.check.label "Thử cài đặt mạng lưới Tor">
-
-<!ENTITY aboutTor.success.label "Chào mừng đến với Trình duyệt Tor">
-<!ENTITY aboutTor.success2.label "Đã kết nối với mạng lưới Tor.">
-<!ENTITY aboutTor.success3.label "Bây giờ bạn sẽ tự do lướt web ẩn danh.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Có gì đó đã sai!">
<!ENTITY aboutTor.failure2.label "Tor không hoạt động trên trình duyệt này.">
-<!ENTITY aboutTor.search.label "Tìm kiếm">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Thông tin thêm:">
-<!ENTITY aboutTor.torInfo2.label "Quốc gia & Địa chỉ IP:">
-<!ENTITY aboutTor.torInfo3.label "Thoát khỏi giao điểm:">
-<!ENTITY aboutTor.torInfo4.label "Máy chủ này không ghi lại bất kỳ thông tin nào của khách truy cập.">
-<!ENTITY aboutTor.whatnextQuestion.label "Điều gì tiếp theo?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor KHÔNG phải là tất cả những gì bạn cần để ẩn danh! Bạn cần nên thay đổi một vài thói quen lướt net để chắc chắn rằng xác minh danh tính sẽ an toàn.">
-<!ENTITY aboutTor.whatnext.label "Gợi ý cho việc ẩn danh »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Những câu hỏi?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Hướng dẫn sử dụng Trình duyệt Tor">
-<!ENTITY aboutTor.helpInfo1.label "Bạn có thể giúp đỡ!">
-<!ENTITY aboutTor.helpInfo2.label "Có nhiều cách mà bạn có thể giúp mạng Tor nhanh hơn và tốt hơn.">
-<!ENTITY aboutTor.helpInfo3.label "Chạy một đầu mối tiếp sức Tor »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Tình nguyện những dịch vụ của bạn »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Ủng hộ »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Dự án Tor là một tổ chức không lợi nhuận theo US 501(c)(3) chuyên về nghiên cứu, phát triển và giáo dục về vô danh vàjavascript:; riêng tư trực tuyến.">
-<!ENTITY aboutTor.learnMore.label "Tìm hiểu thêm về Tor Project">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/vi/aboutTor.properties b/src/chrome/locale/vi/aboutTor.properties
index 5542fac9..56a00af1 100644
--- a/src/chrome/locale/vi/aboutTor.properties
+++ b/src/chrome/locale/vi/aboutTor.properties
@@ -17,4 +17,4 @@ aboutTor.donationBanner.tagline1=Protecting Journalists, Whistleblowers, & Activ
aboutTor.donationBanner.tagline2=Networking Freedom Worldwide
aboutTor.donationBanner.tagline3=Freedom Online
aboutTor.donationBanner.tagline4=Fostering Free Expression Worldwide
-aboutTor.donationBanner.tagline5=Protecting the Privacy of Millions Every Day
+aboutTor.donationBanner.tagline5=Bảo vệ riêng tư của hàng triệu người mỗi ngày
diff --git a/src/chrome/locale/vi/browserOnboarding.properties b/src/chrome/locale/vi/browserOnboarding.properties
new file mode 100644
index 00000000..4c63fa1c
--- /dev/null
+++ b/src/chrome/locale/vi/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Xin chào
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Riêng tư
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Bảo mật
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Các Dịch vụ Onion
+onboarding.tour-tor-onion-services.title=Các Dịch vụ Onion
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/vi/torbutton.dtd b/src/chrome/locale/vi/torbutton.dtd
index 6bbd492d..77f447b9 100644
--- a/src/chrome/locale/vi/torbutton.dtd
+++ b/src/chrome/locale/vi/torbutton.dtd
@@ -34,18 +34,18 @@
<!ENTITY torbutton.prefs.sec_caption "Mức độ Bảo mật">
<!ENTITY torbutton.prefs.sec_caption_tooltip "Những Người điều chỉnh an ninh để cho bạn vô hiệu một vài tính năng của trình duyệt mà có thể làm trình duyệt của bạn dễ bị tổn thương đổi với những cố gắng tấn công.">
<!ENTITY torbutton.prefs.sec_standard_label "Chuẩn">
-<!ENTITY torbutton.prefs.sec_standard_description "All Tor Browser and website features are enabled.">
-<!ENTITY torbutton.prefs.sec_safer_label "Safer">
-<!ENTITY torbutton.prefs.sec_safer_description "Disables website features that are often dangerous, causing some sites to lose functionality.">
-<!ENTITY torbutton.prefs.sec_safer_list_label "At the safer setting:">
-<!ENTITY torbutton.prefs.sec_safest_label "Safest">
-<!ENTITY torbutton.prefs.sec_safest_description "Only allows website features required for static sites and basic services. These changes affect images, media, and scripts.">
-<!ENTITY torbutton.prefs.sec_safest_list_label "At the safest setting:">
+<!ENTITY torbutton.prefs.sec_standard_description "Tất cả các tính năng của Trình duyệt Tor và trang web đều được bật.">
+<!ENTITY torbutton.prefs.sec_safer_label "An toàn hơn">
+<!ENTITY torbutton.prefs.sec_safer_description "Vô hiệu hóa tính năng website thường gây nguy hiểm, khiến một số trang web mất chức năng.">
+<!ENTITY torbutton.prefs.sec_safer_list_label "Ở cài đặt an toàn hơn:">
+<!ENTITY torbutton.prefs.sec_safest_label "An toàn nhất">
+<!ENTITY torbutton.prefs.sec_safest_description "Chỉ cho phép các tính năng trang web được yêu cầu cho các trang web tĩnh và các dịch vụ cơ bản. Những thay đổi này ảnh hưởng đến hình ảnh, phương tiện và tập lệnh.">
+<!ENTITY torbutton.prefs.sec_safest_list_label "Ở cài đặt an toàn nhất:">
<!ENTITY torbutton.prefs.sec_learn_more_label "Biết thêm">
-<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript is disabled on non-HTTPS sites.">
+<!ENTITY torbutton.prefs.sec_js_on_https_sites_only "JavaScript bị vô hiệu trên các trang web không có HTTPS.">
<!ENTITY torbutton.prefs.sec_js_disabled "JavaScript mặc định bị vô hiệu trên tất cả các trang.">
-<!ENTITY torbutton.prefs.sec_limit_typography "Some fonts and math symbols are disabled.">
-<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Some fonts, icons, math symbols, and images are disabled.">
-<!ENTITY torbutton.prefs.sec_click_to_play_media "Audio and video (HTML5 media) are click-to-play.">
-<!ENTITY torbutton.circuit_display.title "Tor Circuit">
-<!ENTITY torbutton.circuit_display.new_circuit "New Circuit for this Site">
+<!ENTITY torbutton.prefs.sec_limit_typography "Một số phông chữ và ký hiêu toán học bị vô hiệu.">
+<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "Một số phông chữ, biểu tượng, và hình ảnh bị vô hiệu.">
+<!ENTITY torbutton.prefs.sec_click_to_play_media "Âm thanh và video (HTML5 media) phải bấm-để-phát. ">
+<!ENTITY torbutton.circuit_display.title "Mạch Tor">
+<!ENTITY torbutton.circuit_display.new_circuit "Mạch Tor mới cho trang này">
diff --git a/src/chrome/locale/vi/torbutton.properties b/src/chrome/locale/vi/torbutton.properties
index aa10e5f5..d304b7e8 100644
--- a/src/chrome/locale/vi/torbutton.properties
+++ b/src/chrome/locale/vi/torbutton.properties
@@ -5,8 +5,8 @@ torbutton.circuit_display.this_browser = Trình duyệt này
torbutton.circuit_display.relay = Tiếp sức
torbutton.circuit_display.tor_bridge = Cầu nối
torbutton.circuit_display.unknown_country = Đất nước không được biết đến
-torbutton.circuit_display.guard = Guard
-torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.guard = Bảo vệ
+torbutton.circuit_display.guard_note = Nút [Bảo vệ} của bạn có thể không thay đổi.
torbutton.circuit_display.learn_more = Biết thêm
torbutton.content_sizer.margin_tooltip = Trình duyệt Tor thêm lề này để làm cho chiều rộng và chiều cao của màn hình của bạn ít dễ bị phân biệt hơn, và vì thế giảm khả năng của những người theo dõi bạn trực tuyến.
torbutton.panel.tooltip.disabled = Nhấn để bật Tor
@@ -54,5 +54,5 @@ profileAccessDenied=%S không được phép truy cập cấu hình. Vui lòng
profileMigrationFailed=Việc di chuyển hồ sơ %S hiện tại của bạn đã thất bại.\nNhững cài đặt mới sẽ được sử dụng.
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=Đã mã hóa kết nối (Onion Service, %1$S, %2$S bit keys, %3$S)
+pageInfo_OnionEncryption=Đã mã hóa kết nối (Onion Service)
diff --git a/src/chrome/locale/zh-CN/aboutTor.dtd b/src/chrome/locale/zh-CN/aboutTor.dtd
index 27283582..47d2a899 100644
--- a/src/chrome/locale/zh-CN/aboutTor.dtd
+++ b/src/chrome/locale/zh-CN/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "关于 Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "警告:此浏览器版本过旧。">
-<!ENTITY aboutTor.outOfDateTorOff.label "另外,该浏览器并非最新版本。">
-<!ENTITY aboutTor.outOfDate2.label "点击洋葱图标,然后选择“Tor Browser 检查更新”。">
-
-<!ENTITY aboutTor.check.label "测试 Tor 网络设置">
-
-<!ENTITY aboutTor.success.label "欢迎使用 Tor Browser">
-<!ENTITY aboutTor.success2.label "已连接到 Tor 网络。">
-<!ENTITY aboutTor.success3.label "现在即可自由地匿名访问互联网。">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "出错了!">
<!ENTITY aboutTor.failure2.label "Tor 无法在该浏览器下运行。">
-<!ENTITY aboutTor.search.label "安全的搜索引擎">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "更多信息:">
-<!ENTITY aboutTor.torInfo2.label "国家与 IP 地址:">
-<!ENTITY aboutTor.torInfo3.label "出口节点:">
-<!ENTITY aboutTor.torInfo4.label "本服务器不记录有关访问者的任何信息。">
-<!ENTITY aboutTor.whatnextQuestion.label "下一步?">
-<!ENTITY aboutTor.whatnextAnswer.label "仅仅使用 Tor 无法实现匿名浏览。为了确保身份安全,你可能需要改变某些浏览习惯。">
-<!ENTITY aboutTor.whatnext.label "匿名提示 »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "有疑问?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser 用户手册">
-<!ENTITY aboutTor.helpInfo1.label "你也可以帮忙!">
-<!ENTITY aboutTor.helpInfo2.label "可通过很多方式提供帮助,让 Tor 网络变得更快更强大:">
-<!ENTITY aboutTor.helpInfo3.label "运行 Tor 中继节点 »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "提供志愿服务 »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "捐助 »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "The Tor Project 是一家美国 501(c)(3) 非营利组织,致力于在线匿名与隐私的研究、开发与教育。">
-<!ENTITY aboutTor.learnMore.label "了解更多有关 The Tor Project 的信息 »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/zh-CN/browserOnboarding.properties b/src/chrome/locale/zh-CN/browserOnboarding.properties
new file mode 100644
index 00000000..aa157e16
--- /dev/null
+++ b/src/chrome/locale/zh-CN/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=欢迎
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=隐私
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=安全
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=洋葱服务
+onboarding.tour-tor-onion-services.title=洋葱服务
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/zh-TW/aboutTor.dtd b/src/chrome/locale/zh-TW/aboutTor.dtd
index 7c5d11cf..e5b4e099 100644
--- a/src/chrome/locale/zh-TW/aboutTor.dtd
+++ b/src/chrome/locale/zh-TW/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "關於洋蔥路由">
-<!ENTITY aboutTor.outOfDateTorOn.label "警告:此瀏覽器的版本已經過時。">
-<!ENTITY aboutTor.outOfDateTorOff.label "並且,此瀏覽器已過時。">
-<!ENTITY aboutTor.outOfDate2.label "點擊洋蔥按鈕然後選擇檢查洋蔥路由瀏覽器更新">
-
-<!ENTITY aboutTor.check.label "測試洋蔥路由網路設定">
-
-<!ENTITY aboutTor.success.label "歡迎使用洋蔥路由瀏覽器">
-<!ENTITY aboutTor.success2.label "已經連接上洋蔥路由網路">
-<!ENTITY aboutTor.success3.label "您現在可以自由自在地以匿名狀態瀏覽網際網路。">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "發生錯誤!">
<!ENTITY aboutTor.failure2.label "洋蔥路由無法在此瀏覽器中運作。">
-<!ENTITY aboutTor.search.label "搜尋">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "其他資訊:">
-<!ENTITY aboutTor.torInfo2.label "國家和 IP 位址:">
-<!ENTITY aboutTor.torInfo3.label "出口節點:">
-<!ENTITY aboutTor.torInfo4.label "此伺服器不會記錄任何有關訪客的資訊。">
-<!ENTITY aboutTor.whatnextQuestion.label "下一步?">
-<!ENTITY aboutTor.whatnextAnswer.label "洋蔥路由不是確保您可以匿名瀏覽的萬靈丹!您仍需要改變一些個人的上網瀏覽習慣,以確保您個人身份的安全。">
-<!ENTITY aboutTor.whatnext.label "保持匿名的秘訣 »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "有什麼問題?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "洋蔥路由瀏覽器之使用者手冊">
-<!ENTITY aboutTor.helpInfo1.label "您可以幫忙!">
-<!ENTITY aboutTor.helpInfo2.label "您可以透過很多方法幫助讓洋蔥路由網路更快速且更強大:">
-<!ENTITY aboutTor.helpInfo3.label "架設營運一個洋蔥路由的中繼節點 »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "貢獻您的服務 »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "捐贈 »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "Tor Project 是一個美國 501(c)(3) 非營利組織,致力於線上匿名與隱私的研究、開發和教育。">
-<!ENTITY aboutTor.learnMore.label "了解更多 Tor Project 相關資訊 »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/zh-TW/browserOnboarding.properties b/src/chrome/locale/zh-TW/browserOnboarding.properties
new file mode 100644
index 00000000..ca84f692
--- /dev/null
+++ b/src/chrome/locale/zh-TW/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=歡迎
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=隱私
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=探索
+
+onboarding.tour-tor-security=安全
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=洋蔥服務
+onboarding.tour-tor-onion-services.title=洋蔥服務
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/src/chrome/locale/zh-TW/torbutton.dtd b/src/chrome/locale/zh-TW/torbutton.dtd
index 3cb32b19..0ddbd823 100644
--- a/src/chrome/locale/zh-TW/torbutton.dtd
+++ b/src/chrome/locale/zh-TW/torbutton.dtd
@@ -47,5 +47,5 @@
<!ENTITY torbutton.prefs.sec_limit_typography "有些字形與數學符號被停用">
<!ENTITY torbutton.prefs.sec_limit_graphics_and_typography "有些字型,圖標,數學符號與圖片被停用">
<!ENTITY torbutton.prefs.sec_click_to_play_media "聲音和影片 (HTML5 媒體) 要點擊播放">
-<!ENTITY torbutton.circuit_display.title "Tor Circuit">
-<!ENTITY torbutton.circuit_display.new_circuit "New Circuit for this Site">
+<!ENTITY torbutton.circuit_display.title "Tor 迴路">
+<!ENTITY torbutton.circuit_display.new_circuit "建立新的迴路來連接上此網站">
diff --git a/src/chrome/locale/zh-TW/torbutton.properties b/src/chrome/locale/zh-TW/torbutton.properties
index 864d7fee..bc31f27e 100644
--- a/src/chrome/locale/zh-TW/torbutton.properties
+++ b/src/chrome/locale/zh-TW/torbutton.properties
@@ -6,7 +6,7 @@ torbutton.circuit_display.relay = 中繼
torbutton.circuit_display.tor_bridge = 橋接器
torbutton.circuit_display.unknown_country = 未知的國家
torbutton.circuit_display.guard = Guard
-torbutton.circuit_display.guard_note = Your [Guard] node may not change.
+torbutton.circuit_display.guard_note = 你的[Guard]節點可能不會更改。
torbutton.circuit_display.learn_more = 繼續閱讀
torbutton.content_sizer.margin_tooltip = 洋蔥路由瀏覽器特意將視窗邊框的寬度及高度重新設置,以便讓您的瀏覽器狀態資訊看起來更為普通,如此可以減少您的網路活動被識別並追蹤的可能性。
torbutton.panel.tooltip.disabled = 按一下以啟用洋蔥路由
@@ -54,5 +54,5 @@ profileAccessDenied=%S 沒有足夠的存取權限,請重新調整您的檔案
profileMigrationFailed=無法轉移至您現存的%S資料夾。\n將使用新設定。
# .Onion Page Info prompt. Strings are kept here for ease of translation.
-pageInfo_OnionEncryptionWithBitsAndProtocol=Connection Encrypted (Onion Service, %1$S, %2$S bit keys, %3$S)
-pageInfo_OnionEncryption=Connection Encrypted (Onion Service)
+pageInfo_OnionEncryptionWithBitsAndProtocol=連接加密(洋蔥服務, %1$S, %2$S bit keys, %3$S)
+pageInfo_OnionEncryption=連接加密(洋蔥服務)
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1412081 - Add ability to blacklist file paths on Unix platforms. r=mayhemer, a=RyanVM
by gk@torproject.org 16 Aug '18
by gk@torproject.org 16 Aug '18
16 Aug '18
commit dae353ff5f2d033b9b87ebf2a5f833c87068d4a3
Author: Valentin Gosu <valentin.gosu(a)gmail.com>
Date: Thu Jun 21 00:09:15 2018 +0200
Bug 1412081 - Add ability to blacklist file paths on Unix platforms. r=mayhemer, a=RyanVM
--HG--
extra : source : 92ff98e2731eac0558cbc7e9c71e521246772240
extra : amend_source : e01976f9592cd2635c075cc6031e81a1b1e1b8bd
---
dom/ipc/ContentPrefs.cpp | 1 +
xpcom/io/FilePreferences.cpp | 329 ++++++++++++++++----------
xpcom/io/FilePreferences.h | 6 +
xpcom/io/nsLocalFileUnix.cpp | 58 +++++
xpcom/tests/gtest/TestFilePreferencesUnix.cpp | 203 ++++++++++++++++
xpcom/tests/gtest/TestFilePreferencesWin.cpp | 4 +
xpcom/tests/gtest/moz.build | 5 +
7 files changed, 485 insertions(+), 121 deletions(-)
diff --git a/dom/ipc/ContentPrefs.cpp b/dom/ipc/ContentPrefs.cpp
index d011c7393125..ac1ea109fc9f 100644
--- a/dom/ipc/ContentPrefs.cpp
+++ b/dom/ipc/ContentPrefs.cpp
@@ -270,6 +270,7 @@ const char* mozilla::dom::ContentPrefs::gEarlyPrefs[] = {
"network.dns.disablePrefetch",
"network.dns.disablePrefetchFromHTTPS",
"network.file.disable_unc_paths",
+ "network.file.path_blacklist",
"network.http.tailing.enabled",
"network.jar.block-remote-files",
"network.loadinfo.skip_type_assertion",
diff --git a/xpcom/io/FilePreferences.cpp b/xpcom/io/FilePreferences.cpp
index 3ad0e0ee19e0..9467c055d9bf 100644
--- a/xpcom/io/FilePreferences.cpp
+++ b/xpcom/io/FilePreferences.cpp
@@ -6,7 +6,11 @@
#include "FilePreferences.h"
+#include "mozilla/ClearOnShutdown.h"
#include "mozilla/Preferences.h"
+#include "mozilla/StaticPtr.h"
+#include "mozilla/Tokenizer.h"
+#include "mozilla/Unused.h"
#include "nsAppDirectoryServiceDefs.h"
#include "nsDirectoryServiceDefs.h"
#include "nsDirectoryServiceUtils.h"
@@ -15,15 +19,37 @@ namespace mozilla {
namespace FilePreferences {
static bool sBlockUNCPaths = false;
-typedef nsTArray<nsString> Paths;
+typedef nsTArray<nsString> WinPaths;
+static StaticAutoPtr<WinPaths> sWhitelist;
-static Paths& PathArray()
+static WinPaths& PathWhitelist()
{
- static Paths sPaths;
- return sPaths;
+ if (!sWhitelist) {
+ sWhitelist = new nsTArray<nsString>();
+ ClearOnShutdown(&sWhitelist);
+ }
+ return *sWhitelist;
+}
+
+#ifdef XP_WIN
+typedef char16_t char_path_t;
+#else
+typedef char char_path_t;
+#endif
+
+typedef nsTArray<nsTString<char_path_t>> Paths;
+static StaticAutoPtr<Paths> sBlacklist;
+
+static Paths& PathBlacklist()
+{
+ if (!sBlacklist) {
+ sBlacklist = new nsTArray<nsTString<char_path_t>>();
+ ClearOnShutdown(&sBlacklist);
+ }
+ return *sBlacklist;
}
-static void AllowDirectory(char const* directory)
+static void AllowUNCDirectory(char const* directory)
{
nsCOMPtr<nsIFile> file;
NS_GetSpecialDirectory(directory, getter_AddRefs(file));
@@ -43,180 +69,202 @@ static void AllowDirectory(char const* directory)
return;
}
- if (!PathArray().Contains(path)) {
- PathArray().AppendElement(path);
+ if (!PathWhitelist().Contains(path)) {
+ PathWhitelist().AppendElement(path);
}
}
void InitPrefs()
{
sBlockUNCPaths = Preferences::GetBool("network.file.disable_unc_paths", false);
+
+ PathBlacklist().Clear();
+ nsAutoCString blacklist;
+ Preferences::GetCString("network.file.path_blacklist", blacklist);
+
+ Tokenizer p(blacklist);
+ while (!p.CheckEOF()) {
+ nsCString path;
+ Unused << p.ReadUntil(Tokenizer::Token::Char(','), path);
+ path.Trim(" ");
+ if (!path.IsEmpty()) {
+#ifdef XP_WIN
+ PathBlacklist().AppendElement(NS_ConvertASCIItoUTF16(path));
+#else
+ PathBlacklist().AppendElement(path);
+#endif
+ }
+ Unused << p.CheckChar(',');
+ }
}
void InitDirectoriesWhitelist()
{
// NS_GRE_DIR is the installation path where the binary resides.
- AllowDirectory(NS_GRE_DIR);
+ AllowUNCDirectory(NS_GRE_DIR);
// NS_APP_USER_PROFILE_50_DIR and NS_APP_USER_PROFILE_LOCAL_50_DIR are the two
// parts of the profile we store permanent and local-specific data.
- AllowDirectory(NS_APP_USER_PROFILE_50_DIR);
- AllowDirectory(NS_APP_USER_PROFILE_LOCAL_50_DIR);
+ AllowUNCDirectory(NS_APP_USER_PROFILE_50_DIR);
+ AllowUNCDirectory(NS_APP_USER_PROFILE_LOCAL_50_DIR);
}
namespace { // anon
-class Normalizer
+template <typename TChar>
+class TNormalizer
{
public:
- Normalizer(const nsAString& aFilePath, const char16_t aSeparator);
- bool Get(nsAString& aNormalizedFilePath);
-
-private:
- bool ConsumeItem();
- bool ConsumeSeparator();
- bool IsEOF() { return mFilePathCursor == mFilePathEnd; }
+ TNormalizer(const nsTSubstring<TChar>& aFilePath, const TChar aSeparator)
+ : mFilePathCursor(aFilePath.BeginReading())
+ , mFilePathEnd(aFilePath.EndReading())
+ , mSeparator(aSeparator)
+ {
+ }
- bool ConsumeName();
- bool CheckParentDir();
- bool CheckCurrentDir();
+ bool Get(nsTSubstring<TChar>& aNormalizedFilePath)
+ {
+ aNormalizedFilePath.Truncate();
+
+ // Windows UNC paths begin with double separator (\\)
+ // Linux paths begin with just one separator (/)
+ // If we want to use the normalizer for regular windows paths this code
+ // will need to be updated.
+#ifdef XP_WIN
+ if (IsEOF()) {
+ return true;
+ }
+ if (ConsumeSeparator()) {
+ aNormalizedFilePath.Append(mSeparator);
+ }
+#endif
- nsString::const_char_iterator mFilePathCursor;
- nsString::const_char_iterator mFilePathEnd;
+ if (IsEOF()) {
+ return true;
+ }
+ if (ConsumeSeparator()) {
+ aNormalizedFilePath.Append(mSeparator);
+ }
- nsDependentSubstring mItem;
- char16_t const mSeparator;
- nsTArray<nsDependentSubstring> mStack;
-};
+ while (!IsEOF()) {
+ if (!ConsumeName()) {
+ return false;
+ }
+ }
-Normalizer::Normalizer(const nsAString& aFilePath, const char16_t aSeparator)
- : mFilePathCursor(aFilePath.BeginReading())
- , mFilePathEnd(aFilePath.EndReading())
- , mSeparator(aSeparator)
-{
-}
+ for (auto const& name : mStack) {
+ aNormalizedFilePath.Append(name);
+ }
-bool Normalizer::ConsumeItem()
-{
- if (IsEOF()) {
- return false;
+ return true;
}
- nsString::const_char_iterator nameBegin = mFilePathCursor;
- while (mFilePathCursor != mFilePathEnd) {
- if (*mFilePathCursor == mSeparator) {
- break; // don't include the separator
+private:
+ bool ConsumeItem()
+ {
+ if (IsEOF()) {
+ return false;
}
- ++mFilePathCursor;
- }
-
- mItem.Rebind(nameBegin, mFilePathCursor);
- return true;
-}
-bool Normalizer::ConsumeSeparator()
-{
- if (IsEOF()) {
- return false;
- }
+ typename nsTString<TChar>::const_char_iterator nameBegin = mFilePathCursor;
+ while (mFilePathCursor != mFilePathEnd) {
+ if (*mFilePathCursor == mSeparator) {
+ break; // don't include the separator
+ }
+ ++mFilePathCursor;
+ }
- if (*mFilePathCursor != mSeparator) {
- return false;
+ mItem.Rebind(nameBegin, mFilePathCursor);
+ return true;
}
- ++mFilePathCursor;
- return true;
-}
+ bool ConsumeSeparator()
+ {
+ if (IsEOF()) {
+ return false;
+ }
-bool Normalizer::Get(nsAString& aNormalizedFilePath)
-{
- aNormalizedFilePath.Truncate();
+ if (*mFilePathCursor != mSeparator) {
+ return false;
+ }
- if (IsEOF()) {
+ ++mFilePathCursor;
return true;
}
- if (ConsumeSeparator()) {
- aNormalizedFilePath.Append(mSeparator);
- }
- if (IsEOF()) {
- return true;
- }
- if (ConsumeSeparator()) {
- aNormalizedFilePath.Append(mSeparator);
- }
+ bool IsEOF() { return mFilePathCursor == mFilePathEnd; }
- while (!IsEOF()) {
- if (!ConsumeName()) {
- return false;
+ bool ConsumeName()
+ {
+ if (!ConsumeItem()) {
+ return true;
}
- }
-
- for (auto const& name : mStack) {
- aNormalizedFilePath.Append(name);
- }
- return true;
-}
+ if (CheckCurrentDir()) {
+ return true;
+ }
-bool Normalizer::ConsumeName()
-{
- if (!ConsumeItem()) {
- return true;
- }
+ if (CheckParentDir()) {
+ if (!mStack.Length()) {
+ // This means there are more \.. than valid names
+ return false;
+ }
- if (CheckCurrentDir()) {
- return true;
- }
+ mStack.RemoveElementAt(mStack.Length() - 1);
+ return true;
+ }
- if (CheckParentDir()) {
- if (!mStack.Length()) {
- // This means there are more \.. than valid names
+ if (mItem.IsEmpty()) {
+ // this means an empty name (a lone slash), which is illegal
return false;
}
- mStack.RemoveElementAt(mStack.Length() - 1);
+ if (ConsumeSeparator()) {
+ mItem.Rebind(mItem.BeginReading(), mFilePathCursor);
+ }
+ mStack.AppendElement(mItem);
+
return true;
}
- if (mItem.IsEmpty()) {
- // this means an empty name (a lone slash), which is illegal
- return false;
- }
+ bool CheckParentDir()
+ {
+ if (mItem.EqualsLiteral("..")) {
+ ConsumeSeparator();
+ // EOF is acceptable
+ return true;
+ }
- if (ConsumeSeparator()) {
- mItem.Rebind(mItem.BeginReading(), mFilePathCursor);
+ return false;
}
- mStack.AppendElement(mItem);
- return true;
-}
+ bool CheckCurrentDir()
+ {
+ if (mItem.EqualsLiteral(".")) {
+ ConsumeSeparator();
+ // EOF is acceptable
+ return true;
+ }
-bool Normalizer::CheckCurrentDir()
-{
- if (mItem == NS_LITERAL_STRING(".")) {
- ConsumeSeparator();
- // EOF is acceptable
- return true;
+ return false;
}
- return false;
-}
-
-bool Normalizer::CheckParentDir()
-{
- if (mItem == NS_LITERAL_STRING("..")) {
- ConsumeSeparator();
- // EOF is acceptable
- return true;
- }
+ typename nsTString<TChar>::const_char_iterator mFilePathCursor;
+ typename nsTString<TChar>::const_char_iterator mFilePathEnd;
- return false;
-}
+ nsTDependentSubstring<TChar> mItem;
+ TChar const mSeparator;
+ nsTArray<nsTDependentSubstring<TChar>> mStack;
+};
} // anon
bool IsBlockedUNCPath(const nsAString& aFilePath)
{
+ typedef TNormalizer<char16_t> Normalizer;
+ if (!sWhitelist) {
+ return false;
+ }
+
if (!sBlockUNCPaths) {
return false;
}
@@ -231,7 +279,7 @@ bool IsBlockedUNCPath(const nsAString& aFilePath)
return true;
}
- for (const auto& allowedPrefix : PathArray()) {
+ for (const auto& allowedPrefix : PathWhitelist()) {
if (StringBeginsWith(normalized, allowedPrefix)) {
if (normalized.Length() == allowedPrefix.Length()) {
return false;
@@ -251,6 +299,44 @@ bool IsBlockedUNCPath(const nsAString& aFilePath)
return true;
}
+#ifdef XP_WIN
+const char16_t kPathSeparator = L'\\';
+#else
+const char kPathSeparator = '/';
+#endif
+
+bool IsAllowedPath(const nsTSubstring<char_path_t>& aFilePath)
+{
+ typedef TNormalizer<char_path_t> Normalizer;
+ // If sBlacklist has been cleared at shutdown, we must avoid calling
+ // PathBlacklist() again, as that will recreate the array and we will leak.
+ if (!sBlacklist) {
+ return true;
+ }
+
+ if (PathBlacklist().Length() == 0) {
+ return true;
+ }
+
+ nsTAutoString<char_path_t> normalized;
+ if (!Normalizer(aFilePath, kPathSeparator).Get(normalized)) {
+ // Broken paths are considered invalid and thus inaccessible
+ return false;
+ }
+
+ for (const auto& prefix : PathBlacklist()) {
+ if (StringBeginsWith(normalized, prefix)) {
+ if (normalized.Length() > prefix.Length() &&
+ normalized[prefix.Length()] != kPathSeparator) {
+ continue;
+ }
+ return false;
+ }
+ }
+
+ return true;
+}
+
void testing::SetBlockUNCPaths(bool aBlock)
{
sBlockUNCPaths = aBlock;
@@ -258,11 +344,12 @@ void testing::SetBlockUNCPaths(bool aBlock)
void testing::AddDirectoryToWhitelist(nsAString const & aPath)
{
- PathArray().AppendElement(aPath);
+ PathWhitelist().AppendElement(aPath);
}
bool testing::NormalizePath(nsAString const & aPath, nsAString & aNormalized)
{
+ typedef TNormalizer<char16_t> Normalizer;
Normalizer normalizer(aPath, L'\\');
return normalizer.Get(aNormalized);
}
diff --git a/xpcom/io/FilePreferences.h b/xpcom/io/FilePreferences.h
index fa281f9e6799..71c244201735 100644
--- a/xpcom/io/FilePreferences.h
+++ b/xpcom/io/FilePreferences.h
@@ -13,6 +13,12 @@ void InitPrefs();
void InitDirectoriesWhitelist();
bool IsBlockedUNCPath(const nsAString& aFilePath);
+#ifdef XP_WIN
+bool IsAllowedPath(const nsAString& aFilePath);
+#else
+bool IsAllowedPath(const nsACString& aFilePath);
+#endif
+
namespace testing {
void SetBlockUNCPaths(bool aBlock);
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
index 768f66b301ec..cc241b179ab4 100644
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -12,6 +12,7 @@
#include "mozilla/Attributes.h"
#include "mozilla/DebugOnly.h"
#include "mozilla/Sprintf.h"
+#include "mozilla/FilePreferences.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -84,6 +85,8 @@ using namespace mozilla;
do { \
if (mPath.IsEmpty()) \
return NS_ERROR_NOT_INITIALIZED; \
+ if (!FilePreferences::IsAllowedPath(mPath)) \
+ return NS_ERROR_FILE_ACCESS_DENIED; \
} while(0)
/* directory enumerator */
@@ -140,6 +143,13 @@ nsDirEnumeratorUnix::Init(nsLocalFile* aParent,
return NS_ERROR_FILE_INVALID_PATH;
}
+ // When enumerating the directory, the paths must have a slash at the end.
+ nsAutoCString dirPathWithSlash(dirPath);
+ dirPathWithSlash.Append('/');
+ if (!FilePreferences::IsAllowedPath(dirPathWithSlash)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
if (NS_FAILED(aParent->GetNativePath(mParentPath))) {
return NS_ERROR_FAILURE;
}
@@ -269,6 +279,11 @@ nsLocalFile::nsLocalFileConstructor(nsISupports* aOuter,
bool
nsLocalFile::FillStatCache()
{
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ errno = EACCES;
+ return false;
+ }
+
if (STAT(mPath.get(), &mCachedStat) == -1) {
// try lstat it may be a symlink
if (LSTAT(mPath.get(), &mCachedStat) == -1) {
@@ -311,6 +326,11 @@ nsLocalFile::InitWithNativePath(const nsACString& aFilePath)
mPath = aFilePath;
}
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ mPath.Truncate();
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
// trim off trailing slashes
ssize_t len = mPath.Length();
while ((len > 1) && (mPath[len - 1] == '/')) {
@@ -324,6 +344,10 @@ nsLocalFile::InitWithNativePath(const nsACString& aFilePath)
NS_IMETHODIMP
nsLocalFile::CreateAllAncestors(uint32_t aPermissions)
{
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
// <jband> I promise to play nice
char* buffer = mPath.BeginWriting();
char* slashp = buffer;
@@ -395,6 +419,9 @@ NS_IMETHODIMP
nsLocalFile::OpenNSPRFileDesc(int32_t aFlags, int32_t aMode,
PRFileDesc** aResult)
{
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
*aResult = PR_Open(mPath.get(), aFlags, aMode);
if (!*aResult) {
return NS_ErrorAccordingToNSPR();
@@ -416,6 +443,9 @@ nsLocalFile::OpenNSPRFileDesc(int32_t aFlags, int32_t aMode,
NS_IMETHODIMP
nsLocalFile::OpenANSIFileDesc(const char* aMode, FILE** aResult)
{
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
*aResult = fopen(mPath.get(), aMode);
if (!*aResult) {
return NS_ERROR_FAILURE;
@@ -442,6 +472,10 @@ nsresult
nsLocalFile::CreateAndKeepOpen(uint32_t aType, int aFlags,
uint32_t aPermissions, PRFileDesc** aResult)
{
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
if (aType != NORMAL_FILE_TYPE && aType != DIRECTORY_TYPE) {
return NS_ERROR_FILE_UNKNOWN_TYPE;
}
@@ -491,6 +525,10 @@ nsLocalFile::CreateAndKeepOpen(uint32_t aType, int aFlags,
NS_IMETHODIMP
nsLocalFile::Create(uint32_t aType, uint32_t aPermissions)
{
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
PRFileDesc* junk = nullptr;
nsresult rv = CreateAndKeepOpen(aType,
PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE |
@@ -546,6 +584,10 @@ nsLocalFile::Normalize()
char resolved_path[PATH_MAX] = "";
char* resolved_path_ptr = nullptr;
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
resolved_path_ptr = realpath(mPath.get(), resolved_path);
// if there is an error, the return is null.
@@ -1017,6 +1059,10 @@ nsLocalFile::MoveToNative(nsIFile* aNewParent, const nsACString& aNewName)
return rv;
}
+ if (!FilePreferences::IsAllowedPath(newPathName)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
// try for atomic rename, falling back to copy/delete
if (rename(mPath.get(), newPathName.get()) < 0) {
if (errno == EXDEV) {
@@ -1959,6 +2005,10 @@ nsLocalFile::SetPersistentDescriptor(const nsACString& aPersistentDescriptor)
NS_IMETHODIMP
nsLocalFile::Reveal()
{
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
#ifdef MOZ_WIDGET_GTK
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
if (!giovfs) {
@@ -2002,6 +2052,10 @@ nsLocalFile::Reveal()
NS_IMETHODIMP
nsLocalFile::Launch()
{
+ if (!FilePreferences::IsAllowedPath(mPath)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
#ifdef MOZ_WIDGET_GTK
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
if (!giovfs) {
@@ -2156,6 +2210,10 @@ nsLocalFile::RenameToNative(nsIFile* aNewParentDir, const nsACString& aNewName)
return rv;
}
+ if (!FilePreferences::IsAllowedPath(newPathName)) {
+ return NS_ERROR_FILE_ACCESS_DENIED;
+ }
+
// try for atomic rename
if (rename(mPath.get(), newPathName.get()) < 0) {
if (errno == EXDEV) {
diff --git a/xpcom/tests/gtest/TestFilePreferencesUnix.cpp b/xpcom/tests/gtest/TestFilePreferencesUnix.cpp
new file mode 100644
index 000000000000..c19928fcaec4
--- /dev/null
+++ b/xpcom/tests/gtest/TestFilePreferencesUnix.cpp
@@ -0,0 +1,203 @@
+#include "gtest/gtest.h"
+
+#include "mozilla/FilePreferences.h"
+
+#include "nsDirectoryServiceDefs.h"
+#include "nsDirectoryServiceUtils.h"
+#include "mozilla/Preferences.h"
+#include "mozilla/ScopeExit.h"
+#include "nsISimpleEnumerator.h"
+
+using namespace mozilla;
+
+TEST(TestFilePreferencesUnix, Parsing)
+{
+ #define kBlacklisted "/tmp/blacklisted"
+ #define kBlacklistedDir "/tmp/blacklisted/"
+ #define kBlacklistedFile "/tmp/blacklisted/file"
+ #define kOther "/tmp/other"
+ #define kOtherDir "/tmp/other/"
+ #define kOtherFile "/tmp/other/file"
+ #define kAllowed "/tmp/allowed"
+
+ // This is run on exit of this function to make sure we clear the pref
+ // and that behaviour with the pref cleared is correct.
+ auto cleanup = MakeScopeExit([&] {
+ nsresult rv = Preferences::ClearUser("network.file.path_blacklist");
+ ASSERT_EQ(rv, NS_OK);
+ FilePreferences::InitPrefs();
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklisted)), true);
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedDir)), true);
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedFile)), true);
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kAllowed)), true);
+ });
+
+ auto CheckPrefs = [](const nsACString& aPaths)
+ {
+ nsresult rv;
+ rv = Preferences::SetCString("network.file.path_blacklist", aPaths);
+ ASSERT_EQ(rv, NS_OK);
+ FilePreferences::InitPrefs();
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedDir)), false);
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedDir)), false);
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedFile)), false);
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklisted)), false);
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kAllowed)), true);
+ };
+
+ CheckPrefs(NS_LITERAL_CSTRING(kBlacklisted));
+ CheckPrefs(NS_LITERAL_CSTRING(kBlacklisted "," kOther));
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kOtherFile)), false);
+ CheckPrefs(NS_LITERAL_CSTRING(kBlacklisted "," kOther ","));
+ ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kOtherFile)), false);
+}
+
+TEST(TestFilePreferencesUnix, Simple)
+{
+ nsAutoCString tempPath;
+
+ // This is the directory we will blacklist
+ nsCOMPtr<nsIFile> blacklistedDir;
+ nsresult rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(blacklistedDir));
+ ASSERT_EQ(rv, NS_OK);
+ rv = blacklistedDir->GetNativePath(tempPath);
+ ASSERT_EQ(rv, NS_OK);
+ rv = blacklistedDir->AppendNative(NS_LITERAL_CSTRING("blacklisted_dir"));
+ ASSERT_EQ(rv, NS_OK);
+
+ // This is executed at exit to clean up after ourselves.
+ auto cleanup = MakeScopeExit([&] {
+ nsresult rv = Preferences::ClearUser("network.file.path_blacklist");
+ ASSERT_EQ(rv, NS_OK);
+ FilePreferences::InitPrefs();
+
+ rv = blacklistedDir->Remove(true);
+ ASSERT_EQ(rv, NS_OK);
+ });
+
+ // Create the directory
+ rv = blacklistedDir->Create(nsIFile::DIRECTORY_TYPE, 0666);
+ ASSERT_EQ(rv, NS_OK);
+
+ // This is the file we will try to access
+ nsCOMPtr<nsIFile> blacklistedFile;
+ rv = blacklistedDir->Clone(getter_AddRefs(blacklistedFile));
+ ASSERT_EQ(rv, NS_OK);
+ rv = blacklistedFile->AppendNative(NS_LITERAL_CSTRING("test_file"));
+
+ // Create the file
+ ASSERT_EQ(rv, NS_OK);
+ rv = blacklistedFile->Create(nsIFile::NORMAL_FILE_TYPE, 0666);
+
+ // Get the path for the blacklist
+ nsAutoCString blackListPath;
+ rv = blacklistedDir->GetNativePath(blackListPath);
+ ASSERT_EQ(rv, NS_OK);
+
+ // Set the pref and make sure it is enforced
+ rv = Preferences::SetCString("network.file.path_blacklist", blackListPath);
+ ASSERT_EQ(rv, NS_OK);
+ FilePreferences::InitPrefs();
+
+ // Check that we can't access some of the file attributes
+ int64_t size;
+ rv = blacklistedFile->GetFileSize(&size);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ bool exists;
+ rv = blacklistedFile->Exists(&exists);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ // Check that we can't enumerate the directory
+ nsCOMPtr<nsISimpleEnumerator> dirEnumerator;
+ rv = blacklistedDir->GetDirectoryEntries(getter_AddRefs(dirEnumerator));
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ nsCOMPtr<nsIFile> newPath;
+ rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(newPath));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->AppendNative(NS_LITERAL_CSTRING("."));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->AppendNative(NS_LITERAL_CSTRING("blacklisted_dir"));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->Exists(&exists);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ rv = newPath->AppendNative(NS_LITERAL_CSTRING("test_file"));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->Exists(&exists);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ // Check that ./ does not bypass the filter
+ rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(newPath));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->AppendRelativeNativePath(NS_LITERAL_CSTRING("./blacklisted_dir/file"));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->Exists(&exists);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ // Check that .. does not bypass the filter
+ rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(newPath));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->AppendRelativeNativePath(NS_LITERAL_CSTRING("allowed/../blacklisted_dir/file"));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->Exists(&exists);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(newPath));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->AppendNative(NS_LITERAL_CSTRING("allowed"));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->AppendNative(NS_LITERAL_CSTRING(".."));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->AppendNative(NS_LITERAL_CSTRING("blacklisted_dir"));
+ ASSERT_EQ(rv, NS_OK);
+ rv = newPath->Exists(&exists);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ nsAutoCString trickyPath(tempPath);
+ trickyPath.AppendLiteral("/allowed/../blacklisted_dir/file");
+ rv = newPath->InitWithNativePath(trickyPath);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ // Check that we can't construct a path that is functionally the same
+ // as the blacklisted one and bypasses the filter.
+ trickyPath = tempPath;
+ trickyPath.AppendLiteral("/./blacklisted_dir/file");
+ rv = newPath->InitWithNativePath(trickyPath);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ trickyPath = tempPath;
+ trickyPath.AppendLiteral("//blacklisted_dir/file");
+ rv = newPath->InitWithNativePath(trickyPath);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ trickyPath.Truncate();
+ trickyPath.AppendLiteral("//");
+ trickyPath.Append(tempPath);
+ trickyPath.AppendLiteral("/blacklisted_dir/file");
+ rv = newPath->InitWithNativePath(trickyPath);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ trickyPath.Truncate();
+ trickyPath.AppendLiteral("//");
+ trickyPath.Append(tempPath);
+ trickyPath.AppendLiteral("//blacklisted_dir/file");
+ rv = newPath->InitWithNativePath(trickyPath);
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+
+ // Check that if the blacklisted string is a directory, we only block access
+ // to subresources, not the directory itself.
+ nsAutoCString blacklistDirPath(blackListPath);
+ blacklistDirPath.Append("/");
+ rv = Preferences::SetCString("network.file.path_blacklist", blacklistDirPath);
+ ASSERT_EQ(rv, NS_OK);
+ FilePreferences::InitPrefs();
+
+ // This should work, since we only block subresources
+ rv = blacklistedDir->Exists(&exists);
+ ASSERT_EQ(rv, NS_OK);
+
+ rv = blacklistedDir->GetDirectoryEntries(getter_AddRefs(dirEnumerator));
+ ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
+}
diff --git a/xpcom/tests/gtest/TestFilePreferencesWin.cpp b/xpcom/tests/gtest/TestFilePreferencesWin.cpp
index b7d3a3159f25..c8766d4b973a 100644
--- a/xpcom/tests/gtest/TestFilePreferencesWin.cpp
+++ b/xpcom/tests/gtest/TestFilePreferencesWin.cpp
@@ -117,6 +117,10 @@ TEST(FilePreferencesWin, Normalization)
TEST(FilePreferencesWin, AccessUNC)
{
+ // gtest doesn't properly init Firefox, so we instantiate the whitelist here
+ // otherwise FilePreferences::IsBlockedUNCPath would always return false.
+ mozilla::FilePreferences::testing::AddDirectoryToWhitelist(NS_LITERAL_STRING("\\\\dummy"));
+
nsCOMPtr<nsIFile> lf = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID);
nsresult rv;
diff --git a/xpcom/tests/gtest/moz.build b/xpcom/tests/gtest/moz.build
index 90b5fd7652e6..4f1c9c73d653 100644
--- a/xpcom/tests/gtest/moz.build
+++ b/xpcom/tests/gtest/moz.build
@@ -73,6 +73,11 @@ if CONFIG['OS_TARGET'] == 'WINNT':
UNIFIED_SOURCES += [
'TestFilePreferencesWin.cpp',
]
+else:
+ UNIFIED_SOURCES += [
+ 'TestFilePreferencesUnix.cpp',
+ ]
+
if CONFIG['WRAP_STL_INCLUDES'] and CONFIG['CC_TYPE'] != 'clang-cl':
UNIFIED_SOURCES += [
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1483377 - Use static array for FilePreferences whitelist instead of StaticAutoPtr. r=mayhemer, a=RyanVM
by gk@torproject.org 16 Aug '18
by gk@torproject.org 16 Aug '18
16 Aug '18
commit bd0c7567cd0135e87908f436d1f394ce8c910fef
Author: Valentin Gosu <valentin.gosu(a)gmail.com>
Date: Tue Aug 14 21:55:20 2018 +0000
Bug 1483377 - Use static array for FilePreferences whitelist instead of StaticAutoPtr. r=mayhemer, a=RyanVM
Differential Revision: https://phabricator.services.mozilla.com/D3403
--HG--
extra : amend_source : b1eff8c536bcec5112211007347f558e32164905
---
xpcom/io/FilePreferences.cpp | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/xpcom/io/FilePreferences.cpp b/xpcom/io/FilePreferences.cpp
index 9467c055d9bf..5017757ce0fc 100644
--- a/xpcom/io/FilePreferences.cpp
+++ b/xpcom/io/FilePreferences.cpp
@@ -20,15 +20,11 @@ namespace FilePreferences {
static bool sBlockUNCPaths = false;
typedef nsTArray<nsString> WinPaths;
-static StaticAutoPtr<WinPaths> sWhitelist;
static WinPaths& PathWhitelist()
{
- if (!sWhitelist) {
- sWhitelist = new nsTArray<nsString>();
- ClearOnShutdown(&sWhitelist);
- }
- return *sWhitelist;
+ static WinPaths sPaths;
+ return sPaths;
}
#ifdef XP_WIN
@@ -261,9 +257,6 @@ private:
bool IsBlockedUNCPath(const nsAString& aFilePath)
{
typedef TNormalizer<char16_t> Normalizer;
- if (!sWhitelist) {
- return false;
- }
if (!sBlockUNCPaths) {
return false;
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Revert "Backport of fix for bug 1412081"
by gk@torproject.org 16 Aug '18
by gk@torproject.org 16 Aug '18
16 Aug '18
commit bd4abf8ba8f4e1aea2acd4b895274f646ed951a8
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Aug 16 07:21:24 2018 +0000
Revert "Backport of fix for bug 1412081"
This reverts commit 50f4653b90316394e7d6d3cd4a3e92e12f377666.
We take the patch that actually landed on esr60 instead.
---
dom/ipc/ContentPrefs.cpp | 1 -
xpcom/io/FilePreferences.cpp | 328 ++++++++++----------------
xpcom/io/FilePreferences.h | 6 -
xpcom/io/nsLocalFileUnix.cpp | 58 -----
xpcom/tests/gtest/TestFilePreferencesUnix.cpp | 203 ----------------
xpcom/tests/gtest/moz.build | 5 -
6 files changed, 122 insertions(+), 479 deletions(-)
diff --git a/dom/ipc/ContentPrefs.cpp b/dom/ipc/ContentPrefs.cpp
index ac1ea109fc9f..d011c7393125 100644
--- a/dom/ipc/ContentPrefs.cpp
+++ b/dom/ipc/ContentPrefs.cpp
@@ -270,7 +270,6 @@ const char* mozilla::dom::ContentPrefs::gEarlyPrefs[] = {
"network.dns.disablePrefetch",
"network.dns.disablePrefetchFromHTTPS",
"network.file.disable_unc_paths",
- "network.file.path_blacklist",
"network.http.tailing.enabled",
"network.jar.block-remote-files",
"network.loadinfo.skip_type_assertion",
diff --git a/xpcom/io/FilePreferences.cpp b/xpcom/io/FilePreferences.cpp
index ca133fcaeb40..3ad0e0ee19e0 100644
--- a/xpcom/io/FilePreferences.cpp
+++ b/xpcom/io/FilePreferences.cpp
@@ -6,11 +6,7 @@
#include "FilePreferences.h"
-#include "mozilla/ClearOnShutdown.h"
#include "mozilla/Preferences.h"
-#include "mozilla/StaticPtr.h"
-#include "mozilla/Tokenizer.h"
-#include "mozilla/Unused.h"
#include "nsAppDirectoryServiceDefs.h"
#include "nsDirectoryServiceDefs.h"
#include "nsDirectoryServiceUtils.h"
@@ -19,37 +15,15 @@ namespace mozilla {
namespace FilePreferences {
static bool sBlockUNCPaths = false;
-typedef nsTArray<nsString> WinPaths;
-static StaticAutoPtr<WinPaths> sWhitelist;
+typedef nsTArray<nsString> Paths;
-static WinPaths& PathWhitelist()
+static Paths& PathArray()
{
- if (!sWhitelist) {
- sWhitelist = new nsTArray<nsString>();
- ClearOnShutdown(&sWhitelist);
- }
- return *sWhitelist;
-}
-
-#ifdef XP_WIN
-typedef char16_t char_path_t;
-#else
-typedef char char_path_t;
-#endif
-
-typedef nsTArray<nsTString<char_path_t>> Paths;
-static StaticAutoPtr<Paths> sBlacklist;
-
-static Paths& PathBlacklist()
-{
- if (!sBlacklist) {
- sBlacklist = new nsTArray<nsTString<char_path_t>>();
- ClearOnShutdown(&sBlacklist);
- }
- return *sBlacklist;
+ static Paths sPaths;
+ return sPaths;
}
-static void AllowUNCDirectory(char const* directory)
+static void AllowDirectory(char const* directory)
{
nsCOMPtr<nsIFile> file;
NS_GetSpecialDirectory(directory, getter_AddRefs(file));
@@ -69,201 +43,180 @@ static void AllowUNCDirectory(char const* directory)
return;
}
- if (!PathWhitelist().Contains(path)) {
- PathWhitelist().AppendElement(path);
+ if (!PathArray().Contains(path)) {
+ PathArray().AppendElement(path);
}
}
void InitPrefs()
{
sBlockUNCPaths = Preferences::GetBool("network.file.disable_unc_paths", false);
-
- PathBlacklist().Clear();
- nsAutoCString blacklist;
- Preferences::GetCString("network.file.path_blacklist", blacklist);
-
- Tokenizer p(blacklist);
- while (!p.CheckEOF()) {
- nsCString path;
- Unused << p.ReadUntil(Tokenizer::Token::Char(','), path);
- path.Trim(" ");
- if (!path.IsEmpty()) {
-#ifdef XP_WIN
- PathBlacklist().AppendElement(NS_ConvertASCIItoUTF16(path));
-#else
- PathBlacklist().AppendElement(path);
-#endif
- }
- Unused << p.CheckChar(',');
- }
}
void InitDirectoriesWhitelist()
{
// NS_GRE_DIR is the installation path where the binary resides.
- AllowUNCDirectory(NS_GRE_DIR);
+ AllowDirectory(NS_GRE_DIR);
// NS_APP_USER_PROFILE_50_DIR and NS_APP_USER_PROFILE_LOCAL_50_DIR are the two
// parts of the profile we store permanent and local-specific data.
- AllowUNCDirectory(NS_APP_USER_PROFILE_50_DIR);
- AllowUNCDirectory(NS_APP_USER_PROFILE_LOCAL_50_DIR);
+ AllowDirectory(NS_APP_USER_PROFILE_50_DIR);
+ AllowDirectory(NS_APP_USER_PROFILE_LOCAL_50_DIR);
}
namespace { // anon
-template <typename TChar>
class Normalizer
{
public:
- Normalizer(const nsTSubstring<TChar>& aFilePath, const TChar aSeparator)
- : mFilePathCursor(aFilePath.BeginReading())
- , mFilePathEnd(aFilePath.EndReading())
- , mSeparator(aSeparator)
- {
- }
+ Normalizer(const nsAString& aFilePath, const char16_t aSeparator);
+ bool Get(nsAString& aNormalizedFilePath);
- bool Get(nsTSubstring<TChar>& aNormalizedFilePath)
- {
- aNormalizedFilePath.Truncate();
-
- // Windows UNC paths begin with double separator (\\)
- // Linux paths begin with just one separator (/)
- // If we want to use the normalizer for regular windows paths this code
- // will need to be updated.
-#ifdef XP_WIN
- if (IsEOF()) {
- return true;
- }
- if (ConsumeSeparator()) {
- aNormalizedFilePath.Append(mSeparator);
- }
-#endif
+private:
+ bool ConsumeItem();
+ bool ConsumeSeparator();
+ bool IsEOF() { return mFilePathCursor == mFilePathEnd; }
- if (IsEOF()) {
- return true;
- }
- if (ConsumeSeparator()) {
- aNormalizedFilePath.Append(mSeparator);
- }
+ bool ConsumeName();
+ bool CheckParentDir();
+ bool CheckCurrentDir();
- while (!IsEOF()) {
- if (!ConsumeName()) {
- return false;
- }
- }
+ nsString::const_char_iterator mFilePathCursor;
+ nsString::const_char_iterator mFilePathEnd;
- for (auto const& name : mStack) {
- aNormalizedFilePath.Append(name);
- }
+ nsDependentSubstring mItem;
+ char16_t const mSeparator;
+ nsTArray<nsDependentSubstring> mStack;
+};
- return true;
+Normalizer::Normalizer(const nsAString& aFilePath, const char16_t aSeparator)
+ : mFilePathCursor(aFilePath.BeginReading())
+ , mFilePathEnd(aFilePath.EndReading())
+ , mSeparator(aSeparator)
+{
+}
+
+bool Normalizer::ConsumeItem()
+{
+ if (IsEOF()) {
+ return false;
}
-private:
- bool ConsumeItem()
- {
- if (IsEOF()) {
- return false;
+ nsString::const_char_iterator nameBegin = mFilePathCursor;
+ while (mFilePathCursor != mFilePathEnd) {
+ if (*mFilePathCursor == mSeparator) {
+ break; // don't include the separator
}
+ ++mFilePathCursor;
+ }
- typename nsTString<TChar>::const_char_iterator nameBegin = mFilePathCursor;
- while (mFilePathCursor != mFilePathEnd) {
- if (*mFilePathCursor == mSeparator) {
- break; // don't include the separator
- }
- ++mFilePathCursor;
- }
+ mItem.Rebind(nameBegin, mFilePathCursor);
+ return true;
+}
- mItem.Rebind(nameBegin, mFilePathCursor);
- return true;
+bool Normalizer::ConsumeSeparator()
+{
+ if (IsEOF()) {
+ return false;
}
- bool ConsumeSeparator()
- {
- if (IsEOF()) {
- return false;
- }
+ if (*mFilePathCursor != mSeparator) {
+ return false;
+ }
- if (*mFilePathCursor != mSeparator) {
- return false;
- }
+ ++mFilePathCursor;
+ return true;
+}
- ++mFilePathCursor;
+bool Normalizer::Get(nsAString& aNormalizedFilePath)
+{
+ aNormalizedFilePath.Truncate();
+
+ if (IsEOF()) {
return true;
}
+ if (ConsumeSeparator()) {
+ aNormalizedFilePath.Append(mSeparator);
+ }
- bool IsEOF() { return mFilePathCursor == mFilePathEnd; }
+ if (IsEOF()) {
+ return true;
+ }
+ if (ConsumeSeparator()) {
+ aNormalizedFilePath.Append(mSeparator);
+ }
- bool ConsumeName()
- {
- if (!ConsumeItem()) {
- return true;
+ while (!IsEOF()) {
+ if (!ConsumeName()) {
+ return false;
}
+ }
- if (CheckCurrentDir()) {
- return true;
- }
+ for (auto const& name : mStack) {
+ aNormalizedFilePath.Append(name);
+ }
- if (CheckParentDir()) {
- if (!mStack.Length()) {
- // This means there are more \.. than valid names
- return false;
- }
+ return true;
+}
- mStack.RemoveElementAt(mStack.Length() - 1);
- return true;
- }
+bool Normalizer::ConsumeName()
+{
+ if (!ConsumeItem()) {
+ return true;
+ }
- if (mItem.IsEmpty()) {
- // this means an empty name (a lone slash), which is illegal
- return false;
- }
+ if (CheckCurrentDir()) {
+ return true;
+ }
- if (ConsumeSeparator()) {
- mItem.Rebind(mItem.BeginReading(), mFilePathCursor);
+ if (CheckParentDir()) {
+ if (!mStack.Length()) {
+ // This means there are more \.. than valid names
+ return false;
}
- mStack.AppendElement(mItem);
+ mStack.RemoveElementAt(mStack.Length() - 1);
return true;
}
- bool CheckParentDir()
- {
- if (mItem.EqualsLiteral("..")) {
- ConsumeSeparator();
- // EOF is acceptable
- return true;
- }
-
+ if (mItem.IsEmpty()) {
+ // this means an empty name (a lone slash), which is illegal
return false;
}
- bool CheckCurrentDir()
- {
- if (mItem.EqualsLiteral(".")) {
- ConsumeSeparator();
- // EOF is acceptable
- return true;
- }
+ if (ConsumeSeparator()) {
+ mItem.Rebind(mItem.BeginReading(), mFilePathCursor);
+ }
+ mStack.AppendElement(mItem);
- return false;
+ return true;
+}
+
+bool Normalizer::CheckCurrentDir()
+{
+ if (mItem == NS_LITERAL_STRING(".")) {
+ ConsumeSeparator();
+ // EOF is acceptable
+ return true;
}
- typename nsTString<TChar>::const_char_iterator mFilePathCursor;
- typename nsTString<TChar>::const_char_iterator mFilePathEnd;
+ return false;
+}
- nsTDependentSubstring<TChar> mItem;
- TChar const mSeparator;
- nsTArray<nsTDependentSubstring<TChar>> mStack;
-};
+bool Normalizer::CheckParentDir()
+{
+ if (mItem == NS_LITERAL_STRING("..")) {
+ ConsumeSeparator();
+ // EOF is acceptable
+ return true;
+ }
+
+ return false;
+}
} // anon
bool IsBlockedUNCPath(const nsAString& aFilePath)
{
- if (!sWhitelist) {
- return false;
- }
-
if (!sBlockUNCPaths) {
return false;
}
@@ -273,12 +226,12 @@ bool IsBlockedUNCPath(const nsAString& aFilePath)
}
nsAutoString normalized;
- if (!Normalizer<char16_t>(aFilePath, L'\\').Get(normalized)) {
+ if (!Normalizer(aFilePath, L'\\').Get(normalized)) {
// Broken paths are considered invalid and thus inaccessible
return true;
}
- for (const auto& allowedPrefix : PathWhitelist()) {
+ for (const auto& allowedPrefix : PathArray()) {
if (StringBeginsWith(normalized, allowedPrefix)) {
if (normalized.Length() == allowedPrefix.Length()) {
return false;
@@ -298,43 +251,6 @@ bool IsBlockedUNCPath(const nsAString& aFilePath)
return true;
}
-#ifdef XP_WIN
-const char16_t kPathSeparator = L'\\';
-#else
-const char kPathSeparator = '/';
-#endif
-
-bool IsAllowedPath(const nsTSubstring<char_path_t>& aFilePath)
-{
- // If sBlacklist has been cleared at shutdown, we must avoid calling
- // PathBlacklist() again, as that will recreate the array and we will leak.
- if (!sBlacklist) {
- return true;
- }
-
- if (PathBlacklist().Length() == 0) {
- return true;
- }
-
- nsTAutoString<char_path_t> normalized;
- if (!Normalizer<char_path_t>(aFilePath, kPathSeparator).Get(normalized)) {
- // Broken paths are considered invalid and thus inaccessible
- return false;
- }
-
- for (const auto& prefix : PathBlacklist()) {
- if (StringBeginsWith(normalized, prefix)) {
- if (normalized.Length() > prefix.Length() &&
- normalized[prefix.Length()] != kPathSeparator) {
- continue;
- }
- return false;
- }
- }
-
- return true;
-}
-
void testing::SetBlockUNCPaths(bool aBlock)
{
sBlockUNCPaths = aBlock;
@@ -342,12 +258,12 @@ void testing::SetBlockUNCPaths(bool aBlock)
void testing::AddDirectoryToWhitelist(nsAString const & aPath)
{
- PathWhitelist().AppendElement(aPath);
+ PathArray().AppendElement(aPath);
}
bool testing::NormalizePath(nsAString const & aPath, nsAString & aNormalized)
{
- Normalizer<char16_t> normalizer(aPath, L'\\');
+ Normalizer normalizer(aPath, L'\\');
return normalizer.Get(aNormalized);
}
diff --git a/xpcom/io/FilePreferences.h b/xpcom/io/FilePreferences.h
index 71c244201735..fa281f9e6799 100644
--- a/xpcom/io/FilePreferences.h
+++ b/xpcom/io/FilePreferences.h
@@ -13,12 +13,6 @@ void InitPrefs();
void InitDirectoriesWhitelist();
bool IsBlockedUNCPath(const nsAString& aFilePath);
-#ifdef XP_WIN
-bool IsAllowedPath(const nsAString& aFilePath);
-#else
-bool IsAllowedPath(const nsACString& aFilePath);
-#endif
-
namespace testing {
void SetBlockUNCPaths(bool aBlock);
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
index cc241b179ab4..768f66b301ec 100644
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -12,7 +12,6 @@
#include "mozilla/Attributes.h"
#include "mozilla/DebugOnly.h"
#include "mozilla/Sprintf.h"
-#include "mozilla/FilePreferences.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -85,8 +84,6 @@ using namespace mozilla;
do { \
if (mPath.IsEmpty()) \
return NS_ERROR_NOT_INITIALIZED; \
- if (!FilePreferences::IsAllowedPath(mPath)) \
- return NS_ERROR_FILE_ACCESS_DENIED; \
} while(0)
/* directory enumerator */
@@ -143,13 +140,6 @@ nsDirEnumeratorUnix::Init(nsLocalFile* aParent,
return NS_ERROR_FILE_INVALID_PATH;
}
- // When enumerating the directory, the paths must have a slash at the end.
- nsAutoCString dirPathWithSlash(dirPath);
- dirPathWithSlash.Append('/');
- if (!FilePreferences::IsAllowedPath(dirPathWithSlash)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
if (NS_FAILED(aParent->GetNativePath(mParentPath))) {
return NS_ERROR_FAILURE;
}
@@ -279,11 +269,6 @@ nsLocalFile::nsLocalFileConstructor(nsISupports* aOuter,
bool
nsLocalFile::FillStatCache()
{
- if (!FilePreferences::IsAllowedPath(mPath)) {
- errno = EACCES;
- return false;
- }
-
if (STAT(mPath.get(), &mCachedStat) == -1) {
// try lstat it may be a symlink
if (LSTAT(mPath.get(), &mCachedStat) == -1) {
@@ -326,11 +311,6 @@ nsLocalFile::InitWithNativePath(const nsACString& aFilePath)
mPath = aFilePath;
}
- if (!FilePreferences::IsAllowedPath(mPath)) {
- mPath.Truncate();
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
// trim off trailing slashes
ssize_t len = mPath.Length();
while ((len > 1) && (mPath[len - 1] == '/')) {
@@ -344,10 +324,6 @@ nsLocalFile::InitWithNativePath(const nsACString& aFilePath)
NS_IMETHODIMP
nsLocalFile::CreateAllAncestors(uint32_t aPermissions)
{
- if (!FilePreferences::IsAllowedPath(mPath)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
// <jband> I promise to play nice
char* buffer = mPath.BeginWriting();
char* slashp = buffer;
@@ -419,9 +395,6 @@ NS_IMETHODIMP
nsLocalFile::OpenNSPRFileDesc(int32_t aFlags, int32_t aMode,
PRFileDesc** aResult)
{
- if (!FilePreferences::IsAllowedPath(mPath)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
*aResult = PR_Open(mPath.get(), aFlags, aMode);
if (!*aResult) {
return NS_ErrorAccordingToNSPR();
@@ -443,9 +416,6 @@ nsLocalFile::OpenNSPRFileDesc(int32_t aFlags, int32_t aMode,
NS_IMETHODIMP
nsLocalFile::OpenANSIFileDesc(const char* aMode, FILE** aResult)
{
- if (!FilePreferences::IsAllowedPath(mPath)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
*aResult = fopen(mPath.get(), aMode);
if (!*aResult) {
return NS_ERROR_FAILURE;
@@ -472,10 +442,6 @@ nsresult
nsLocalFile::CreateAndKeepOpen(uint32_t aType, int aFlags,
uint32_t aPermissions, PRFileDesc** aResult)
{
- if (!FilePreferences::IsAllowedPath(mPath)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
if (aType != NORMAL_FILE_TYPE && aType != DIRECTORY_TYPE) {
return NS_ERROR_FILE_UNKNOWN_TYPE;
}
@@ -525,10 +491,6 @@ nsLocalFile::CreateAndKeepOpen(uint32_t aType, int aFlags,
NS_IMETHODIMP
nsLocalFile::Create(uint32_t aType, uint32_t aPermissions)
{
- if (!FilePreferences::IsAllowedPath(mPath)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
PRFileDesc* junk = nullptr;
nsresult rv = CreateAndKeepOpen(aType,
PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE |
@@ -584,10 +546,6 @@ nsLocalFile::Normalize()
char resolved_path[PATH_MAX] = "";
char* resolved_path_ptr = nullptr;
- if (!FilePreferences::IsAllowedPath(mPath)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
resolved_path_ptr = realpath(mPath.get(), resolved_path);
// if there is an error, the return is null.
@@ -1059,10 +1017,6 @@ nsLocalFile::MoveToNative(nsIFile* aNewParent, const nsACString& aNewName)
return rv;
}
- if (!FilePreferences::IsAllowedPath(newPathName)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
// try for atomic rename, falling back to copy/delete
if (rename(mPath.get(), newPathName.get()) < 0) {
if (errno == EXDEV) {
@@ -2005,10 +1959,6 @@ nsLocalFile::SetPersistentDescriptor(const nsACString& aPersistentDescriptor)
NS_IMETHODIMP
nsLocalFile::Reveal()
{
- if (!FilePreferences::IsAllowedPath(mPath)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
#ifdef MOZ_WIDGET_GTK
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
if (!giovfs) {
@@ -2052,10 +2002,6 @@ nsLocalFile::Reveal()
NS_IMETHODIMP
nsLocalFile::Launch()
{
- if (!FilePreferences::IsAllowedPath(mPath)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
#ifdef MOZ_WIDGET_GTK
nsCOMPtr<nsIGIOService> giovfs = do_GetService(NS_GIOSERVICE_CONTRACTID);
if (!giovfs) {
@@ -2210,10 +2156,6 @@ nsLocalFile::RenameToNative(nsIFile* aNewParentDir, const nsACString& aNewName)
return rv;
}
- if (!FilePreferences::IsAllowedPath(newPathName)) {
- return NS_ERROR_FILE_ACCESS_DENIED;
- }
-
// try for atomic rename
if (rename(mPath.get(), newPathName.get()) < 0) {
if (errno == EXDEV) {
diff --git a/xpcom/tests/gtest/TestFilePreferencesUnix.cpp b/xpcom/tests/gtest/TestFilePreferencesUnix.cpp
deleted file mode 100644
index c19928fcaec4..000000000000
--- a/xpcom/tests/gtest/TestFilePreferencesUnix.cpp
+++ /dev/null
@@ -1,203 +0,0 @@
-#include "gtest/gtest.h"
-
-#include "mozilla/FilePreferences.h"
-
-#include "nsDirectoryServiceDefs.h"
-#include "nsDirectoryServiceUtils.h"
-#include "mozilla/Preferences.h"
-#include "mozilla/ScopeExit.h"
-#include "nsISimpleEnumerator.h"
-
-using namespace mozilla;
-
-TEST(TestFilePreferencesUnix, Parsing)
-{
- #define kBlacklisted "/tmp/blacklisted"
- #define kBlacklistedDir "/tmp/blacklisted/"
- #define kBlacklistedFile "/tmp/blacklisted/file"
- #define kOther "/tmp/other"
- #define kOtherDir "/tmp/other/"
- #define kOtherFile "/tmp/other/file"
- #define kAllowed "/tmp/allowed"
-
- // This is run on exit of this function to make sure we clear the pref
- // and that behaviour with the pref cleared is correct.
- auto cleanup = MakeScopeExit([&] {
- nsresult rv = Preferences::ClearUser("network.file.path_blacklist");
- ASSERT_EQ(rv, NS_OK);
- FilePreferences::InitPrefs();
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklisted)), true);
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedDir)), true);
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedFile)), true);
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kAllowed)), true);
- });
-
- auto CheckPrefs = [](const nsACString& aPaths)
- {
- nsresult rv;
- rv = Preferences::SetCString("network.file.path_blacklist", aPaths);
- ASSERT_EQ(rv, NS_OK);
- FilePreferences::InitPrefs();
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedDir)), false);
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedDir)), false);
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklistedFile)), false);
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kBlacklisted)), false);
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kAllowed)), true);
- };
-
- CheckPrefs(NS_LITERAL_CSTRING(kBlacklisted));
- CheckPrefs(NS_LITERAL_CSTRING(kBlacklisted "," kOther));
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kOtherFile)), false);
- CheckPrefs(NS_LITERAL_CSTRING(kBlacklisted "," kOther ","));
- ASSERT_EQ(FilePreferences::IsAllowedPath(NS_LITERAL_CSTRING(kOtherFile)), false);
-}
-
-TEST(TestFilePreferencesUnix, Simple)
-{
- nsAutoCString tempPath;
-
- // This is the directory we will blacklist
- nsCOMPtr<nsIFile> blacklistedDir;
- nsresult rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(blacklistedDir));
- ASSERT_EQ(rv, NS_OK);
- rv = blacklistedDir->GetNativePath(tempPath);
- ASSERT_EQ(rv, NS_OK);
- rv = blacklistedDir->AppendNative(NS_LITERAL_CSTRING("blacklisted_dir"));
- ASSERT_EQ(rv, NS_OK);
-
- // This is executed at exit to clean up after ourselves.
- auto cleanup = MakeScopeExit([&] {
- nsresult rv = Preferences::ClearUser("network.file.path_blacklist");
- ASSERT_EQ(rv, NS_OK);
- FilePreferences::InitPrefs();
-
- rv = blacklistedDir->Remove(true);
- ASSERT_EQ(rv, NS_OK);
- });
-
- // Create the directory
- rv = blacklistedDir->Create(nsIFile::DIRECTORY_TYPE, 0666);
- ASSERT_EQ(rv, NS_OK);
-
- // This is the file we will try to access
- nsCOMPtr<nsIFile> blacklistedFile;
- rv = blacklistedDir->Clone(getter_AddRefs(blacklistedFile));
- ASSERT_EQ(rv, NS_OK);
- rv = blacklistedFile->AppendNative(NS_LITERAL_CSTRING("test_file"));
-
- // Create the file
- ASSERT_EQ(rv, NS_OK);
- rv = blacklistedFile->Create(nsIFile::NORMAL_FILE_TYPE, 0666);
-
- // Get the path for the blacklist
- nsAutoCString blackListPath;
- rv = blacklistedDir->GetNativePath(blackListPath);
- ASSERT_EQ(rv, NS_OK);
-
- // Set the pref and make sure it is enforced
- rv = Preferences::SetCString("network.file.path_blacklist", blackListPath);
- ASSERT_EQ(rv, NS_OK);
- FilePreferences::InitPrefs();
-
- // Check that we can't access some of the file attributes
- int64_t size;
- rv = blacklistedFile->GetFileSize(&size);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- bool exists;
- rv = blacklistedFile->Exists(&exists);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- // Check that we can't enumerate the directory
- nsCOMPtr<nsISimpleEnumerator> dirEnumerator;
- rv = blacklistedDir->GetDirectoryEntries(getter_AddRefs(dirEnumerator));
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- nsCOMPtr<nsIFile> newPath;
- rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(newPath));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->AppendNative(NS_LITERAL_CSTRING("."));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->AppendNative(NS_LITERAL_CSTRING("blacklisted_dir"));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->Exists(&exists);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- rv = newPath->AppendNative(NS_LITERAL_CSTRING("test_file"));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->Exists(&exists);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- // Check that ./ does not bypass the filter
- rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(newPath));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->AppendRelativeNativePath(NS_LITERAL_CSTRING("./blacklisted_dir/file"));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->Exists(&exists);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- // Check that .. does not bypass the filter
- rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(newPath));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->AppendRelativeNativePath(NS_LITERAL_CSTRING("allowed/../blacklisted_dir/file"));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->Exists(&exists);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(newPath));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->AppendNative(NS_LITERAL_CSTRING("allowed"));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->AppendNative(NS_LITERAL_CSTRING(".."));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->AppendNative(NS_LITERAL_CSTRING("blacklisted_dir"));
- ASSERT_EQ(rv, NS_OK);
- rv = newPath->Exists(&exists);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- nsAutoCString trickyPath(tempPath);
- trickyPath.AppendLiteral("/allowed/../blacklisted_dir/file");
- rv = newPath->InitWithNativePath(trickyPath);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- // Check that we can't construct a path that is functionally the same
- // as the blacklisted one and bypasses the filter.
- trickyPath = tempPath;
- trickyPath.AppendLiteral("/./blacklisted_dir/file");
- rv = newPath->InitWithNativePath(trickyPath);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- trickyPath = tempPath;
- trickyPath.AppendLiteral("//blacklisted_dir/file");
- rv = newPath->InitWithNativePath(trickyPath);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- trickyPath.Truncate();
- trickyPath.AppendLiteral("//");
- trickyPath.Append(tempPath);
- trickyPath.AppendLiteral("/blacklisted_dir/file");
- rv = newPath->InitWithNativePath(trickyPath);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- trickyPath.Truncate();
- trickyPath.AppendLiteral("//");
- trickyPath.Append(tempPath);
- trickyPath.AppendLiteral("//blacklisted_dir/file");
- rv = newPath->InitWithNativePath(trickyPath);
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-
- // Check that if the blacklisted string is a directory, we only block access
- // to subresources, not the directory itself.
- nsAutoCString blacklistDirPath(blackListPath);
- blacklistDirPath.Append("/");
- rv = Preferences::SetCString("network.file.path_blacklist", blacklistDirPath);
- ASSERT_EQ(rv, NS_OK);
- FilePreferences::InitPrefs();
-
- // This should work, since we only block subresources
- rv = blacklistedDir->Exists(&exists);
- ASSERT_EQ(rv, NS_OK);
-
- rv = blacklistedDir->GetDirectoryEntries(getter_AddRefs(dirEnumerator));
- ASSERT_EQ(rv, NS_ERROR_FILE_ACCESS_DENIED);
-}
diff --git a/xpcom/tests/gtest/moz.build b/xpcom/tests/gtest/moz.build
index 4f1c9c73d653..90b5fd7652e6 100644
--- a/xpcom/tests/gtest/moz.build
+++ b/xpcom/tests/gtest/moz.build
@@ -73,11 +73,6 @@ if CONFIG['OS_TARGET'] == 'WINNT':
UNIFIED_SOURCES += [
'TestFilePreferencesWin.cpp',
]
-else:
- UNIFIED_SOURCES += [
- 'TestFilePreferencesUnix.cpp',
- ]
-
if CONFIG['WRAP_STL_INCLUDES'] and CONFIG['CC_TYPE'] != 'clang-cl':
UNIFIED_SOURCES += [
1
0

[tor-browser-build/master] Bug 27152: Use mozilla/fxc2.git for the fxc2 repository
by gk@torproject.org 16 Aug '18
by gk@torproject.org 16 Aug '18
16 Aug '18
commit 8a863c42d0ce0a697aaca52cc97603cf6327754e
Author: Sukhbir Singh <sukhbir(a)torproject.org>
Date: Wed Aug 15 10:49:37 2018 -0400
Bug 27152: Use mozilla/fxc2.git for the fxc2 repository
---
projects/fxc2/config | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/projects/fxc2/config b/projects/fxc2/config
index aac9158..5cdf03a 100644
--- a/projects/fxc2/config
+++ b/projects/fxc2/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
-git_url: https://github.com/azadi/fxc2.git
-git_hash: 079f5c7b9f6ea0b7e5504bb53abf8709cc92835d
+git_url: https://github.com/mozilla/fxc2.git
+git_hash: 0b800f3e41ed087df6f51f120165f3ccc71cc27c
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
var:
1
0
commit 8a146c9644ffeff3d283b1643066f920946b91aa
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Aug 16 08:16:31 2018 +0000
Release preparations for 2.0.2:
Version bump and CHANGELOG update
---
src/CHANGELOG | 12 ++++++++++++
src/install.rdf | 2 +-
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/CHANGELOG b/src/CHANGELOG
index f1cd4cd1..ce4354bd 100644
--- a/src/CHANGELOG
+++ b/src/CHANGELOG
@@ -1,3 +1,15 @@
+2.0.2
+ * Bug 26960: Implement new about:tor start page
+ * Bug 26961: Implement new user onboarding
+ * Bug 26321: Move 'New Identity', 'New Circuit' to File, hamburger menus
+ * Bug 26590: Use new svg.disabled pref in security slider
+ * Bug 26655: Adjust color and size of onion button
+ * Bug 26500: Reposition circuit display relay icon for RTL locales
+ * Bug 26409: Remove spoofed locale implementation
+ * Bug 26189: Remove content-policy.js
+ * Bug 27129: Add locales ca, ga, id, is, nb
+ * Translations update
+
2.0.1
* Bug 26100: Adapt Torbutton to Firefox 60 ESR
* Bug 26430: New Torbutton icon
diff --git a/src/install.rdf b/src/install.rdf
index 233fe1f4..8a085cbc 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -6,7 +6,7 @@
<em:name>Torbutton</em:name>
<em:creator>Mike Perry</em:creator>
<em:id>torbutton(a)torproject.org</em:id>
- <em:version>2.0.1</em:version>
+ <em:version>2.0.2</em:version>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html.en</em:homepageURL>
<em:optionsURL>chrome://torbutton/content/preferences.xul</em:optionsURL>
1
0
commit 5921dff5437fe9163afc388b9ec5bbcb1848d302
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Aug 16 07:46:07 2018 +0000
Translations update
---
src/chrome/locale/ach/network-settings.dtd | 2 +-
src/chrome/locale/af/network-settings.dtd | 2 +-
src/chrome/locale/ak/network-settings.dtd | 2 +-
src/chrome/locale/am/network-settings.dtd | 2 +-
src/chrome/locale/ar/network-settings.dtd | 2 +-
src/chrome/locale/arn/network-settings.dtd | 2 +-
src/chrome/locale/ast/network-settings.dtd | 2 +-
src/chrome/locale/az/network-settings.dtd | 2 +-
src/chrome/locale/be/network-settings.dtd | 2 +-
src/chrome/locale/bg/network-settings.dtd | 2 +-
src/chrome/locale/bn-BD/network-settings.dtd | 4 +-
src/chrome/locale/bn-BD/torlauncher.properties | 24 +++++-----
src/chrome/locale/bn/network-settings.dtd | 2 +-
src/chrome/locale/bo/network-settings.dtd | 2 +-
src/chrome/locale/br/network-settings.dtd | 2 +-
src/chrome/locale/bs/network-settings.dtd | 2 +-
src/chrome/locale/ca/network-settings.dtd | 2 +-
src/chrome/locale/cs/network-settings.dtd | 2 +-
src/chrome/locale/csb/network-settings.dtd | 2 +-
src/chrome/locale/cv/network-settings.dtd | 2 +-
src/chrome/locale/cy/network-settings.dtd | 2 +-
src/chrome/locale/da/network-settings.dtd | 6 +--
src/chrome/locale/da/torlauncher.properties | 16 +++----
src/chrome/locale/de/network-settings.dtd | 4 +-
src/chrome/locale/de/torlauncher.properties | 18 ++++----
src/chrome/locale/dz/network-settings.dtd | 2 +-
src/chrome/locale/el/network-settings.dtd | 2 +-
src/chrome/locale/en-GB/network-settings.dtd | 2 +-
src/chrome/locale/eo/network-settings.dtd | 2 +-
src/chrome/locale/es-AR/network-settings.dtd | 2 +-
src/chrome/locale/es-CL/network-settings.dtd | 2 +-
src/chrome/locale/es-CO/network-settings.dtd | 2 +-
src/chrome/locale/es-MX/network-settings.dtd | 2 +-
src/chrome/locale/es/network-settings.dtd | 2 +-
src/chrome/locale/et/network-settings.dtd | 6 +--
src/chrome/locale/et/torlauncher.properties | 18 ++++----
src/chrome/locale/eu/network-settings.dtd | 6 +--
src/chrome/locale/fa/network-settings.dtd | 4 +-
src/chrome/locale/fa/torlauncher.properties | 2 +-
src/chrome/locale/fi/network-settings.dtd | 2 +-
src/chrome/locale/fil/network-settings.dtd | 2 +-
src/chrome/locale/fo/network-settings.dtd | 2 +-
src/chrome/locale/fr/network-settings.dtd | 2 +-
src/chrome/locale/fur/network-settings.dtd | 2 +-
src/chrome/locale/fy/network-settings.dtd | 2 +-
src/chrome/locale/ga/network-settings.dtd | 2 +-
src/chrome/locale/gl/network-settings.dtd | 2 +-
src/chrome/locale/gu-IN/network-settings.dtd | 2 +-
src/chrome/locale/gu/network-settings.dtd | 2 +-
src/chrome/locale/gu/torlauncher.properties | 2 +-
src/chrome/locale/gun/network-settings.dtd | 2 +-
src/chrome/locale/ha/network-settings.dtd | 2 +-
src/chrome/locale/he/network-settings.dtd | 14 +++---
src/chrome/locale/he/torlauncher.properties | 6 +--
src/chrome/locale/hi/network-settings.dtd | 2 +-
src/chrome/locale/hr-HR/network-settings.dtd | 2 +-
src/chrome/locale/hr/network-settings.dtd | 2 +-
src/chrome/locale/ht/network-settings.dtd | 2 +-
src/chrome/locale/hu/network-settings.dtd | 2 +-
src/chrome/locale/hy/network-settings.dtd | 2 +-
src/chrome/locale/ia/network-settings.dtd | 2 +-
src/chrome/locale/id/network-settings.dtd | 2 +-
src/chrome/locale/is/network-settings.dtd | 2 +-
src/chrome/locale/it/network-settings.dtd | 2 +-
src/chrome/locale/ja/network-settings.dtd | 2 +-
src/chrome/locale/jv/network-settings.dtd | 2 +-
src/chrome/locale/ka/network-settings.dtd | 52 +++++++++++-----------
src/chrome/locale/ka/torlauncher.properties | 10 ++---
src/chrome/locale/kk/network-settings.dtd | 2 +-
src/chrome/locale/km/network-settings.dtd | 2 +-
src/chrome/locale/kn/network-settings.dtd | 2 +-
src/chrome/locale/ko-KR/network-settings.dtd | 2 +-
src/chrome/locale/ko/network-settings.dtd | 2 +-
src/chrome/locale/ku/network-settings.dtd | 2 +-
src/chrome/locale/kw/network-settings.dtd | 2 +-
src/chrome/locale/ky/network-settings.dtd | 2 +-
src/chrome/locale/lb/network-settings.dtd | 2 +-
src/chrome/locale/lg/network-settings.dtd | 2 +-
src/chrome/locale/ln/network-settings.dtd | 2 +-
src/chrome/locale/lo/network-settings.dtd | 2 +-
src/chrome/locale/lt/network-settings.dtd | 2 +-
src/chrome/locale/lt/torlauncher.properties | 10 ++---
src/chrome/locale/lv/network-settings.dtd | 2 +-
src/chrome/locale/mg/network-settings.dtd | 2 +-
src/chrome/locale/mi/network-settings.dtd | 2 +-
src/chrome/locale/mk/network-settings.dtd | 2 +-
src/chrome/locale/ml/network-settings.dtd | 18 ++++----
src/chrome/locale/ml/torlauncher.properties | 4 +-
src/chrome/locale/mn/network-settings.dtd | 2 +-
src/chrome/locale/mr/network-settings.dtd | 2 +-
src/chrome/locale/ms-MY/network-settings.dtd | 2 +-
src/chrome/locale/mt/network-settings.dtd | 2 +-
src/chrome/locale/my/network-settings.dtd | 2 +-
src/chrome/locale/nah/network-settings.dtd | 2 +-
src/chrome/locale/nap/network-settings.dtd | 2 +-
src/chrome/locale/nb/network-settings.dtd | 4 +-
src/chrome/locale/nb/torlauncher.properties | 10 ++---
src/chrome/locale/ne/network-settings.dtd | 2 +-
src/chrome/locale/nl-BE/network-settings.dtd | 2 +-
src/chrome/locale/nl/network-settings.dtd | 2 +-
src/chrome/locale/nn/network-settings.dtd | 2 +-
src/chrome/locale/nso/network-settings.dtd | 2 +-
src/chrome/locale/oc/network-settings.dtd | 2 +-
src/chrome/locale/or/network-settings.dtd | 2 +-
src/chrome/locale/pa/network-settings.dtd | 2 +-
src/chrome/locale/pap/network-settings.dtd | 2 +-
src/chrome/locale/pl/network-settings.dtd | 2 +-
src/chrome/locale/pms/network-settings.dtd | 2 +-
src/chrome/locale/ps/network-settings.dtd | 2 +-
src/chrome/locale/pt-BR/network-settings.dtd | 2 +-
src/chrome/locale/pt/network-settings.dtd | 2 +-
src/chrome/locale/ro/network-settings.dtd | 2 +-
src/chrome/locale/ru/network-settings.dtd | 26 +++++------
src/chrome/locale/ru(a)petr1708/network-settings.dtd | 2 +-
src/chrome/locale/sco/network-settings.dtd | 2 +-
src/chrome/locale/si-LK/network-settings.dtd | 2 +-
src/chrome/locale/sk-SK/network-settings.dtd | 2 +-
src/chrome/locale/sk/network-settings.dtd | 2 +-
src/chrome/locale/sl-SI/network-settings.dtd | 2 +-
src/chrome/locale/sl/network-settings.dtd | 2 +-
src/chrome/locale/sn/network-settings.dtd | 2 +-
src/chrome/locale/so/network-settings.dtd | 2 +-
src/chrome/locale/son/network-settings.dtd | 2 +-
src/chrome/locale/sq/network-settings.dtd | 2 +-
src/chrome/locale/sr/network-settings.dtd | 4 +-
src/chrome/locale/sr(a)latin/network-settings.dtd | 2 +-
src/chrome/locale/st/network-settings.dtd | 2 +-
src/chrome/locale/su/network-settings.dtd | 2 +-
src/chrome/locale/sv/network-settings.dtd | 2 +-
src/chrome/locale/sw/network-settings.dtd | 2 +-
src/chrome/locale/ta/network-settings.dtd | 2 +-
src/chrome/locale/te/network-settings.dtd | 2 +-
src/chrome/locale/tg/network-settings.dtd | 2 +-
src/chrome/locale/th/network-settings.dtd | 2 +-
src/chrome/locale/ti/network-settings.dtd | 2 +-
src/chrome/locale/tk/network-settings.dtd | 2 +-
src/chrome/locale/tr/network-settings.dtd | 2 +-
src/chrome/locale/uk/network-settings.dtd | 2 +-
src/chrome/locale/ur-PK/network-settings.dtd | 2 +-
src/chrome/locale/ur/network-settings.dtd | 2 +-
src/chrome/locale/uz/network-settings.dtd | 2 +-
src/chrome/locale/ve/network-settings.dtd | 2 +-
src/chrome/locale/vi/network-settings.dtd | 34 +++++++-------
src/chrome/locale/wa/network-settings.dtd | 2 +-
src/chrome/locale/wo/network-settings.dtd | 2 +-
src/chrome/locale/zh-CN/network-settings.dtd | 2 +-
src/chrome/locale/zh-HK/network-settings.dtd | 2 +-
src/chrome/locale/zh-TW/network-settings.dtd | 2 +-
src/chrome/locale/zh-TW/torlauncher.properties | 16 +++----
src/chrome/locale/zu/network-settings.dtd | 2 +-
150 files changed, 284 insertions(+), 284 deletions(-)
diff --git a/src/chrome/locale/ach/network-settings.dtd b/src/chrome/locale/ach/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ach/network-settings.dtd
+++ b/src/chrome/locale/ach/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/af/network-settings.dtd b/src/chrome/locale/af/network-settings.dtd
index 68db502..739c19c 100644
--- a/src/chrome/locale/af/network-settings.dtd
+++ b/src/chrome/locale/af/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ak/network-settings.dtd b/src/chrome/locale/ak/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ak/network-settings.dtd
+++ b/src/chrome/locale/ak/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/am/network-settings.dtd b/src/chrome/locale/am/network-settings.dtd
index dacc333..d23064d 100644
--- a/src/chrome/locale/am/network-settings.dtd
+++ b/src/chrome/locale/am/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ar/network-settings.dtd b/src/chrome/locale/ar/network-settings.dtd
index b06d17d..15640be 100644
--- a/src/chrome/locale/ar/network-settings.dtd
+++ b/src/chrome/locale/ar/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "نسخ سجل تور إلي الحافظة">
<!ENTITY torsettings.proxyHelpTitle "مساعدة الوسيط">
-<!ENTITY torsettings.proxyHelp1 "تحتاج لوسيط (بروكسي) محلي عند الاتصال عبر شركة، أو مدرسة، أو شبكة جامعية. إذا لم تكن متأكدا من كيفية الإجابة على هذا السؤال فألق نظرة على إعدادات الإنترنت في متصفح آخر أو تحقق من إعدادات شبكة نظامك لتتأكد إن كان هناك حاجة لوسيط.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "المساعدة الخاصة بالجسور المُرحلة">
<!ENTITY torsettings.bridgeHelp1 "الجسور هي تحويلات غير مدرجة تجعل حجب الاتصالات إلى شبكة تور أصعب.  كل نوع من الجسور يستخدم طريقة مختلفة لتجنب الرقابة.  جسور obfs تجعل حركة معلوماتك تبدو كضجيج عشوائي، وجسور meek تجعل حركة معلوماتك تبدوا كأنها تتصل لتلك الخدمة بدلا من تور.">
diff --git a/src/chrome/locale/arn/network-settings.dtd b/src/chrome/locale/arn/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/arn/network-settings.dtd
+++ b/src/chrome/locale/arn/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ast/network-settings.dtd b/src/chrome/locale/ast/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ast/network-settings.dtd
+++ b/src/chrome/locale/ast/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/az/network-settings.dtd b/src/chrome/locale/az/network-settings.dtd
index d858896..b50b5bd 100644
--- a/src/chrome/locale/az/network-settings.dtd
+++ b/src/chrome/locale/az/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Tor bort jurnalını panoya kopyalayın">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Körpü Keçid Dəstəyi">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/be/network-settings.dtd b/src/chrome/locale/be/network-settings.dtd
index 0bb0df1..c4f9af4 100644
--- a/src/chrome/locale/be/network-settings.dtd
+++ b/src/chrome/locale/be/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/bg/network-settings.dtd b/src/chrome/locale/bg/network-settings.dtd
index 9b482f3..3ce31b5 100644
--- a/src/chrome/locale/bg/network-settings.dtd
+++ b/src/chrome/locale/bg/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Копирай Tor лога в клипборда">
<!ENTITY torsettings.proxyHelpTitle "Прокси помощ">
-<!ENTITY torsettings.proxyHelp1 "Локално прокси е нужно, когато се свързвате през мрежата на компания, училище или университет. Ако не сте сигурни как да отговорите на този въпрос, вижте интернет настройките на друг браузър или разгледайте системните мрежови настройки, за да видите дали се нуждаете от прокси.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay помощ">
<!ENTITY torsettings.bridgeHelp1 "Бриджовете са не публикуване релеи, които правят блокирването на връзката до Tor мрежата много по-трудно. Всеки тип бридж използва различен метод да заообиколи цензурата. Тези, използващи obfs маскират интернет трафика като произволен шум, базираните на meek маскират трафика да излглежда, че се свързва с услугата, а не с Tor.">
diff --git a/src/chrome/locale/bn-BD/network-settings.dtd b/src/chrome/locale/bn-BD/network-settings.dtd
index 4129ee0..b9f0ba6 100644
--- a/src/chrome/locale/bn-BD/network-settings.dtd
+++ b/src/chrome/locale/bn-BD/network-settings.dtd
@@ -44,7 +44,7 @@
<!ENTITY torsettings.useBridges.bridgeDB "torproject.org থেকে একটি সেতুর জন্য অনুরোধ করুন">
<!ENTITY torsettings.useBridges.captchaSolution.placeholder "ইমেজ থেকে অক্ষর লিখুন">
<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "একটি নতুন চ্যালেঞ্জ পান">
-<!ENTITY torsettings.useBridges.captchaSubmit "জমা করা">
+<!ENTITY torsettings.useBridges.captchaSubmit "জমা করুন">
<!ENTITY torsettings.useBridges.custom "একটি ব্রিজ প্রদান আমি জানি">
<!ENTITY torsettings.useBridges.label "বিশ্বস্ত উৎস থেকে ব্রিজ তথ্য প্রবেশ করান।">
<!ENTITY torsettings.useBridges.placeholder "টাইপ ঠিকানা: পোর্ট (প্রতি লাইন প্রতি)">
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "ক্লিপবোর্ডে কপি টর লগ করুন">
<!ENTITY torsettings.proxyHelpTitle "প্রক্সি সাহায্য">
-<!ENTITY torsettings.proxyHelp1 "একটি কোম্পানী, স্কুল বা বিশ্ববিদ্যালয় নেটওয়ার্কের মাধ্যমে সংযোগ স্থাপন করার সময় একটি স্থানীয় প্রক্সি প্রয়োজন। আপনি   যদি এই প্রশ্নটির উত্তর দিতে না পারেন তবে অন্য ব্রাউজারের ইন্টারনেট সেটিংস দেখুন বা আপনার প্রক্সিটির প্রয়োজন কিনা তা দেখতে আপনার সিস্টেমের নেটওয়ার্ক সেটিংস পরীক্ষা করুন।">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "ব্রিজ রিলে সহায়তা">
<!ENTITY torsettings.bridgeHelp1 "ব্রিজগুলি তালিকাভুক্ত নয় এমন রিলে যা টর নেটওয়ার্ক সংযোগ বন্ধ করে আরও কঠিন করে তোলে।   সেন্সরশিপ এড়ানোর জন্য প্রতিটি ধরনের সেতু একটি ভিন্ন পদ্ধতি ব্যবহার করে।   Obfs আপনার ট্র্যাফিক র্যান্ডম শব্দ মত চেহারা, এবং নিছক টাওয়ার ট্র্যাফিক চেহারা মত এটি টর পরিবর্তে যে পরিষেবা সংযোগ করা হয়।">
diff --git a/src/chrome/locale/bn-BD/torlauncher.properties b/src/chrome/locale/bn-BD/torlauncher.properties
index a418269..e607db2 100644
--- a/src/chrome/locale/bn-BD/torlauncher.properties
+++ b/src/chrome/locale/bn-BD/torlauncher.properties
@@ -26,20 +26,20 @@ torlauncher.error_proxy_addr_missing=আপনি ইন্টারনেট
torlauncher.error_proxy_type_missing=আপনাকে প্রক্সি টাইপ নির্বাচন করতে হবে।
torlauncher.error_bridges_missing=আপনাকে অবশ্যই এক বা একাধিক ব্রিজগুলি নির্দিষ্ট করতে হবে।
torlauncher.error_default_bridges_type_missing=সরবরাহকৃত ব্রিজের জন্য আপনাকে অবশ্যই একটি পরিবহন প্রকার নির্বাচন করতে হবে।
-torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
+torlauncher.error_bridgedb_bridges_missing=একটি ব্রিজ অনুরোধ করুন
torlauncher.error_bridge_bad_default_type=কোনও ব্রিজ নেই যেটি ট্রান্সপোর্ট টাইপ% S আছে। আপনার সেটিংস সামঞ্জস্য করুন দয়া করে।
torlauncher.bridge_suffix.meek-amazon=(চীন মধ্যে কাজ করে)
torlauncher.bridge_suffix.meek-azure=(চীন মধ্যে কাজ করে)
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.request_a_bridge=ব্রিজ অনুরোধ করুন........
+torlauncher.request_a_new_bridge=একটি নতুন ব্রিজ অনুরোধ করুন
+torlauncher.contacting_bridgedb=ব্রিজডিবি এ যোগাযোগ করা হচ্ছে। অনুগ্রহপূর্বক অপেক্ষা করুন.
+torlauncher.captcha_prompt=একটি ব্রিজ অনুরোধ করার জন্য ক্যাপচা সমাধান করুন।...
+torlauncher.bad_captcha_solution=সমাধান সঠিক নয়। অনুগ্রহপূর্বক আবার চেষ্টা করুন.
+torlauncher.unable_to_get_bridge=BridgeDB থেকে একটি ব্রিজ প্রাপ্ত করতে অক্ষম।
+torlauncher.no_meek=এই ব্রাউজারটি meek এর জন্য কনফিগার করা হয় নি, যা ব্রিজ প্রাপ্ত করার প্রয়োজন হয়।
+torlauncher.no_bridges_available=এই সময়ে কোন ব্রিজ নেই। দুঃখিত।
torlauncher.connect=সংযোগ করা
torlauncher.restart_tor=টর্চ পুনরায় চালু করুন
@@ -73,6 +73,6 @@ torlauncher.bootstrapWarning.noroute=কোন রুট হোস্ট কর
torlauncher.bootstrapWarning.ioerror=পড়া / লিখুন ত্রুটি
torlauncher.bootstrapWarning.pt_missing=অনুপস্থিত প্ল্যাগেবল পরিবহন
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
+torlauncher.nsresult.NS_ERROR_NET_RESET=সার্ভারের সংযোগ হারিয়ে গেছে।
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=সার্ভারের সাথে যুক্ত হতে পারছে না.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=প্রক্সি সাথে সংযোগ করা যায়নি
diff --git a/src/chrome/locale/bn/network-settings.dtd b/src/chrome/locale/bn/network-settings.dtd
index 1bdb0d7..8ba1fd3 100644
--- a/src/chrome/locale/bn/network-settings.dtd
+++ b/src/chrome/locale/bn/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/bo/network-settings.dtd b/src/chrome/locale/bo/network-settings.dtd
index 52be4bc..c281daf 100644
--- a/src/chrome/locale/bo/network-settings.dtd
+++ b/src/chrome/locale/bo/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/br/network-settings.dtd b/src/chrome/locale/br/network-settings.dtd
index 43c1d01..4870d28 100644
--- a/src/chrome/locale/br/network-settings.dtd
+++ b/src/chrome/locale/br/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/bs/network-settings.dtd b/src/chrome/locale/bs/network-settings.dtd
index 28d22e4..25ee444 100644
--- a/src/chrome/locale/bs/network-settings.dtd
+++ b/src/chrome/locale/bs/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ca/network-settings.dtd b/src/chrome/locale/ca/network-settings.dtd
index a50fac7..0d02c66 100644
--- a/src/chrome/locale/ca/network-settings.dtd
+++ b/src/chrome/locale/ca/network-settings.dtd
@@ -53,7 +53,7 @@
<!ENTITY torsettings.copyLog "Copia el registre de Tor al porta-retalls">
<!ENTITY torsettings.proxyHelpTitle "Ajuda del servidor intermediari">
-<!ENTITY torsettings.proxyHelp1 "Cal un servidor intermediari local en connectar-vos mitjançant la xarxa d'una companyia, escola o universitat. Si no sabeu com respondre aquesta pregunta, mireu les preferències d'internet d'un altre navegador o reviseu la configuració de xarxa del vostre sistema per a veure si cal un servidor intermediari local.">
+<!ENTITY torsettings.proxyHelp1 "Pot ser necessari un servidor intermediari local quan us connecteu a través de la xarxa d'una empresa, escola o universitat. Si no esteu segur de necessitar un servidor intermediari, mireu els paràmetres d'un altre navegador o comproveu la configuració de xarxa del vostre sistema.">
<!ENTITY torsettings.bridgeHelpTitle "Ajuda per als repetidors de pont">
<!ENTITY torsettings.bridgeHelp1 "Els ponts són repetidors no llistats que fan més difícil el bloqueig de connexions a la xarxa Tor.  Cada tipus de pont usa un mètode diferent per a evitar la censura.  Els tipus OBFS fan passar el vostre tràfic com a soroll aleatori, mentre que els MEEK fan que paregui que es connecta a un altre servei diferent a Tor.">
diff --git a/src/chrome/locale/cs/network-settings.dtd b/src/chrome/locale/cs/network-settings.dtd
index f386f3d..20d4e19 100644
--- a/src/chrome/locale/cs/network-settings.dtd
+++ b/src/chrome/locale/cs/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Zkopíruj logový soubor Toru do schránky">
<!ENTITY torsettings.proxyHelpTitle "Nápověda k proxy">
-<!ENTITY torsettings.proxyHelp1 "Při připojování přes firemní, školní nebo univerzitní síť je třeba místní proxy. Pokud si nejste jisti jak odpovědět na tuto otázku, podívejte se na Internetová nastavení v jiném prohlížeči nebo na systémová nastavení sítě, kde uvidíte, zda je potřeba proxy.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Nápověda o mostních relé">
<!ENTITY torsettings.bridgeHelp1 "Mosty jsou nezveřejněné prvky, které dělají blokování připojení k síti Tor obtížnější.  Každý typ mostu používá odlišný způsob jak zabránit cenzuře.  Obfs mosty dělají z vašich dat náhodný šum a meek mosty vytvářejí dojem, že se připojujete k dané službě a ne k Toru.">
diff --git a/src/chrome/locale/csb/network-settings.dtd b/src/chrome/locale/csb/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/csb/network-settings.dtd
+++ b/src/chrome/locale/csb/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/cv/network-settings.dtd b/src/chrome/locale/cv/network-settings.dtd
index 2f590f6..c4d154c 100644
--- a/src/chrome/locale/cv/network-settings.dtd
+++ b/src/chrome/locale/cv/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/cy/network-settings.dtd b/src/chrome/locale/cy/network-settings.dtd
index eb5b4ff..e721af4 100644
--- a/src/chrome/locale/cy/network-settings.dtd
+++ b/src/chrome/locale/cy/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copio Cofnod Tor i'r Clipfwrdd">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Cymorth Pont Relái">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/da/network-settings.dtd b/src/chrome/locale/da/network-settings.dtd
index 77ae01e..a9c2852 100644
--- a/src/chrome/locale/da/network-settings.dtd
+++ b/src/chrome/locale/da/network-settings.dtd
@@ -11,8 +11,8 @@
<!ENTITY torSettings.connectPrompt "Klik på “Opret forbindelse” for at oprette forbindelse til Tor.">
<!ENTITY torSettings.configurePrompt "Klik på “Konfigurer” for at justere netværksindstillinger hvis du er i et land som censurerer Tor (såsom Egypten, Kina, Tyrkiet) eller hvis du opretter forbindelse fra et privat netværk som kræver en proxy.">
-<!ENTITY torSettings.configure "Indstil">
-<!ENTITY torSettings.connect "Tilslut">
+<!ENTITY torSettings.configure "Konfigurer">
+<!ENTITY torSettings.connect "Opret forbindelse">
<!-- Other: -->
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopiér Tor-loggen til udklipsholderen">
<!ENTITY torsettings.proxyHelpTitle "Hjælp til proxy">
-<!ENTITY torsettings.proxyHelp1 "Det er nødvendigt med en lokal proxy når der oprettes forbindelse gennem et firma-, skole- eller universitetsnetværk. Hvis du i tvivl om hvordan du skal svarer på sprøgsmålet, så kig i internetindstillingerne i en anden browser eller tjek dit systems netværksindstillinger, for at se om det er nødvendigt med en proxy.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bro-relæ hjælp">
<!ENTITY torsettings.bridgeHelp1 "Broer er ulistede relæer som gør det sværrer at blokere forbindelser til Tor-netværket.  Hver type bro bruger en anderledes metode for at undgå censur.  Dem med obfs får din netværkstrafik til at ligne tilfældig støj og dem med meek får din netværkstrafik til at se ud som om den er forbundet til tjenesten i stedet for Tor.">
diff --git a/src/chrome/locale/da/torlauncher.properties b/src/chrome/locale/da/torlauncher.properties
index daa4651..a036c91 100644
--- a/src/chrome/locale/da/torlauncher.properties
+++ b/src/chrome/locale/da/torlauncher.properties
@@ -22,7 +22,7 @@ torlauncher.failed_to_get_settings=Kunne ikke læse Tor indstillingerne..⏎\n
torlauncher.failed_to_save_settings=Kunne ikke gemme Tor indstillingerne.⏎\n⏎\n%S
torlauncher.ensure_tor_is_running=Kontroller venligst at Tor kører.
-torlauncher.error_proxy_addr_missing=Du skal angive både IP adresse eller værts navn og en port, for at indstille Tor til at bruge en proxy som forbindelse til internettet.
+torlauncher.error_proxy_addr_missing=Du skal angive både IP adresse eller værts navn og en port, for at konfigurere Tor til at bruge en proxy som forbindelse til internettet.
torlauncher.error_proxy_type_missing=Du skal vælge proxytypen:
torlauncher.error_bridges_missing=Du skal angive en eller flere broer.
torlauncher.error_default_bridges_type_missing=Du skal vælge en transporttype for de tildelte broer.
@@ -41,24 +41,24 @@ torlauncher.unable_to_get_bridge=Kan ikke hente en bro fra BridgeDB.\n\n%S
torlauncher.no_meek=Browseren er ikke konfigureret til meek, som behøves for at hente broer.
torlauncher.no_bridges_available=Der er ingen broer tilgængelige på nuværende tidspunkt. Beklager.
-torlauncher.connect=Tilslut
+torlauncher.connect=Opret forbindelse
torlauncher.restart_tor=Genstart Tor
torlauncher.quit=Afslut
torlauncher.quit_win=Afslut
torlauncher.done=Færdig
torlauncher.forAssistance=For hjælp, kontakt %S
-torlauncher.forAssistance2=For hjælp, gå til %S
+torlauncher.forAssistance2=For hjælp, besøg %S
torlauncher.copiedNLogMessages=Kopieringen er gennemført. %S logbeskeder fra Tor er klar til at blive sat ind i et tekstdokument eller en e-mail.
-torlauncher.bootstrapStatus.conn_dir=Tilslutter til relæ mappe
+torlauncher.bootstrapStatus.conn_dir=Opretter forbindelse til en relæmappe
torlauncher.bootstrapStatus.handshake_dir=Etablerer en krypteret mappe forbindelse
-torlauncher.bootstrapStatus.requesting_status=Henter netværk status
-torlauncher.bootstrapStatus.loading_status=Henter netværk status
-torlauncher.bootstrapStatus.loading_keys=Henter nøglecentercertifikater
+torlauncher.bootstrapStatus.requesting_status=Henter netværksstatus
+torlauncher.bootstrapStatus.loading_status=Indlæser netværksstatus
+torlauncher.bootstrapStatus.loading_keys=Indlæser nøglecentercertifikater
torlauncher.bootstrapStatus.requesting_descriptors=Anmoder om relæ information
-torlauncher.bootstrapStatus.loading_descriptors=Henter relæ information
+torlauncher.bootstrapStatus.loading_descriptors=Indlæser relæinformation
torlauncher.bootstrapStatus.conn_or=Opretter forbindelse til Tor-netværket
torlauncher.bootstrapStatus.handshake_or=Etablerer et Tor-kredsløb
torlauncher.bootstrapStatus.done=Forbundet til Tor-netværket!
diff --git a/src/chrome/locale/de/network-settings.dtd b/src/chrome/locale/de/network-settings.dtd
index 0984152..33caee2 100644
--- a/src/chrome/locale/de/network-settings.dtd
+++ b/src/chrome/locale/de/network-settings.dtd
@@ -43,7 +43,7 @@
<!ENTITY torsettings.useBridges.default.placeholder "Brücke auswählen">
<!ENTITY torsettings.useBridges.bridgeDB "Brücke von torproject.org anfragen">
<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Geben Sie die Zeichen in dem Bild ein">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Neue Herausforderung bekommen">
<!ENTITY torsettings.useBridges.captchaSubmit "Übermitteln">
<!ENTITY torsettings.useBridges.custom "Biete mir eine Brücke an, die ich kenne">
<!ENTITY torsettings.useBridges.label "Geben Sie Brückeninformationen aus einer vertrauenswürdigen Quelle ein.">
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Tor-Protokoll in die Zwischenablage kopieren">
<!ENTITY torsettings.proxyHelpTitle "Proxy-Hilfe">
-<!ENTITY torsettings.proxyHelp1 "Ein lokaler Proxy wird verwendet, wenn Sie sich aus einem Unternehmens-, Schul- oder Universitätsnetzwerk heraus verbinden. Wenn Sie sich nicht sicher sind, wie Sie diese Frage beantworten sollen, sehen Sie sich die Interneteinstellungen in einem anderen Browser an oder überprüfen Sie die Netzwerkeinstellungen des Systems um zu bestimmen, ob sie einen lokalen Proxyserver benötigen.">
+<!ENTITY torsettings.proxyHelp1 "Unter Umständen ist ein lokaler Proxy nötig, um sich von einem eingeschränkten Netzwerk eines Unternehmens, einer Schule oder Universität zu verbinden. Im Zweifelsfall kann die Einstellung in einem anderen Browser oder die System-Netzwerkeinstellung .verglichen werden.">
<!ENTITY torsettings.bridgeHelpTitle "Hilfe zum Brückenrelais">
<!ENTITY torsettings.bridgeHelp1 "Brücken sind nicht aufgelistete Vermittler, die es schwieriger machen, Verbindungen zum Tor-Netzwerk zu blockieren.  Jede Art von Brücke verwendet eine andere Methode, um Zensur zu vermeiden.  Die vom Typ obfs lassen Ihren Datenverkehr wie Zufallsrauschen aussehen und die vom Typ meek lassen Ihren Datenverkehr aussehen, als ob Sie eine Verbindung zu diesem jeweiligen Dienst herstellen anstatt zu Tor.">
diff --git a/src/chrome/locale/de/torlauncher.properties b/src/chrome/locale/de/torlauncher.properties
index 1aa2bf8..49aabaa 100644
--- a/src/chrome/locale/de/torlauncher.properties
+++ b/src/chrome/locale/de/torlauncher.properties
@@ -26,20 +26,20 @@ torlauncher.error_proxy_addr_missing=Damit Tor einen Vermittlungsserver benutzt,
torlauncher.error_proxy_type_missing=Sie müssen eine Vermittlungstyp auswählen.
torlauncher.error_bridges_missing=Sie müssen eine oder mehrere Brücken eingeben.
torlauncher.error_default_bridges_type_missing=Sie müssen eine Transporttyp für die bereitgestellten Brücken auswählen.
-torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
+torlauncher.error_bridgedb_bridges_missing=Bitte eine Brücke anfordern.
torlauncher.error_bridge_bad_default_type=Es sind keine bereitgestellten Brücken verfügbar, die den Transporttyp %S haben. Bitte passen Sie Ihre Einstellungen an.
torlauncher.bridge_suffix.meek-amazon=(funktioniert in China)
torlauncher.bridge_suffix.meek-azure=(funktioniert in China)
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
+torlauncher.request_a_bridge=Brücke anfordern
+torlauncher.request_a_new_bridge=Neue Brücke anfordern...
+torlauncher.contacting_bridgedb=Kontaktiere BridgeDB. Bitte warten.
+torlauncher.captcha_prompt=Löse das CAPTCHA um eine Brücke anzufordern.
torlauncher.bad_captcha_solution=Die Lösung ist nicht korrekt. Bitte versuchen Sie es erneut.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.unable_to_get_bridge=Nicht imstande eine Brücke von der BridgeDB zu erhalten.\n\n%S
+torlauncher.no_meek=Der Browser ist nicht für meek eingestellt, was gebraucht wird um Brücken zu bekommen.
+torlauncher.no_bridges_available=Zur Zeit sind keine Brücken verfügbar. Es tut uns Leid.
torlauncher.connect=Verbinden
torlauncher.restart_tor=Tor neustarten
@@ -73,6 +73,6 @@ torlauncher.bootstrapWarning.noroute=Kein Pfad zum Rechner
torlauncher.bootstrapWarning.ioerror=Lese-/Schreibfehler
torlauncher.bootstrapWarning.pt_missing=Steckbarer Transport fehlt
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
+torlauncher.nsresult.NS_ERROR_NET_RESET=Die Verbindung zum Server ist verloren gegangen.
torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Konnte nicht mit dem Server verbinden.
torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Konnte nicht mit dem Proxy verbinden.
diff --git a/src/chrome/locale/dz/network-settings.dtd b/src/chrome/locale/dz/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/dz/network-settings.dtd
+++ b/src/chrome/locale/dz/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/el/network-settings.dtd b/src/chrome/locale/el/network-settings.dtd
index c927252..f3b86b1 100644
--- a/src/chrome/locale/el/network-settings.dtd
+++ b/src/chrome/locale/el/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Αντιγραφή στο πρόχειρο">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Γεφυρες αναμεταδοτων Βοηθεια">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/en-GB/network-settings.dtd b/src/chrome/locale/en-GB/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/en-GB/network-settings.dtd
+++ b/src/chrome/locale/en-GB/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/eo/network-settings.dtd b/src/chrome/locale/eo/network-settings.dtd
index a02cde9..5bca622 100644
--- a/src/chrome/locale/eo/network-settings.dtd
+++ b/src/chrome/locale/eo/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/es-AR/network-settings.dtd b/src/chrome/locale/es-AR/network-settings.dtd
index aadd9fb..49e0c37 100644
--- a/src/chrome/locale/es-AR/network-settings.dtd
+++ b/src/chrome/locale/es-AR/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/es-CL/network-settings.dtd b/src/chrome/locale/es-CL/network-settings.dtd
index 54da2e8..39875fc 100644
--- a/src/chrome/locale/es-CL/network-settings.dtd
+++ b/src/chrome/locale/es-CL/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/es-CO/network-settings.dtd b/src/chrome/locale/es-CO/network-settings.dtd
index b7aabbb..773e655 100644
--- a/src/chrome/locale/es-CO/network-settings.dtd
+++ b/src/chrome/locale/es-CO/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/es-MX/network-settings.dtd b/src/chrome/locale/es-MX/network-settings.dtd
index 30c3efe..55a4949 100644
--- a/src/chrome/locale/es-MX/network-settings.dtd
+++ b/src/chrome/locale/es-MX/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/es/network-settings.dtd b/src/chrome/locale/es/network-settings.dtd
index a94e7c6..111c7ad 100644
--- a/src/chrome/locale/es/network-settings.dtd
+++ b/src/chrome/locale/es/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copiar el registro de mensajes(log) de Tor al portapapeles">
<!ENTITY torsettings.proxyHelpTitle "Ayuda ">
-<!ENTITY torsettings.proxyHelp1 "Se necesita un proxy local cuando se conecta a través de una red de empresa, escuela o universidad. Si no estás seguro de cómo responder a esta pregunta, consulta la configuración de Internet en otro navegador o consulta la configuración de red de tu sistema para ver si se necesita un proxy.">
+<!ENTITY torsettings.proxyHelp1 "Es posible que se necesite un proxy local al conectarse a través de una red de una empresa, escuela o universidad. Si no estás seguro de si se necesita o no un proxy, consulta la configuración de Internet en otro navegador o comprueba la configuración de red de tu sistema.">
<!ENTITY torsettings.bridgeHelpTitle "Ayuda de repetidores puente ('bridge relays')">
<!ENTITY torsettings.bridgeHelp1 "Los puentes son transmisores no listados que dificultan el bloqueo de las conexiones a la red Tor.  Cada tipo de puente utiliza un método diferente para evitar la censura.  Los obfs hacen que tu tráfico parezca ruido aleatorio, y los modestos hacen que tu tráfico parezca que se está conectando a ese servicio en lugar de a Tor.">
diff --git a/src/chrome/locale/et/network-settings.dtd b/src/chrome/locale/et/network-settings.dtd
index 1800485..1e7c712 100644
--- a/src/chrome/locale/et/network-settings.dtd
+++ b/src/chrome/locale/et/network-settings.dtd
@@ -17,7 +17,7 @@
<!-- Other: -->
<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
+<!ENTITY torsettings.restartTor "Taaskäivita Tor">
<!ENTITY torsettings.reconfigTor "Seadista uuesti">
<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
@@ -52,11 +52,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
+<!ENTITY torprogress.pleaseWait "Palun oota, kuni loome ühenduse Tor-võrguga.  See võib võtta mitu minutit.">
diff --git a/src/chrome/locale/et/torlauncher.properties b/src/chrome/locale/et/torlauncher.properties
index 95c4128..ef72391 100644
--- a/src/chrome/locale/et/torlauncher.properties
+++ b/src/chrome/locale/et/torlauncher.properties
@@ -29,26 +29,26 @@ torlauncher.error_default_bridges_type_missing=You must select a transport type
torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
torlauncher.error_bridge_bad_default_type=No provided bridges that have the transport type %S are available. Please adjust your settings.
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
+torlauncher.bridge_suffix.meek-amazon=(töötab Hiinas)
+torlauncher.bridge_suffix.meek-azure=(töötab Hiinas)
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
+torlauncher.request_a_bridge=Taotle Silda…
+torlauncher.request_a_new_bridge=Taotle uut Silda…
torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
-torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
+torlauncher.captcha_prompt=Lahenda CAPTCHA, et taotleda silda.
torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
torlauncher.connect=Ühenda
-torlauncher.restart_tor=Restart Tor
+torlauncher.restart_tor=Taaskäivita Tor
torlauncher.quit=Quit
torlauncher.quit_win=Välju
torlauncher.done=Valmis
-torlauncher.forAssistance=For assistance, contact %S
-torlauncher.forAssistance2=For assistance, visit %S
+torlauncher.forAssistance=Abi saamiseks kontakteeru %S
+torlauncher.forAssistance2=Abi saamiseks külasta %S
torlauncher.copiedNLogMessages=Copy complete. %S Tor log messages are ready to be pasted into a text editor or an email message.
@@ -63,7 +63,7 @@ torlauncher.bootstrapStatus.conn_or=Tor võrgustikuga ühendumine
torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
-torlauncher.bootstrapWarning.done=done
+torlauncher.bootstrapWarning.done=valmis
torlauncher.bootstrapWarning.connectrefused=connection refused
torlauncher.bootstrapWarning.misc=miscellaneous
torlauncher.bootstrapWarning.resourcelimit=insufficient resources
diff --git a/src/chrome/locale/eu/network-settings.dtd b/src/chrome/locale/eu/network-settings.dtd
index 0e376c6..e2be54a 100644
--- a/src/chrome/locale/eu/network-settings.dtd
+++ b/src/chrome/locale/eu/network-settings.dtd
@@ -1,5 +1,5 @@
<!ENTITY torsettings.dialog.title "Tor sare ezarpenak">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
+<!ENTITY torsettings.wizard.title.default "Tor sarera konektatu">
<!ENTITY torsettings.wizard.title.configure "Tor sare ezarpenak">
<!ENTITY torsettings.wizard.title.connecting "Konexioa Ezartzen">
@@ -9,7 +9,7 @@
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
+<!ENTITY torSettings.connectPrompt "Klikatu ezazu "Konektatu" Tor sarera konektatzeko.">
<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
<!ENTITY torSettings.configure "Konfiguratu">
<!ENTITY torSettings.connect "Konektatu">
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopiatu Tor erregistroa arbelera">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Zubi errele laguntza">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/fa/network-settings.dtd b/src/chrome/locale/fa/network-settings.dtd
index d4e46c9..10da60d 100644
--- a/src/chrome/locale/fa/network-settings.dtd
+++ b/src/chrome/locale/fa/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "تنظیمات شبکه تور">
<!ENTITY torsettings.wizard.title.default "اتصال به تور">
<!ENTITY torsettings.wizard.title.configure "تنظیمات شبکه Tor">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.connecting "ارتباط برقرار شده است .">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "زبان مرورگر تور">
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "کپی گزارش وقایع تور">
<!ENTITY torsettings.proxyHelpTitle "کمک پروکسی">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "کمک برای پل ارتباطی">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/fa/torlauncher.properties b/src/chrome/locale/fa/torlauncher.properties
index e8d9a30..533c491 100644
--- a/src/chrome/locale/fa/torlauncher.properties
+++ b/src/chrome/locale/fa/torlauncher.properties
@@ -1,7 +1,7 @@
### Copyright (c) 2016, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.error_title=اجرا کننده تور
+torlauncher.error_title=اجراکننده تور
torlauncher.tor_exited_during_startup=تُر در هنگام شروع بسته شد. ممکن است این بعلت خطایی در فایل torrc شما، خطایی در برنامه تُر تا برنامه دیگری روی کامپیوتر شما، و یا ایراد سخت افزاری باشد. تا زمانی که شما خطای رخ داده را بررسی رفع کنید و تُر را دوباره اجرا کنید، مرورگر تُر شروع نخواهد شد.
torlauncher.tor_exited=Tor به طور غیر منتظره خارج شد که این ممکن است به علت یک اشکال در Tor و یا یک برنامه دیگر بر روی سیستم شما و یا یک سخت افزار معیوب اتفاق افتاده باشد، تا زمانی که دوباره Tor را اجرا نمائید مرورگر Tor قادر نخواهد بود به هیچ سایتی دسترسی داشته باشد. اگر این مشکل ادامه داشت، لطفا یک کپی از Log Tor خود را به تیم پشتیبانی ارسال کنید.
diff --git a/src/chrome/locale/fi/network-settings.dtd b/src/chrome/locale/fi/network-settings.dtd
index 7a03ce3..75a613f 100644
--- a/src/chrome/locale/fi/network-settings.dtd
+++ b/src/chrome/locale/fi/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopioi Tor-loki leikepöydälle">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Siltavälityspalvelinopaste">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/fil/network-settings.dtd b/src/chrome/locale/fil/network-settings.dtd
index 4005a3f..8a9ba3c 100644
--- a/src/chrome/locale/fil/network-settings.dtd
+++ b/src/chrome/locale/fil/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/fo/network-settings.dtd b/src/chrome/locale/fo/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/fo/network-settings.dtd
+++ b/src/chrome/locale/fo/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/fr/network-settings.dtd b/src/chrome/locale/fr/network-settings.dtd
index c93e71f..cd6fd9c 100644
--- a/src/chrome/locale/fr/network-settings.dtd
+++ b/src/chrome/locale/fr/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copier le journal de Tor dans le presse-papiers">
<!ENTITY torsettings.proxyHelpTitle "Aide sur les mandataires">
-<!ENTITY torsettings.proxyHelp1 "Un mandataire local est nécessaire lors d’une connexion par un réseau d’entreprise, d’école ou d’université. Si vous n’êtes pas certain de la réponse à cette question, vérifiez les paramètres Internet d’un autre navigateur ou les paramètres réseau de votre système pour savoir si un mandataire est nécessaire.">
+<!ENTITY torsettings.proxyHelp1 "Un mandataire local peut être nécessaire lors d’une connexion par un réseau d’entreprise, d’école ou d’université. Si vous n’êtes pas certain si un mandataire est nécessaire, vérifiez les paramètres Internet d’un autre navigateur ou les paramètres réseau de votre système.">
<!ENTITY torsettings.bridgeHelpTitle "Aide sur les relais-ponts">
<!ENTITY torsettings.bridgeHelp1 "Les ponts sont des relais non référencés qui rendent les connexions au Tor réseau plus difficiles à bloquer. Chaque type de pont utilise un moyen différent pour éviter la censure. Avec les ponts obfs, votre trafic ressemble à du bruit aléatoire et avec les ponts meek, votre trafic semble se connecter à ce service plutôt qu’à Tor.">
diff --git a/src/chrome/locale/fur/network-settings.dtd b/src/chrome/locale/fur/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/fur/network-settings.dtd
+++ b/src/chrome/locale/fur/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/fy/network-settings.dtd b/src/chrome/locale/fy/network-settings.dtd
index 7d895af..dee4e14 100644
--- a/src/chrome/locale/fy/network-settings.dtd
+++ b/src/chrome/locale/fy/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ga/network-settings.dtd b/src/chrome/locale/ga/network-settings.dtd
index 2e86b28..94cb85d 100644
--- a/src/chrome/locale/ga/network-settings.dtd
+++ b/src/chrome/locale/ga/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Cóipeáil Logchomhad Tor go dtí an Ghearrthaisce">
<!ENTITY torsettings.proxyHelpTitle "Cabhair le Seachfhreastalaithe">
-<!ENTITY torsettings.proxyHelp1 "Úsáidtear seachfhreastalaí áitiúil nuair a cheanglaítear ó líonra i gcomhlacht, i scoil, nó in ollscoil. Mura bhfuil tú cinnte faoin fhreagra ba chóir duit a thabhairt, caith súil ar na socruithe Idirlín i mbrabhsálaí eile, nó ar shocruithe líonra do chórais, le fáil amach an bhfuil seachfhreastalaí de dhíth.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Cabhair le Droichid">
<!ENTITY torsettings.bridgeHelp1 "Tá sé níos deacra cosc a chur ar cheangail le Líonra Tor nuair a úsáideann tú droichead, cineál athsheachadán neamhliostaithe. Úsáideann gach droichead modh difriúil leis an gcinsireacht a sheachaint. Mar shampla, cuireann na droichid obfs cuma randamach ar do thrácht líonra, agus leis na cinn meek, dealraíonn sé go bhfuil tú ag ceangal leis an tseirbhís sin seachas le Tor.">
diff --git a/src/chrome/locale/gl/network-settings.dtd b/src/chrome/locale/gl/network-settings.dtd
index a3fd981..f9beeaa 100644
--- a/src/chrome/locale/gl/network-settings.dtd
+++ b/src/chrome/locale/gl/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copia o rexistro do Tor ao portapapeis">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Axuda do Repetidor Ponte">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/gu-IN/network-settings.dtd b/src/chrome/locale/gu-IN/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/gu-IN/network-settings.dtd
+++ b/src/chrome/locale/gu-IN/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/gu/network-settings.dtd b/src/chrome/locale/gu/network-settings.dtd
index 2c4c140..806c9a6 100644
--- a/src/chrome/locale/gu/network-settings.dtd
+++ b/src/chrome/locale/gu/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/gu/torlauncher.properties b/src/chrome/locale/gu/torlauncher.properties
index a4d097a..0f0bdee 100644
--- a/src/chrome/locale/gu/torlauncher.properties
+++ b/src/chrome/locale/gu/torlauncher.properties
@@ -45,7 +45,7 @@ torlauncher.connect=Connect
torlauncher.restart_tor=Restart Tor
torlauncher.quit=Quit
torlauncher.quit_win=Exit
-torlauncher.done=Done
+torlauncher.done=થઈ ગયું
torlauncher.forAssistance=For assistance, contact %S
torlauncher.forAssistance2=For assistance, visit %S
diff --git a/src/chrome/locale/gun/network-settings.dtd b/src/chrome/locale/gun/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/gun/network-settings.dtd
+++ b/src/chrome/locale/gun/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ha/network-settings.dtd b/src/chrome/locale/ha/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ha/network-settings.dtd
+++ b/src/chrome/locale/ha/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/he/network-settings.dtd b/src/chrome/locale/he/network-settings.dtd
index f11c418..1b6ff51 100644
--- a/src/chrome/locale/he/network-settings.dtd
+++ b/src/chrome/locale/he/network-settings.dtd
@@ -10,7 +10,7 @@
<!-- For "first run" wizard: -->
<!ENTITY torSettings.connectPrompt "לחץ על “התחבר“ כדי להתחבר אל Tor.">
-<!ENTITY torSettings.configurePrompt "לחץ על “הגדר“ כדי להתאים הגדרות רשת אם אתה במדינה שמצנזרת את Tor (למשל מצרים, סין וטורקיה) או אם אתה מתחבר מרשת פרטית הדורשת ייפוי-כוח.">
+<!ENTITY torSettings.configurePrompt "לחץ על ”הגדר“ כדי להתאים הגדרות רשת אם אתה במדינה שמצנזרת את Tor (למשל מצרים, סין וטורקיה) או אם אתה מתחבר מרשת פרטית הדורשת ייפוי־כוח.">
<!ENTITY torSettings.configure "הגדר">
<!ENTITY torSettings.connect "התחבר">
@@ -20,14 +20,14 @@
<!ENTITY torsettings.restartTor "הפעל מחדש את Tor">
<!ENTITY torsettings.reconfigTor "הגדר מחדש">
-<!ENTITY torsettings.discardSettings.prompt "הגדרת גשרי Tor או הכנסת הגדרות ייפוי-כוח מקומי.  כדי לעשות חיבור ישיר לרשת Tor, הגדרות אלו חייבות להיות מוסרות.">
+<!ENTITY torsettings.discardSettings.prompt "הגדרת גשרי Tor או הכנסת הגדרות ייפוי־כוח מקומי.  כדי לעשות חיבור ישיר לרשת Tor, הגדרות אלו חייבות להיות מוסרות.">
<!ENTITY torsettings.discardSettings.proceed "הסר הגדרות והתחבר">
<!ENTITY torsettings.optional "רשותי">
-<!ENTITY torsettings.useProxy.checkbox "אני משתמש בייפוי-כוח כדי להתחבר לאינטרנט">
-<!ENTITY torsettings.useProxy.type "סוג ייפוי-כוח:">
-<!ENTITY torsettings.useProxy.type.placeholder "בחר סוג ייפוי-כוח">
+<!ENTITY torsettings.useProxy.checkbox "אני משתמש בייפוי־כוח כדי להתחבר לאינטרנט">
+<!ENTITY torsettings.useProxy.type "סוג ייפוי־כוח:">
+<!ENTITY torsettings.useProxy.type.placeholder "בחר סוג ייפוי־כוח">
<!ENTITY torsettings.useProxy.address "כתובת:">
<!ENTITY torsettings.useProxy.address.placeholder "כתובת IP או שם מארח">
<!ENTITY torsettings.useProxy.port "פתחה:">
@@ -51,8 +51,8 @@
<!ENTITY torsettings.copyLog "העתק את יומן Tor ללוח החיתוך">
-<!ENTITY torsettings.proxyHelpTitle "עזרת ייפוי-כוח">
-<!ENTITY torsettings.proxyHelp1 "ייפוי-כוח מקומי נדרש בעת התחברות דרך רשת של חברה, בית-ספר או אוניברסיטה. אם אינך בטוח כיצד לענות על שאלה זו, הבט בהגדרות האינטרנט בדפדפן אחר או בדוק בהגדרות הרשת של מערכתך כדי לראות האם ייפוי-כוח מקומי נחוץ.">
+<!ENTITY torsettings.proxyHelpTitle "עזרת ייפוי־כוח">
+<!ENTITY torsettings.proxyHelp1 "ייפוי־כוח מקומי נדרש בעת התחברות דרך רשת של חברה, בית ספר או אוניברסיטה. אם אינך בטוח כיצד לענות על שאלה זו, הבט בהגדרות האינטרנט בדפדפן אחר או בדוק בהגדרות הרשת של מערכתך.">
<!ENTITY torsettings.bridgeHelpTitle "עזרת ממסרי גשר">
<!ENTITY torsettings.bridgeHelp1 "גשרים הם ממסרים לא ברשימה אשר מקשים לחסום חיבורים אל רשת Tor.  כל סוג של גשר משתמש בשיטה שונה כדי למנוע צינזור  ה-obfs גורם לתעבורה שלך להיראות כרעש אקראי, וה-meek גורם לתעבורה שלך להיראות כאילו היא מתחברת אל שירות זה במקום אל Tor.">
diff --git a/src/chrome/locale/he/torlauncher.properties b/src/chrome/locale/he/torlauncher.properties
index e9b3488..29f2c1f 100644
--- a/src/chrome/locale/he/torlauncher.properties
+++ b/src/chrome/locale/he/torlauncher.properties
@@ -15,15 +15,15 @@ torlauncher.tor_bootstrap_failed_details=%1$S נכשל (%2$S).
torlauncher.unable_to_start_tor=לא היה ניתן להתחיל את Tor.\n\n%S
torlauncher.tor_missing=קובץ ההפעלה של Tor חסר.
torlauncher.torrc_missing=קובץ ה-torrc חסר ולא היה יכול להיווצר.
-torlauncher.datadir_missing=סיפריית הנתונים של Tor אינה קיימת ולא יכלה להיווצר.
+torlauncher.datadir_missing=תיקיית הנתונים של Tor אינה קיימת ולא יכלה להיווצר.
torlauncher.password_hash_missing=נכשל בהשגת סיסמה מעורבלת.
torlauncher.failed_to_get_settings=לא היה ניתן לאחזר הגדרות Tor.\n\n%S
torlauncher.failed_to_save_settings=לא היה ניתן לשמור הגדרות Tor.\n\n%S
torlauncher.ensure_tor_is_running=אנא וודא כי Tor פועל.
-torlauncher.error_proxy_addr_missing=אתה חייב לציין כתובת IP או שם מארח וגם מספר פתחה כדי להגדיר את Tor להשתמש בייפוי-כוח כדי לגשת לאינטרנט.
-torlauncher.error_proxy_type_missing=אתה חייב לבחור את סוג ייפוי-הכוח.
+torlauncher.error_proxy_addr_missing=אתה חייב לציין כתובת IP או שם מארח וגם מספר פתחה כדי להגדיר את Tor להשתמש בייפוי־כוח כדי לגשת לאינטרנט.
+torlauncher.error_proxy_type_missing=אתה חייב לבחור את סוג ייפוי־הכוח.
torlauncher.error_bridges_missing=אתה חייב לציין גשר אחד או יותר.
torlauncher.error_default_bridges_type_missing=אתה חייב לבחור סוג תעבורה עבור הגשרים המסופקים.
torlauncher.error_bridgedb_bridges_missing=אנא בקש גשר.
diff --git a/src/chrome/locale/hi/network-settings.dtd b/src/chrome/locale/hi/network-settings.dtd
index 5e0cfbc..702a1fb 100644
--- a/src/chrome/locale/hi/network-settings.dtd
+++ b/src/chrome/locale/hi/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/hr-HR/network-settings.dtd b/src/chrome/locale/hr-HR/network-settings.dtd
index a60a676..2c0ffd8 100644
--- a/src/chrome/locale/hr-HR/network-settings.dtd
+++ b/src/chrome/locale/hr-HR/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopiraj Tor zapisnik u međuspremnik">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Pomoć za releje mostove">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/hr/network-settings.dtd b/src/chrome/locale/hr/network-settings.dtd
index 932efbd..1c89cc2 100644
--- a/src/chrome/locale/hr/network-settings.dtd
+++ b/src/chrome/locale/hr/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ht/network-settings.dtd b/src/chrome/locale/ht/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ht/network-settings.dtd
+++ b/src/chrome/locale/ht/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/hu/network-settings.dtd b/src/chrome/locale/hu/network-settings.dtd
index d269276..d05005c 100644
--- a/src/chrome/locale/hu/network-settings.dtd
+++ b/src/chrome/locale/hu/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "A Tor log Vágólapra másolása">
<!ENTITY torsettings.proxyHelpTitle "Proxy segítség">
-<!ENTITY torsettings.proxyHelp1 "Egy helyi proxy szükséges amennyiben olyan hálózaton keresztül csatlakozik amely, cégen, iskolán, vagy egyetemi hálózaton megy keresztül.  Ha nem biztos benne, hogyan válaszoljon erre a kérdésre, akkor nézze meg egy másik böngésző vagy a rendszer hálózati beállításait, hogy szükséges-e proxyt beállítani.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Híd kapcsoló súgó">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/hy/network-settings.dtd b/src/chrome/locale/hy/network-settings.dtd
index 5de1362..1f36ac3 100644
--- a/src/chrome/locale/hy/network-settings.dtd
+++ b/src/chrome/locale/hy/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ia/network-settings.dtd b/src/chrome/locale/ia/network-settings.dtd
index 0e97c0b..eed18d7 100644
--- a/src/chrome/locale/ia/network-settings.dtd
+++ b/src/chrome/locale/ia/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/id/network-settings.dtd b/src/chrome/locale/id/network-settings.dtd
index 6667c5a..245ca28 100644
--- a/src/chrome/locale/id/network-settings.dtd
+++ b/src/chrome/locale/id/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Salin Log Tor Ke Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Bantuan untuk Proxy">
-<!ENTITY torsettings.proxyHelp1 "Proxy lokal diperlukan ketika mencoba terhubung dari jaringan perusahaan, sekolah, atau universitas.  Jika anda tidak yakin bagaimana untuk menjawab pertanyaan ini, lihat pengaturan Internet di peramban lainnya atau periksa pengaturan sistem jaringan Anda untuk melihat apakah proksi lokal dibutuhkan.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bantuan Bridge Relay">
<!ENTITY torsettings.bridgeHelp1 "Bridges adalah relays yang tidak terdaftar, yang membuat pemblokiran sambungan di Jaringan Tor lebih sulit dilakukan.  Setiap jenis bridge menggunakan metode yang berbeda untuk menghindari sensor.  Jenis obfs membuat sambungan Anda terlihat seperti kegiatan acak dan jenis meek membuat sambungan Anda terlihat tersambung ke layanan tersebut, bukan ke Tor.">
diff --git a/src/chrome/locale/is/network-settings.dtd b/src/chrome/locale/is/network-settings.dtd
index 6e259b9..4c83859 100644
--- a/src/chrome/locale/is/network-settings.dtd
+++ b/src/chrome/locale/is/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Afrita atvikaskrá Tor á klippispjald">
<!ENTITY torsettings.proxyHelpTitle "Hjálp fyrir milliþjóna">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Hjálp fyrir brúaendurvarpa">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/it/network-settings.dtd b/src/chrome/locale/it/network-settings.dtd
index 4ad241a..0bb0f66 100644
--- a/src/chrome/locale/it/network-settings.dtd
+++ b/src/chrome/locale/it/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copia il log di Tor negli "appunti" di sistema">
<!ENTITY torsettings.proxyHelpTitle "Aiuto proxy">
-<!ENTITY torsettings.proxyHelp1 "Un proxy locale è necessario quando ti connetti dalla rete di un'azienda, scuola o università. Se non sei sicuro della risposta alla domanda, guarda le impostazioni internet in un altro browser o controlla le impostazioni di rete del sistema.">
+<!ENTITY torsettings.proxyHelp1 "Potrebbe essere necessario utilizzare un proxy locale quando ci si connette dalla rete di un'azienda, scuola o università. Se non sei sicuro sulla necessità di utilizzare un proxy, confronta le impostazioni internet in un altro browser o controlla le impostazioni di rete del sistema.">
<!ENTITY torsettings.bridgeHelpTitle "Aiuto per i ponti relé">
<!ENTITY torsettings.bridgeHelp1 "I bridge sono relay non elencati che rendono più difficile bloccare le connessioni alla rete Tor.  Ogni tipo di bridge usa un metodo diverso per evitare la censura.  Quelli obfs mascherano il tuo traffico come rumore casuale, quelli meek lo mascherano come se si connettesse a quel servizio al posto di Tor.">
diff --git a/src/chrome/locale/ja/network-settings.dtd b/src/chrome/locale/ja/network-settings.dtd
index dfcfd48..4a51455 100644
--- a/src/chrome/locale/ja/network-settings.dtd
+++ b/src/chrome/locale/ja/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Torのログをクリップボードにコピー">
<!ENTITY torsettings.proxyHelpTitle "プロキシヘルプ">
-<!ENTITY torsettings.proxyHelp1 "会社、学校、大学等のネットワークを通して接続する場合、ローカルプロクシが必要になります。 もしこの質問にどう答えればよいかわからない場合は、他のブラウザのインターネット設定を見るか、システムのネットワーク設定を確認するかして、プロクシが必要であるかを調べてください。">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "ブリッジリレーのヘルプ">
<!ENTITY torsettings.bridgeHelp1 "ブリッジとはTorネットワークへの接続をブロックすることを難しくするためのリストされていないリレーです。  それぞれの種類のブリッジは検閲を避けるための異なる手法を利用しています。  obfsのものはあなたのトラフィックをランダムなノイズのように見せかけ,meekのものはあなたのトラフィックをTorではなくそのサービスへの接続であるように見せかけます。">
diff --git a/src/chrome/locale/jv/network-settings.dtd b/src/chrome/locale/jv/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/jv/network-settings.dtd
+++ b/src/chrome/locale/jv/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ka/network-settings.dtd b/src/chrome/locale/ka/network-settings.dtd
index 5f01b1b..ac1e9a4 100644
--- a/src/chrome/locale/ka/network-settings.dtd
+++ b/src/chrome/locale/ka/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "Tor-ის ქსელის პარამეტრები">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
+<!ENTITY torsettings.wizard.title.default "Tor-თან დაკავშირება">
<!ENTITY torsettings.wizard.title.configure "Tor-ის ქსელის პარამეტრები">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.connecting "კავშირის დამყარება">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Tor-ის ბრაუზერის ენა">
@@ -9,54 +9,54 @@
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "კონფიგურირება">
+<!ENTITY torSettings.connectPrompt "Tor-თან დასაკავშირებლად დააწკაპეთ „დაკავშირებაზე“.">
+<!ENTITY torSettings.configurePrompt "დააწკაპეთ „გამართვაზე“ ქსელის სათანადო პარამეტრების შესარჩევად, თუ ისეთ ქვეყანაში იმყოფებით, სადაც შეზღუდულია Tor (ასეთებია ეგვიპტე, ჩინეთი, თურქეთი) ან თუ ისეთი კერძო ქსელიდან ცდილობთ დაკავშირებას, რომელიც საჭიროებს პროქსის.">
+<!ENTITY torSettings.configure "გამართვა">
<!ENTITY torSettings.connect "დაკავშირება">
<!-- Other: -->
-<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
-<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
+<!ENTITY torsettings.startingTor "ელოდება Tor-ს გასაშვებად...">
+<!ENTITY torsettings.restartTor "Tor-ის ხელახლა გაშვება">
+<!ENTITY torsettings.reconfigTor "ხელახლა გამართვა">
<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
-<!ENTITY torsettings.discardSettings.proceed "Remove Settings and Connect">
+<!ENTITY torsettings.discardSettings.proceed "პარამეტრების მოცილება და დაკავშირება">
-<!ENTITY torsettings.optional "Optional">
+<!ENTITY torsettings.optional "დამატებითი">
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
-<!ENTITY torsettings.useProxy.type "Proxy Type:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
-<!ENTITY torsettings.useProxy.address "Address:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP address or hostname">
+<!ENTITY torsettings.useProxy.checkbox "ინტერნეტთან დასაკავშირებლად პროქსის ვიყენებ">
+<!ENTITY torsettings.useProxy.type "პროქსის სახეობა:">
+<!ENTITY torsettings.useProxy.type.placeholder "მიუთითეთ პროქსის სახეობა">
+<!ENTITY torsettings.useProxy.address "მისამართი">
+<!ENTITY torsettings.useProxy.address.placeholder "IP მისამართი ან დასახელება">
<!ENTITY torsettings.useProxy.port "პორტი:">
-<!ENTITY torsettings.useProxy.username "Username:">
+<!ENTITY torsettings.useProxy.username "მომხმარებლის სახელი:">
<!ENTITY torsettings.useProxy.password "პაროლი">
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "This computer goes through a firewall that only allows connections to certain ports">
-<!ENTITY torsettings.firewall.allowedPorts "Allowed Ports:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
+<!ENTITY torsettings.firewall.checkbox "კომპიუტერი ინტერნეტს უკავშირდება ქსელის ფარის გავლით, რომელშიც მხოლოდ ცალკეული პორტებია დაშვებული">
+<!ENTITY torsettings.firewall.allowedPorts "დაშვებული პორტები:">
+<!ENTITY torsettings.useBridges.checkbox "Tor შეზღუდულია ჩემს ქვეყანაში">
<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "შეიყვანეთ სურათზე მოცემული სიმბოლოები">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "ახალი გამოწვევა">
<!ENTITY torsettings.useBridges.captchaSubmit "წარუდგინოს">
<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
+<!ENTITY torsettings.useBridges.placeholder "აკრიფეთ მისამართი:პორტი (თითო ცალკე ხაზზე)">
-<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
+<!ENTITY torsettings.copyLog "Tor-ის აღრიცხვის ჩანაწერების დაკოპირება">
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelpTitle "პროქსი — დახმარება">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
+<!ENTITY torprogress.pleaseWait "გთხოვთ, მოითმინოთ სანამ დაუკავშირდება Tor-ქსელს.  რამდენიმე წუთს შეიძლება გასტანოს.">
diff --git a/src/chrome/locale/ka/torlauncher.properties b/src/chrome/locale/ka/torlauncher.properties
index c0dadd3..1b5606d 100644
--- a/src/chrome/locale/ka/torlauncher.properties
+++ b/src/chrome/locale/ka/torlauncher.properties
@@ -1,13 +1,13 @@
### Copyright (c) 2016, The Tor Project, Inc.
### See LICENSE for licensing information.
-torlauncher.error_title=Tor Launcher
+torlauncher.error_title=Tor-ის გამშვები
torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
+torlauncher.tor_exited2=Tor-ის ხელახლა ჩართვით თქვენი ბრაუზერის ჩანართები არ დაიხურება.
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
-torlauncher.tor_failed_to_start=Tor failed to start.
+torlauncher.tor_failed_to_start=Tor-ის გაშვება ვერ მოხერხდა.
torlauncher.tor_control_failed=Failed to take control of Tor.
torlauncher.tor_bootstrap_failed=Tor failed to establish a Tor network connection.
torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
@@ -42,7 +42,7 @@ torlauncher.no_meek=This browser is not configured for meek, which is needed to
torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
torlauncher.connect=დაკავშირება
-torlauncher.restart_tor=Restart Tor
+torlauncher.restart_tor=Tor-ის ხელახლა გაშვება
torlauncher.quit=Quit
torlauncher.quit_win=გასვლა
torlauncher.done=შესრულებულია
@@ -59,7 +59,7 @@ torlauncher.bootstrapStatus.loading_status=Loading network status
torlauncher.bootstrapStatus.loading_keys=Loading authority certificates
torlauncher.bootstrapStatus.requesting_descriptors=Requesting relay information
torlauncher.bootstrapStatus.loading_descriptors=Loading relay information
-torlauncher.bootstrapStatus.conn_or=Connecting to the Tor network
+torlauncher.bootstrapStatus.conn_or=უკავშირდება Tor-ქსელს
torlauncher.bootstrapStatus.handshake_or=Establishing a Tor circuit
torlauncher.bootstrapStatus.done=Connected to the Tor network!
diff --git a/src/chrome/locale/kk/network-settings.dtd b/src/chrome/locale/kk/network-settings.dtd
index 71f6aec..d1a5f88 100644
--- a/src/chrome/locale/kk/network-settings.dtd
+++ b/src/chrome/locale/kk/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/km/network-settings.dtd b/src/chrome/locale/km/network-settings.dtd
index 00f0395..765aa47 100644
--- a/src/chrome/locale/km/network-settings.dtd
+++ b/src/chrome/locale/km/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "ចម្លងកំណត់ហេតុ Tor ទៅក្ដារតម្បៀតខ្ទាស់">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "ជំនួយបញ្ជូនប្រ៊ីតបន្ត">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/kn/network-settings.dtd b/src/chrome/locale/kn/network-settings.dtd
index 857f8bf..3bcea0f 100644
--- a/src/chrome/locale/kn/network-settings.dtd
+++ b/src/chrome/locale/kn/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ko-KR/network-settings.dtd b/src/chrome/locale/ko-KR/network-settings.dtd
index 6d095ee..e177235 100644
--- a/src/chrome/locale/ko-KR/network-settings.dtd
+++ b/src/chrome/locale/ko-KR/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ko/network-settings.dtd b/src/chrome/locale/ko/network-settings.dtd
index 50ffb94..64b7a2c 100644
--- a/src/chrome/locale/ko/network-settings.dtd
+++ b/src/chrome/locale/ko/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Tor log를 클립보드에 복사하기">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "브릿지 중계 서버 도움말">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ku/network-settings.dtd b/src/chrome/locale/ku/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ku/network-settings.dtd
+++ b/src/chrome/locale/ku/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/kw/network-settings.dtd b/src/chrome/locale/kw/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/kw/network-settings.dtd
+++ b/src/chrome/locale/kw/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ky/network-settings.dtd b/src/chrome/locale/ky/network-settings.dtd
index e8ceff9..cccc8ab 100644
--- a/src/chrome/locale/ky/network-settings.dtd
+++ b/src/chrome/locale/ky/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/lb/network-settings.dtd b/src/chrome/locale/lb/network-settings.dtd
index a91e3b8..a7dbaca 100644
--- a/src/chrome/locale/lb/network-settings.dtd
+++ b/src/chrome/locale/lb/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/lg/network-settings.dtd b/src/chrome/locale/lg/network-settings.dtd
index 65136fc..263e747 100644
--- a/src/chrome/locale/lg/network-settings.dtd
+++ b/src/chrome/locale/lg/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ln/network-settings.dtd b/src/chrome/locale/ln/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ln/network-settings.dtd
+++ b/src/chrome/locale/ln/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/lo/network-settings.dtd b/src/chrome/locale/lo/network-settings.dtd
index 513c792..ec2106f 100644
--- a/src/chrome/locale/lo/network-settings.dtd
+++ b/src/chrome/locale/lo/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/lt/network-settings.dtd b/src/chrome/locale/lt/network-settings.dtd
index 1c0feb6..de20331 100644
--- a/src/chrome/locale/lt/network-settings.dtd
+++ b/src/chrome/locale/lt/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopijuoti Tor žurnalą į iškarpinę">
<!ENTITY torsettings.proxyHelpTitle "Įgaliotojo serverio žinynas">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/lt/torlauncher.properties b/src/chrome/locale/lt/torlauncher.properties
index cdc0df3..963d5cf 100644
--- a/src/chrome/locale/lt/torlauncher.properties
+++ b/src/chrome/locale/lt/torlauncher.properties
@@ -29,8 +29,8 @@ torlauncher.error_default_bridges_type_missing=Privalote nurodytiems tinklų til
torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
torlauncher.error_bridge_bad_default_type=Neprieinamas nei vienas tinklų tiltas, kurio perdavimo tipas būtų %S. Prašome sureguliuoti savo nustatymus.
-torlauncher.bridge_suffix.meek-amazon=(works in China)
-torlauncher.bridge_suffix.meek-azure=(works in China)
+torlauncher.bridge_suffix.meek-amazon=(veikia Kinijoje)
+torlauncher.bridge_suffix.meek-azure=(veikia Kinijoje)
torlauncher.request_a_bridge=Request a Bridge…
torlauncher.request_a_new_bridge=Request a New Bridge…
@@ -73,6 +73,6 @@ torlauncher.bootstrapWarning.noroute=nėra maršruto iki pagrindinio kompiuterio
torlauncher.bootstrapWarning.ioerror=skaitymo/rašymo klaida
torlauncher.bootstrapWarning.pt_missing=trūksta prijungiamo perdavimo
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
+torlauncher.nsresult.NS_ERROR_NET_RESET=Ryšys su serveriu nutrūko.
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Nepavyko prisijungti prie serverio.
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Nepavyko prisijungti prie tarpinio serverio.
diff --git a/src/chrome/locale/lv/network-settings.dtd b/src/chrome/locale/lv/network-settings.dtd
index 2fda101..138b4b3 100644
--- a/src/chrome/locale/lv/network-settings.dtd
+++ b/src/chrome/locale/lv/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopēt Tor žurnālu starpliktuvē">
<!ENTITY torsettings.proxyHelpTitle "Starpniekservera palīdzība">
-<!ENTITY torsettings.proxyHelp1 "Ja veidojat savienojumu caur uzņēmuma, skolas vai universitātes tīklu, ir nepieciešams vietējais starpniekserveris. Ja neesat pārliecināts, kā atbildēt uz šo jautājumu, apskatiet interneta iestatījumus citā pārlūkā vai pārbaudiet savas sistēmas tīkla iestatījumus, lai noskaidrotu vai starpniekserveris ir nepieciešams.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Palīdzība par tiltu retranslatoriem">
<!ENTITY torsettings.bridgeHelp1 "Tilti ir neuzskaitīti pārraidītāji, kas padara sareģītāku savienojumu bloķēšanu ar tīklu Tor. Katrs tiltu veids lieto citu cenzūras apiešanas metodi. obfs jeb maskējošie padara Jūsu datu plūsmu līdzīgu nejaušam troksnim, bet meek jeb pielaidīgie padara Jūsu datu plūsmu līdzīgu tādai, kas pievienojas attiecīgajam pkalpojumam nevis Tor.">
diff --git a/src/chrome/locale/mg/network-settings.dtd b/src/chrome/locale/mg/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/mg/network-settings.dtd
+++ b/src/chrome/locale/mg/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/mi/network-settings.dtd b/src/chrome/locale/mi/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/mi/network-settings.dtd
+++ b/src/chrome/locale/mi/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/mk/network-settings.dtd b/src/chrome/locale/mk/network-settings.dtd
index b885097..6885070 100644
--- a/src/chrome/locale/mk/network-settings.dtd
+++ b/src/chrome/locale/mk/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Копирај го Tor логот за залепување">
<!ENTITY torsettings.proxyHelpTitle "Прокси помош">
-<!ENTITY torsettings.proxyHelp1 "Локален прокси е потребен кога се приклучувате преку компанија, училиште, или универзитетска мрежа.  Ако не сте сигурни како да одговорите на ова прашање, погледнете во Интернет поставките во друг Интернет прелистувач или проверете ги вашите системски мрежни поставки да видите дали е потребен прокси.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Мост јазол помош">
<!ENTITY torsettings.bridgeHelp1 "Мостовите се неизлистани јазли кои го прават потешко блокирањето на врските кон Tor мрежата.  Секој тип на мост користи различен метод за избегнување на цензурирањето.  obfs мостот го прави протокот на информации да изгледа нормален, како да е од некој стандарден прелистувач наместо од Tor.">
diff --git a/src/chrome/locale/ml/network-settings.dtd b/src/chrome/locale/ml/network-settings.dtd
index dc612ce..986e8f4 100644
--- a/src/chrome/locale/ml/network-settings.dtd
+++ b/src/chrome/locale/ml/network-settings.dtd
@@ -1,24 +1,24 @@
-<!ENTITY torsettings.dialog.title "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
-<!ENTITY torsettings.wizard.title.configure "Tor Network Settings">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.dialog.title "ടോർ നെറ്റ്വർക്ക് ക്രമീകരണങ്ങൾ ...">
+<!ENTITY torsettings.wizard.title.default "'ടോർ 'ൽ പ്രവേശിക്കു ...">
+<!ENTITY torsettings.wizard.title.configure "ടോർ നെറ്റ്വർക്ക് ക്രമീകരണങ്ങൾ ...">
+<!ENTITY torsettings.wizard.title.connecting "ബന്ധപ്പെടുന്നു ...">
<!-- For locale picker: -->
-<!ENTITY torlauncher.localePicker.title "Tor Browser Language">
-<!ENTITY torlauncher.localePicker.prompt "Please select a language.">
+<!ENTITY torlauncher.localePicker.title "ടോർ ബ്രൗസർ ഭാഷ ">
+<!ENTITY torlauncher.localePicker.prompt "ഒരു ഭാഷ തിരഞ്ഞെടുക്കു ">
<!-- For "first run" wizard: -->
<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
-<!ENTITY torSettings.configure "Configure">
+<!ENTITY torSettings.configure "ക്രമപ്പെടുത്തു ">
<!ENTITY torSettings.connect "Connect">
<!-- Other: -->
<!ENTITY torsettings.startingTor "Waiting for Tor to start…">
<!ENTITY torsettings.restartTor "Restart Tor">
-<!ENTITY torsettings.reconfigTor "Reconfigure">
+<!ENTITY torsettings.reconfigTor "പുനഃർക്രമീകരിക്കുക ">
<!ENTITY torsettings.discardSettings.prompt "You have configured Tor bridges or you have entered local proxy settings.  To make a direct connection to the Tor network, these settings must be removed.">
<!ENTITY torsettings.discardSettings.proceed "Remove Settings and Connect">
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ml/torlauncher.properties b/src/chrome/locale/ml/torlauncher.properties
index 9642606..84fd819 100644
--- a/src/chrome/locale/ml/torlauncher.properties
+++ b/src/chrome/locale/ml/torlauncher.properties
@@ -5,7 +5,7 @@ torlauncher.error_title=Tor Launcher
torlauncher.tor_exited_during_startup=Tor exited during startup. This might be due to an error in your torrc file, a bug in Tor or another program on your system, or faulty hardware. Until you fix the underlying problem and restart Tor, Tor Browser will not start.
torlauncher.tor_exited=Tor unexpectedly exited. This might be due to a bug in Tor itself, another program on your system, or faulty hardware. Until you restart Tor, the Tor Browser will not able to reach any websites. If the problem persists, please send a copy of your Tor Log to the support team.
-torlauncher.tor_exited2=Restarting Tor will not close your browser tabs.
+torlauncher.tor_exited2=ടോർ പുനഃരാരംഭിക്കുമ്പോൾ ബ്രൗസർ ടാബുകൾ അവസാനിപ്പിക്കില്ല .
torlauncher.tor_controlconn_failed=Could not connect to Tor control port.
torlauncher.tor_failed_to_start=Tor failed to start.
torlauncher.tor_control_failed=Failed to take control of Tor.
@@ -14,7 +14,7 @@ torlauncher.tor_bootstrap_failed_details=%1$S failed (%2$S).
torlauncher.unable_to_start_tor=Unable to start Tor.\n\n%S
torlauncher.tor_missing=The Tor executable is missing.
-torlauncher.torrc_missing=The torrc file is missing and could not be created.
+torlauncher.torrc_missing="ടോർ ആർസി" ഫയൽ കാണുന്നില്ല ഒപ്പം അതിന്റെ നിർമാണവും പരാജയപ്പെട്ടു .
torlauncher.datadir_missing=The Tor data directory does not exist and could not be created.
torlauncher.password_hash_missing=Failed to get hashed password.
diff --git a/src/chrome/locale/mn/network-settings.dtd b/src/chrome/locale/mn/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/mn/network-settings.dtd
+++ b/src/chrome/locale/mn/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/mr/network-settings.dtd b/src/chrome/locale/mr/network-settings.dtd
index 8e6d193..b0346da 100644
--- a/src/chrome/locale/mr/network-settings.dtd
+++ b/src/chrome/locale/mr/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ms-MY/network-settings.dtd b/src/chrome/locale/ms-MY/network-settings.dtd
index d53fced..7d79c1e 100644
--- a/src/chrome/locale/ms-MY/network-settings.dtd
+++ b/src/chrome/locale/ms-MY/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Salin log Tor ke Papan Keratan">
<!ENTITY torsettings.proxyHelpTitle "Bantuan Proksi">
-<!ENTITY torsettings.proxyHelp1 "Satu proksi setempat diperlukan semasa menyambung dengan rangkaian syarikat, sekolah, atau universiti. Jika anda tidak pasti bagaimana untuk menjawab soalan ini, lihat tetapan Internet dalam pelayar yang lain atau periksa tetapan rangkaian sistem anda untuk melihat sama ada proksi diperlukan.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bantuan Geganti Titi">
<!ENTITY torsettings.bridgeHelp1 "Titi adalah geganti tidak tersenarai yang menjadikannya lebih sukar menyekat sambungan dengan Rangkaian Tor.  Setiap jenis titi menggunakan kaedah berbeza untuk menghindari sekatan.  Obf menjadikan trafik anda seakan-akan hingar rawak, dan paling teruk menjadikan trafik anda kelihatan mahu bersambung dengan perkhidmatan lain selain dari Tor.">
diff --git a/src/chrome/locale/mt/network-settings.dtd b/src/chrome/locale/mt/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/mt/network-settings.dtd
+++ b/src/chrome/locale/mt/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/my/network-settings.dtd b/src/chrome/locale/my/network-settings.dtd
index 890d3e5..748d302 100644
--- a/src/chrome/locale/my/network-settings.dtd
+++ b/src/chrome/locale/my/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/nah/network-settings.dtd b/src/chrome/locale/nah/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/nah/network-settings.dtd
+++ b/src/chrome/locale/nah/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/nap/network-settings.dtd b/src/chrome/locale/nap/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/nap/network-settings.dtd
+++ b/src/chrome/locale/nap/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/nb/network-settings.dtd b/src/chrome/locale/nb/network-settings.dtd
index 781a076..73162db 100644
--- a/src/chrome/locale/nb/network-settings.dtd
+++ b/src/chrome/locale/nb/network-settings.dtd
@@ -43,7 +43,7 @@
<!ENTITY torsettings.useBridges.default.placeholder "velg en bro">
<!ENTITY torsettings.useBridges.bridgeDB "Forespør en bro fra torproject.org">
<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Skriv inn tegnene fra bildet">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Få en ny utfordring">
<!ENTITY torsettings.useBridges.captchaSubmit "Send inn">
<!ENTITY torsettings.useBridges.custom "Tilby en bro jeg kjenner">
<!ENTITY torsettings.useBridges.label "Skriv inn broinformasjon fra en betrodd kilde.">
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopier Tor-loggen til utklippstavlen">
<!ENTITY torsettings.proxyHelpTitle "Mellomtjenerhjelp">
-<!ENTITY torsettings.proxyHelp1 "En lokal mellomtjener trengs når du kobler til fra et bedrifts-, skole-, eller universitets-nettverk. Hvis du ikke er sikker på hvordan du besvarer dette spørsmålet, sjekk internettinnstillingene i en annen nettleser, eller sjekk nettverksinnstillingene på systemet ditt for å se hvorvidt en mellomtjener behøves.">
+<!ENTITY torsettings.proxyHelp1 "En lokal proxy kan være nødvendig når du kobler deg gjennom et firma, skole eller universitet nettverk.  Hvis du ikke er sikker på om en proxy er nødvendig, kan du se på Internett-innstillingene i en annen nettleser eller kontrollere systemets nettverksinnstillinger.">
<!ENTITY torsettings.bridgeHelpTitle "Hjelp med Bro-rutingsstafettoppsett">
<!ENTITY torsettings.bridgeHelp1 "Broer er ulistede rutingstafettoppsett som gjør det vanskeligere å blokkere tilkoblinger til Tor-nettverket.  Hver type bro bruker en egen måte å unngå sensur.  Obfs-broene får trafikken din til å se ut som tilfeldig støy, og de ydmyke broene får broene til å se ut som de kobler til en annen tjeneste enn Tor.">
diff --git a/src/chrome/locale/nb/torlauncher.properties b/src/chrome/locale/nb/torlauncher.properties
index 4c50bee..442cc59 100644
--- a/src/chrome/locale/nb/torlauncher.properties
+++ b/src/chrome/locale/nb/torlauncher.properties
@@ -34,12 +34,12 @@ torlauncher.bridge_suffix.meek-azure=(virker i Kina)
torlauncher.request_a_bridge=Forespør en bro…
torlauncher.request_a_new_bridge=Forespør ny bro…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
+torlauncher.contacting_bridgedb=Kontakter BridgeDB. Vennligst vent.
torlauncher.captcha_prompt=Løs CAPTCHA-en for å forespørre en bro.
-torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
-torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
-torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.bad_captcha_solution=Løsningen er ikke riktig. Vær så snill, prøv på nytt.
+torlauncher.unable_to_get_bridge=Kunne ikke skaffe en bro fra BridgeDB\n\n%S
+torlauncher.no_meek=Denne nettleseren er ikke konfigurert for svak, noe som trengs for å skaffe broer.
+torlauncher.no_bridges_available=Ingen broer er tilgjengelig på dette tidspunktet. Beklager.
torlauncher.connect=Koble til
torlauncher.restart_tor=Omstart av Tor
diff --git a/src/chrome/locale/ne/network-settings.dtd b/src/chrome/locale/ne/network-settings.dtd
index 1053af4..7f859f7 100644
--- a/src/chrome/locale/ne/network-settings.dtd
+++ b/src/chrome/locale/ne/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/nl-BE/network-settings.dtd b/src/chrome/locale/nl-BE/network-settings.dtd
index 4e4e2ce..efd9402 100644
--- a/src/chrome/locale/nl-BE/network-settings.dtd
+++ b/src/chrome/locale/nl-BE/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/nl/network-settings.dtd b/src/chrome/locale/nl/network-settings.dtd
index 91effd7..e8aa4eb 100644
--- a/src/chrome/locale/nl/network-settings.dtd
+++ b/src/chrome/locale/nl/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopieer Tor-log naar het klembord">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "Een lokale proxy is nodig wanneer u verbind door het netwerk van uw werk, school, universiteit. Als u niet zeker bent hoe u deze vraag zou beantwoorden, kijk naar uw internet instellingen in een andere browser of controleer uw systeem zijn netwerk instellingen om te zien of een proxy nodig is.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge relay-hulp">
<!ENTITY torsettings.bridgeHelp1 "Bridges zijn niet vermelde relays die het moeilijk maken om verbindingen naar het Tor Network te blokkeren.  Elk van deze bridges gebruikt een andere methode om censuur te vermijden.  Degene die obfs gebruiken, zien eruit gelijk willekeurige ruis, en de andere laten uw netwerk verkeer eruit zien alsof u verbind met een andere service in plaats van met Tor.">
diff --git a/src/chrome/locale/nn/network-settings.dtd b/src/chrome/locale/nn/network-settings.dtd
index 0a81828..808cfe1 100644
--- a/src/chrome/locale/nn/network-settings.dtd
+++ b/src/chrome/locale/nn/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/nso/network-settings.dtd b/src/chrome/locale/nso/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/nso/network-settings.dtd
+++ b/src/chrome/locale/nso/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/oc/network-settings.dtd b/src/chrome/locale/oc/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/oc/network-settings.dtd
+++ b/src/chrome/locale/oc/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/or/network-settings.dtd b/src/chrome/locale/or/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/or/network-settings.dtd
+++ b/src/chrome/locale/or/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/pa/network-settings.dtd b/src/chrome/locale/pa/network-settings.dtd
index f375403..87efa6c 100644
--- a/src/chrome/locale/pa/network-settings.dtd
+++ b/src/chrome/locale/pa/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/pap/network-settings.dtd b/src/chrome/locale/pap/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/pap/network-settings.dtd
+++ b/src/chrome/locale/pap/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/pl/network-settings.dtd b/src/chrome/locale/pl/network-settings.dtd
index 57a30bd..a45fc68 100644
--- a/src/chrome/locale/pl/network-settings.dtd
+++ b/src/chrome/locale/pl/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Skopiuj log do schowka">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Pomoc Przekaźników Mostkowych">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/pms/network-settings.dtd b/src/chrome/locale/pms/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/pms/network-settings.dtd
+++ b/src/chrome/locale/pms/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ps/network-settings.dtd b/src/chrome/locale/ps/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ps/network-settings.dtd
+++ b/src/chrome/locale/ps/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/pt-BR/network-settings.dtd b/src/chrome/locale/pt-BR/network-settings.dtd
index 6b6dfe9..98e152a 100644
--- a/src/chrome/locale/pt-BR/network-settings.dtd
+++ b/src/chrome/locale/pt-BR/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copiar o registro do Tor na área de transferência">
<!ENTITY torsettings.proxyHelpTitle "Ajuda com o Proxy">
-<!ENTITY torsettings.proxyHelp1 "Um proxy local é necessário para conectar-se por meio de uma rede de empresa, escola ou universidade. Se você não tiver certeza se um proxy é necessário no seu caso, verifique as configurações de Internet em um outro navegador ou consulte as suas configurações de sistema de rede. ">
+<!ENTITY torsettings.proxyHelp1 "Um proxy local pode ser necessário ao conectar-se através de uma empresa, escola ou rede universitária. Se você não tiver certeza se um proxy é necessário, verifique as configurações da Internet em outro navegador ou verifique as configurações de rede do seu sistema.">
<!ENTITY torsettings.bridgeHelpTitle "Ajuda Retransmissor de Ponte">
<!ENTITY torsettings.bridgeHelp1 "Pontes são retransmissores não listados que dificultam o bloqueio de conexões à Rede Tor.  Cada tipo de ponte usa um método diferente para evitar censura.  Obfs faz com que o seu tráfego online pareca um barulho aleatório, e as de tipo meek fazem o seu tráfego online parecer como se estivesse conectando-se a um outro serviço e não ao Tor.">
diff --git a/src/chrome/locale/pt/network-settings.dtd b/src/chrome/locale/pt/network-settings.dtd
index e528c95..42b9cd4 100644
--- a/src/chrome/locale/pt/network-settings.dtd
+++ b/src/chrome/locale/pt/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copiar o Registo do Tor para a Área de Transferência">
<!ENTITY torsettings.proxyHelpTitle "Ajuda de Proxy">
-<!ENTITY torsettings.proxyHelp1 "é necessário um proxy local quando ligar através de uma rede de empresa, escolar ou universitária. Se não tiver a certeza de como responder a esta questão, verifique as definições da Internet em outro navegador ou verifique as definições de rede do seu sistema para ver se é necessário um proxy.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Ajuda da Retransmissão de Ponte">
<!ENTITY torsettings.bridgeHelp1 "As pontes são retransmissões não listadas que dificultam o bloqueio de ligações à Rede Tor. Cada tipo de ponte utiliza um método diferente para evitar a censura. Os "obfs" fazem com que o seu tráfego pareça um ruído aleatório, e os pacíficos fazem com que o seu tráfego pareça que está a ligar-se ao serviço, em vez ao Tor.">
diff --git a/src/chrome/locale/ro/network-settings.dtd b/src/chrome/locale/ro/network-settings.dtd
index 117a63e..2bad00b 100644
--- a/src/chrome/locale/ro/network-settings.dtd
+++ b/src/chrome/locale/ro/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copiați jurnalul Tor în Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Ajutor Proxy">
-<!ENTITY torsettings.proxyHelp1 "Un proxy local este necesar la conectarea din rețeaua unei companii, școli sau universități. Dacă nu ești sigur cum să răspunzi la întrebare, vezi setările pentru Internet în alt navigator web sau verifică setările de rețea pentru a vedea dacă o setare de proxy e necesară.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Ajutor Bridge Relay">
<!ENTITY torsettings.bridgeHelp1 "Punțile sunt relee ne-listate care fac mai dificilă blocarea conexiunilor spre Rețeaua Tor.   Fiecare tip de punte folosește o altă metodă pentru a evita cenzura.   Cele obfs fac traficul tău să semene cu zgomot aleatoriu, iar cele meek fac traficul să pară că se conectează la acel serviciu în loc de Tor.">
diff --git a/src/chrome/locale/ru/network-settings.dtd b/src/chrome/locale/ru/network-settings.dtd
index 20a65e4..c834805 100644
--- a/src/chrome/locale/ru/network-settings.dtd
+++ b/src/chrome/locale/ru/network-settings.dtd
@@ -20,43 +20,43 @@
<!ENTITY torsettings.restartTor "Перезапустить Tor">
<!ENTITY torsettings.reconfigTor "Изменить конфигурацию">
-<!ENTITY torsettings.discardSettings.prompt "Вы настроили Tor мосты или ввели локальные настройки прокси-сервера.  Для прямого подключения к сети Tor эти параметры должны быть удалены.">
+<!ENTITY torsettings.discardSettings.prompt "Вы настроили мосты Tor или ввели локальные настройки прокси-сервера.  Для прямого подключения к сети Tor эти параметры должны быть удалены.">
<!ENTITY torsettings.discardSettings.proceed "Удалить настройки и подключиться">
<!ENTITY torsettings.optional "Необязательно">
-<!ENTITY torsettings.useProxy.checkbox "Я использую прокси для подключения к Интернет">
-<!ENTITY torsettings.useProxy.type "Тип Прокси:">
-<!ENTITY torsettings.useProxy.type.placeholder "выбрать тип прокси">
+<!ENTITY torsettings.useProxy.checkbox "Я использую прокси для подключения к интернету">
+<!ENTITY torsettings.useProxy.type "Тип прокси:">
+<!ENTITY torsettings.useProxy.type.placeholder "выбор типа прокси">
<!ENTITY torsettings.useProxy.address "Адрес:">
-<!ENTITY torsettings.useProxy.address.placeholder "IP адрес или имя узла">
+<!ENTITY torsettings.useProxy.address.placeholder "IP-адрес или имя узла">
<!ENTITY torsettings.useProxy.port "Порт:">
<!ENTITY torsettings.useProxy.username "Имя пользователя:">
<!ENTITY torsettings.useProxy.password "Пароль:">
<!ENTITY torsettings.useProxy.type.socks4 "SOCKS 4">
<!ENTITY torsettings.useProxy.type.socks5 "SOCKS 5">
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
-<!ENTITY torsettings.firewall.checkbox "Мой сетевой экран позволяет мне подключиться только к определенным портам">
-<!ENTITY torsettings.firewall.allowedPorts "Разрешенные порты:">
-<!ENTITY torsettings.useBridges.checkbox "Tor запрещен в моей стране">
+<!ENTITY torsettings.firewall.checkbox "Мой сетевой экран позволяет мне подключиться только к определённым портам">
+<!ENTITY torsettings.firewall.allowedPorts "Разрешённые порты:">
+<!ENTITY torsettings.useBridges.checkbox "Tor запрещён в моей стране">
<!ENTITY torsettings.useBridges.default "Выбрать встроенный мост">
-<!ENTITY torsettings.useBridges.default.placeholder "выбрать мост">
+<!ENTITY torsettings.useBridges.default.placeholder "выбор моста">
<!ENTITY torsettings.useBridges.bridgeDB "Запросить мост от torproject.org">
<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Введите символы с изображения">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Перезагрузить защитный код">
<!ENTITY torsettings.useBridges.captchaSubmit "Передать">
<!ENTITY torsettings.useBridges.custom "Указать мост, который я знаю">
<!ENTITY torsettings.useBridges.label "Введите информацию о мосте от доверенного источника.">
-<!ENTITY torsettings.useBridges.placeholder "напечатайте адрес:порт (по одному в строке)">
+<!ENTITY torsettings.useBridges.placeholder "введите адрес:порт (по одному в строке)">
<!ENTITY torsettings.copyLog "Скопировать журнал Tor в буфер обмена">
<!ENTITY torsettings.proxyHelpTitle "Помощь по прокси">
-<!ENTITY torsettings.proxyHelp1 "Локальный прокси нужен при подключении из корпоративной, школьной или вузовской сети. Если вы уверены в ответе на этот вопрос, посмотрите на настройки Интернета в другом браузере или проверьте ваши системные настройки сети, чтобы увидеть, нужен ли прокси.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Помощь по ретрансляторам типа мост">
<!ENTITY torsettings.bridgeHelp1 "Мосты - это незарегистрированные реле, которые затрудняют блокировку соединений с сетью Tor.&#160 Каждый тип моста использует отличный от других метод, чтобы избежать блокировки цезорами. Обходные устройства делают ваш трафик похожим на случайный шум и имитируют то, что он подключается к этой службе вместо Tor.">
-<!ENTITY torsettings.bridgeHelp2 "Из-за того, как именно страны пытаются блокировать Tor, определенные мосты работают в одних странах, но не работают в других.  Если вы не уверены в том, какие мосты сработает в вашей стране, посетите torproject.org/about/contact.html#support">
+<!ENTITY torsettings.bridgeHelp2 "Из-за того, как именно страны пытаются блокировать Tor, определённые мосты работают в одних странах, но не работают в других.  Если вы не уверены в том, какие мосты сработает в вашей стране, посетите torproject.org/about/contact.html#support">
<!-- Progress -->
<!ENTITY torprogress.pleaseWait "Пожалуйста, подождите, пока мы установим подключение к сети Tor.  Это может занять несколько минут.">
diff --git a/src/chrome/locale/ru(a)petr1708/network-settings.dtd b/src/chrome/locale/ru(a)petr1708/network-settings.dtd
index b0ddf2b..137d417 100644
--- a/src/chrome/locale/ru(a)petr1708/network-settings.dtd
+++ b/src/chrome/locale/ru(a)petr1708/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sco/network-settings.dtd b/src/chrome/locale/sco/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/sco/network-settings.dtd
+++ b/src/chrome/locale/sco/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/si-LK/network-settings.dtd b/src/chrome/locale/si-LK/network-settings.dtd
index ca6acf4..28e41e3 100644
--- a/src/chrome/locale/si-LK/network-settings.dtd
+++ b/src/chrome/locale/si-LK/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Clipboard එකට Tor ලොගය පිටපත් කරන්න.">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "සේතු ප්රතියෝජක (Bridge Relay) උපකාරකය">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sk-SK/network-settings.dtd b/src/chrome/locale/sk-SK/network-settings.dtd
index ce4cb7e..5f77c81 100644
--- a/src/chrome/locale/sk-SK/network-settings.dtd
+++ b/src/chrome/locale/sk-SK/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopírovať log Toru do schránky">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Pomocník pre premostenia relé">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sk/network-settings.dtd b/src/chrome/locale/sk/network-settings.dtd
index 651c493..780dff1 100644
--- a/src/chrome/locale/sk/network-settings.dtd
+++ b/src/chrome/locale/sk/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Skopírovať záznam Tor do schránky clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Nápoveda o relé premosteniach">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sl-SI/network-settings.dtd b/src/chrome/locale/sl-SI/network-settings.dtd
index bb0685f..1fd99f6 100644
--- a/src/chrome/locale/sl-SI/network-settings.dtd
+++ b/src/chrome/locale/sl-SI/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopirajte Tor poročilo v odložišče">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Pomoč premostitveno vozlišče">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sl/network-settings.dtd b/src/chrome/locale/sl/network-settings.dtd
index 740708c..be6dbf6 100644
--- a/src/chrome/locale/sl/network-settings.dtd
+++ b/src/chrome/locale/sl/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sn/network-settings.dtd b/src/chrome/locale/sn/network-settings.dtd
index c6c788b..e126b2a 100644
--- a/src/chrome/locale/sn/network-settings.dtd
+++ b/src/chrome/locale/sn/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/so/network-settings.dtd b/src/chrome/locale/so/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/so/network-settings.dtd
+++ b/src/chrome/locale/so/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/son/network-settings.dtd b/src/chrome/locale/son/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/son/network-settings.dtd
+++ b/src/chrome/locale/son/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sq/network-settings.dtd b/src/chrome/locale/sq/network-settings.dtd
index 5565d51..deee417 100644
--- a/src/chrome/locale/sq/network-settings.dtd
+++ b/src/chrome/locale/sq/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopjojeni Regjistrin e Tor në Kujtesën e fragmenteve">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Ndihma mbi Relenë e Urë">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sr/network-settings.dtd b/src/chrome/locale/sr/network-settings.dtd
index 5cc5956..93b9b0b 100644
--- a/src/chrome/locale/sr/network-settings.dtd
+++ b/src/chrome/locale/sr/network-settings.dtd
@@ -52,11 +52,11 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
<!ENTITY torsettings.bridgeHelp2 "Because of how certain countries try to block Tor, certain bridges work in certain countries but not others.  If you are unsure about which bridges work in your country, visit torproject.org/about/contact.html#support">
<!-- Progress -->
-<!ENTITY torprogress.pleaseWait "Please wait while we establish a connection to the Tor network.  This may take several minutes.">
+<!ENTITY torprogress.pleaseWait "Molimo sačekajte dok uspostavljamo vezu sa Tor mrežom.  Ovo može potrajati nekoliko minuta.">
diff --git a/src/chrome/locale/sr(a)latin/network-settings.dtd b/src/chrome/locale/sr(a)latin/network-settings.dtd
index ad9c948..22408b5 100644
--- a/src/chrome/locale/sr(a)latin/network-settings.dtd
+++ b/src/chrome/locale/sr(a)latin/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/st/network-settings.dtd b/src/chrome/locale/st/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/st/network-settings.dtd
+++ b/src/chrome/locale/st/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/su/network-settings.dtd b/src/chrome/locale/su/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/su/network-settings.dtd
+++ b/src/chrome/locale/su/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/sv/network-settings.dtd b/src/chrome/locale/sv/network-settings.dtd
index b7adc24..8e67127 100644
--- a/src/chrome/locale/sv/network-settings.dtd
+++ b/src/chrome/locale/sv/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Kopiera Tor-loggen till urklippet">
<!ENTITY torsettings.proxyHelpTitle "Proxy hjälp">
-<!ENTITY torsettings.proxyHelp1 "En lokal proxy behövs när du ansluter via ett företag, skola eller universitets nätverk.   Om du inte är säker på hur du ska svara på denna frågan, se Internet inställningar i en annan webbläsaren eller kolla ditt systems nätverks inställningar för att se ifall en proxy behövs.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Hjälp om relä bryggor">
<!ENTITY torsettings.bridgeHelp1 "Bryggor är olistade reläer som gör det svårare att blockera anslutningar till Tor nätverket.   Var typ av brygga använder sig av olika metoder för att undvika censur.   Obfs gör att din trafik ser ut som brus och meek gör att din trafik ser ut som att du ansluter till tjänsten istället för Tor.">
diff --git a/src/chrome/locale/sw/network-settings.dtd b/src/chrome/locale/sw/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/sw/network-settings.dtd
+++ b/src/chrome/locale/sw/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ta/network-settings.dtd b/src/chrome/locale/ta/network-settings.dtd
index 97b8b3b..81f0766 100644
--- a/src/chrome/locale/ta/network-settings.dtd
+++ b/src/chrome/locale/ta/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog " Tor பதிவுகளை கிளிப்போர்டுக்கு நகலெடு">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/te/network-settings.dtd b/src/chrome/locale/te/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/te/network-settings.dtd
+++ b/src/chrome/locale/te/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/tg/network-settings.dtd b/src/chrome/locale/tg/network-settings.dtd
index adce19a..0cec284 100644
--- a/src/chrome/locale/tg/network-settings.dtd
+++ b/src/chrome/locale/tg/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/th/network-settings.dtd b/src/chrome/locale/th/network-settings.dtd
index 0e3f730..2eea0d9 100644
--- a/src/chrome/locale/th/network-settings.dtd
+++ b/src/chrome/locale/th/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "คัดลอกปูม Tor ไปที่คลิปบอร์ด">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "การช่วยเหลือรีเลย์สะพาน">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ti/network-settings.dtd b/src/chrome/locale/ti/network-settings.dtd
index bdceb7b..a1a326b 100644
--- a/src/chrome/locale/ti/network-settings.dtd
+++ b/src/chrome/locale/ti/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/tk/network-settings.dtd b/src/chrome/locale/tk/network-settings.dtd
index bdca9f8..daf47ca 100644
--- a/src/chrome/locale/tk/network-settings.dtd
+++ b/src/chrome/locale/tk/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/tr/network-settings.dtd b/src/chrome/locale/tr/network-settings.dtd
index 74a24e0..55e1244 100644
--- a/src/chrome/locale/tr/network-settings.dtd
+++ b/src/chrome/locale/tr/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Tor Günlüğünü Panoya Kopyala">
<!ENTITY torsettings.proxyHelpTitle "Vekil Sunucu Yardımı">
-<!ENTITY torsettings.proxyHelp1 "Bir kurum, okul ya da üniversite ağı aracılığıyla bağlanırken yerel bir vekil sunucu gereklidir. Bu soruyu nasıl yanıtlayacağınızdan emin değilseniz, başka bir tarayıcıdaki İnternet ayarlarına bakın ya da vekil sunucunun gerekip gerekmediğini görmek için sisteminizin ağ ayarlarını gözden geçirin.">
+<!ENTITY torsettings.proxyHelp1 "Bir kurum, okul ya da üniversite ağı aracılığıyla bağlanırken yerel bir vekil sunucu gereklidir. Bir vekil sunucu kullanıp kullanmamanız gerektiğinden emin değilseniz, bilgisayarınızın ağa bağlantı şeklini anlamak için başka bir tarayıcıdaki İnternet ayarlarına bakın ya da sisteminizin ağ ayarlarını gözden geçirin.">
<!ENTITY torsettings.bridgeHelpTitle "Köprü Aktarıcı Yardımı">
<!ENTITY torsettings.bridgeHelp1 "Köprüler, Tor Ağına bağlantıların engellenmesini zorlaştıran listelenmemiş aktarıcılardır.  Her köprü türü engellemeden kaçınmak için farklı bir yöntem kullanır.  Obfs köprüler, trafiğinizi rastgele gürültü gibi gösterir ve meek köprüleri ise, trafiğinizi Tor yerine o hizmete bağlanmış gibi gösterir.">
diff --git a/src/chrome/locale/uk/network-settings.dtd b/src/chrome/locale/uk/network-settings.dtd
index 266ed25..f4190e5 100644
--- a/src/chrome/locale/uk/network-settings.dtd
+++ b/src/chrome/locale/uk/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Скопіювати журнал Tor до буферу обміну">
<!ENTITY torsettings.proxyHelpTitle "Довідка Проксі">
-<!ENTITY torsettings.proxyHelp1 "Локальний проксі-сервер потрібен під час підключення через мережу компанії, школи або університету. Якщо ви не знаєте, як відповісти на це запитання, перегляньте налаштування Інтернету в іншому веб-переглядачі або перевірте ваші мережеві налаштування системи, щоб дізнатися, чи потрібен проксі-сервер.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Допомога по ретрансляторам типу міст">
<!ENTITY torsettings.bridgeHelp1 "Мости - це незареєстровані передавачі, що ускладнюють блокування з'єднання з мережею Tor.  Кожен тип мосту використовує інакший метод, щоб уникнути цензури.  Функції obfs роблять ваш трафік схожим на випадковий шум, а функції meek роблять ваш трафік схожим на те, що він підключається до цієї служби не через Tor.">
diff --git a/src/chrome/locale/ur-PK/network-settings.dtd b/src/chrome/locale/ur-PK/network-settings.dtd
index d88d83c..2e8cfaf 100644
--- a/src/chrome/locale/ur-PK/network-settings.dtd
+++ b/src/chrome/locale/ur-PK/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ur/network-settings.dtd b/src/chrome/locale/ur/network-settings.dtd
index 9e84bc7..debbd66 100644
--- a/src/chrome/locale/ur/network-settings.dtd
+++ b/src/chrome/locale/ur/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/uz/network-settings.dtd b/src/chrome/locale/uz/network-settings.dtd
index a578a67..aad954d 100644
--- a/src/chrome/locale/uz/network-settings.dtd
+++ b/src/chrome/locale/uz/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/ve/network-settings.dtd b/src/chrome/locale/ve/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/ve/network-settings.dtd
+++ b/src/chrome/locale/ve/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/vi/network-settings.dtd b/src/chrome/locale/vi/network-settings.dtd
index c81d5c3..68d2383 100644
--- a/src/chrome/locale/vi/network-settings.dtd
+++ b/src/chrome/locale/vi/network-settings.dtd
@@ -1,7 +1,7 @@
<!ENTITY torsettings.dialog.title "Những cài đặt của mạng Tor">
-<!ENTITY torsettings.wizard.title.default "Connect to Tor">
+<!ENTITY torsettings.wizard.title.default "Kết nối tới Tor">
<!ENTITY torsettings.wizard.title.configure "Những cài đặt của mạng Tor">
-<!ENTITY torsettings.wizard.title.connecting "Establishing a Connection">
+<!ENTITY torsettings.wizard.title.connecting "Tạo kết nối">
<!-- For locale picker: -->
<!ENTITY torlauncher.localePicker.title "Ngôn ngữ Trình duyệt Tor">
@@ -9,8 +9,8 @@
<!-- For "first run" wizard: -->
-<!ENTITY torSettings.connectPrompt "Click “Connect” to connect to Tor.">
-<!ENTITY torSettings.configurePrompt "Click “Configure” to adjust network settings if you are in a country that censors Tor (such as Egypt, China, Turkey) or if you are connecting from a private network that requires a proxy.">
+<!ENTITY torSettings.connectPrompt "Nhấn "Kết nối" để kết nối tới mạng Tor">
+<!ENTITY torSettings.configurePrompt "Nhấn "Cấu hình" để điều chỉnh cài đặt mạng nếu bạn đang ở quốc gia đang kiểm duyệt Tor (chẳng hạn như Ai Cập, Trung Quốc, Thổ Nhĩ Kỳ) hoặc bạn đang kết nối từ mạng riêng tư yêu cầu proxy.">
<!ENTITY torSettings.configure "Cấu hình">
<!ENTITY torSettings.connect "Kết nối">
@@ -25,9 +25,9 @@
<!ENTITY torsettings.optional "Tuỳ chọn">
-<!ENTITY torsettings.useProxy.checkbox "I use a proxy to connect to the Internet">
+<!ENTITY torsettings.useProxy.checkbox "Tôi sử dụng proxy để kết nối tới Internet">
<!ENTITY torsettings.useProxy.type "Dạng proxy:">
-<!ENTITY torsettings.useProxy.type.placeholder "select a proxy type">
+<!ENTITY torsettings.useProxy.type.placeholder "chọn loại proxy">
<!ENTITY torsettings.useProxy.address "Địa chỉ:">
<!ENTITY torsettings.useProxy.address.placeholder "Địa chỉ IP hoặc hostname">
<!ENTITY torsettings.useProxy.port "Cổng:">
@@ -38,21 +38,21 @@
<!ENTITY torsettings.useProxy.type.http "HTTP / HTTPS">
<!ENTITY torsettings.firewall.checkbox "Máy tính này đi qua một tường lửa mà chỉ cho phép tới một vài cổng">
<!ENTITY torsettings.firewall.allowedPorts "Những Cổng Được phép:">
-<!ENTITY torsettings.useBridges.checkbox "Tor is censored in my country">
-<!ENTITY torsettings.useBridges.default "Select a built-in bridge">
-<!ENTITY torsettings.useBridges.default.placeholder "select a bridge">
-<!ENTITY torsettings.useBridges.bridgeDB "Request a bridge from torproject.org">
-<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Enter the characters from the image">
-<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Get a new challenge">
+<!ENTITY torsettings.useBridges.checkbox "Tor đã bị kiểm duyệt ở quốc gia của tôi">
+<!ENTITY torsettings.useBridges.default "Sử dụng cầu nối có sẵn">
+<!ENTITY torsettings.useBridges.default.placeholder "chọn loại cầu nối">
+<!ENTITY torsettings.useBridges.bridgeDB "Yêu cầu một cầu nối từ torproject.org">
+<!ENTITY torsettings.useBridges.captchaSolution.placeholder "Nhập đối tượng từ hình ảnh">
+<!ENTITY torsettings.useBridges.reloadCaptcha.tooltip "Nhận thử thách mới">
<!ENTITY torsettings.useBridges.captchaSubmit "Gửi">
-<!ENTITY torsettings.useBridges.custom "Provide a bridge I know">
-<!ENTITY torsettings.useBridges.label "Enter bridge information from a trusted source.">
-<!ENTITY torsettings.useBridges.placeholder "type address:port (one per line)">
+<!ENTITY torsettings.useBridges.custom "Cung cấp cầu nối mà tôi biết">
+<!ENTITY torsettings.useBridges.label "Nhập thông tin cầu nối từ một nguồn tin cậy.">
+<!ENTITY torsettings.useBridges.placeholder "nhập địa chỉ:cổng (một trên mỗi dòng)">
<!ENTITY torsettings.copyLog "Chép nhật ký của Tor vào Clipboard">
-<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelpTitle "Trợ giúp proxy">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Giúp đỡ về Tiếp sức cầu nối">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/wa/network-settings.dtd b/src/chrome/locale/wa/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/wa/network-settings.dtd
+++ b/src/chrome/locale/wa/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/wo/network-settings.dtd b/src/chrome/locale/wo/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/wo/network-settings.dtd
+++ b/src/chrome/locale/wo/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/zh-CN/network-settings.dtd b/src/chrome/locale/zh-CN/network-settings.dtd
index 1f41304..54f23b1 100644
--- a/src/chrome/locale/zh-CN/network-settings.dtd
+++ b/src/chrome/locale/zh-CN/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "点击复制 Tor 日志">
<!ENTITY torsettings.proxyHelpTitle "代理帮助">
-<!ENTITY torsettings.proxyHelp1 "从公司或学校网络连接互联网时,有时需使用本地代理。 如果不确定如何回答该问题,请查看其他浏览器的互联网设置,或者查看系统网络设置是否需要代理。">
+<!ENTITY torsettings.proxyHelp1 "通过公司,学校或大学的网络连接时可能需要本地代理。  如果您不确定是否需要代理,可查看其他浏览器中的网络设置或查看系统的网络设置。">
<!ENTITY torsettings.bridgeHelpTitle "网桥中继帮助">
<!ENTITY torsettings.bridgeHelp1 "网桥指未公开的 Tor 节点,通过这种节点连接 Tor 网络时更难以封锁。每种网桥使用不同的方式来突破审查。obfs 类型的网桥使通信看起来像随机信号,而 meek 网桥看起来像连接到相应的服务而不是 Tor 网络。">
diff --git a/src/chrome/locale/zh-HK/network-settings.dtd b/src/chrome/locale/zh-HK/network-settings.dtd
index e54b08c..0e6d6af 100644
--- a/src/chrome/locale/zh-HK/network-settings.dtd
+++ b/src/chrome/locale/zh-HK/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "將Tor洋蔥路由嘅日誌複製到剪貼簿">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "橋接轉向站嘅說明">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
diff --git a/src/chrome/locale/zh-TW/network-settings.dtd b/src/chrome/locale/zh-TW/network-settings.dtd
index a23851d..8a90487 100644
--- a/src/chrome/locale/zh-TW/network-settings.dtd
+++ b/src/chrome/locale/zh-TW/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "將洋蔥路由的訊息記錄複製到剪貼簿">
<!ENTITY torsettings.proxyHelpTitle "代理協助">
-<!ENTITY torsettings.proxyHelp1 "當您通過公司,學校或者大學網絡進行連接時,您需要一個本地代理。如果您不確定如何回答這個問題,請參考其他瀏覽器的網絡設置或者系統網絡設置,來決定是否需要本地代理。">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "橋接中繼器之說明">
<!ENTITY torsettings.bridgeHelp1 "網橋是未位於列表的中繼,可以使得tor網絡更難被屏蔽。 不同類別的網橋使用不同方法規避審查。.  obfs使您的通訊類似隨機發出的雜音,meek使您的通訊看起來是訪問他們的服務而不是tor。">
diff --git a/src/chrome/locale/zh-TW/torlauncher.properties b/src/chrome/locale/zh-TW/torlauncher.properties
index 4573b66..134a2a8 100644
--- a/src/chrome/locale/zh-TW/torlauncher.properties
+++ b/src/chrome/locale/zh-TW/torlauncher.properties
@@ -26,20 +26,20 @@ torlauncher.error_proxy_addr_missing=您必須指定一個 IP 位址或主機名
torlauncher.error_proxy_type_missing=您必須選擇代理伺服器類型。
torlauncher.error_bridges_missing=您必須指定一個或多個橋接。
torlauncher.error_default_bridges_type_missing=您必須為該橋接器選擇一種傳輸類型。
-torlauncher.error_bridgedb_bridges_missing=Please request a bridge.
+torlauncher.error_bridgedb_bridges_missing=請請求一個bridge
torlauncher.error_bridge_bad_default_type=沒有提供傳輸類型為 %S 的橋接器。請調整您的設定。
torlauncher.bridge_suffix.meek-amazon=(works in China)
torlauncher.bridge_suffix.meek-azure=(works in China)
-torlauncher.request_a_bridge=Request a Bridge…
-torlauncher.request_a_new_bridge=Request a New Bridge…
-torlauncher.contacting_bridgedb=Contacting BridgeDB. Please wait.
+torlauncher.request_a_bridge=請求一個bridge...
+torlauncher.request_a_new_bridge=請求一個新的bridge...
+torlauncher.contacting_bridgedb=連接到BridgeDB, 請等待。
torlauncher.captcha_prompt=Solve the CAPTCHA to request a bridge.
torlauncher.bad_captcha_solution=The solution is not correct. Please try again.
torlauncher.unable_to_get_bridge=Unable to obtain a bridge from BridgeDB.\n\n%S
torlauncher.no_meek=This browser is not configured for meek, which is needed to obtain bridges.
-torlauncher.no_bridges_available=No bridges are available at this time. Sorry.
+torlauncher.no_bridges_available=抱歉,現在沒有可以使用的bridge
torlauncher.connect=連線
torlauncher.restart_tor=重新啟動洋蔥路由
@@ -73,6 +73,6 @@ torlauncher.bootstrapWarning.noroute=沒有到主機的路由
torlauncher.bootstrapWarning.ioerror=讀取/寫入錯誤
torlauncher.bootstrapWarning.pt_missing=缺少可插式傳輸
-torlauncher.nsresult.NS_ERROR_NET_RESET=The connection to the server was lost.
-torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=Could not connect to the server.
-torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=Could not connect to the proxy.
+torlauncher.nsresult.NS_ERROR_NET_RESET=與伺服器連線中斷
+torlauncher.nsresult.NS_ERROR_CONNECTION_REFUSED=無法連接至伺服器
+torlauncher.nsresult.NS_ERROR_PROXY_CONNECTION_REFUSED=無法連接至代理
diff --git a/src/chrome/locale/zu/network-settings.dtd b/src/chrome/locale/zu/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/zu/network-settings.dtd
+++ b/src/chrome/locale/zu/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
1
0
commit a1d503be42ce915ee2f6eb2ca8ef7508a1a2c047
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Aug 16 07:47:28 2018 +0000
Release preparations
Version bump
---
src/install.rdf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/install.rdf b/src/install.rdf
index 5a31473..e7d7cc9 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -7,7 +7,7 @@
<em:creator>The Tor Project, Inc.</em:creator>
<em:contributor>Pearl Crescent, LLC</em:contributor>
<em:id>tor-launcher(a)torproject.org</em:id>
- <em:version>0.2.16.1</em:version>
+ <em:version>0.2.16.2</em:version>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<em:homepageURL>https://www.torproject.org/projects/torbrowser.html</em:homepageURL>
<em:updateURL>data:text/plain,</em:updateURL>
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 26456: HTTP .onion sites inherit previous page's
by gk@torproject.org 16 Aug '18
by gk@torproject.org 16 Aug '18
16 Aug '18
commit 3c5e1db5bc2131872bca5ec766522787beeee869
Author: Richard Pospesel <richard(a)torproject.org>
Date: Wed Aug 15 12:51:16 2018 -0700
Bug 26456: HTTP .onion sites inherit previous page's
certificate information
A side-effect of marking the state of HTTP onion pages as 'secure' is
that they go through the EvaluateAndUpdateSecurityState code path in
nsSecureBrowserUIImpl.
The previous implementation would just leave the SSLStatus as-is when
receiving an SSL 'info' object which could not be QueryInterface'd to
an nsISSLStatusProvider. For secure SSL pages, this code-path would
never occur, but for secure onion pages it would.
This would result in the previous page's SSLStatus hanging around when
transitioning to an HTTP onion site with the previous HTTPS's SSL info
remaining for the JavaScript chrome to pull in and display.
This patch tweaks the EvaluateAndUpdateSecurityState to correctly clear
the nsSecureBrowserUIImpl's owned nsISSLStatusProvider object in this
scenario.
---
security/manager/ssl/nsSecureBrowserUIImpl.cpp | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/security/manager/ssl/nsSecureBrowserUIImpl.cpp b/security/manager/ssl/nsSecureBrowserUIImpl.cpp
index 336901f0226e..dc39f6e1d131 100644
--- a/security/manager/ssl/nsSecureBrowserUIImpl.cpp
+++ b/security/manager/ssl/nsSecureBrowserUIImpl.cpp
@@ -376,7 +376,6 @@ nsSecureBrowserUIImpl::EvaluateAndUpdateSecurityState(nsIRequest* aRequest,
mNewToplevelIsEV = false;
bool updateStatus = false;
- nsCOMPtr<nsISSLStatus> temp_SSLStatus;
mNewToplevelSecurityState =
GetSecurityStateFromSecurityInfoAndRequest(info, aRequest);
@@ -387,21 +386,26 @@ nsSecureBrowserUIImpl::EvaluateAndUpdateSecurityState(nsIRequest* aRequest,
nsCOMPtr<nsISSLStatusProvider> sp(do_QueryInterface(info));
if (sp) {
- // Ignore result
+ // Ignore GetSSLStatus result
updateStatus = true;
- (void) sp->GetSSLStatus(getter_AddRefs(temp_SSLStatus));
- if (temp_SSLStatus) {
+ (void) sp->GetSSLStatus(getter_AddRefs(mSSLStatus));
+ if (mSSLStatus) {
bool aTemp;
- if (NS_SUCCEEDED(temp_SSLStatus->GetIsExtendedValidation(&aTemp))) {
+ if (NS_SUCCEEDED(mSSLStatus->GetIsExtendedValidation(&aTemp))) {
mNewToplevelIsEV = aTemp;
}
}
+ } else {
+ // No new SSL status, so clear out previous mSSLStatus and mark it for update
+ if (mSSLStatus != nullptr) {
+ mSSLStatus = nullptr;
+ updateStatus = true;
+ }
+ // also clear out EV flag
+ mNewToplevelIsEV = false;
}
mNewToplevelSecurityStateKnown = true;
- if (updateStatus) {
- mSSLStatus = temp_SSLStatus;
- }
MOZ_LOG(gSecureDocLog, LogLevel::Debug,
("SecureUI:%p: remember securityInfo %p\n", this,
info));
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 26825 - Delete RECEIVE_BOOT_COMPLETED permission
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit a67072ef19806e4c4c5d4a0c10f5cb35b5da2de1
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Aug 3 21:16:43 2018 +0000
Bug 26825 - Delete RECEIVE_BOOT_COMPLETED permission
This permission is not needed and it is only used by the Stumbler
(which we exclude at compile-time).
---
mobile/android/base/FennecManifest_permissions.xml.in | 1 -
mobile/android/geckoview/src/main/AndroidManifest.xml | 1 -
2 files changed, 2 deletions(-)
diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in
index f7bfe475bece..08c611d0a290 100644
--- a/mobile/android/base/FennecManifest_permissions.xml.in
+++ b/mobile/android/base/FennecManifest_permissions.xml.in
@@ -25,7 +25,6 @@
#endif
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
diff --git a/mobile/android/geckoview/src/main/AndroidManifest.xml b/mobile/android/geckoview/src/main/AndroidManifest.xml
index da1508336d90..9a74f5843240 100644
--- a/mobile/android/geckoview/src/main/AndroidManifest.xml
+++ b/mobile/android/geckoview/src/main/AndroidManifest.xml
@@ -9,7 +9,6 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
#endif
<uses-permission android:name="android.permission.INTERNET"/>
- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 24056: Use en-US strings in HTML forms
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit cbb04b72c68272c2de42f157d40cd7d29a6b7b55
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Mon Aug 6 13:20:40 2018 -0700
Bug 24056: Use en-US strings in HTML forms
When privacy.spoof_english = 2, we should hide the user's
locale in content. So we use en-US default strings for HTML
form elements, such as a Submit button.
We also force GetLocalizedEllipsis() to always return the
ellipsis used by en-US.
---
dom/base/nsContentUtils.cpp | 32 +++++++++++++++++++++++++-------
dom/base/nsContentUtils.h | 3 +++
2 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp
index 8257283e65a2..645f4aee0909 100644
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -317,6 +317,8 @@ bool nsContentUtils::sIsBytecodeCacheEnabled = false;
int32_t nsContentUtils::sBytecodeCacheStrategy = 0;
nsCString* nsContentUtils::sJSBytecodeMimeType = nullptr;
+int32_t nsContentUtils::sSpoofEnglish = 0;
+
int32_t nsContentUtils::sPrivacyMaxInnerWidth = 1000;
int32_t nsContentUtils::sPrivacyMaxInnerHeight = 1000;
@@ -737,6 +739,9 @@ nsContentUtils::Init()
Preferences::AddIntVarCache(&sBytecodeCacheStrategy,
"dom.script_loader.bytecode_cache.strategy", 0);
+ Preferences::AddIntVarCache(&sSpoofEnglish,
+ "privacy.spoof_english", 0);
+
nsDependentCString buildID(mozilla::PlatformBuildID());
sJSBytecodeMimeType = new nsCString(NS_LITERAL_CSTRING("javascript/moz-bytecode-") + buildID);
@@ -4040,7 +4045,7 @@ nsContentUtils::GetEventArgNames(int32_t aNameSpaceID,
}
}
-static const char gPropertiesFiles[nsContentUtils::PropertiesFile_COUNT][56] = {
+static const char* gPropertiesFiles[nsContentUtils::PropertiesFile_COUNT] = {
// Must line up with the enum values in |PropertiesFile| enum.
"chrome://global/locale/css.properties",
"chrome://global/locale/xbl.properties",
@@ -4055,7 +4060,8 @@ static const char gPropertiesFiles[nsContentUtils::PropertiesFile_COUNT][56] = {
"chrome://global/locale/commonDialogs.properties",
"chrome://global/locale/mathml/mathml.properties",
"chrome://global/locale/security/security.properties",
- "chrome://necko/locale/necko.properties"
+ "chrome://necko/locale/necko.properties",
+ "resource://gre/chrome/en-US/locale/en-US/global/layout/HtmlForm.properties"
};
/* static */ nsresult
@@ -4098,6 +4104,11 @@ nsresult nsContentUtils::GetLocalizedString(PropertiesFile aFile,
const char* aKey,
nsAString& aResult)
{
+ // When we spoof English, use en-US default strings in HTML forms.
+ if (aFile == eFORMS_PROPERTIES && sSpoofEnglish == 2) {
+ aFile = eFORMS_PROPERTIES_en_US;
+ }
+
nsresult rv = EnsureStringBundle(aFile);
NS_ENSURE_SUCCESS(rv, rv);
nsIStringBundle *bundle = sStringBundles[aFile];
@@ -4111,6 +4122,11 @@ nsresult nsContentUtils::FormatLocalizedString(PropertiesFile aFile,
uint32_t aParamsLength,
nsAString& aResult)
{
+ // When we spoof English, use en-US default strings in HTML forms.
+ if (aFile == eFORMS_PROPERTIES && sSpoofEnglish == 2) {
+ aFile = eFORMS_PROPERTIES_en_US;
+ }
+
nsresult rv = EnsureStringBundle(aFile);
NS_ENSURE_SUCCESS(rv, rv);
nsIStringBundle *bundle = sStringBundles[aFile];
@@ -5722,11 +5738,13 @@ nsContentUtils::GetLocalizedEllipsis()
{
static char16_t sBuf[4] = { 0, 0, 0, 0 };
if (!sBuf[0]) {
- nsAutoString tmp;
- Preferences::GetLocalizedString("intl.ellipsis", tmp);
- uint32_t len = std::min(uint32_t(tmp.Length()),
- uint32_t(ArrayLength(sBuf) - 1));
- CopyUnicodeTo(tmp, 0, sBuf, len);
+ if (sSpoofEnglish != 2) {
+ nsAutoString tmp;
+ Preferences::GetLocalizedString("intl.ellipsis", tmp);
+ uint32_t len = std::min(uint32_t(tmp.Length()),
+ uint32_t(ArrayLength(sBuf) - 1));
+ CopyUnicodeTo(tmp, 0, sBuf, len);
+ }
if (!sBuf[0])
sBuf[0] = char16_t(0x2026);
}
diff --git a/dom/base/nsContentUtils.h b/dom/base/nsContentUtils.h
index 246dabf340de..135dafdbc052 100644
--- a/dom/base/nsContentUtils.h
+++ b/dom/base/nsContentUtils.h
@@ -1110,6 +1110,7 @@ public:
eMATHML_PROPERTIES,
eSECURITY_PROPERTIES,
eNECKO_PROPERTIES,
+ eFORMS_PROPERTIES_en_US,
PropertiesFile_COUNT
};
static nsresult ReportToConsole(uint32_t aErrorFlags,
@@ -3514,6 +3515,8 @@ private:
static int32_t sInnerOrOuterWindowCount;
static uint32_t sInnerOrOuterWindowSerialCounter;
+
+ static int32_t sSpoofEnglish;
};
/* static */ inline
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] fixup! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit fa471b46da2a188f02d2e120fd58224444aee818
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Aug 8 10:55:44 2018 -0400
fixup! TB4: Tor Browser's Firefox preference overrides.
---
browser/app/profile/000-tor-browser.js | 3 ---
1 file changed, 3 deletions(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index e87b38dcb775..2ae1f416f89f 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -97,9 +97,6 @@ pref("toolkit.telemetry.unified", false);
pref("toolkit.telemetry.enabled", false);
// No experiments, use Tor Browser. See 21797.
pref("experiments.enabled", false);
-// Disable the UITour backend so there is no chance that a remote page
-// can use it to confuse Tor Browser users.
-pref("browser.uitour.enabled", false);
pref("browser.syncPromoViewsLeftMap", "{\"addons\":0, \"passwords\":0, \"bookmarks\":0}"); // Don't promote sync
pref("identity.fxaccounts.enabled", false); // Disable sync by default
pref("services.sync.engine.prefs", false); // Never sync prefs, addons, or tabs with other browsers
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 26961: New user onboarding.
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit c5e0193f1771ef457a85cd7a59dda8ac99b2b03e
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Aug 7 15:11:46 2018 -0400
Bug 26961: New user onboarding.
Reuse the Firefox onboarding mechanism with minimal changes.
Localizable strings are pulled in from Torbutton (if Torbutton is
not installed, we lack about:tor and no tour will be shown).
Replace SVG images with PNGs (see bug 27002),
For defense in depth, omit include OnboardingTelemetry.jsm entirely.
Added support for the following UITour page event:
torBrowserOpenSecuritySettings
---
browser/app/profile/000-tor-browser.js | 5 +
browser/components/uitour/UITour-lib.js | 7 +
browser/components/uitour/UITour.jsm | 8 +-
browser/extensions/onboarding/bootstrap.js | 17 +-
.../extensions/onboarding/content/img/close.png | Bin 0 -> 798 bytes
.../onboarding/content/img/figure_addons.svg | 1 -
.../onboarding/content/img/figure_customize.svg | 561 -----------------
.../onboarding/content/img/figure_default.svg | 1 -
.../onboarding/content/img/figure_library.svg | 689 ---------------------
.../onboarding/content/img/figure_performance.svg | 1 -
.../onboarding/content/img/figure_private.svg | 1 -
.../onboarding/content/img/figure_screenshots.svg | 191 ------
.../onboarding/content/img/figure_singlesearch.svg | 1 -
.../onboarding/content/img/figure_sync.svg | 1 -
.../content/img/figure_tor-circuit-display.png | Bin 0 -> 26334 bytes
.../content/img/figure_tor-expect-differences.png | Bin 0 -> 22290 bytes
.../onboarding/content/img/figure_tor-network.png | Bin 0 -> 27931 bytes
.../content/img/figure_tor-onion-services.png | Bin 0 -> 40968 bytes
.../onboarding/content/img/figure_tor-privacy.png | Bin 0 -> 35527 bytes
.../onboarding/content/img/figure_tor-security.png | Bin 0 -> 24554 bytes
.../onboarding/content/img/figure_tor-welcome.png | Bin 0 -> 48405 bytes
.../onboarding/content/img/icons_addons.svg | 1 -
.../onboarding/content/img/icons_customize.svg | 1 -
.../onboarding/content/img/icons_default.svg | 1 -
.../onboarding/content/img/icons_library.svg | 1 -
.../onboarding/content/img/icons_no-icon.png | Bin 0 -> 673 bytes
.../onboarding/content/img/icons_performance.svg | 1 -
.../onboarding/content/img/icons_private.svg | 1 -
.../onboarding/content/img/icons_screenshots.svg | 1 -
.../onboarding/content/img/icons_singlesearch.svg | 1 -
.../onboarding/content/img/icons_sync.svg | 1 -
.../onboarding/content/img/icons_tour-complete.png | Bin 0 -> 1221 bytes
.../onboarding/content/img/tor-watermark.png | Bin 0 -> 5705 bytes
.../onboarding/content/img/watermark.svg | 1 -
.../onboarding/content/onboarding-tour-agent.js | 10 +
.../extensions/onboarding/content/onboarding.css | 51 +-
.../extensions/onboarding/content/onboarding.js | 213 ++++++-
browser/extensions/onboarding/jar.mn | 7 +-
browser/extensions/onboarding/moz.build | 5 +-
39 files changed, 284 insertions(+), 1496 deletions(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index 2ae1f416f89f..b701dcce812b 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -341,6 +341,11 @@ pref("browser.download.panel.shown", true);
// Treat .onions as secure
pref("dom.securecontext.whitelist_onions", true);
+// Onboarding.
+pref("browser.onboarding.newtour", "welcome,privacy,tor-network,circuit-display,security,expect-differences,onion-services");
+pref("browser.onboarding.updatetour", "welcome,privacy,tor-network,circuit-display,security,expect-differences,onion-services");
+pref("browser.onboarding.skip-tour-button.hide", true);
+
#ifdef TOR_BROWSER_VERSION
#expand pref("torbrowser.version", __TOR_BROWSER_VERSION__);
#endif
diff --git a/browser/components/uitour/UITour-lib.js b/browser/components/uitour/UITour-lib.js
index d31ce0597712..279b2e48bc85 100644
--- a/browser/components/uitour/UITour-lib.js
+++ b/browser/components/uitour/UITour-lib.js
@@ -789,6 +789,13 @@ if (typeof Mozilla == "undefined") {
Mozilla.UITour.closeTab = function() {
_sendEvent("closeTab");
};
+
+ /**
+ * @summary Opens Torbutton's Security Settings (aka the Security Slider).
+ */
+ Mozilla.UITour.torBrowserOpenSecuritySettings = function() {
+ _sendEvent("torBrowserOpenSecuritySettings");
+ };
})();
// Make this library Require-able.
diff --git a/browser/components/uitour/UITour.jsm b/browser/components/uitour/UITour.jsm
index fcce372db422..b282d5c2d885 100644
--- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm
@@ -42,7 +42,7 @@ const PREF_LOG_LEVEL = "browser.uitour.loglevel";
const PREF_SEENPAGEIDS = "browser.uitour.seenPageIDs";
const TOR_BROWSER_PAGE_ACTIONS_ALLOWED = new Set([
- // Add page actions used by Tor Browser's new user/feature onboarding here.
+ "torBrowserOpenSecuritySettings",
]);
const BACKGROUND_PAGE_ACTIONS_ALLOWED = new Set([
@@ -694,6 +694,12 @@ var UITour = {
}
break;
}
+
+ case "torBrowserOpenSecuritySettings":
+ // Ask Torbutton to open the Tor Browser Security Settings.
+ Services.obs.notifyObservers(undefined, "TorOpenSecuritySettings",
+ undefined);
+ break;
}
// For performance reasons, only call initForBrowser if we did something
diff --git a/browser/extensions/onboarding/bootstrap.js b/browser/extensions/onboarding/bootstrap.js
index f066adadbd31..c553abe39759 100644
--- a/browser/extensions/onboarding/bootstrap.js
+++ b/browser/extensions/onboarding/bootstrap.js
@@ -8,7 +8,6 @@
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetters(this, {
OnboardingTourType: "resource://onboarding/modules/OnboardingTourType.jsm",
- OnboardingTelemetry: "resource://onboarding/modules/OnboardingTelemetry.jsm",
Services: "resource://gre/modules/Services.jsm",
UIState: "resource://services-sync/UIState.jsm",
});
@@ -27,6 +26,17 @@ const PREF_WHITELIST = [
];
[
+ // Tor Browser tours:
+ "onboarding-tour-tor-welcome",
+ "onboarding-tour-tor-privacy",
+ "onboarding-tour-tor-network",
+ "onboarding-tour-tor-circuit-display",
+ "onboarding-tour-tor-security",
+ "onboarding-tour-tor-expect-differences",
+ "onboarding-tour-tor-onion-services",
+#if 0
+// Firefox tours. To reduce conflicts when rebasing against newer Firefox
+// code, we use the preprocessor to omit this code block.
"onboarding-tour-addons",
"onboarding-tour-customize",
"onboarding-tour-default-browser",
@@ -36,6 +46,7 @@ const PREF_WHITELIST = [
"onboarding-tour-screenshots",
"onboarding-tour-singlesearch",
"onboarding-tour-sync",
+#endif
].forEach(tourId => PREF_WHITELIST.push([`browser.onboarding.tour.${tourId}.completed`, PREF_BOOL]));
let waitingForBrowserReady = true;
@@ -149,6 +160,8 @@ function initContentMessageListener() {
isLoggedIn: syncTourChecker.isLoggedIn()
});
break;
+#if 0
+// No telemetry in Tor Browser.
case "ping-centre":
try {
OnboardingTelemetry.process(msg.data.params.data);
@@ -156,6 +169,7 @@ function initContentMessageListener() {
Cu.reportError(e);
}
break;
+#endif
}
});
}
@@ -167,7 +181,6 @@ function onBrowserReady() {
waitingForBrowserReady = false;
OnboardingTourType.check();
- OnboardingTelemetry.init(startupData);
Services.mm.loadFrameScript("resource://onboarding/onboarding.js", true);
initContentMessageListener();
}
diff --git a/browser/extensions/onboarding/content/img/close.png b/browser/extensions/onboarding/content/img/close.png
new file mode 100644
index 000000000000..8a637de879ec
Binary files /dev/null and b/browser/extensions/onboarding/content/img/close.png differ
diff --git a/browser/extensions/onboarding/content/img/figure_addons.svg b/browser/extensions/onboarding/content/img/figure_addons.svg
deleted file mode 100644
index b5f056737f11..000000000000
--- a/browser/extensions/onboarding/content/img/figure_addons.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="295" height="199" viewBox="0 0 295 199" xmlns="http://www.w3.org/2000/svg"><title>addons</title><defs><linearGradient x1="-3335.765%" y1="-2236.632%" x2="5558.543%" y2="3780.103%" id="a"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-251.09%" y1="-799.657%" x2="413.095%" y2="1054.368%" id="b"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-573.525%" y1="-521.071%" x2="763.527%" y2="703.894%" id="c"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-2190.515%" y1="-1349.885%" x2="1528.924%" y2="974.764%" id="d"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1533.42%" y1="-541.311%" x2="2119.6%" y2="822.483%" id="e"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="1
00%"/></linearGradient><linearGradient x1="-16561.05%" y1="-16565.77%" x2="3895.86%" y2="3891.14%" id="f"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-204.8%" y1="-96.752%" x2="205.158%" y2="122.743%" id="g"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-112.715%" y1="-148.497%" x2="122.964%" y2="186.313%" id="h"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-817.408%" y1="-862.654%" x2="1335.951%" y2="1471.194%" id="i"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-923.374%" y1="-755.994%" x2="781.368%" y2="664.624%" id="j"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-57.385%" y1="-74.839%" x2="205.558%" y2="247.317%" i
d="k"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-136.437%" y1="-251.542%" x2="257.723%" y2="370.248%" id="l"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-3134.668%" y1="-1436.328%" x2="4644.893%" y2="2194.132%" id="m"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-3763.993%" y1="-1729.31%" x2="4015.564%" y2="1901.152%" id="n"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-967.977%" y1="-2316.493%" x2="1244.002%" y2="2869.881%" id="o"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-828.528%" y1="-1974.736%" x2="1398.399%" y2="3211.636%" id="p"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100
%"/></linearGradient><linearGradient x1="-341.455%" y1="-545.157%" x2="204.062%" y2="280.185%" id="q"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-6989.704%" y1="-10987.987%" x2="1723.404%" y2="2626.238%" id="r"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-346.468%" y1="-491.716%" x2="205.755%" y2="249.195%" id="s"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-163.142%" y1="-212.577%" x2="367.782%" y2="441.559%" id="t"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-431.069%" y1="-1508.892%" x2="196.676%" y2="489.527%" id="u"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-46.826%" y1="-91.711%" x2="115.212%" y2="164.256%
" id="v"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-469.407%" y1="-1536.217%" x2="369.344%" y2="1016.816%" id="w"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1395.389%" y1="-1859.067%" x2="1629.996%" y2="2107.556%" id="x"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-2132.529%" y1="-2452.139%" x2="1054.189%" y2="1199.521%" id="y"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1425.341%" y1="-2206.746%" x2="1446.3%" y2="2189.629%" id="z"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1606.851%" y1="-1906.042%" x2="1515.309%" y2="1780.906%" id="A"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offse
t="100%"/></linearGradient><linearGradient x1="-2952.119%" y1="-1785.48%" x2="1577.955%" y2="986.112%" id="B"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1774.73%" y1="-1132.379%" x2="2586.424%" y2="1691.85%" id="C"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-2922.831%" y1="-2221.905%" x2="1969.085%" y2="1525.629%" id="D"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-2790%" y1="-1744.265%" x2="1698.406%" y2="1091.887%" id="E"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-2160.459%" y1="-2153.729%" x2="1208.199%" y2="1206.393%" id="F"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-2197.557%" y1="-2601.613%" x2="936.46
2%" y2="1097.31%" id="G"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-2154.892%" y1="-3309.827%" x2="719.541%" y2="1068.777%" id="H"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-548.887%" y1="-964.209%" x2="654.188%" y2="1081.481%" id="I"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-318.202%" y1="-291.169%" x2="636.625%" y2="583.64%" id="J"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-455.827%" y1="-310.105%" x2="637.3%" y2="482.798%" id="K"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-5771.947%" y1="-7842.936%" x2="4994.847%" y2="6769.143%" id="L"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF"
offset="100%"/></linearGradient><linearGradient x1="-4086.052%" y1="-5400.884%" x2="4096.712%" y2="5365.911%" id="M"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1126.574%" y1="-1260.202%" x2="1146.414%" y2="1265.342%" id="N"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1150.53%" y1="-1333.596%" x2="1122.46%" y2="1289.085%" id="O"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-3947.183%" y1="-5480.943%" x2="3106.924%" y2="4260.443%" id="P"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-3712.853%" y1="-2757.137%" x2="2679.931%" y2="2000.284%" id="Q"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1265.89%" y1="-1395.587%"
x2="1007.1%" y2="1099.159%" id="R"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-2822.135%" y1="-2883.724%" x2="1935.286%" y2="1986.969%" id="S"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1548.018%" y1="-2218.877%" x2="1374.022%" y2="1940.124%" id="T"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1369.976%" y1="-1928.433%" x2="1334.398%" y2="1827.217%" id="U"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-2000.906%" y1="-2495.611%" x2="1322.352%" y2="1633.822%" id="V"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1470.604%" y1="-2072.202%" x2="1136.662%" y2="1558.26%" id="W"><stop stop-color="#00C8D7" offset="0%"/><st
op stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1194.36%" y1="-1336.72%" x2="901.341%" y2="996.106%" id="X"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-3044.038%" y1="-2935.975%" x2="2075.73%" y2="2014.652%" id="Y"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1070.957%" y1="-1207.499%" x2="1021.673%" y2="1139.289%" id="Z"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-668.331%" y1="-735.951%" x2="792.876%" y2="862.245%" id="aa"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-757.712%" y1="-833.503%" x2="703.496%" y2="764.693%" id="ab"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-27.011%" y1
="-65.863%" x2="141.75%" y2="151.803%" id="ac"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1321.337%" y1="-997.486%" x2="1168.46%" y2="905.137%" id="ad"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-1178.308%" y1="-888.422%" x2="1311.49%" y2="1014.201%" id="ae"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-546.976%" y1="-767.016%" x2="189.173%" y2="248.435%" id="af"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-93.493%" y1="-91.832%" x2="384.41%" y2="447.193%" id="ag"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-258.202%" y1="-134.734%" x2="952.458%" y2="591.721%" id="ah"><stop stop-color="#00C8D7" offset="0%"/><stop
stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-764.248%" y1="-327.902%" x2="2650.413%" y2="1243.88%" id="ai"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-341.63%" y1="-267.69%" x2="726.152%" y2="596.706%" id="aj"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-517.979%" y1="-536.225%" x2="166.434%" y2="167.425%" id="ak"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-792.149%" y1="-462.294%" x2="98.549%" y2="87.052%" id="al"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-964.554%" y1="-879.35%" x2="1659.876%" y2="1524.226%" id="am"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-797.538%" y1="-665.
814%" x2="581.403%" y2="509.871%" id="an"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1165.123%" y1="-1561.869%" x2="356.021%" y2="461.04%" id="ao"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-505.775%" y1="-623.411%" x2="1092.421%" y2="1325.92%" id="ap"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-365.189%" y1="-194.484%" x2="727.939%" y2="447.534%" id="aq"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-2359.875%" y1="-1563.43%" x2="1606.616%" y2="1099.129%" id="ar"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><path d="M-31-68h352v303H-31z"/><g fill-rule="nonzero"><g fill="#D7D7DB"><path d="M23
8.3 15.6c-5.5 0-8.3-1.5-11-3-2.6-1.4-5-2.7-9.9-2.7s-7.4 1.3-9.9 2.7c-2.7 1.5-5.5 3-11 3s-8.3-1.5-11-3c-2.6-1.4-5-2.7-9.9-2.7s-7.4 1.3-9.9 2.7c-2.7 1.5-5.5 3-11 3-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1 4.9 0 7.4-1.3 9.9-2.7 2.7-1.5 5.5-3 11-3s8.3 1.5 11 3c2.6 1.4 5 2.7 9.9 2.7s7.4-1.3 9.9-2.7c2.7-1.5 5.5-3 11-3s8.3 1.5 11 3c2.6 1.4 5 2.7 9.9 2.7s7.4-1.3 9.9-2.7c2.7-1.5 5.5-3 11-3 .6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1-4.9 0-7.4 1.3-9.9 2.7-2.7 1.5-5.5 3-11 3zM196.2 7.3c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6 1.2 0 2.2-.1 3.2-.3.3-.1.6.2.6.5.1.3-.2.6-.5.6-1 .3-2.1.4-3.3.4zm7.6-1.6c-.2 0-.4-.1-.5-.3-.1-.3 0-.6.3-.7.3-.2.7-.3 1-.5.3-.1.6 0 .7.2.1.3 0 .6-.2.7-.3.2-.7.3-1 .5-.2.1-.2.1-.3.1zm-16.3-.1c-.1 0-.2 0-.2-.1-.8-.4-1.5-.7-2.2-1.1-2.6-1.4-5.1-2.8-10.2-2.8-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6 5.4 0 8.1 1.5 10.7 2.9.7.4 1.4.7 2.1 1.1.3.1.4.5.3.7-.1.4-.3.5-.5.5zm26.6-3.8c-.3 0-.5-.2-.6-.5 0-.3.2-.6.5-.6.8-.1 1.7-.1 2.7-.1.3 0 .6.2.6.6 0 .3-.2.6-.6.6-.9-.2-1.7-.1-2.6 0 .1 0 0 0 0 0zM238.5 23.1c-.3
0-.6-.2-.6-.6 0-.3.2-.6.6-.6 1.2 0 2.2-.1 3.2-.3.3-.1.6.2.6.5.1.3-.2.6-.5.6-1 .3-2.1.4-3.3.4zm7.6-1.5c-.2 0-.4-.1-.5-.3-.1-.3 0-.6.3-.7.3-.2.7-.3 1-.5.3-.1.6 0 .7.2.1.3 0 .6-.2.7-.3.2-.7.3-1 .5-.2 0-.3.1-.3.1zm-16.3-.2c-.1 0-.2 0-.2-.1-.8-.4-1.5-.7-2.2-1.1-2.6-1.4-5.1-2.8-10.2-2.8-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6 5.4 0 8.1 1.5 10.7 2.9.7.4 1.4.7 2.1 1.1.3.1.4.5.3.7-.1.4-.3.5-.5.5zm26.6-3.8c-.3 0-.5-.2-.6-.5 0-.3.2-.6.5-.6.8-.1 1.7-.1 2.6-.1.3 0 .6.2.6.6 0 .3-.2.6-.6.6-.8-.1-1.6-.1-2.5 0z"/></g><path d="M6.2 133.5c-2.8 0-5.1-2.2-5.1-4.8V10.2c0-3 2.4-5.4 5.4-5.4h127.2c3 0 5.4 2.4 5.4 5.4v118.5c0 2.6-2.3 4.8-5 4.8H6.2z" fill="#FFF"/><path d="M133.7 6c2.3 0 4.2 1.9 4.2 4.2v118.5c0 2-1.8 3.7-3.9 3.7H6.2c-2.2 0-3.9-1.7-3.9-3.7V10.2C2.3 7.9 4.2 6 6.5 6h127.2zm0-2.2H6.6C3 3.8.1 6.7.1 10.3v118.4c0 3.3 2.8 5.9 6.2 5.9H134c3.4 0 6.2-2.7 6.2-5.9V10.2c0-3.5-2.9-6.4-6.5-6.4z" fill="#D7D7DB"/><path d="M132.6 27.1v98.2c0 1-.1 1.2-.1 1.2s-.2.1-1.2.1H9.1c-1 0-1.2-.1-1.2-.1s-.1-.2-.1-1.2V27.1h124.8zm1.
1-1.1H6.6v99.3c0 2 .4 2.5 2.5 2.5h122.2c2 0 2.5-.4 2.5-2.5V26h-.1z" fill="#D7D7DB"/><g fill="#D7D7DB"><circle cx="3.4" cy="2.9" r="2.9" transform="translate(10 13)"/><circle cx="3.7" cy="2.9" r="2.9" transform="translate(19 13)"/><path d="M102.1 19.2H38.2c-1.7 0-3.1-1.4-3.1-3.1v-.3c0-1.7 1.4-3.1 3.1-3.1h63.9c1.7 0 3.1 1.4 3.1 3.1v.3c0 1.7-1.4 3.1-3.1 3.1z"/><g><circle cx="3.6" cy="2.9" r="2.9" transform="translate(114 13)"/><circle cx="2.9" cy="2.9" r="2.9" transform="translate(124 13)"/></g></g><ellipse fill="#EDEDF0" cx="177.8" cy="191.1" rx="78.4" ry="7.4"/><g fill="#D7D7DB"><path d="M241.5 164.9c-5.5 0-8.3-1.5-11-3-2.6-1.4-5-2.7-9.9-2.7s-7.4 1.3-9.9 2.7c-2.7 1.5-5.5 3-11 3s-8.3-1.5-11-3c-2.6-1.4-5-2.7-9.9-2.7s-7.4 1.3-9.9 2.7c-2.7 1.5-5.5 3-11 3s-8.3-1.5-11-3c-2.6-1.4-5-2.7-9.9-2.7s-7.4 1.3-9.9 2.7c-2.7 1.5-5.5 3-11 3s-8.3-1.5-11-3c-2.6-1.4-5-2.7-9.9-2.7-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1 5.5 0 8.3 1.5 11 3 2.6 1.4 5 2.7 9.9 2.7s7.4-1.3 9.9-2.7c2.7-1.5 5.5-3 11-3s8.3 1.5 11
3c2.6 1.4 5 2.7 9.9 2.7s7.4-1.3 9.9-2.7c2.7-1.5 5.5-3 11-3s8.3 1.5 11 3c2.6 1.4 5 2.7 9.9 2.7s7.4-1.3 9.9-2.7c2.7-1.5 5.5-3 11-3s8.3 1.5 11 3c2.6 1.4 5 2.7 9.9 2.7.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1zM200.5 155.8c-.8 0-1.5 0-2.3-.1-.3 0-.5-.3-.5-.6s.3-.5.6-.5c.7.1 1.4.1 2.2.1h1.1c.3 0 .6.2.6.5s-.2.6-.5.6h-1.2zm-41.4 0c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6 1.2 0 2.2-.1 3.2-.3.3-.1.6.2.6.5.1.3-.2.6-.5.6-1 .3-2.1.4-3.3.4zm46.9-.7c-.2 0-.5-.2-.5-.4-.1-.3.1-.6.4-.7.4-.1.7-.2 1-.3.3-.1.6.1.7.3.1.3-.1.6-.3.7-.4.1-.7.2-1.1.3-.1.1-.2.1-.2.1zm-39.3-.9c-.2 0-.4-.1-.5-.3-.1-.3 0-.6.3-.7.3-.2.7-.3 1-.5.3-.1.6 0 .7.2.1.3 0 .6-.2.7-.3.2-.7.3-1 .5-.2.1-.3.1-.3.1zm-16.3-.1c-.1 0-.2 0-.2-.1-.8-.4-1.5-.7-2.2-1.1-2.6-1.4-5.1-2.8-10.2-2.8-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6 5.4 0 8.1 1.5 10.7 2.9.7.4 1.4.7 2.1 1.1.3.1.4.5.3.7-.1.3-.3.5-.5.5zm39.5-1.2c-.1 0-.2 0-.3-.1-2.4-1.3-4.9-2.7-10-2.7-.9 0-1.7 0-2.5.1-.3 0-.6-.2-.6-.5s.2-.6.5-.6c.8-.1 1.7-.1 2.7-.1 5.4 0 8.1 1.5 10.5 2.8.3.1.4.5.2.8-.1.1-.3.3-.5.3zm26.3-2
.2c-.2 0-.5-.2-.5-.4-.1-.3.1-.6.4-.7 1.6-.4 3.3-.6 5.3-.6.3 0 .6.2.6.6 0 .3-.2.6-.6.6-1.9 0-3.5.2-5 .6-.1-.1-.2-.1-.2-.1z"/></g><g fill="#D7D7DB"><path d="M76.9 101c-.8 0-2.2-.1-3.6-.7-1.8-.8-2.7-2.2-2.7-4.1 0-1.6.9-2.6 1.8-3.5 1-1 1.9-2 1.9-3.8 0-1.5-2.1-3.7-5.8-3.7-3.8 0-5.5 2.2-5.5 3.7 0 1.8.9 2.8 1.9 3.8.9.9 1.9 1.9 1.9 3.5 0 3.5-3.2 4.8-6.2 4.8H47.8c-2.4 0-4.3-2-4.3-4.4V84.9c0-.1-.2-3 1.5-4.8.8-.9 1.9-1.3 3.3-1.3 1.6 0 2.5 1 3.4 1.9.9 1 1.8 2 3.6 2 1.6 0 3.3-1.9 3.3-5.4 0-3.6-1.7-5.2-3.3-5.2-1.8 0-2.7 1-3.6 2-.9 1-1.7 2-3.4 2-1.4 0-2.5-.4-3.3-1.3-1.7-1.8-1.5-4.9-1.5-5v-7.4c0-.9.3-1.8.8-2.6.8-1.1 2.1-1.8 3.5-1.8h9.3s2.7-.5 2.7-2.3c0-.7-.4-1.2-1.1-1.9-1-1-2.2-2.2-2.2-4.9 0-2.3 1.1-6.2 8.2-6.2 7.6 0 8.5 4.3 8.5 6.2 0 2.7-1.3 4-2.4 5-.8.7-1.2 1.2-1.2 1.9 0 1.8 2.8 2.3 2.8 2.3h9.9c2.4 0 4.3 2 4.3 4.4v5.6s.4 3 2.1 3c.7 0 1.1-.4 1.7-1.1.8-1 2-2.4 4.7-2.4 2.4 0 6.5 1 6.5 8.1 0 7.8-4.9 8.4-6.5 8.4-2.8 0-3.9-1.4-4.7-2.5-.6-.8-1-1.2-1.7-1.2-1.8 0-2.1 3-2.2 3v13.5c0 2.4-1.9 4.4-4.3 4.4h-5c
0-.3-.1-.3-.3-.3z"/></g></g><path d="M258.9 143.4c-.2.6-.7 1.1-1.2 1.5 0 1-.2 1.9-.6 2.8.9-.3 1.8-.8 2.6-1.6.7-.8 1.1-1.6 1.5-2.3.8-2 .4-4.2-1.1-5.5-.4-.4-1-.6-1.5-.8-.7-.2-1.5-.2-2.3 0 2.2 1.4 3.6 3.4 2.6 5.9zM129.7 89.8l-.2-.1c-.2 0-.3-.1-.5-.1h-.1-.1-.1H128.1c-.1 0-.1 0-.1.1 0 0-.1 0-.2.1-.1 0-.2.1-.3.2-.3.2-.7.6-1.1 1.1l-.7.7c.1.1.2.3.1.5-.2 1.1-.5 1.9-.8 2.7.2.6.4 1.1.6 1.6.4.8.9 1.6 1.5 2.4.6.8 1.3 1.5 2.2 2.2.5.4.9.7 1.3.9h.1c.4.3.9.5 1.5.7 1 .4 2.1.7 3.2.8.3 0 .7.1 1.1.1h2.1c.6-.1 1.1-.3 1.5-.4.6-.2 1-.4 1.3-.6.3-.2.5-.3.8-.5.5-3.3.9-7 1.1-11.2-1.3-.6-2.6-1.3-3.7-2.1-1 1-2 1.6-2.9 1.6-.3 0-.5 0-.8-.1l-3-1.2c-1.2.6-2.3.9-3.2.6z"/><path d="M141.1 57.4c0 .7 0 1.4.1 2.1-.3.3-.7.6-1 .9.3-.3.6-.6 1-.9-.1-.7-.1-1.4-.1-2.1zM180.3 24.8c-2-.4-4-.6-6-.6-.7 0-1.4 0-2.1.1.7 0 1.4-.1 2.1-.1 2 .1 4 .2 6 .6zM122.9 136.4c.6-.6 1.2-1.3 1.8-2-.6.6-1.2 1.3-1.8 2-1 1-2 2-3 2.9 1-.9 2-1.9 3-2.9zM134.2 123.6c.3-.4.7-.7 1.1-1.1l-1.1 1.1c-1.3 1.4-2.6 2.8-3.9 4.3-.6.7-1.2 1.5-1.9 2.2.6-.7 1.2-1.5 1.9
-2.2 1.2-1.4 2.5-2.9 3.9-4.3zM129.1 119.1l1.8.9c.6.3 1.3.5 1.9.7-.7-.2-1.3-.5-1.9-.7l-1.8-.9zM241.7 82.7v-.3M244.7 142.3h-.4.4zM145.9 40.2c.6-.9 1.2-1.8 1.8-2.6-.7.8-1.3 1.7-1.8 2.6zM211 186.6h.2-.5.3zM137.4 186.6h.3-.5.2zM177.3 142.7c-.3-.8-.6-1.5-.9-2.2.3.7.6 1.4.9 2.2zM109.4 153.9c1 .2 2.1.3 3.2.3h1.4-1.4c-1.1 0-2.2-.1-3.2-.3zM144.3 43c.5-1 1-1.9 1.5-2.8-.5.9-1 1.9-1.5 2.8z" fill="#FFF" fill-rule="nonzero"/><path d="M142 102c-.3.2-.5.3-.8.5-.3.2-.8.4-1.3.6-.4.1-.9.3-1.5.4h-1-1.1c-.4 0-.8 0-1.1-.1-1.1-.1-2.2-.4-3.2-.8-.6-.2-1-.5-1.5-.7h-.1c-.4-.2-.8-.5-1.3-.9-.8-.7-1.6-1.5-2.2-2.2-.6-.8-1.1-1.6-1.5-2.4-.2-.5-.5-1-.6-1.6-.5.9-1 1.6-1.8 2.1h-.1c.1.2.1.3.2.5.5 1 1 1.9 1.7 2.8.7.9 1.6 1.8 2.6 2.6.6.5 1.1.8 1.6 1.1.5.3 1.1.6 1.8.9 1.2.5 2.5.9 3.8 1 .4 0 .8.1 1.3.1h2.5c.7-.2 1.3-.3 1.8-.5.7-.3 1.2-.5 1.6-.7.6-.3 1.2-.8 1.8-1.2.7-4 1.2-8.6 1.4-13.9-1.6-.6-3.1-1.3-4.4-2.3-.4.6-.8 1.2-1.3 1.6 1.1.8 2.4 1.6 3.7 2.1-.1 4-.4 7.7-1 11z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M140.8 174.9
c.5-.5 1-1 1.4-1.5-.4.5-.9 1-1.4 1.5zM198.7 183.3c1.1.6 2.1 1.1 3.1 1.5.5.2 1 .4 1.5.5-.5-.2-1-.3-1.5-.5-1-.4-2-.9-3.1-1.5zM203.8 136.1c.6.1 1.2.2 1.9.4.3.1.6.2.9.2-.3-.1-.6-.2-.9-.2-.7-.2-1.3-.3-1.9-.4zM182.4 161.8c.2.7.5 1.4.7 2.1.5 1.4 1.1 2.8 1.8 4.1-.7-1.3-1.2-2.7-1.8-4.1-.2-.7-.4-1.4-.7-2.1zM180.3 153v.1-.1zM255 146.2c-.1.6-.4 1.1-.7 1.6.1 0 .1.1.2.1.8.2 1.7.2 2.6-.1.4-.9.6-1.8.6-2.8-.7.5-1.6.9-2.7 1.2z" fill="#FFF" fill-rule="nonzero"/><path d="M249.9 67.3c-.6.7-1.1 1.3-1.6 1.9-.5.7-1.1 1.4-1.5 2.2-.5.8-.9 1.6-1.3 2.3-.3.7-.7 1.5-1 2.4-.5 1.6-.7 3.4-.7 5.4V83.2l.1 1.2v.4c0 .4.1.7.1 1 .1 2 .1 4.1 0 6.1-.3 4.7-1.3 9.1-2.9 13.1-1 2.4-2.1 4.6-3.5 6.6-1.2 1.8-2.7 3.4-4.4 4.9-.3.4-.8.8-1.2 1.2-.3.2-.5.4-.8.5-1.8 1.3-3.7 2.5-5.8 3.4-1 .4-1.9.7-2.8 1 2.1 1.6 4.8 4.3 7.8 8.7 4.8 7.1 10.4 8.7 14.7 9 .4-.9.8-1.7 1.2-2.2-4.1-.1-9.3-1.3-13.8-8-1.9-2.8-3.7-5-5.4-6.6 2.5-1.1 4.8-2.6 6.9-4.3 2.2-1.8 4.2-3.9 5.8-6.2 1.5-2.1 2.8-4.5 3.8-7 1.7-4.2 2.7-8.8 3.1-13.8.1-2.1.1-4.2 0-6.3 0-.4 0-.7-.1
-1.1v-.4l-.1-1.1V82.4v-.5-.2c0-1.7.2-3.3.6-4.7.2-.6.5-1.3.9-2.2.3-.7.7-1.4 1.1-2 .4-.7.9-1.3 1.4-2 .4-.5.8-1 1.3-1.6-.8-.6-1.5-1.2-1.9-1.9zM138.8 58.5v-1.1c0-19.5 15.9-35.4 35.4-35.4s35.4 15.9 35.4 35.4v1.1c3.8 3.5 5.9 8.3 5.9 13.5 0 7.9-4.9 14.7-12.2 17.3 0 .8.1 1.5.1 2.3 0 0 .1.1.1.2.2.3.3.6.5.9l.3.6v.1c.1.3.3.5.4.8v.1c.1.2.2.3.2.5 0 .1.1.1.1.2l.1.2v.1l.1.2.1.2.3.6c.1.1.1.2.2.4.1.1.2.3.2.4.4.6.7 1.1 1 1.5.4.5.9 1 1.3 1.4.9.8 2 1.4 3.2 1.7h.1c.5.2 1.1.2 1.8.2h.2c.4 0 .8-.1 1.3-.1h.1c1.2-.2 2.2-.7 3.1-1.3.7-.5 1.2-1 1.6-1.5.5-.6 1-1.3 1.4-2.1 1-1.9 1.7-4.1 2-6.4.2-1.5.4-2.7.4-3.8v-.1-.5-1-2.3c0-.4.1-.9.1-1.3.4-4 1.7-8 3.5-11.5 1.6-3 3.6-5.7 6.1-8.2 1.8-1.8 3.8-3.3 6.3-4.9 1.9-1.3 3.6-2.1 5.1-2.9l.2-.1-.3-1-3.2 1.1c-.3.1-.7.2-1.1.2h-.2l-1.5.9c-2.6 1.6-4.7 3.3-6.6 5.2-2.7 2.6-4.9 5.6-6.5 8.7-2 3.7-3.3 8-3.7 12.3 0 .4-.1.9-.1 1.3v.4l-.1.7v2.9c-.1 1-.2 2.2-.4 3.6-.3 2.1-1 4.1-1.8 5.7-.3.6-.7 1.2-1.1 1.7-.3.4-.7.7-1.2 1.1-.7.5-1.4.8-2.2 1-.4.1-.8.1-1 .1h-.1c-.3 0-.9-.1-1.2-.1h-.1c-.8-.2-
1.6-.6-2.3-1.2-.4-.3-.7-.7-1-1.1-.2-.3-.5-.7-.8-1.2-.1-.1-.1-.3-.2-.4 0-.1-.1-.1-.1-.2-.1-.2-.2-.5-.3-.7l-.1-.1-.1-.2s0-.1-.1-.1l-.1-.2v-.1c-.1-.2-.2-.3-.3-.5v-.1c-.1-.2-.3-.5-.4-.7 0-.1-.1-.1-.1-.2-.1-.2-.2-.4-.3-.5-.1-.2-.2-.4-.4-.7v-.1c7.3-3.3 12.1-10.5 12.1-18.8 0-5.4-2.1-10.6-5.9-14.4V58c0-20.8-16.9-37.6-37.6-37.6-20.7 0-37.6 16.9-37.6 37.6v.2c-3.2 3.2-5.1 7.3-5.7 11.8l1.9.8c.5-5.1 2.5-9.2 5.8-12.3z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M238.7 153.9h-1.6.4c.5.1.9.1 1.2 0zM223.8 148.2c-.4-.3-.9-.7-1.3-1-.7-.5-1.3-1.1-2-1.6.6.5 1.3 1.1 2 1.6.4.3.9.6 1.3 1z" fill="#FFF" fill-rule="nonzero"/><path d="M251.4 150.6c-.1.1-.2.2-.4.3-.9.7-1.9 1.4-3.2 2.2-1.3.8-3 1.7-5.2 2.3-1.1.3-2.3.6-3.7.7-.4 0-.9.1-1.4.1-.9 0-1.9-.1-2.8-.2-3.2-.5-6-1.9-7.8-3-2.2-1.3-4.1-2.8-5.8-4.1-.8-.6-1.5-1.3-2.3-1.9-.7-.6-1.4-1.1-2.1-1.7-.2-.1-.5-.3-.7-.5-.4-.3-.7-.6-1-.9-1-.8-2-1.5-2.9-2.1-.6-.4-1.2-.7-1.9-1.2-.7-.4-1.3-.7-1.9-.9-1.1-.5-2.1-.9-3.3-1.2-.9-.2-1.9-.4-2.8-.5v7c.1 1.4.1 2.8.1 4.2v1.5c.4 16.7
4.3 19.4 9.8 23.1 6.3 4.2 8.2 5.5 7.7 9-.1 3.1-2.7 5.7-5.8 5.7h-.1c-.5.1-1.5.2-3 .2-.5 0-1.1 0-1.6-.1-1.8-.1-3.6-.4-5.3-.9-1.1-.3-2.2-.6-3.2-1.1-1.3-.5-2.4-1-3.4-1.6-1.2-.7-2.3-1.4-3.4-2.2-1.1-.9-2.2-1.8-3.3-2.8-1-1-2-2.1-3-3.4-1-1.2-1.9-2.5-2.7-3.8-1.6-2.6-3-5.5-4.1-8.4-.5-1.4-1-2.9-1.4-4.4-.2-.6-.3-1.2-.5-1.8v-.2l-.1-.4c-.1-.6-.3-1.2-.4-1.9l-.4-2v-.2V153.2l-.1-.4-.2-.8c-.3-1-.5-2.1-.8-3.2-.5-2-1.1-3.8-1.7-5.2-.4-.9-.6-1.5-.9-2.1-.1-.1-.1-.2-.2-.3 0 .1-.1.2-.1.3-.3.6-.5 1.2-.9 2.1-.6 1.5-1.2 3.2-1.7 5.3-.3 1-.6 2.1-.8 3.2l-.2.8-.1.4v.5l-.4 2c-.1.7-.3 1.3-.4 1.9l-.1.4-.1.5c-.1.6-.3 1.2-.5 1.7-.4 1.5-.9 3-1.4 4.4-1.1 3-2.5 5.8-4.1 8.4-.8 1.3-1.7 2.6-2.7 3.8-1.1 1.3-2 2.4-3 3.4s-2.2 2-3.3 2.8c-1.1.8-2.2 1.5-3.4 2.2-1 .6-2.1 1.1-3.4 1.6-1 .4-2.1.8-3.2 1.1-1.7.5-3.5.8-5.3.9h-1.6c-1.5 0-2.5-.1-3-.2h-.1c-3.2 0-5.8-2.7-5.8-5.9 0-3 2.3-5.6 5.3-5.9l.2-.1c.4-.2 1-.4 1.7-.8.8-.4 1.6-1 2.4-1.6.4-.4.9-.7 1.3-1.1.4-.3.8-.8 1.3-1.3.4-.5.8-1 1.2-1.6.4-.6.7-1.2 1.1-1.8.3-.6.6-1.3.9-2.1.3-.7.5-1.5.8-
2.3.2-.7.4-1.6.6-2.6.2-.8.3-1.7.4-2.7.1-.9.2-1.9.3-3 0-.4 0-.8.1-1.2v-.3V151.3v-.1-1.9c0-1.5 0-2.9.1-4.3l.3-3.9c-.9.5-1.8 1.2-3 2-.8.5-1.6 1.1-2.4 1.7-2.4 1.6-5 3.5-7.9 5.2-2.2 1.4-4.3 2.4-6.2 3.3-2.4 1.1-4.7 1.9-7 2.5-1.1.3-2.3.5-3.7.6-1 .1-1.9.1-2.8.1h-.9c-1.8-.1-3.5-.3-5.3-.8.4.8.7 1.6.9 2.4 1.5.3 3 .5 4.6.6h1c.9 0 1.9 0 3-.2h.1c1.5-.2 2.8-.4 4-.7 2.4-.6 4.9-1.4 7.4-2.6 2-.9 4.1-2 6.4-3.4 2.9-1.8 5.6-3.6 8-5.3.5-.4 1-.7 1.5-1.1-.1 1.3-.1 2.5-.1 3.9v5.2c0 .4 0 .8-.1 1.2v.1c-.1 1-.2 2-.3 2.8-.1 1-.3 1.8-.4 2.5-.2.9-.4 1.7-.6 2.4-.2.8-.5 1.5-.7 2.2-.3.7-.6 1.3-.9 1.9l-.9 1.5c-.4.5-.7 1-1 1.4-.4.5-.8.9-1.1 1.2-.4.3-.8.7-1.2 1-.8.6-1.6 1.1-2.1 1.4-.6.3-1.1.6-1.5.7-3.9.6-6.9 4-6.9 8 0 4.4 3.5 8 7.9 8.1.5.1 1.7.2 3.3.2.6 0 1.1 0 1.7-.1 2-.1 3.9-.4 5.7-.9 1.2-.3 2.3-.7 3.4-1.1 1.3-.5 2.5-1.1 3.6-1.7 1.3-.7 2.5-1.5 3.6-2.3 1.2-.9 2.4-1.9 3.5-3 1.1-1 2.1-2.2 3.2-3.6 1-1.3 2-2.6 2.8-4 1.7-2.8 3.2-5.7 4.3-8.8.5-1.5 1-3 1.5-4.6.2-.6.3-1.2.5-1.8l.1-.4v-.1l.1-.4c.1-.6.3-1.3.4-2l.4-2v-.2-.2l.1-.
5.2-.8c.2-1 .5-2.1.8-3.1l.6-2.1c.2.7.4 1.3.6 2.1.3 1 .5 2.1.8 3.1l.2.8.1.4v.4l.4 2c.1.7.3 1.3.4 2l.1.4v.1l.1.4c.1.6.3 1.2.5 1.9.4 1.6.9 3.1 1.5 4.6 1.1 3.1 2.6 6 4.3 8.8.9 1.4 1.8 2.8 2.8 4 1.1 1.4 2.2 2.6 3.2 3.6 1.1 1.1 2.3 2.1 3.5 3 1.2.9 2.4 1.6 3.7 2.4 1.1.6 2.3 1.2 3.6 1.7 1.1.4 2.3.8 3.4 1.1 1.8.5 3.8.8 5.7.9.6 0 1.2.1 1.7.1 1.6 0 2.7-.1 3.3-.2 4.2-.1 7.7-3.5 7.9-7.7.6-4.8-2.3-6.8-8.7-11.1-5.1-3.4-8.5-5.7-8.9-21.2v-1.5c0-1.4 0-2.9-.1-4.3v-3.9-.4c1.1.3 2 .6 2.9 1h.1c.5.2 1 .5 1.6.8.7.4 1.3.7 1.8 1.1 1.2.8 2.5 1.7 4 3 .8.6 1.6 1.3 2.4 2 .7.6 1.5 1.3 2.3 1.9 1.8 1.4 3.7 2.9 6.1 4.3 2 1.2 5 2.7 8.6 3.3 1.1.2 2.1.3 3.2.3.5 0 1.1 0 1.6-.1 1.5-.1 2.8-.4 4.1-.8 2.4-.7 4.3-1.7 5.7-2.5 1.4-.9 2.5-1.7 3.4-2.4l.1-.1c.5-.4.9-.7 1.2-1-.1 0-.3 0-.4-.1-.2-.2-1-.5-1.6-1z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M258.3 51.2c-.2-.3-.5-.5-.8-.7l.3.9c.1-.1.3-.1.5-.2z" fill="#FFF" fill-rule="nonzero"/><path d="M100.3 137.6c.1-.1.1-.1.2-.1.3-.1.6.1.7.4 0 .1.1.3.1.4.7.2 1.4.4 2.3.7 2.3.8 5.5 1.
8 8.4 1.8 1 0 1.9-.1 2.6-.4 1-.6 2.1-1.4 3.2-2.3 1.1-.9 2.2-2 3.5-3.4 1.8-1.9 3.5-3.9 5.4-6.1.6-.8 1.3-1.5 1.9-2.3 1.3-1.5 2.4-2.7 3.4-3.8-.7-.2-1.3-.5-1.9-.7-2.7-1.1-5.1-2.6-7.3-4.4-1.1-.9-2.1-1.8-2.9-2.7-.8-.8-1.6-1.8-2.4-2.9-1.4-1.9-2.4-3.9-3.2-5.9-.3-.7-.5-1.4-.7-2-.5-.4-.9-1-1-1.7v-.3-.1-.2-.8-1.2c0-.2 0-.4.1-.6-.1-.9-.2-1.8-.2-2.7v-.8V94.7v-.2c-1-1.1-1.4-2.3-1.6-3.3-.1.4-.2.8-.2 1.2l-.1.8c0 .4-.1.9-.1 1.3v1.7c0 1.6.2 3.1.4 4.6.3 2 .9 3.9 1.6 5.8.9 2.2 2 4.3 3.5 6.4.9 1.2 1.7 2.2 2.6 3.2.9 1 2 2 3.1 2.9 2.1 1.7 4.3 3.1 6.8 4.2-.4.4-.8.9-1.2 1.4-.7.8-1.3 1.5-2 2.3-1.8 2.1-3.5 4.2-5.3 6-1.2 1.3-2.3 2.3-3.3 3.2-.9.8-1.8 1.4-2.6 1.9-.5.1-1.1.2-1.8.2-2.5 0-5.4-.9-7.6-1.7-1.5-.5-2.6-.9-3.7-1-.4-.1-.7-.1-1.1-.1-.3 0-.6 0-.8.1l.1.6c.3.5.8.9 1.1 1.4z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M146.2 166.2c-.1.4-.2.7-.4 1.1.2-.3.3-.7.4-1.1z" fill="#FFF" fill-rule="nonzero"/><path d="M37.1 92.1c.1 0 .2-.1.3-.1-.6-.9-1.2-1.8-1.7-2.7-.2.1-.4.2-.6.2.1.2.2.5.2.7.3.8.7 1.6 1.1 2.5.2-.3.4-.5
.7-.6z" fill="url(#a)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M65.2 105.7s2.7-.5 6.3-2.1c.1-.3.1-.5.2-.8-3.1 1.1-6.7 1.7-10.9 1.7h-1.1c-8.8-.2-15.1-4.7-18.7-8.2.2 1 .1 1.8-.1 2.5.7.7 1.5 1.5 2.3 2.1 1.5 1.2 3.1 2.3 4.9 3.2l1.8.9c.6.3 1.3.5 1.9.7.7.2 1.3.4 2 .6l1 .2c.1 0 .2 0 .3.1l-.1.1c3.6.6 6.8.7 9.2.6 0-.1-.1-.2-.1-.2.1-.7.5-1.3 1.1-1.4z" fill="url(#b)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M38.9 124.2c2.9-2.4 6.1-6.1 10-10.6 1.6-1.8 3.4-3.9 5.3-6.1l-1.1 1.1c-1.3 1.4-2.6 2.8-3.9 4.3-.6.7-1.2 1.5-1.9 2.2-.6.7-1.2 1.4-1.8 2.2l-1.8 2.1c-.6.7-1.2 1.4-1.8 2-1 1-2 2-3 2.8z" fill="url(#c)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M65.2 151.2c-.1.4-.2.7-.4 1.1-.3.8-.7 1.5-1 2.3-.4.7-.8 1.4-1.2 2-.4.6-.9 1.2-1.3 1.8-.5.5-.9 1.1-1.4 1.5-.1.1-.1.1-.2.1 2.5-1.8 4.4-4.6 5.5-8.8z" fill="url(#d)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M70.5 73.8c-.1 0-.1 0 0 0-.2 0-.8.1-1.8.1-.7 0-1.5 0-2.3-.1-.2 5.8-.7 10.7-1.5 15 .6
-.7 1-1.3 1.4-1.9 1.9-3.4 3.4-9.4 4.2-13.1z" fill="url(#e)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M171.4 131.5s.1 0 0 0c.1 0 .1 0 0 0 .1 0 .1 0 0 0z" fill="url(#f)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M162.9 131.2c-7.1 3-14.2-.7-19.1-5.2-4.9-4.5-16.4-17.9-16.4-17.9l9.3-.7s.5.1 1.5.6c-.3-.3-.7-.5-1-.8h-1.3c-2.6 0-4.7-.4-4.8-.4-.3-.1-.5-.3-.5-.6.1-.3.3-.5.6-.5 0 0 4 .7 7.7.2.4-.1.7-.1 1.1-.2 1.2-.3 2.4-.7 3.5-1.2 1-.4 1.9-.9 2.9-1.4-.4-1 .4-2.7 2.1-3.9 1.5-1.1 3.1-1.5 4-1 .9-.9 1.6-1.9 2.3-2.9 1-1.5 1.9-3 2.6-4.6.2-.5.5-1 .7-1.6.6-1.4 1-2.8 1.4-4.3-.3.1-.5.1-.8.1-1.2-.3-1.6-2.3-1.1-4.4.6-2.1 2-3.6 3.1-3.3v-.4c.1-2 .1-3.9 0-5.8 0-.5-.1-.9-.1-1.4 0-.4-.1-.8-.1-1.2v-.8-.2-.7c0-1.6.1-3.2.4-4.6.1-.5.2-1 .4-1.4.3-.9.7-1.8 1.1-2.7.4-.9.9-1.7 1.4-2.6l1.5-2.1c-.4 0-.7-.2-.9-.4-.8-.9-.2-2.8 1.4-4.3.4-.4.9-.7 1.3-1l-.6-1.7c-1.8 1.2-3.6 2.7-4.8 4.8-3.6 6.1-4.4 8.7-4.4 13.9v1.3c0 6.1.1 17.4-4.2 23.9-5.6 8.4-14 12.5-25.6 12.5H126c2.9.5 6 .7 9.4.2.6-.1 1.2
.3 1.3.9.1.6-.3 1.2-.9 1.3-1.5.2-3 .4-4.5.4-5.3 0-9.9-1.4-13.2-2.9.7 4 1.1 8.1 1.2 12.3.3 0 .5.2.5.5 0 0 .2 2.3.2 6.2.4 0 .8 0 1.2.1.4 0 .9.1 1.4.2.6.1 1.2.2 1.9.4.3.1.6.2.9.2.6.2 1.2.4 1.9.6.3.1.6.3 1 .4.7.3 1.3.6 2 1s1.4.8 2.1 1.3c.3.2.5.4.8.6.8-.8 2.7-.5 4.4.7 1.8 1.3 2.7 3.2 2 4.1.6.5 1.3 1.1 2 1.6.4.3.8.7 1.3 1 .4.3.9.7 1.3 1l1.8 1.2c0-.1 0-.3.1-.4.4-1.1 2.5-1.3 4.5-.5 2.1.8 3.4 2.4 2.9 3.5-.1.2-.2.4-.4.5.3.1.7.2 1 .2.6.1 1.1.1 1.7.2h2c1.2-.1 2.2-.3 3.2-.6.2-.1.4-.1.6-.2l-.3-.3c-.6-1 .5-2.8 2.4-3.9 1.4-.8 3.1-1.1 4.3-.8l-.6-1.2c-1-.4-1.8-1-2.4-1.6-.7.1-1.4.4-2.1.7z" fill="url(#g)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M134.8 169.1c-3.6 0-10.7-2.3-15.5-4.8-7.7-4.1-13.4-16.9-14.8-26.9-1.7-12.1-5.1-22.4-8.1-25.1-1.3-1.1-2.5-1.7-3.5-1.9-2.6.9-4.7 2.6-6.1 5.1-2 3.5-2.8 10.4-3.7 17.7-1 8.3-2.1 16.9-4.9 21.5-5.7 9.4-11.9 13.8-20.6 14.8-1.1.1-2.1.2-2.9.2-2.8 0-4.2-.6-4.9-1.1.4 1.6 1.8 2.8 3.5 2.8h4.5c1.4-.1 3-.3 4.8-.8.5-.1.9-.3 1.4-.4.5-.2 1-.3 1.5-.5s1-.4 1.5-.7c
.5-.2 1-.5 1.6-.8 1.1-.6 2.1-1.3 3.2-2 .2-.2.5-.4.7-.6-.1 0-.1-.1-.2-.1-.9-.8-.3-2.8 1.3-4.4 1.6-1.6 3.5-2.2 4.4-1.3 0 0 .1.1.1.2.8-1 1.5-2 2.2-3.1.4-.6.8-1.3 1.1-1.9.7-1.3 1.4-2.7 2-4 .3-.7.6-1.4.8-2.1.4-1.1.8-2.2 1.1-3.3h-.7c-1.1-.4-1.4-2.4-.7-4.5.7-1.9 2-3.2 3.1-3.1l.1-.2.1-.4.2-.9c.3-1.1.5-2.2.8-3.2.3-1 .6-2 .9-2.9.3-.9.6-1.8.9-2.6.3-.8.6-1.5.9-2.2.2-.3.3-.6.5-.9.1-.3.3-.6.4-.9.5-.8.9-1.5 1.3-2.2.4.6.8 1.4 1.3 2.2.1.3.3.6.4.9.1.3.3.6.5.9.3.7.6 1.4.9 2.2.6 1.6 1.2 3.4 1.8 5.5.3 1 .6 2.1.8 3.2l.2.9.1.4.1.2V138.3l.4 2c.1.8.3 1.5.5 2.2l.6 2.1.6 2.1c.2.7.5 1.4.7 2.1.5 1.4 1.1 2.8 1.8 4.1.7 1.3 1.4 2.7 2.2 3.9.8 1.3 1.6 2.5 2.5 3.6.9 1.1 1.8 2.2 2.9 3.2.5.5 1 .9 1.5 1.4.5.4 1 .9 1.6 1.2.5.4 1.1.8 1.6 1.1.5.3 1.1.7 1.6 1 1.1.6 2.1 1.1 3.1 1.5.5.2 1 .4 1.5.5.5.2 1 .3 1.4.4 1.9.5 3.5.7 4.8.8h4.6c1.7 0 3.1-1.1 3.5-2.7h-.1c-.4.2-1 .3-1.7.3z" fill="url(#h)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M62.2 64.1c0 1.5-.3 3.3-1.1 5.3-.1.2-.2.5-.3.7 1.6 1.2 3.5 2.1 5.6 2.6 1.9.3
3.7.1 3.9.1-.7-1-1.4-2-2.1-3.1-2.4-1.4-4.5-3.3-6-5.6z" fill="url(#i)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M129.4 88.3c-1.2-.4-2.3-1.1-3.3-1.9-.6-.5-1.1-1.1-1.6-1.7-.2-.3-.5-.6-.7-.9l-.6-.9c-.2-.3-.4-.6-.5-.9-.1-.2-.2-.3-.2-.5-.1-.2-.1-.3-.2-.5-.1-.1-.2-.3-.2-.4-.1-.1-.1-.3-.2-.4-.1-.3-.3-.6-.4-.8-.1-.3-.3-.5-.4-.8-.1-.2-.2-.5-.4-.7-.1-.2-.2-.4-.3-.5-.1-1.1-.2-2.3-.2-3.5-1.2.2-2.3.3-2.8.3.1 2.1.3 4.3.9 5.8.7 1.7 3.6 7.6 11.1 8.3z" fill="url(#j)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M64.6 42.9c-.1-1.1-.2-2.1-.2-3.2C64.4 23.8 77.3 11 93.1 11c15.9 0 28.7 12.9 28.7 28.7v1.5c4.1 3.1 6.7 7.9 6.7 13.4 0 6.4-3.6 12-8.8 14.8-.7 1.2-1.5 2.4-2.3 3.5.6 0 1.7-.1 3-.3.7-.2 1.4-.4 2.1-.7.8-.4 1.6-.8 2.3-1.3 4.4-2.9 7.4-7.9 7.4-13.5 0-2.5-.6-4.9-1.6-7-1-2.1-2.5-4-4.3-5.5 0-.7.1-1.4.1-2.1 0-2.8-.3-5.4-1-8-.1-.2-.1-.4-.2-.6-1.5-5.7-4.5-10.8-8.6-14.8-1-1-2.1-2-3.2-2.8-1.1-.9-2.3-1.7-3.6-2.4-2.5-1.4-5.2-2.6-8-3.3-.2-.1-.4-.1-.6-.2-.6-.2-1.3-.3-1.9-.4-2-.4-4-
.6-6-.6-.7 0-1.4 0-2.1.1-2.1.1-4.2.5-6.2 1-6.9 1.8-12.9 5.7-17.3 11-.3.4-.7.8-1 1.3-.6.9-1.2 1.7-1.8 2.6-.6.9-1.1 1.9-1.5 2.8-.7 1.5-1.3 3-1.8 4.5-.3 1-.6 2.1-.8 3.2-.4 2.2-.7 4.4-.7 6.7 0 .7 0 1.4.1 2.1-.3.3-.7.6-1 .9-.6.6-1.2 1.3-1.7 2-.3.4-.5.7-.7 1.1-.6 1-1.1 2.1-1.5 3.2-.5 1.4-.8 2.9-.9 4.4l1.8.7c.9.4 1.4 1.4 1.6 2.8l3 1.2c-.7-1.8-1.1-3.8-1.1-5.9-.2-4.9 1.8-9.1 4.9-12.2z" fill="url(#k)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M70.7 106.4c-.2.1-.5.2-.7.3.2.1.3.2.4.4.1.3-.1.6-.4.7-.2 0-2.9.7-7.2.7-1 0-2.1 0-3.3-.1l1.9.7c.1 0 .2.1.3.2.2.4 1.1 2.5-4.2 7.8l-1.3 1.3c-5.2 5.2-13 13.1-21.1 13.8-.7.1-1.4.1-2 .1-5.2 0-10.7-1.5-14.3-2.7l.6 5.5c.3.1.5.2.8.3v-.1c.6-1 2.7-1 4.6.2 1.6.9 2.5 2.3 2.5 3.3.4.1.7.2 1.1.2 1 .2 2.1.3 3.2.3H33.4c.5 0 1-.1 1.5-.1h.2c-.1-.1-.2-.2-.2-.3-.4-1.1.9-2.7 2.9-3.5 2.1-.8 4.1-.6 4.5.5.2.5 0 1.1-.4 1.7l3-1.2c1.5-.7 2.9-1.4 4.2-2.2-.2-.1-.3-.2-.4-.4-.7-1 .2-2.8 2-4.1 1.8-1.3 3.8-1.6 4.5-.6.2.3.3.7.2 1.2 1.2-.8 2.3-1.6 3.4-2.3.8-.6 1.6-1.1 2.3-1
.6 1.5-1 2.9-2 4.2-2.7.6-.4 1.2-.7 1.8-1 .8-4.4 1-7.1 1-7.2 0-.3.3-.5.5-.5.1-.3.1-.6.2-.9.4-2.2 1.1-4.8 1.9-7.7z" fill="url(#l)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M153.8 118c.1 0 .2-.1.3-.1.9-.4 1.9-1.2 2.7-1.9-.9.5-1.8 1-2.8 1.4-.1.2-.1.4-.2.6z" fill="#FAFAFA" fill-rule="nonzero"/><path d="M131.2 182.5c.3.3 1.9 1.5 7.2.9 8.3-1 14.3-5.3 19.8-14.3 2.7-4.4 3.7-12.9 4.8-21.1.9-7.4 1.8-14.4 3.8-18.2 1.1-2 2.6-3.5 4.2-4.5-.5.2-.8.3-.8.3l-1.1.7 4-22.6c-.5-.6-1-1.2-1.4-1.8-2.8-4.2.3-9.3 4.1-13.4v-.3h.2c3.5-3.7 7.5-6.4 7.8-6.6l.2-.1 14.6 1.2-.1.6s-.2 2-.2 4.4h.2c.9-1.1 1.6-2.3 2.3-3.5 5.3-2.8 8.8-8.4 8.8-14.8 0-5.5-2.7-10.4-6.7-13.4v-1.5c0-15.9-12.9-28.7-28.7-28.7-15.9 0-28.7 12.9-28.7 28.7 0 1.1.1 2.2.2 3.2-3.1 3.1-5.1 7.3-5.1 12 0 2.1.4 4 1.1 5.9 1 .4 1.6 1.6 1.6 3.2 1.5 2.3 3.5 4.2 6 5.6.6 1.1 1.3 2.1 2.1 3.1.1 0 .3 0 .4.1.3-1.4.4-2.3.5-2.3l.1-.3.3-.1c.5-.2 13.4-5.6 18.2-1.2 2 1.8 2.3 5 .9 9.4-2.5 8-5.5 14.5-10 19 .1 0 .2.1.3.2.5.4.5 1.1.1 1.6-.1.2-3.7 4.2-6.9 5.
8-.7.4-1.4.7-2.1 1-.9 3.3-1.6 6.1-2 8.3-1.8 10-1.9 13.6-2.1 21 0 1.7-.1 3.7-.2 6-.4 12-3.6 18.7-9.9 21.2-.5.2-1.1.4-1.6.6-.6.2-1.1.4-1.6.6-.3.1-.5.2-.7.3-.4.2-.6.3-.5.3h-.2c-1.9.9-3.1 1.9-3.2 3.5zm63.3-112.3c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4V67c0-.8.6-1.4 1.4-1.4.8 0 1.4.6 1.4 1.4v3.2zm-6.2-15c.1-.1 1.6-2.5 4.8-2.5 3.1 0 4.7 2.4 4.8 2.5.3.5.2 1.2-.3 1.5-.2.1-.4.2-.6.2-.4 0-.7-.2-.9-.5 0-.1-1-1.5-2.9-1.5s-2.9 1.4-2.9 1.5c-.3.5-1 .7-1.5.3-.7-.3-.8-1-.5-1.5zm-29 15c0 .8-.6 1.4-1.4 1.4-.8 0-1.4-.6-1.4-1.4V67c0-.8.6-1.4 1.4-1.4.8 0 1.4.6 1.4 1.4v3.2zm3-7c-.2.1-.4.2-.6.2-.4 0-.7-.2-.9-.5 0-.1-1-1.5-2.9-1.5s-2.9 1.4-2.9 1.5c-.3.5-1 .7-1.5.3-.5-.3-.7-1-.3-1.5.1-.1 1.6-2.5 4.8-2.5 3.2 0 4.7 2.4 4.8 2.5.2.5 0 1.2-.5 1.5z" fill="#FAFAFA" fill-rule="nonzero"/><path d="M138.7 177.3c6.3-2.5 9.5-9.2 9.9-21.2.1-2.3.1-4.2.2-6 .2-7.3.3-11 2.1-21 .4-2.2 1.1-5 2-8.3-.5.2-.9.4-1.3.5-.8 2.9-1.4 5.6-1.8 7.6-.1.3-.1.6-.2.9h.1c.3 0 .5.3.5.6 0 0-.2 3.5-1.3 8.9-.1.6-.2 1.1-.3 1.7-.2 1.4-.3 2.7-.4 4.1 0
.7-.1 1.4-.1 2.1v7.2c0 .5 0 1.1-.1 1.6-.1 1-.2 2.1-.3 3.1-.1.5-.1 1-.2 1.5s-.2 1-.3 1.4c-.2.9-.4 1.9-.7 2.7-.2.5-.3 1-.5 1.4-1.1 4.1-3 7-5.5 8.8-.4.4-.9.8-1.3 1.1-1 .7-1.9 1.3-2.7 1.8l-1.2.6c.5-.2 1.1-.4 1.6-.6.8-.1 1.3-.3 1.8-.5z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M76.9 50.6c-.8 0-1.4.6-1.4 1.4v3.2c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4V52c0-.8-.6-1.4-1.4-1.4z" fill="url(#m)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M112.1 50.6c-.8 0-1.4.6-1.4 1.4v3.2c0 .8.6 1.4 1.4 1.4.8 0 1.4-.6 1.4-1.4V52c0-.8-.7-1.4-1.4-1.4z" fill="url(#n)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M107.6 41.7c.5.3 1.2.2 1.5-.3 0 0 1-1.5 2.9-1.5s2.8 1.4 2.9 1.5c.2.3.6.5.9.5.2 0 .4-.1.6-.2.5-.3.7-1 .3-1.5-.1-.1-1.6-2.5-4.8-2.5-3.1 0-4.7 2.4-4.8 2.5-.1.5 0 1.2.5 1.5z" fill="url(#o)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M76.9 44.2c-3.1 0-4.7 2.4-4.8 2.5-.3.5-.2 1.2.3 1.5.5.3 1.2.2 1.5-.3 0 0 1-1.5 2.9-1.5s2.8 1.4 2.9 1.5c.2.3.6.5.9.5.2 0 .4-.1.6-.2
.5-.3.7-1 .3-1.5.1-.1-1.5-2.5-4.6-2.5z" fill="url(#p)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M140.7 118.4c15.7.3 23.7-6.5 29.7-25.4 1.3-4 1.1-6.7-.6-8.2-3.9-3.6-14.8.6-16.7 1.3-.3 1.9-2.2 11.5-4.9 16.3-2.3 4.1-7.5 7.6-13.9 6.2-6.5-1.5-12.3-5.7-14.1-10.1 0 0 0 .1-.1.1-.2.6-.4 1.1-.6 1.7-.2.6-.5 1.1-.7 1.5-.3.5-.5.9-.8 1.2-.2.3-.4.5-.5.6 1 1.7 2.2 3.5 3.7 5.3 3.1 3.4 9.6 9.3 19.5 9.5z" fill="#FAFAFA" fill-rule="nonzero"/><path d="M120.3 98.4c1.9 4.4 7.6 8.7 14.1 10.1 6.4 1.4 11.6-2.1 13.9-6.2 2.7-4.8 4.5-14.4 4.9-16.3 1.9-.8 12.8-4.9 16.7-1.3 1.6 1.5 1.8 4.3.6 8.2-6 18.9-14 25.8-29.7 25.4-9.9-.2-16.4-6.1-19.4-9.5-1.5-1.7-2.7-3.5-3.7-5.3l-.1.1-.2.2-.1.1c-.2.1-.4.3-.6.4.5.9 1.1 1.8 1.7 2.7 1.1-.1 2.5 1.1 3.2 3 .2.4.3.9.4 1.3 3.6 3.5 9.8 8 18.7 8.2h1.1c4.2 0 7.8-.6 10.9-1.7-.1.3-.2.5-.2.8.4-.2.9-.4 1.3-.6.1-.2.1-.4.2-.6 1-.4 1.9-.9 2.8-1.4 1.9-1.6 3.4-3.4 3.5-3.4.3-.4.8-.5 1.3-.3 4.5-4.5 7.4-11 10-19 1.4-4.4 1.1-7.6-.9-9.4-4.8-4.4-17.7 1-18.2 1.2l-.3.1-.1.3s-.2.9-.5
2.3c.1.1.2.2.2.4 0 .3-.2.5-.4.6-.8 3.7-2.3 9.7-4.1 13-.3.6-.8 1.3-1.4 1.9 0 .2-.1.4-.1.6-.8.8-1.7 1.4-2.8 2-.3.2-.6.3-.9.5-.3.1-.6.3-1 .4-.3.1-.7.2-1 .3-.4.1-.7.2-1.1.3h.2H136.1c-.5 0-1.1 0-1.6-.1-1.1-.1-2.3-.4-3.4-.8-.4-.1-.7-.3-1.1-.4-.4-.2-.7-.3-1-.5-.3-.2-.7-.4-1-.6-.3-.2-.6-.4-1-.6-.3-.2-.6-.4-.9-.7-1.2-.9-2.2-2-3-3-.6-.8-1.1-1.6-1.5-2.4-.1-.3-.3-.5-.4-.8-.1-.3-.2-.5-.3-.8h-.2c0 .1-.1.1-.1.2-.1.7-.2.9-.3 1.1z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M174 104.9l-3.4 19.5c.5-.2 1.2-.3 2-.3 1.5 0 3.4.5 5.5 2.3 3.8 3.4 7 15.4 8.5 25.8 1.6 11.5 7.8 22.7 14.2 26.1 6.5 3.4 14.5 5.4 16.3 4.5.1 0 .1-.1.2-.1.3-1.7-.2-2.2-6.5-6.4-5.7-3.9-10.7-7.2-11.1-25.4-.1-3.3-.1-6.6-.1-9.8 0-8.9 0-17.1-1.5-24.9-.4-.2-.8-.4-1.1-.6-9.5-1.9-18.1-5.9-23-10.7z" fill="#FAFAFA" fill-rule="nonzero"/><path d="M198 116.2c1.5 7.8 1.5 15.9 1.5 24.9 0 3.2 0 6.4.1 9.8.4 18.2 5.3 21.5 11.1 25.4 6.3 4.2 6.8 4.7 6.5 6.4 0 0-.1.1-.2.1-1.7.9-9.7-1.1-16.3-4.5-6.5-3.4-12.6-14.6-14.2-26.1-1.5-10.4-4.7-22.4-8.5-25.8-2-
1.8-4-2.3-5.5-2.3-.8 0-1.5.1-2 .3l3.4-19.5c4.9 4.9 13.5 8.9 22.9 10.8-1.8-.9-2.9-1.7-3-1.8 0 0 0-.1-.1-.1-9.5-2.5-17.7-7.1-21.2-12.4-4.6-6.9 10-17.4 11.7-18.6l13.1 1.1c-.1 1.9-.5 8 .8 11.3.9 2.4 4.9 10.1 15.3 9.2 9.7-.8 12.1-9.5 13.2-17.9.1-1.2.3-2.2.4-3.2.8-6.3 1-8.4 3.6-14.2l.3-.6c-.4.7-.9 1.4-1.3 2.2-1.6 3.1-2.8 6.8-3.2 10.7-.1.5-.1 1-.1 1.6v3.5c-.1 1.4-.3 2.7-.5 4.1-.4 2.6-1.2 5.1-2.3 7.1-.5 1-1.1 1.9-1.7 2.6-.6.7-1.3 1.3-1.9 1.8-.7.5-1.3.8-2 1.1-.7.3-1.4.5-2.1.6-.6.1-1.2.2-1.8.2h-.4c-.7 0-1.5-.1-2.2-.3-.3-.1-.5-.2-.8-.3-7.4-.7-10.4-6.5-11.2-8.5-.6-1.5-.8-3.7-.9-5.8h-.3c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h.3c0-2.4.2-4.4.2-4.4l.1-.6-14.6-1.2-.2.1c-.3.2-4.3 2.9-7.8 6.6h-.2v.3c-3.8 4-6.9 9.1-4.1 13.4.4.6.9 1.2 1.4 1.8l-4 22.6 1.1-.7s.3-.2.8-.3c-1.6 1-3.1 2.4-4.2 4.5-2.1 3.7-2.9 10.7-3.8 18.2-1 8.2-2 16.6-4.8 21.1-5.5 9.1-11.4 13.3-19.8 14.3-5.2.6-6.8-.5-7.2-.9.1-1.7 1.3-2.7 2.9-3.5-1.9.1-3.5 1.7-3.5 3.7 0 .3 0 .6.1.9.7.5 2.1 1.1 4.9 1.1.8 0 1.8-.1 2.9-.2 8.7-1 14.9-5.5 20.6-14.8 2.8-4
.7 3.9-13.2 4.9-21.5.9-7.3 1.7-14.2 3.7-17.7 1.4-2.5 3.4-4.2 6.1-5.1 1 .2 2.2.8 3.5 1.9 3 2.7 6.4 13 8.1 25.1 1.4 10 7.1 22.9 14.8 26.9 4.8 2.5 11.9 4.8 15.5 4.8.7 0 1.3-.1 1.8-.3h.1c.1-.3.2-.7.2-1 .1-.5.1-1 0-1.4-.3-1.1-1.6-2.1-4.6-4.2-.6-.4-1.3-.9-2.1-1.4-2.5-1.7-4.7-3.3-6.5-5.7-1.1-1.5-2-3.3-2.7-5.7-.4-1.2-.7-2.5-.9-4-.4-2.6-.7-5.7-.8-9.5v-1.5c0-1.3 0-2.7-.1-4.1v-9.4c-.1-3.8-.2-6.1-.2-6.1 0-.3.2-.6.5-.6h.1c-.2-4.2-.5-8.3-1.2-12.3-.7-.5-1.1-.7-1.5-.9z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M227 83.3c-.1 1-.2 2-.4 3.2-1.1 8.4-3.4 17.1-13.2 17.9-10.4.9-14.3-6.8-15.3-9.2-1.3-3.3-1-9.4-.8-11.3l-13.1-1.1c-1.7 1.2-16.3 11.6-11.7 18.6 3.5 5.3 11.7 9.9 21.2 12.4-.4-.4-.5-1-.2-1.5.4-.5 1.1-.6 1.6-.3 0 0 2.6 1.8 6.6 3.3 1.5.2 3 .3 4.5.4 12.5.6 21.4-3.3 27.1-11.9 4.1-6.2 4.1-17.7 4.1-23.3v-1.3c0-5.5.9-8.2 4.6-14.5 1.4-2.3 3.4-4 5.4-5.3l-1.3-3.9c-.3.2-.6.3-1 .5-1.1.6-2.4 1.3-3.8 2.2l-.1.1c-2.3 1.6-4.6 3.5-6.5 5.4-.8.8-1.5 1.6-2.2 2.6-.5.7-1 1.3-1.5 2.1l-.3.6c-2.7 5.8-3 8-3.7 14.3z" fil
l="#FAFAFA" fill-rule="nonzero"/><path d="M241.9 64.8c-3.7 6.3-4.6 9-4.6 14.5v1.3c0 5.5.1 17-4.1 23.3-5.8 8.6-14.6 12.5-27.1 11.9-1.5-.1-3-.2-4.5-.4 1.6.6 3.5 1.2 5.5 1.5h1.5c11.6 0 20-4.1 25.6-12.5 4.3-6.5 4.3-17.8 4.2-23.9v-1.3c0-5.2.8-7.8 4.4-13.9 1.2-2 3-3.6 4.8-4.8l-.4-1.1c-1.9 1.4-3.9 3.1-5.3 5.4zM235.3 63c-.3.2-.5.5-.8.8 1.9-1.9 4.2-3.7 6.5-5.4-1.7 1.2-3.7 2.7-5.7 4.6z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M127.4 108s11.6 13.5 16.4 17.9c4.9 4.5 12 8.2 19.1 5.2.7-.3 1.4-.6 2-.8-.5-.5-.9-1.1-1.1-1.8-.1-.4-.2-.9-.2-1.3h-.4c-.2 0-.4 0-.6-.1-.2 0-.3 0-.5-.1-.2 0-.4-.1-.6-.1-.2 0-.3-.1-.5-.1s-.4-.1-.6-.1c-.2 0-.4-.1-.5-.1-.2-.1-.4-.1-.7-.2-.2-.1-.4-.1-.6-.2-.2-.1-.4-.2-.7-.2-.2-.1-.4-.1-.6-.2-.2-.1-.4-.2-.7-.3l-.6-.3c-.2-.1-.5-.2-.7-.4l-.6-.3c-.2-.1-.5-.3-.7-.4-.2-.1-.4-.2-.6-.4-.2-.2-.5-.3-.7-.5-.2-.1-.4-.3-.6-.4-.2-.2-.5-.4-.7-.6-.2-.2-.4-.3-.5-.5l-.7-.7-.5-.5c-.3-.3-.5-.6-.8-.9-.1-.2-.3-.3-.4-.5-.4-.5-.8-1-1.2-1.6-.4-.5-.7-1-1-1.5-.1-.1-.2-.2-.2-.3-.3-.5-.7-.9-1-1.3v-.1c
-.3-.4-.6-.8-.9-1.1-.1-.1-.1-.2-.2-.2-.3-.3-.6-.7-.9-1l-.1-.1-.8-.8-.2-.2c-.3-.3-.5-.5-.8-.7-.1 0-.1-.1-.2-.1-.2-.2-.4-.3-.6-.5-.1-.1-.2-.1-.2-.2-.2-.2-.4-.3-.6-.4-.1-.1-.2-.1-.3-.2-.1-.1-.2-.1-.3-.2-.1-.1-.2-.1-.3-.2-.3-.2-.5-.3-.7-.4-.9-.5-1.5-.6-1.5-.6l-9.1.6z" fill="url(#q)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M116 146c7.7-.7 15.4-8.4 20.4-13.5l1.3-1.3c3.9-3.9 4.1-5.8 4-6.3l-5.4-2c-2.1 2.3-3.9 4.5-5.6 6.4-6.1 7-10.5 12.1-15.1 13.6-4.4 1.4-9.5-.3-13-1.4-.5-.2-1-.3-1.5-.5-.1.3-.2.7-.4 1-.3.5-.6.9-1 1.3 4 1.4 10.7 3.2 16.3 2.7z" fill="#FAFAFA" fill-rule="nonzero"/><path d="M116.1 147.1c8.1-.7 16-8.6 21.1-13.8l1.3-1.3c5.3-5.3 4.4-7.4 4.2-7.8-.1-.1-.2-.2-.3-.2l-1.9-.7c-1.6-.1-3.4-.3-5.2-.7-1.9 2.2-3.7 4.2-5.3 6.1-3.9 4.5-7.1 8.2-10 10.6-.2.2-.5.4-.7.6-1.2 1-2.5 1.9-3.7 2.6-1.1.4-2.3.5-3.5.5-4 0-8.1-1.7-10.6-2.4 0 .2-.1.4-.1.5.5.1.9.3 1.5.5 3.4 1.1 8.6 2.9 13 1.4 4.6-1.5 9-6.6 15.1-13.6 1.7-1.9 3.6-4.1 5.6-6.4l5.4 2c0 .5-.2 2.4-4 6.3l-1.3 1.3c-5.1 5.1-12.7 12.8-
20.4 13.5-5.6.5-12.3-1.4-16.2-2.6l-.2.2.1 1c3.5 1.2 9.1 2.7 14.3 2.7.4-.2 1.1-.2 1.8-.3z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M171.5 131.5c.1.2.3.4.5.6.4.3.8.5 1.3.7.3-.5.6-1 .7-1.6-.8.2-1.6.3-2.5.3z" fill="url(#r)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M149.4 116.1c-3-4.4-5.7-7.1-7.8-8.7.9-.2 1.8-.6 2.8-1 2.1-.9 4.1-2 5.8-3.4-1.5.9-3.1.9-3.7.1-.1-.1-.1-.2-.1-.3-.9.5-1.9 1-2.9 1.4-1.1.5-2.3.9-3.5 1.2-.3.1-.7.1-1.1.2-3.7.5-7.7-.1-7.7-.2-.3-.1-.6.2-.6.5-.1.3.2.6.5.6.1 0 2.2.4 4.8.4h1.3c.3.3.7.5 1 .8.2.1.5.2.7.4.1.1.2.1.3.2.1.1.2.1.3.2.1.1.2.1.3.2.2.1.4.3.6.4.1.1.2.1.2.2.2.1.4.3.6.5.1 0 .1.1.2.1.2.2.5.5.8.7l.2.2c.3.2.5.5.8.8l.1.1c.3.3.6.6.9 1 .1.1.1.2.2.2.3.4.6.7.9 1.1v.1c.3.4.7.8 1 1.3.1.1.2.2.2.3.3.5.7 1 1 1.5.4.6.8 1.1 1.2 1.6.1.2.3.3.4.5.3.3.5.7.8.9l.5.5c.2.3.5.5.7.7.2.2.4.3.5.5.2.2.5.4.7.6.2.2.4.3.6.4.2.2.5.4.7.5.2.1.4.3.6.4.2.2.5.3.7.4l.6.3c.2.1.5.2.7.4l.6.3c.2.1.4.2.7.3.2.1.4.2.6.2.2.1.4.2.7.2.2.1.4.1.6.2.2.1.4.1.7.2.2 0 .4.1.5.1.2.1.4.1.6.1.2 0 .4.
1.5.1.2 0 .4.1.6.1.2 0 .3.1.5.1s.4 0 .6.1h.4c0 .4 0 .9.2 1.3.2.7.6 1.3 1.1 1.8.6.6 1.4 1.1 2.4 1.6.6.2 1.2.5 1.9.6h.1c.2 0 .5-.2.5-.4.1-.3-.1-.6-.4-.7-.1 0-.2-.1-.3-.1-2.4-.7-3.8-1.8-4.2-3.2-.7-2.5 1.8-5.4 1.9-5.4.1-.1.2-.3.1-.5 0-.1-.1-.2-.2-.3-.2-.2-.6-.2-.8 0 0 0-.3.3-.6.7-.4.5-.9 1.3-1.2 2.2-4.5.3-10.1-1.3-14.9-8.4z" fill="url(#s)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M31.3 79.8v1.6c0 .9.1 1.8.2 2.7 0-.3.1-.6.2-1 .1-.3.1-.6.2-.9.1-.3.2-.7.3-1 .1-.2.1-.4.2-.6.7.5 1.6.9 2.8 1.3 1.3.4 2.7.7 4.1.7H39.9c.1.3.2.5.3.8.1.3.3.5.4.8.4.8.9 1.6 1.5 2.4.8 1.1 1.8 2.1 3 3 .3.2.6.5.9.7.3.2.6.4 1 .6.3.2.7.4 1 .6.3.2.7.3 1 .5.4.2.7.3 1.1.4 1.1.4 2.2.6 3.4.8.5.1 1.1.1 1.6.1h3.1-.2c.4-.1.7-.2 1.1-.3.4-.1.7-.2 1-.3.3-.1.7-.3 1-.4.3-.1.6-.3.9-.5 1-.6 2-1.3 2.8-2 0-.2.1-.4.1-.6.8-4.3 1.3-9.2 1.5-15 .8.1 1.6.1 2.3.1.9 0 1.6-.1 1.7-.1h.1c.3-.1.4-.3.4-.6 0-.2-.1-.3-.2-.4-.1-.1-.3-.1-.4-.1-.1 0-2 .2-3.9-.1-2-.5-3.9-1.4-5.6-2.6.1-.2.2-.5.3-.7.8-1.9 1.1-3.8 1.1-5.3-.1-1.6-.6-2.8-1.6-3
.2l-3-1.2c.1.4.1.8.1 1.2l2.5 1c1.1.5 1.4 3.5-.1 7.1-1.5 3.6-3.7 5.6-4.9 5.1l-2.5-1c-.3.3-.6.6-.9.8l3 1.2c.2.1.5.1.8.1.9 0 1.9-.6 2.9-1.6.4-.5.9-1 1.3-1.6 1.4.9 2.8 1.7 4.4 2.3-.2 5.3-.7 9.9-1.4 13.9-.5.5-1.1.9-1.8 1.2-.4.2-.9.5-1.6.7-.5.2-1.1.3-1.8.5h-.8H55.1c-.5 0-.9 0-1.3-.1-1.3-.1-2.6-.5-3.8-1l-1.8-.9c-.5-.3-1-.7-1.6-1.1-1-.8-1.9-1.7-2.6-2.6-.7-.9-1.2-1.8-1.7-2.8-.1-.2-.1-.3-.2-.5h.1c.8-.5 1.3-1.2 1.8-2.1.4-.7.7-1.6.8-2.7 0-.2 0-.3-.1-.5-.1-.1-.2-.2-.3-.2-.3-.1-.6.2-.6.5 0 .1-.1.3-.1.4-.4 1.8-1 3-2 3.6-1.3.8-3.1.8-6.1-.1-5.7-1.7-4.6-6-4.5-6.2.1-.2 0-.5-.2-.6-.1 0-.1-.1-.2-.1-.3-.1-.6.1-.7.4 0 0-.2.9-.1 2.1.1 1 .5 2.2 1.6 3.3-.2 0-.2.1-.2.1z" fill="url(#t)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M157.7 138.9c-.4 0-.8.1-1.2.1h-.8c-.5 0-1.1-.1-1.7-.2-.3-.1-.7-.1-1-.2-.8.6-2.4.7-4.1 0-1.8-.7-3.1-2.1-3-3.1l-1.8-1.2c-.5-.3-.9-.7-1.3-1-.4-.3-.9-.7-1.3-1-.7-.5-1.3-1.1-2-1.6-.6.8-2.2.7-3.8-.2.7.5 1.4 1.1 2.1 1.7.7.6 1.5 1.2 2.3 1.9 1.7 1.4 3.6 2.8 5.8 4.1 1.8 1.1 4.6 2
.5 7.8 3 1 .1 1.9.2 2.8.2.5 0 .9 0 1.4-.1 1.3-.1 2.5-.3 3.7-.7 2.2-.6 3.8-1.5 5.2-2.3 1.3-.8 2.3-1.6 3.2-2.2.1-.1.3-.2.4-.3-.3-.2-.6-.4-.8-.6-.2-.2-.4-.4-.6-.5-.2 1-1.6 2.3-3.1 3.2-1.7 1-3.5 1.2-4.3.4-.2.1-.4.1-.6.2-1 .1-2.1.3-3.3.4z" fill="url(#u)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M31.5 141.4h.9c.9 0 1.8 0 2.8-.1 1.4-.2 2.6-.4 3.7-.6 2.3-.5 4.6-1.4 7-2.5 1.9-.9 4-2 6.2-3.3 2.9-1.7 5.5-3.6 7.9-5.2.8-.6 1.6-1.1 2.4-1.7 1.1-.8 2.1-1.4 3-2-.2 1.3-.3 2.6-.3 3.9-.1 1.4-.1 2.8-.1 4.3V139.6c0 .4 0 .8-.1 1.2-.1 1.1-.2 2.1-.3 3-.1 1-.3 1.9-.4 2.7-.2 1-.4 1.8-.6 2.6-.2.8-.5 1.6-.8 2.3-.3.8-.7 1.5-.9 2.1-.3.6-.7 1.2-1.1 1.8-.4.6-.8 1.1-1.2 1.6-.5.6-.9 1-1.3 1.3-.4.4-.9.8-1.3 1.1-.8.6-1.6 1.1-2.4 1.6-.7.4-1.3.7-1.7.8l-.2.1c-3 .3-5.3 2.8-5.3 5.9 0 3.2 2.6 5.9 5.8 5.9h.1c.5.1 1.5.2 3 .2h1.6c1.8-.1 3.6-.4 5.3-.9 1.1-.3 2.1-.6 3.2-1.1 1.2-.5 2.4-1 3.4-1.6 1.2-.7 2.3-1.4 3.4-2.2 1.1-.9 2.3-1.8 3.3-2.8 1-1 2-2.1 3-3.4 1-1.2 1.9-2.5 2.7-3.8 1.6-2.6 3-5.5 4.1-8.4.5-1.4 1-2.9 1
.4-4.4.2-.6.3-1.2.5-1.7l.1-.5.1-.4c.1-.6.3-1.2.4-1.9l.4-2v-.2V138.2l.1-.4.2-.8c.2-1 .5-2.1.8-3.2.5-2 1.1-3.8 1.7-5.3.3-.8.6-1.5.9-2.1 0-.1.1-.2.1-.3.1.1.1.2.2.3.2.5.5 1.2.9 2.1.6 1.5 1.2 3.2 1.7 5.2.3 1 .6 2.1.8 3.2l.2.8.1.4v.5l.4 2c.1.7.3 1.3.4 1.9l.1.4.1.5c.1.6.3 1.2.5 1.8.4 1.5.9 3 1.4 4.4 1.1 2.9 2.5 5.8 4.1 8.4.8 1.3 1.7 2.6 2.7 3.8 1 1.3 2 2.4 3 3.4s2.2 2 3.3 2.8c1.1.8 2.2 1.5 3.4 2.2 1 .6 2.1 1.1 3.4 1.6 1 .4 2.1.8 3.2 1.1 1.7.5 3.5.8 5.3.9.5 0 1.1.1 1.6.1 1.5 0 2.5-.1 3-.2h.1c3.1 0 5.7-2.6 5.8-5.7.5-3.5-1.5-4.8-7.7-9-5.5-3.7-9.5-6.4-9.8-23.1v-1.5c0-1.4 0-2.8-.1-4.2v-4-3c.9.1 1.9.3 2.8.5 1.2.3 2.3.7 3.3 1.2.6.3 1.2.6 1.9.9.7.4 1.3.8 1.9 1.2.9.6 1.8 1.3 2.9 2.1-1.1-1.2-1.5-2.5-1-3.2l.1-.1c-.3-.2-.5-.4-.8-.6-.7-.5-1.4-.9-2.1-1.3-.7-.4-1.3-.7-2-1-.3-.2-.6-.3-1-.4-.6-.3-1.3-.5-1.9-.6-.3-.1-.6-.2-.9-.2-.7-.2-1.3-.3-1.9-.4-.5-.1-.9-.1-1.4-.2-.4 0-.8-.1-1.2-.1-.1-3.9-.2-6.2-.2-6.2 0-.3-.2-.5-.5-.5h-.1c-.3 0-.5.3-.5.6 0 0 .2 2.3.2 6.1v9.4c.1 1.4.1 2.8.1 4.1v1.5c.1 3.8.4 6.9.8 9.5.2 1
.5.6 2.8.9 4 .7 2.4 1.6 4.2 2.7 5.7 1.7 2.4 3.9 4 6.5 5.7.8.5 1.5 1 2.1 1.4 3.1 2.1 4.3 3.1 4.6 4.2.1.4.1.9 0 1.4 0 .4-.1.7-.2 1-.4 1.5-1.8 2.7-3.5 2.7h-.1H132h-.5H128.1c-1.4-.1-3-.3-4.8-.8-.5-.1-.9-.3-1.4-.4-.5-.2-1-.3-1.5-.5-1-.4-2.1-.9-3.1-1.5-.5-.3-1.1-.6-1.6-1-.5-.3-1.1-.7-1.6-1.1-.5-.4-1-.8-1.6-1.2-.5-.4-1-.9-1.5-1.4-1-1-1.9-2-2.9-3.2-.9-1.1-1.8-2.3-2.5-3.6-.8-1.3-1.5-2.6-2.2-3.9-.7-1.3-1.2-2.7-1.8-4.1-.3-.7-.5-1.4-.7-2.1l-.6-2.1-.6-2.1c-.2-.7-.3-1.4-.5-2.2l-.4-2v-.2-.1l-.1-.2-.1-.4-.2-.9c-.3-1.1-.5-2.2-.8-3.2-.6-2.1-1.2-3.9-1.8-5.5-.3-.8-.6-1.5-.9-2.2-.2-.3-.3-.6-.5-.9-.1-.3-.3-.6-.4-.9-.5-.8-.9-1.5-1.3-2.2-.4.6-.8 1.4-1.3 2.2-.1.3-.3.6-.4.9-.1.3-.3.6-.5.9-.3.7-.6 1.4-.9 2.2-.3.8-.6 1.6-.9 2.6-.3.9-.6 1.9-.9 2.9-.3 1-.6 2.1-.8 3.2l-.2.9-.1.4-.1.2h.3c1.1.4 1.4 2.4.7 4.5-.6 1.7-1.7 2.9-2.7 3.1-.3 1.1-.7 2.2-1.1 3.3-.3.7-.5 1.4-.8 2.1-.6 1.4-1.2 2.7-2 4-.4.7-.7 1.3-1.1 1.9-.7 1.1-1.4 2.1-2.2 3.1.7.9.1 2.7-1.4 4.2s-3.3 2.1-4.2 1.5c-.2.2-.5.4-.7.6-1.1.8-2.1 1.5-3.2 2-.5.3-1.1.6-1.
6.8-.5.2-1 .5-1.5.7-.5.2-1 .4-1.5.5-.5.2-1 .3-1.4.4-1.9.5-3.5.7-4.8.8H54.1h-1-.2c-1.7 0-3.1-1.2-3.5-2.8-.1-.3-.1-.6-.1-.9 0-2 1.5-3.6 3.5-3.7h.2c-.1 0 .1-.1.5-.3.2-.1.4-.2.7-.3.3-.2.7-.4 1.2-.6.8-.4 1.7-1 2.7-1.8.4-.3.9-.7 1.3-1.1.1-.1.1-.1.2-.1.5-.5 1-1 1.4-1.5.5-.5.9-1.1 1.3-1.8.4-.6.8-1.3 1.2-2 .4-.7.7-1.5 1-2.3.1-.3.2-.7.4-1.1.2-.5.3-.9.5-1.4.3-.9.5-1.8.7-2.7.1-.5.2-.9.3-1.4.1-.5.1-1 .2-1.5.1-1 .2-2 .3-3.1 0-.5.1-1 .1-1.6V136.2v.1-1.8-2.1c0-.7 0-1.4.1-2.1.1-1.3.2-2.7.4-4.1.1-.6.2-1.1.3-1.7 1.1-5.4 1.3-8.9 1.3-8.9 0-.3-.2-.6-.5-.6h-.1c-.3 0-.5.2-.5.5 0 0-.2 2.8-1 7.2-.6.3-1.1.6-1.8 1-1.3.8-2.7 1.7-4.2 2.7-.8.5-1.5 1-2.3 1.6-1.1.7-2.2 1.5-3.4 2.3-.2.9-1 2.1-2.2 2.9-1.5 1.1-3.2 1.5-4.1 1-1.4.8-2.8 1.5-4.2 2.2-1 .4-2 .9-3 1.2-.5.7-1.4 1.4-2.5 1.8-1.8.7-3.6.6-4.3-.2h-.2c-.5 0-1 .1-1.5.1h-1.8c-1.1 0-2.2-.2-3.2-.3-.4-.1-.7-.2-1.1-.2 0 .2 0 .4-.2.6-.2.4-.7.6-1.4.7-1.3-2.1-3.3-3.8-5.6-4.7-.3-.1-.5-.2-.8-.3l-.6-5.5-.1-1 .2-.2c.4-.4.7-.8 1-1.3.2-.3.3-.6.4-1 .1-.2.1-.4.1-.5 2.5.8 6.6 2.4 10
.6 2.4 1.2 0 2.4-.2 3.5-.5 1.2-.7 2.5-1.6 3.7-2.6.2-.2.5-.4.7-.6 1-.9 2-1.8 3-2.9.6-.6 1.2-1.3 1.8-2l1.8-2.1c.6-.7 1.2-1.4 1.8-2.2.6-.7 1.2-1.5 1.9-2.2 1.3-1.5 2.5-2.9 3.9-4.3.3-.4.7-.7 1.1-1.1 1.9.4 3.6.6 5.2.7 1.2.1 2.3.1 3.3.1 4.3 0 7-.7 7.2-.7.3-.1.5-.4.4-.7-.1-.2-.2-.3-.4-.4h-.3s-2 .5-5.3.6c-2.4.1-5.6 0-9.2-.6l.1-.1c-.1 0-.2 0-.3-.1l-1-.2c-.7-.2-1.3-.4-2-.6-.7-.2-1.3-.5-1.9-.7l-1.8-.9c-1.8-.9-3.4-2-4.9-3.2-.8-.7-1.6-1.4-2.3-2.1-.2.4-.4.6-.7.8-1.1.5-2.7-.8-3.5-2.9-.6-1.6-.7-3.1-.1-4-.4-.8-.8-1.7-1.1-2.5-.1-.2-.2-.5-.2-.7-.1 0-.2.1-.3.1-.8.1-1.7-.1-2.3-.6.2.7.4 1.4.7 2 .8 2 1.9 4 3.2 5.9.8 1.1 1.6 2.1 2.4 2.9.8.9 1.8 1.8 2.9 2.7 2.2 1.8 4.6 3.3 7.3 4.4.6.3 1.2.5 1.9.7-1 1.1-2.1 2.3-3.4 3.8-.7.8-1.3 1.5-1.9 2.3-1.8 2.2-3.6 4.2-5.4 6.1-1.3 1.4-2.4 2.5-3.5 3.4-1.1.9-2.1 1.7-3.2 2.3-.8.2-1.7.4-2.6.4-2.9 0-6-1.1-8.4-1.8-.9-.3-1.7-.6-2.3-.7 0-.1 0-.3-.1-.4-.1-.3-.4-.4-.7-.4-.1 0-.1.1-.2.1-.2.1-.2.4-.2.6.4 1.2.3 2.3-.3 3.4-1 1.7-3.2 2.9-4.9 3.3-2.5.6-4.4.3-5.6-.7-1.5-1.2-1.4-3.3-1.4-3.3
0-.3-.2-.5-.4-.5h-.2c-.3 0-.6.2-.6.5 0 .1-.1 2.6 1.8 4.2.6.5 1.4.9 2.3 1.1l.5 4.8c-1.3.7-2.5 1.7-3.4 2.8-1.9 2.4-2.8 5.4-2.5 8.4.5 4.6 3.6 8.4 8 9.8.2.1.3.1.5.1h.2c.4 0 .8-.3 1.1-.6.3-.3.4-.8.4-1.2v-.2l-.8-7.7c0-.2.1-.3.1-.3 0-.1.1-.1.3-.2l2-.2.8-.1.8-.1c.3 0 .5.2.5.4l.8 7.9c.1.8.8 1.5 1.6 1.5h.2c.2 0 .4-.1.6-.2.4-.2.9-.5 1.3-.9.8-.6 1.4-1.2 2-1.9 1.9-2.4 2.8-5.4 2.5-8.4L27 143c-.2-.9-.5-1.7-.9-2.4 1.8.5 3.6.8 5.4.8zm-5.2 3.6c.3 2.9-.6 5.6-2.3 7.6-.5.6-1.1 1.2-1.8 1.7l-.8-7.7c0-.4-.2-.8-.5-1-.3-.2-.6-.4-1-.4h-.2l-3.6.4-2 .2c-.4 0-.8.3-1 .6-.3.3-.4.7-.3 1.1l.8 7.7c-3.2-1.5-5.5-4.6-5.9-8.3-.3-2.9.6-5.6 2.3-7.6 1-1.2 2.3-2.2 3.7-2.9l-.6-5.3c.4-.1.7-.1 1.1-.2 1.1-.2 2.4-.8 3.5-1.5l.7 6.5c4.2 1 7.5 4.5 7.9 9.1z" fill="url(#v)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M114.1 97.1c-.5-.4-1.2-.2-1.6.3-.3.5-.2 1.1.2 1.5 0 0 0 .1.1.1.1.1 1.2.9 3 1.8.3.2.7.4 1.1.6l1.2.6c3.3 1.4 7.9 2.9 13.2 2.9 1.5 0 2.9-.1 4.5-.4.6-.1 1-.7.9-1.3-.1-.6-.7-1-1.3-.9-3.3.5-6.5.3-9.4-.2-2-.4-3.9
-.9-5.5-1.5-3.8-1.7-6.3-3.5-6.4-3.5z" fill="url(#w)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M24.8 135.4c-1.9-1.1-4-1.2-4.6-.2v.1c2.4.9 4.3 2.6 5.6 4.7.6-.1 1.1-.3 1.4-.7.1-.2.1-.4.2-.6-.1-1.1-1.1-2.4-2.6-3.3z" fill="url(#x)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M148.5 99.1c-1.6 1.2-2.5 2.9-2.1 3.9 0 .1.1.2.1.3.6.8 2.2.7 3.7-.1.3-.2.5-.3.8-.5.5-.4.9-.8 1.2-1.2.9-1.1 1.2-2.3.7-3-.1-.2-.3-.3-.5-.4-.8-.5-2.4-.1-3.9 1z" fill="url(#y)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M42.4 135.7c-.4-1.1-2.5-1.3-4.5-.5-2.1.8-3.4 2.4-2.9 3.5.1.1.1.2.2.3.7.8 2.5.9 4.3.2 1.1-.5 2-1.1 2.5-1.8.4-.6.6-1.2.4-1.7z" fill="url(#z)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M55.3 128.9c-.7-1-2.7-.7-4.5.6-1.8 1.3-2.7 3.2-2 4.1.1.2.3.3.4.4.9.5 2.6.1 4.1-1 1.2-.9 2-2 2.2-2.9.1-.5 0-.9-.2-1.2z" fill="url(#A)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M157.7 80.4c-.6 2.1-.1 4.1 1.1 4.4.3.1.5 0 .8-.1 1-.3 1.9-1.6 2.4-3.3.
6-2.1.1-4.1-1.1-4.4-1.2-.2-2.6 1.3-3.2 3.4z" fill="url(#B)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M41 96.3c-.1-.4-.2-.9-.4-1.3-.8-1.9-2.1-3.1-3.2-3-.1 0-.2 0-.3.1-.3.1-.5.3-.6.6-.5.9-.5 2.4.1 4 .8 2.1 2.4 3.4 3.5 2.9.3-.1.6-.4.7-.8.4-.7.4-1.6.2-2.5z" fill="url(#C)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M164.5 52.7c.2.2.6.4.9.4.9.1 2.1-.4 3.2-1.4v-.1l-1.4-4.3c-.4.3-.9.6-1.3 1-1.6 1.5-2.2 3.5-1.4 4.4z" fill="url(#D)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M84 141c-.7 2.1-.4 4.1.7 4.5.2.1.4.1.7 0 1-.2 2.1-1.4 2.7-3.1.7-2.1.4-4.1-.7-4.5h-.3c-1.1-.1-2.4 1.2-3.1 3.1z" fill="url(#E)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M73.7 161.2c-1.6 1.6-2.1 3.5-1.3 4.4 0 0 .1.1.2.1.9.6 2.7 0 4.2-1.5s2.1-3.3 1.4-4.2c0-.1-.1-.1-.1-.2-.9-.8-2.9-.2-4.4 1.4z" fill="url(#F)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M139.6 130.5c.8-1-.1-2.9-1.9-4.2-1.7-1.2-3.6-1.5-4.4-.7l-.1.1c-.6.8-.1 2.1 1 3.2.3.3.6.6 1 .9.
2.2.5.3.7.5 1.4.9 3 1 3.7.2z" fill="url(#G)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M149 138.6c1.7.7 3.3.6 4.1 0 .2-.1.4-.3.4-.5.4-1.1-.9-2.7-2.9-3.5-2.1-.8-4.1-.6-4.5.5 0 .1-.1.3-.1.4-.1 1 1.1 2.3 3 3.1z" fill="url(#H)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M72 105.8c.7-.3 1.4-.6 2.1-1 3.2-1.6 6.7-5.7 6.9-5.8.4-.5.4-1.2-.1-1.6-.1-.1-.2-.1-.3-.2-.4-.2-.9-.1-1.3.3 0 0-1.6 1.8-3.5 3.4-.9.8-1.9 1.5-2.7 1.9-.1 0-.2.1-.3.1-.5.2-.9.4-1.3.6-3.6 1.6-6.2 2.1-6.3 2.1-.6.1-1 .7-.9 1.3 0 .1.1.2.1.2 3.3-.1 5.3-.6 5.3-.6h.3c.2-.1.5-.2.7-.3.4 0 .8-.2 1.3-.4z" fill="url(#I)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M11.6 117.5c-4.2-1-7.4-4.5-7.8-9.1-.3-2.9.6-5.6 2.3-7.6.5-.6 1.1-1.2 1.8-1.7l.8 7.7c.1.8.8 1.4 1.5 1.4h.2l2-.2 3.6-.4c.4 0 .8-.3 1-.6.3-.3.4-.7.3-1.1l-.8-7.7c3.2 1.5 5.5 4.6 5.9 8.3.3 2.9-.6 5.6-2.3 7.6-1 1.2-2.3 2.2-3.7 2.9l.4 3.7c.4.2.8.3 1.2.6l-.1-.6-.3-3.1c1.3-.7 2.5-1.7 3.4-2.8 1.9-2.4 2.8-5.4 2.5-8.4-.4-4-2.8-7.5-6.5-9.2l-1
.5-.6c-.2-.1-.3-.1-.5-.1h-.2c-.4 0-.8.3-1.1.6-.3.3-.4.8-.4 1.2l.8 7.9c0 .2-.1.3-.1.3 0 .1-.1.1-.3.2l-1.6.2-2 .2c-.3 0-.5-.2-.5-.4L9 99v-.2c-.1-.8-.8-1.5-1.6-1.5h-.2c-.2 0-.4.1-.6.2-1.3.7-2.4 1.7-3.3 2.8-1.9 2.4-2.8 5.4-2.5 8.4.5 4.7 3.7 8.5 8.1 9.9l.3 2.8c.8-.5 1.8-.8 2.9-1l-.5-2.9z" fill="url(#J)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M18.3 135.9l-.7-6.5c-1.1.8-2.4 1.3-3.5 1.5-.4.1-.7.1-1.1.2l.6 5.3c-1.5.7-2.7 1.7-3.7 2.9-1.7 2.1-2.6 4.8-2.3 7.6.4 3.8 2.7 6.8 5.9 8.3l-.8-7.7c0-.4.1-.8.3-1.1.3-.3.6-.5 1-.6l2-.2 3.6-.4h.2c.4 0 .8.1 1 .4.3.2.5.6.5 1l.8 7.7c.7-.5 1.3-1.1 1.8-1.7 1.7-2.1 2.6-4.8 2.3-7.6-.3-4.6-3.6-8.1-7.9-9.1z" fill="url(#K)" fill-rule="nonzero" transform="translate(81 15)"/><path fill="url(#L)" fill-rule="nonzero" d="M171.1 22.7l-.3-.8-1.6 1.4" transform="translate(81 15)"/><path fill="url(#M)" fill-rule="nonzero" d="M158.9 18.3l.3 1.1 2.2-1.9" transform="translate(81 15)"/><path d="M168.9 16.1l-.3-.9-2 .7-6.4 5.4c-.1.1-.2.1-.3.2l.6 1.8 8.1-6.9c.1-
.2.2-.3.3-.3z" fill="url(#N)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M161.1 25.2l.2.7 2.7-.9 5.8-4.9c.1-.1.2-.1.3-.2l-.6-1.8-8.1 6.9c-.1.1-.2.1-.3.2z" fill="url(#O)" fill-rule="nonzero" transform="translate(81 15)"/><path fill="url(#P)" fill-rule="nonzero" d="M165 37.1l.4 1.2 2.5-2.1" transform="translate(81 15)"/><path d="M170.3 41.7l-2.7 2.3c-.1.1-.2.1-.3.2l.6 1.8 2.6-2.2c-.2-.8-.2-1.5-.2-2.1z" fill="url(#Q)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M175.1 35l-.4-1.1-1.6.5-6.7 5.7c-.1.1-.2.1-.3.2l.6 1.8 8.1-6.9c.1-.1.2-.1.3-.2z" fill="url(#R)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M171.5 45.5l-2.6 2.2c-.1.1-.2.1-.3.2l.6 1.8 3.7-3.1c-.6-.3-1-.7-1.4-1.1z" fill="url(#S)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M164 25l5.2-1.7 1.6-1.4.3-.3c.4-.4.5-1 .1-1.5-.3-.3-.7-.4-1.1-.3-.1 0-.2.1-.3.2l-5.8 5z" fill="url(#T)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M166.6 15.8l-5.2 1.7-2.2 1.9-.3.3c-.4
.4-.5 1-.1 1.5l.3.3c.2.1.5.1.8.1.1 0 .2-.1.3-.2l6.4-5.6z" fill="url(#U)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M175 47.4c-.8-.2-1.6-.5-2.2-.9l-3.7 3.1-.3.3c-.4.4-.5 1-.1 1.5l.3.3c.3.1.6.1.8 0 .1 0 .2-.1.3-.2l4.9-4.1z" fill="url(#V)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M173.2 34.5l-5.2 1.7-2.5 2.1-.3.3c-.4.4-.5 1-.1 1.5l.3.3c.2.1.5.1.8.1.1 0 .2-.1.3-.2l6.7-5.8z" fill="url(#W)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M170.3 41.7c.1-1.1.6-2 .6-2 .1-.3.5-.4.7-.2.1 0 .1.1.2.1 1.1-1.3 2.8-2.3 4.5-3 .2-.4.2-.9-.1-1.2-.3-.3-.7-.4-1.1-.3-.1 0-.2.1-.3.2l-8.1 6.9-.3.3c-.4.4-.5 1-.1 1.5l.3.3c.2.1.5.1.8.1.1 0 .2-.1.3-.2l2.6-2.5z" fill="url(#X)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M171.5 45.5c-.3-.4-.6-.7-.8-1.2-.1-.2-.2-.4-.2-.7l-2.6 2.2-.3.3c-.4.4-.5 1-.1 1.5l.3.3c.2.1.5.1.8.1.1 0 .2-.1.3-.2l2.6-2.3z" fill="url(#Y)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M161.1 25.2c.1 0 .2-.1.3-.2l8.1-6.9.
3-.3c.4-.4.5-1 .1-1.5-.3-.3-.7-.4-1.1-.3-.1 0-.2.1-.3.2l-8.1 6.9-.3.3c-.4.4-.5 1-.1 1.5l.3.3c.3 0 .5.1.8 0z" fill="url(#Z)" fill-rule="nonzero" transform="translate(81 15)"/><path fill="url(#aa)" fill-rule="nonzero" d="M165.6 4.8l-11 3.6 3 9.2 11-3.7" transform="translate(81 15)"/><path fill="url(#ab)" fill-rule="nonzero" d="M174.8 32.7l-3-9.1-11 3.6 3 9.2" transform="translate(81 15)"/><path d="M160.8 38.5l3.2-1.1.3 1-.2.1c-1.5.7-3.2 1.6-5.1 2.9-2.4 1.6-4.4 3.1-6.3 4.9-2.5 2.5-4.6 5.2-6.1 8.2-1.8 3.5-3 7.4-3.5 11.5 0 .4-.1.8-.1 1.3v3.9c-.1 1.1-.2 2.3-.4 3.8-.4 2.3-1.1 4.5-2 6.4-.4.8-.9 1.5-1.4 2.1-.4.5-.9 1-1.6 1.5-.9.7-1.9 1.1-3.1 1.3h-.1c-.5.1-.9.1-1.3.1h-.2c-.6 0-1.3-.1-1.8-.2h-.1c-1.2-.3-2.3-.9-3.2-1.7-.5-.4-.9-.9-1.3-1.4-.3-.4-.6-.9-1-1.5-.1-.1-.1-.3-.2-.4-.1-.1-.1-.2-.2-.4l-.3-.6-.1-.2-.1-.2v-.1l-.1-.2c0-.1-.1-.1-.1-.2-.1-.2-.2-.3-.2-.5v-.1c-.1-.3-.3-.5-.4-.8v-.1l-.3-.6c-.2-.3-.3-.6-.5-.9 0-.1-.1-.1-.1-.2-.1-.7-.1-1.5-.1-2.3 7.3-2.6 12.2-9.4 12.2-17.3 0-5.2-2.1-10-5.9-13.5v-1
.1c0-19.5-15.9-35.4-35.4-35.4S58.3 22.4 58.3 41.9V43c-3.3 3.1-5.4 7.2-5.8 11.6l2.2.9c.1-1.5.4-3 .9-4.4.4-1.1.9-2.2 1.5-3.2.2-.4.5-.7.7-1.1.5-.7 1.1-1.4 1.7-2 .3-.3.6-.6 1-.9 0-.7-.1-1.4-.1-2.1 0-2.3.2-4.5.7-6.7.2-1.1.5-2.1.8-3.2.5-1.6 1.1-3.1 1.8-4.5.5-1 1-1.9 1.5-2.8.6-.9 1.2-1.8 1.8-2.6.3-.4.6-.8 1-1.3 4.4-5.3 10.4-9.3 17.3-11 2-.5 4-.8 6.2-1 .7 0 1.4-.1 2.1-.1 2.1 0 4.1.2 6 .6.7.1 1.3.3 1.9.4.2.1.4.1.6.2 2.8.8 5.5 1.9 8 3.3 1.2.7 2.4 1.5 3.6 2.4 1.1.9 2.2 1.8 3.2 2.8 4 4 7 9.1 8.6 14.8.1.2.1.4.2.6.6 2.6 1 5.2 1 8 0 .7 0 1.4-.1 2.1 1.8 1.5 3.3 3.3 4.3 5.5 1 2.1 1.6 4.5 1.6 7 0 5.7-2.9 10.7-7.4 13.5-.7.5-1.5.9-2.3 1.3-.7.3-1.4.5-2.1.7-1.3.2-2.4.3-3 .3h-.5c-.3 0-.6.3-.6.6s.2.6.6.6h.3c.5 0 1.5-.1 2.8-.3.1 1.2.1 2.4.2 3.5.1.2.2.3.3.5.1.2.2.5.4.7.1.2.3.5.4.8.1.3.3.5.4.8.1.1.1.3.2.4.1.1.2.3.2.4.1.1.1.3.2.5s.2.3.2.5c.1.3.3.6.5.9l.6.9c.2.3.4.6.7.9.5.6 1 1.2 1.6 1.7 1 .8 2.1 1.5 3.3 1.9.3.1.5.2.8.3.7.2 1.5.3 2.2.3h.4c.6 0 1.2-.1 1.8-.2.7-.1 1.4-.3 2.1-.6.7-.3 1.3-.7 2-1.1.6-.5 1.3-1.1 1.9-
1.8.6-.7 1.2-1.6 1.7-2.6 1-2 1.8-4.4 2.3-7.1.2-1.3.4-2.7.5-4.1V68.8 67c0-.5.1-1.1.1-1.6.4-3.9 1.6-7.6 3.2-10.7.4-.8.8-1.5 1.3-2.2l1.5-2.1c.7-.9 1.5-1.8 2.2-2.6l.8-.8c2-1.9 4-3.4 5.8-4.6l.1-.1c1.4-.9 2.7-1.6 3.8-2.2.3-.2.7-.3 1-.5l1.3 3.9.4 1.1.6 1.7 1.4 4.3v.1c-1.1.9-2.3 1.4-3.2 1.4l-1.5 2.1c-.5.8-1 1.7-1.4 2.6-.4.9-.8 1.8-1.1 2.7-.1.5-.3.9-.4 1.4-.3 1.5-.5 3-.4 4.6v1.7c0 .4.1.8.1 1.2 0 .5.1.9.1 1.4.1 1.9.1 3.8 0 5.8v.4c1.1.3 1.6 2.3 1.1 4.4-.4 1.7-1.4 3-2.4 3.3-.4 1.4-.8 2.8-1.4 4.3-.2.5-.4 1-.7 1.6-.7 1.6-1.6 3.1-2.6 4.6-.7 1-1.5 2-2.3 2.9.2.1.4.2.5.4.5.7.2 1.9-.7 3 1.7-1.5 3.1-3.2 4.4-4.9 1.4-2 2.6-4.2 3.5-6.6 1.6-4 2.6-8.4 2.9-13.1.1-2 .1-4.1 0-6.1 0-.3 0-.7-.1-1v-.4l-.1-1.2V66.3v0-.1-.4-.3c0-2 .2-3.8.7-5.4.3-.9.7-1.8 1-2.4.4-.8.8-1.5 1.3-2.3.5-.7 1-1.5 1.5-2.2.5-.6 1-1.2 1.6-1.9.4.7 1 1.3 1.8 1.7.5.2 1.1.4 1.7.4.4 0 .8-.1 1.2-.2l4.4-1.4c1-.3 1.8-1 2.3-2 .5-.9.6-2 .2-3l-.2-.7c-.4.1-.7.2-1.1.2l.3.8c.5 1.5-.3 3.1-1.8 3.6l-4.4 1.4c-.3.1-.6.1-.9.1-1 0-2-.6-2.5-1.5-.3.1-.6.1-.8 0-.1-
.1-.2-.1-.3-.3-.4-.4-.3-1.1.1-1.5l.3-.3-.6-1.8c-.3.1-.5.1-.8-.1-.1-.1-.2-.1-.3-.3-.4-.4-.3-1.1.1-1.5l.3-.3-.6-1.8c-.3.1-.5.1-.8-.1-.1-.1-.2-.1-.3-.3-.4-.4-.3-1.1.1-1.5l.3-.3-.6-1.8c-.3.1-.5.1-.8-.1-.1-.1-.2-.1-.3-.3-.4-.4-.3-1.1.1-1.5l.3-.3-.4-1.2 2.9-1 5.2-1.7 1.6-.5.4 1.1c.4-.1.8 0 1.1.3.3.4.3.9.1 1.2.2-.1.3-.1.5-.2l-.3-.9-.6-2 3.2-1.1c.9-.3 1.6-.9 2-1.7.4-.8.5-1.7.2-2.6l-1.6-4.8c-.6-1.8-2.5-2.7-4.3-2.2l-3.2 1.1-2.5-7.5 3.2-1.1c.9-.3 1.6-.9 2-1.7.1-.2.2-.4.2-.6.1-.2.1-.4.1-.6 0-.4 0-.9-.2-1.3l-1.6-4.8c-.3-.9-.9-1.6-1.7-2-.8-.4-1.7-.5-2.6-.2l-18.3 6c-1.8.6-2.7 2.5-2.2 4.3l1.6 4.8c.3.9.9 1.6 1.7 2 .5.2 1 .4 1.5.4.4 0 .7-.1 1.1-.2l3.2-1.1 2.5 7.5-3.2 1.1c-.9.3-1.6.9-2 1.7-.4.8-.5 1.7-.2 2.6l1.6 4.8c.3.9.9 1.6 1.7 2 .4.2.9.3 1.4.3h.2c.3 1.9.6 1.8 1 1.7zm14.9-16.2c1.2-.4 2.5.3 2.9 1.5l1.6 4.8c.2.6.1 1.2-.1 1.7-.3.5-.7.9-1.3 1.1l-2.8.9-3-9.2 2.7-.8zm-6.2-18.8c.6-.2 1.2-.1 1.7.1.5.3.9.7 1.1 1.3l1.6 4.8c.2.6.1 1.2-.1 1.7-.3.5-.7.9-1.3 1.1l-2.8.9-3-9.2 2.8-.7zm-11.7 14.6l-3.4 1.1c-1.5.5-3.
1-.3-3.6-1.8l-1.6-4.8c-.5-1.5.3-3.1 1.8-3.6l3.4-1.1.2.5 11-3.6 3 9.2-11 3.6.2.5zm2.2 6.8c-.4-.4-.3-1.1.1-1.5l.3-.3-.6-1.8c-.3.1-.5.1-.8-.1-.1-.1-.2-.1-.3-.3-.4-.4-.3-1.1.1-1.5l.3-.3-.3-1 2.5-.8 5.2-1.7 2-.7.3.9c.4-.1.8 0 1.1.3.4.4.3 1.1-.1 1.5l-.3.3.6 1.8c.4-.1.8 0 1.1.3.4.4.3 1.1-.1 1.5l-.3.3.2.8-1.9.6L164 25l-2.7.9-.2-.7c-.3.1-.5.1-.8-.1-.1 0-.2-.1-.3-.2zm-3 11.3l-1.6-4.8c-.5-1.5.3-3.1 1.8-3.6l3.4-1.1.2.5 11-3.6 3 9.2-11 3.6.2.5-3.4 1.1c-1.5.5-3.1-.3-3.6-1.8z" fill="url(#ac)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M164 36.9l-.2-.5-3-9.2-.2-.5-3.4 1.1c-1.5.5-2.3 2.1-1.8 3.6l1.6 4.8c.5 1.5 2.1 2.3 3.6 1.8l3.4-1.1z" fill="url(#ad)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M154.4 7.9L151 9c-1.5.5-2.3 2.1-1.8 3.6l1.6 4.8c.5 1.5 2.1 2.3 3.6 1.8l3.4-1.1-.2-.5-3-9.2-.2-.5z" fill="url(#ae)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M253.5 27.7c.6-.2 1-.6 1.3-1.1.3-.5.3-1.2.1-1.7l-1.6-4.8c-.2-.6-.6-1-1.1-1.3-.5-.3-1.2-.3-1.7-.1l-2.8.9 3
9.2 2.8-1.1zM259.7 46.5c.6-.2 1-.6 1.3-1.1.3-.5.3-1.2.1-1.7l-1.6-4.8c-.4-1.2-1.7-1.8-2.9-1.5l-2.8.9 3 9.2 2.9-1z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M190.7 121.8c0-.2-.1-.4-.2-.6-.1-.3-.3-.5-.5-.7l-3.2-2.6c-.1-.1-.2-.1-.3-.2-.1-.1-.3-.1-.4-.2-.2-.1-.4-.1-.7-.1h-.2c-.4.1-.8.3-1.1.7l-2.2 2.7-.4-.4c-.9-.7-1.9-1.2-3-1.5-3-.8-6.3.2-8.7 2.5 1.8-.1 3.8.3 5.5 1.3.8-.2 1.5-.2 2.3 0 .6.1 1.1.4 1.5.8 1.5 1.2 1.9 3.4 1.1 5.5-.3.7-.8 1.4-1.5 2.3-.8.7-1.7 1.3-2.6 1.6-.9.3-1.8.3-2.6.1-.1 0-.1-.1-.2-.1-.5-.2-.9-.4-1.3-.7-.2-.2-.4-.3-.5-.5-.8 0-1.6 0-2.3-.1.1 0 .2.1.3.1.3.1.5.4.4.7-.1.2-.3.4-.5.4h-.1c-.7-.2-1.3-.4-1.9-.6l.6 1.2c-1.1-.3-2.9 0-4.3.8-1.9 1.1-3 2.9-2.4 3.9l.3.3c.8.7 2.6.6 4.3-.4 1.5-.9 2.9-2.2 3.1-3.2.2.2.4.4.6.5.3.2.5.4.8.6.7.4 1.4.7 2.2.9.1 0 .3 0 .4.1 3.3.7 6.9-.6 9.2-3.5.2-.2.3-.4.5-.7l3-3.7 4.6-5.6c.3-.6.5-1.1.4-1.6z" fill="url(#af)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M126.4 68.5l-.1-.1c-.2-.3-.5-.6-.8-.7-.2-.1-.3-.1-.5-.1h-.2l-.1-.1c-7.8-4.7-17.8
-11.7-21.3-17.9-.2-.5-.4-.9-.6-1.2-.5-.8-1.1-1.3-1.8-1.6-1.9-.8-4.5.3-7.3 3-2.9 2.8-5.5 7-7.5 11.8-3.9 9.7-3.8 19.3.3 20.9 1.2.5 2.7.3 4.3-.7l.1-.1c6.9-1.7 18.4.3 26.8 2.2h.2l.1.2c.2.2.4.4.6.5.4.2.8.1 1.3-.1l.2-.1h.2c.2.1.4.1.6.2 1.8-1.1 3.8-3.7 5.1-7 1.4-3.5 1.8-6.8 1.1-8.8-.2-.1-.4-.3-.7-.4v.1zm-23.7-6.6s0 .1 0 0c-.1.6-.3 1.2-.4 1.7 0 .1 0 .2-.1.3-.1.5-.3 1-.5 1.5 0 .1-.1.2-.1.3-.2.6-.4 1.2-.7 1.8-.2.6-.5 1.1-.7 1.7 0 .1-.1.2-.1.3-.3.5-.5 1-.8 1.5-2.9 5.3-6.6 8.7-9.6 8.7-.5 0-.9-.1-1.4-.3-1.9-.8-3-3.1-3-6.4-.1-3.2.7-7.1 2.3-11 1.6-3.9 3.7-7.2 6-9.5 2.4-2.4 4.8-3.3 6.7-2.5 2.8 1.2 3.7 6 2.4 11.9z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M39.9 69.8c-.2-.1-.4-.1-.6-.2h-.2l-.2.1c-.5.2-1 .2-1.3.1-.2-.1-.4-.3-.6-.5l-.1-.2h-.2c-8.4-1.9-19.9-3.8-26.8-2.2l-.1.1c-1.6.9-3.1 1.1-4.3.7-4.1-1.7-4.2-11.2-.3-20.9 2-4.8 4.6-9 7.5-11.8 2.7-2.6 5.4-3.7 7.3-3 .7.3 1.3.8 1.8 1.6.2.3.4.7.6 1.2 3.5 6.2 13.5 13.1 21.3 17.9l.1.1h.2c.2 0 .4 0 .5.1.3.1.5.3.8.7l.1.1.1.1c.2.1.5.3.7.4-.3-.9-.7-1.5-1.4-1.8
l1.9.8c-.2-.1-.3-.2-.5-.3-.3-.5-.7-.8-1.2-1-.2-.1-.5-.2-.8-.2-6.3-3.8-17.2-11.2-20.8-17.3-.2-.5-.4-.9-.7-1.3-.6-1-1.4-1.6-2.3-2-2.4-1-5.4.2-8.5 3.2-3 2.9-5.7 7.2-7.8 12.2C-.2 57.1.2 66.9 5 68.9c1.5.6 3.3.4 5.2-.7 6.6-1.6 17.8.3 26 2.1.3.3.6.5.9.7.5.2 1.1.2 1.7.1l-1.5-.6c.9 0 1.7-.2 2.6-.7z" fill="url(#ag)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M133.7 88l2.5 1c1.1.5 3.4-1.5 4.9-5.1 1.5-3.6 1.2-6.6.1-7.1l-2.5-1c0 1.9-.5 4.2-1.4 6.5-1 2.4-2.3 4.4-3.6 5.7z" fill="#F9F9FA" fill-rule="nonzero"/><path d="M19.3 35c-1.9-.8-4.2.1-6.7 2.5-2.3 2.3-4.5 5.6-6 9.5-1.6 3.9-2.4 7.8-2.3 11 .1 3.4 1.2 5.7 3 6.4.4.2.9.3 1.4.3 3 0 6.8-3.4 9.6-8.7.3-.5.5-1 .8-1.5.1-.1.1-.2.1-.3.3-.5.5-1.1.7-1.7.2-.6.5-1.2.7-1.8 0-.1.1-.2.1-.3.2-.5.3-1 .5-1.5 0-.1 0-.2.1-.3.2-.6.3-1.1.4-1.7v-.1c1.3-5.8.4-10.6-2.4-11.8zm1.6 10.3c-.4 2.2-1 4.5-1.9 6.8-.9 2.3-2.1 4.4-3.3 6.2h-.1c-.9-.4-1.1-3.3.5-7.4.7-1.8 1.7-3.4 2.7-4.5.7-.8 1.4-1.2 1.9-1.2l.2.1c-.1-.1 0-.1 0 0z" fill="url(#ah)" fill-rule="nonzero" tran
sform="translate(81 15)"/><path d="M18.7 46.4c-1 1.1-2 2.7-2.7 4.5-1.6 4-1.4 7-.5 7.4h.1c1.3-1.8 2.4-4 3.3-6.2.9-2.3 1.6-4.6 1.9-6.8H20.5c-.4-.1-1.1.3-1.8 1.1z" fill="url(#ai)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M43.6 77.3c0-.1.1-.3.1-.4.1-.3.3-.5.6-.5.1 0 .2.1.3.2.2-.3.5-.5.7-.7.4-.5.8-.8 1.1-1.1.1-.1.3-.2.3-.2.1-.1.1-.1.2-.1s0 0 .1-.1H47.9c.2.1.3.1.5.1l.2.1c.9.4 2 0 3.2-.9.3-.2.6-.5.9-.8 1.3-1.3 2.6-3.3 3.5-5.7 1-2.4 1.4-4.7 1.4-6.5 0-.4 0-.9-.1-1.2-.2-1.4-.7-2.5-1.6-2.8l-1.8-.7-2.2-.9-1.9-.8-.8-.3-2.8-1.1-1.9-.8c.7.3 1.1.9 1.4 1.8.6 2 .3 5.4-1.1 8.8-1.3 3.3-3.3 5.9-5.1 7-.9.6-1.8.7-2.5.4l1.5.6h.1c-.1.2-.3.3-.4.5-.1.1-.2.2-.2.3 2.5 1.1 4.9 3.4 5.4 5.8z" fill="url(#aj)" fill-rule="nonzero" transform="translate(81 15)"/><g fill-rule="nonzero"><path d="M283.2 146.6l-6.8.9-5.3-38.5c-.4-3.1 1.6-6 4.7-6.7.2-.1.5.1.5.4l6.9 43.9z" fill="#C8C8CC"/><path d="M292.8 107.4c.2-.2.5-.2.6 0 2.1 2.3 2.1 5.9-.1 8.2L266.8 144l-5-4.7 31-31.9z" fill="#E1E1E6"/><path d="M.9 10.6
c-.1 2.6.8 4.9 2.6 6.5.9.8 1.9 1.4 3 1.8 3.5 1.2 7.5 0 10.2-2.9l.6-.6 8.6-9.2c.4-.4.6-.9.5-1.4 0-.5-.2-1-.6-1.4L22.7.5c-.2-.2-.5-.4-.7-.4-.2-.1-.5-.1-.7-.1-.5 0-1 .2-1.4.6l-2.5 2.6-.4-.4c-.9-.8-1.9-1.4-3-1.8C10.5-.2 6.5 1 3.8 3.9 2 5.7 1 8.1.9 10.6zm5.8-4c1.6-1.7 4.1-2.5 6-1.8.6.2 1.1.5 1.5.9 1.5 1.4 1.7 3.7.8 5.8-.4.7-.9 1.5-1.7 2.3-1.6 1.4-3.8 2-5.5 1.4-.6-.2-1.1-.5-1.5-.9-.9-.9-1.4-2.1-1.3-3.5 0-1.5.6-3 1.7-4.2z" transform="translate(246 133)" fill="url(#ak)"/><path d="M.7 3.7l1.7 12.5c0 .3 0 .6.1.9C3 21 5.6 24.2 9 25.3c1.2.4 2.4.5 3.7.3 4.9-.7 8.2-5.6 7.5-11-.5-3.9-3.1-7.1-6.5-8.2-1.2-.4-2.4-.5-3.7-.3-.2 0-.4.1-.6.1l-.5-3.6c-.1-.8-.7-1.4-1.4-1.6-.3-.1-.6-.1-.9-.1l-4.2.6c-.5.1-1 .4-1.3.8-.3.3-.5.8-.4 1.4zm11.7 6.5c2 .6 3.4 2.6 3.7 4.9.4 3.2-1.4 6.1-4 6.4-.6.1-1.3 0-1.9-.2-1.8-.6-3.1-2.2-3.6-4.3v-.1c-.1-1.1-.2-2-.1-2.8.4-2.2 2-4 4-4.2.6 0 1.3.1 1.9.3z" transform="translate(274 137)" fill="url(#al)"/><path d="M277.1 126c1.2 0 2.3.9 2.3 2.2 0 1.2-.9 2.3-2.2 2.3-1.3 0-2.3-.9-2.3-2.2
0-1.2.9-2.2 2.2-2.3z" fill="#C8C8CC"/></g><path d="M36.2 88.9s.1 0 0 0l.2-.2.1-.1c.1-.2.3-.4.5-.6.2-.3.5-.7.8-1.2.3-.5.5-1 .7-1.5.2-.5.4-1.1.6-1.7 0 0 0-.1.1-.1.1-.2.2-.5.3-.7 0-.1.1-.1.1-.2h-.4c-1.4 0-2.8-.4-4.1-.7-1.1-.3-2-.8-2.8-1.3-.1.2-.1.4-.2.6-.1.4-.2.7-.3 1-.1.3-.2.6-.2.9-.1.3-.1.7-.2 1 0 .2-.1.4-.1.6v2.6c.1.7.5 1.3 1 1.7.6.5 1.4.8 2.3.6.1 0 .2-.1.3-.1.2-.1.4-.1.6-.2.4-.1.6-.3.7-.4z" fill="url(#am)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M176.3 36.6c-1.7.6-3.4 1.7-4.5 3 .2.2.2.4.1.6 0 0-1 2-.2 3.7.5 1.2 1.8 2 3.8 2.5.3.1.5.4.4.7-.1.3-.3.4-.5.4h-.1c-.1 0-.1 0-.2-.1l-4.8 4.1c-.1.1-.2.1-.3.2.5.9 1.5 1.5 2.5 1.5.3 0 .6 0 .9-.1l4.4-1.4c1.5-.5 2.3-2.1 1.8-3.6l-.3-.8c.4-.1.7-.1 1.1-.2.7-.2 1.4-.5 2-.9 3.7-2.4 3.3-8.5-2-10.3-.6-.2-1.8-.1-3.1.3-.2 0-.3.1-.5.2s-.3.1-.5.2z" fill="url(#an)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M166.8 122.9s-2.6 2.9-1.9 5.4c.4 1.4 1.8 2.5 4.2 3.2.7.1 1.5.1 2.3.1h.1c.9 0 1.7-.1 2.5-.3 1-.2 2-.6 2.7-1.2.5-.4.9-.9 1
.2-1.5 1-2.6-.4-4.6-2.6-5.8-1.6-.9-3.7-1.4-5.5-1.3-.7 0-1.4.2-2 .4-.3.1-.6.3-1 .6.1.1.1.3 0 .4z" fill="url(#ao)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M35.5 80.8c2.9.9 4.8.9 6.1.1 1-.6 1.7-1.8 2-3.6-.5-2.4-2.8-4.7-5.3-5.7-.8-.3-1.6-.6-2.3-.6-1.5-.1-4.1 1-5.2 3 .2.1.3.4.2.6-.1.2-1.2 4.5 4.5 6.2z" fill="url(#ap)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M6.9 125.8s-.1 2.1 1.4 3.3c1.2 1 3.1 1.2 5.6.7 1.7-.4 3.9-1.5 4.9-3.3.6-1 .7-2.2.3-3.4-.1-.2 0-.4.2-.6-.3-.5-.8-.9-1.3-1.2l-1.2-.6-.4-3.7c1.5-.7 2.7-1.7 3.7-2.9 1.7-2.1 2.6-4.8 2.3-7.6-.4-3.8-2.7-6.8-5.9-8.3l.8 7.7c0 .4-.1.8-.3 1.1-.3.3-.6.5-1 .6l-3.6.4-2 .2h-.2c-.8 0-1.5-.6-1.5-1.4l-.8-7.7c-.7.5-1.3 1.1-1.8 1.7-1.7 2.1-2.6 4.8-2.3 7.6.5 4.5 3.7 8 7.8 9.1l.3 2.9c-1.1.2-2.1.5-2.9 1-.2.1-.3.2-.5.3-.8.6-1.7 2-2 3.5.3.2.4.4.4.6z" fill="url(#aq)" fill-rule="nonzero" transform="translate(81 15)"/><path d="M170.9 39.7c0 .1-.4.9-.6 2-.1.6-.1 1.3.1 2 .1.2.1.4.2.7.2.4.5.8.8 1.2.4.4.8.7 1.3 1 .6.4 1.3.6 2.2.
9.1 0 .1 0 .2.1h.1c.3 0 .5-.2.5-.4.1-.3-.1-.6-.4-.7-1.9-.5-3.2-1.3-3.8-2.5-.8-1.7.2-3.7.2-3.7.1-.2.1-.5-.1-.6 0 0-.1-.1-.2-.1 0-.3-.3-.2-.5.1z" fill="url(#ar)" fill-rule="nonzero" transform="translate(81 15)"/></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/figure_customize.svg b/browser/extensions/onboarding/content/img/figure_customize.svg
deleted file mode 100644
index 0c0cb30df5dc..000000000000
--- a/browser/extensions/onboarding/content/img/figure_customize.svg
+++ /dev/null
@@ -1,561 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="295" height="238">
- <defs>
- <linearGradient id="a" x1="-678.179817%" x2="218.03211%" y1="-1879.5122%" y2="503.09878%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="b" x1="-2438.15968%" x2="713.035484%" y1="-2346.83281%" y2="705.8875%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="c" x1="-1876.47349%" x2="477.431325%" y1="-2215.7169%" y2="536.030986%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="d" x1="-300.502319%" x2="326.878731%" y1="-277.869139%" y2="301.876261%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="e" x1="-556.386842%" x2="471.897895%" y1="-1050.94952%" y2="809.757143%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="f" x1="-2301.11875%" x2="1769.175%" y1="-4460.38%" y2="3354.584%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="g" x1="-14090.38%" x2="5447.03%" y1="-14085.94%" y2="5451.47%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="h" x1="-1245.88053%" x2="483.093805%" y1="-2962.82857%" y2="1024.39796%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="i" x1="-4762.32308%" x2="1072.27051%" y1="-2525.31233%" y2="591.799315%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="j" x1="-419.785061%" x2="175.867683%" y1="-263.047589%" y2="146.541719%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="k" x1="-13945.16%" x2="5592.25%" y1="-13931.16%" y2="5606.26%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="l" x1="-93.8791876%" x2="171.036409%" y1="-368.29%" y2="383.149231%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="m" x1="-105.119971%" x2="175.589943%" y1="-106.702736%" y2="160.566895%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="n" x1="-4526.45652%" x2="3968.06957%" y1="-3864.98889%" y2="3371.08889%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="o" x1="-1590.58053%" x2="2387.43252%" y1="-835.835705%" y2="1325.72397%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="p" x1="-1174.27536%" x2="1657.23333%" y1="-1275.87873%" y2="1781.26242%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="q" x1="-8557.56%" x2="10979.85%" y1="-4234.38%" y2="5534.325%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="r" x1="-949.737079%" x2="1245.47865%" y1="-1023.81277%" y2="1336.75514%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="s" x1="-850.555238%" x2="1010.15048%" y1="-759.279881%" y2="912.10717%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="t" x1="-2526.775%" x2="962.048214%" y1="-2513.94763%" y2="949.261152%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="u" x1="-953.117868%" x2="406.88755%" y1="-1083.71008%" y2="471.112383%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="v" x1="-1736.94827%" x2="671.463404%" y1="-2238.58822%" y2="855.656147%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="w" x1="-9592.54%" x2="9944.87%" y1="-9613.77%" y2="9923.64%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="x" x1="-546.9251%" x2="669.232184%" y1="-637.97868%" y2="716.339388%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="y" x1="-2626.25%" x2="2515.17368%" y1="-10166.57%" y2="9370.85%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="z" x1="-26076.58%" x2="9092.02%" y1="-26064.58%" y2="9104.02%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="A" x1="-11996.8348%" x2="3293.86087%" y1="-4084.84179%" y2="1164.20299%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="B" x1="-1988.44219%" x2="759.104687%" y1="-1576.81875%" y2="621.219375%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="C" x1="-4889.30185%" x2="1623.40185%" y1="-2351.25495%" y2="817.087387%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="D" x1="-2655.5559%" x2="951.48%" y1="-6714.61282%" y2="2302.97692%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="E" x1="-11418.996%" x2="2648.448%" y1="-28603.67%" y2="6564.93%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="F" x1="-1067.54883%" x2="792.163033%" y1="-899.682353%" y2="691.657014%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="G" x1="-3245.82558%" x2="2272.05861%" y1="-2753.32267%" y2="1935.824%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="H" x1="-835.133806%" x2="827.684161%" y1="-835.133806%" y2="827.684161%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="I" x1="-4541.82131%" x2="1223.52295%" y1="-2322.54576%" y2="657.84322%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="J" x1="-2057.47051%" x2="889.742903%" y1="-1738.77914%" y2="791.335971%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="K" x1="-1278.62667%" x2="1189.34526%" y1="-1278.9986%" y2="1188.97333%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="L" x1="-6112.0075%" x2="2680.1425%" y1="-6270.03333%" y2="2747.55641%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="M" x1="-1115.93023%" x2="572.391158%" y1="-1175.6355%" y2="582.7945%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="N" x1="-9656.07586%" x2="2471.02759%" y1="-9322.84667%" y2="2400.02%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="O" x1="-7887.73698%" x2="3321.17237%" y1="-6188.2325%" y2="2603.9175%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="P" x1="-984.783738%" x2="288.77261%" y1="-1902.68288%" y2="506.125342%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="Q" x1="-2522.67732%" x2="1102.95155%" y1="-5039.01837%" y2="2138.24694%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="R" x1="-5921.7225%" x2="2870.4275%" y1="-6075.45385%" y2="2942.1359%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="S" x1="-5881.53%" x2="2910.62%" y1="-5881.26%" y2="2910.89%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="T" x1="-5841.3375%" x2="2950.8125%" y1="-5841.4525%" y2="2950.6975%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="U" x1="-7423.23691%" x2="3785.67244%" y1="-5801.6425%" y2="2990.5075%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="V" x1="-4020.34%" x2="1003.74571%" y1="-2527.16182%" y2="669.983636%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="W" x1="-4517.96032%" x2="1064.35714%" y1="-5480.38654%" y2="1282.80577%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="X" x1="-3834.66828%" x2="2163.11753%" y1="-3992.49299%" y2="2248.99581%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="Y" x1="-132.800878%" x2="141.123835%" y1="-126.933901%" y2="145.268963%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="Z" x1="-8624.4%" x2="10913.01%" y1="-4751.06111%" y2="6103.05556%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="aa" x1="-20576.83%" x2="14591.77%" y1="-11391.2944%" y2="8146.81667%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ab" x1="-3210.85073%" x2="1716.38147%" y1="-3721.57455%" y2="1963.19067%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ac" x1="-964.539164%" x2="305.324758%" y1="-1877.16986%" y2="531.638356%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ad" x1="-5971.9075%" x2="2820.24%" y1="-7463.6%" y2="3526.5875%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ae" x1="-3626.20024%" x2="2128.73795%" y1="-3780.54791%" y2="2217.23789%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="af" x1="-3545.17742%" x2="2127.17742%" y1="-3793.28448%" y2="2270.26724%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ag" x1="-8571.16538%" x2="4955.21923%" y1="-4812.20217%" y2="2833.14565%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ah" x1="-921.592388%" x2="295.314187%" y1="-948.070803%" y2="335.454745%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ai" x1="-1521.4596%" x2="706.721231%" y1="-1247.46875%" y2="591.922626%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aj" x1="-678.258824%" x2="423.307164%" y1="-682.475952%" y2="429.068947%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ak" x1="-6036.96%" x2="2755.19%" y1="-6038.3275%" y2="2753.82%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="al" x1="-876.033667%" x2="359.821607%" y1="-805.490909%" y2="336.346753%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="am" x1="-6523.57663%" x2="4813.74946%" y1="-5038.58141%" y2="3749.13318%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="an" x1="-2645.94937%" x2="963.166315%" y1="-6683.46667%" y2="2334.12564%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ao" x1="-6631.98345%" x2="4705.34265%" y1="-5121.96932%" y2="3665.74527%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ap" x1="-1435.66843%" x2="1068.42563%" y1="-2846.04456%" y2="2010.54343%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aq" x1="-2633.78646%" x2="975.329221%" y1="-6654.88205%" y2="2362.70769%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ar" x1="-2206.3925%" x2="2189.6825%" y1="-2444.83034%" y2="2406.01103%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="as" x1="-5385.00363%" x2="1874.66412%" y1="-10484.884%" y2="3582.556%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="at" x1="-2391.91311%" x2="1397.1783%" y1="-5593.4125%" y2="3198.7375%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="au" x1="-2264.71662%" x2="1521.15732%" y1="-5306.3925%" y2="3485.7575%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="av" x1="-8124.26538%" x2="5402.11923%" y1="-4560.45%" y2="3084.89783%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aw" x1="-651.882139%" x2="479.56521%" y1="-1403.71323%" y2="934.962067%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ax" x1="-782.651586%" x2="579.099454%" y1="-1688.18577%" y2="1133.37245%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="ay" x1="-2808.00445%" x2="930.963547%" y1="-4874.39455%" y2="1519.89636%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="az" x1="-3080.27111%" x2="827.351111%" y1="-4651.45333%" y2="1209.98%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aA" x1="-17842.03%" x2="17326.57%" y1="-17824.13%" y2="17344.47%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aB" x1="-4927.80617%" x2="7466.4141%" y1="-2177.67416%" y2="3371.61183%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aC" x1="-20583.89%" x2="14584.71%" y1="-5842.07714%" y2="4206.09429%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aD" x1="-13953.96%" x2="21214.64%" y1="-2172.57143%" y2="3409.74603%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aE" x1="-13796.3%" x2="21372.3%" y1="-1986.00882%" y2="3185.84412%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aF" x1="-13888.17%" x2="21280.43%" y1="-2353.96379%" y2="3709.58793%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aG" x1="-9372.00909%" x2="6613.71818%" y1="-2958.36812%" y2="2138.53043%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aH" x1="-16384.5222%" x2="12067.4729%" y1="-4573.9%" y2="3418.96364%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aI" x1="-17462.5%" x2="5983.23333%" y1="-13777.5842%" y2="4732.21053%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aJ" x1="-7480.69%" x2="7500.95%" y1="-7483.33%" y2="7498.32%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aK" x1="-7021.27187%" x2="3968.91562%" y1="-20520.9909%" y2="11450.4636%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aL" x1="-9826.0913%" x2="5464.60435%" y1="-22671.15%" y2="12497.45%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aM" x1="-2964.13075%" x2="2873.3758%" y1="-3993.57709%" y2="3854.15587%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aN" x1="-2330.22879%" x2="2205.28384%" y1="-2914.60952%" y2="2667.70794%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aO" x1="-1407.98283%" x2="1424.97017%" y1="-1728.51863%" y2="1719.38333%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aP" x1="-1807.9102%" x2="1780.72245%" y1="-2740.56%" y2="2669.99385%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aQ" x1="-1472.82%" x2="1783.415%" y1="-4365.0426%" y2="5068.41814%">
- <stop stop-color="#FFFBCC" offset="0%"/>
- <stop stop-color="#FFC9D5" offset="100%"/>
- </linearGradient>
- <linearGradient id="aR" x1="-511.087979%" x2="436.292949%" y1="-431.133333%" y2="359.905%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- <linearGradient id="aS" x1="-2336.83483%" x2="1396.15506%" y1="-7055.5%" y2="4019.03333%">
- <stop stop-color="#FFE900" offset="18.75%"/>
- <stop stop-color="#FF0039" offset="100%"/>
- </linearGradient>
- </defs>
- <g fill="none" fill-rule="evenodd">
- <path d="M149.5 168.5c-.1 0-.1.1-.2.1l-3.3 1.5c-.2.1-.3.1-.5.2.7.3 1.4.5 2.2.5 1.6 0 3.1-.7 4.2-1.9 1-1.1 1.4-2.5 1.3-4-.1-.9-.3-1.7-.7-2.4l-1.6 4.4c-.3.6-.8 1.2-1.4 1.6zM178.7 206.1c-.1-.1-.2-.3-.2-.4l-2 2.7 3.1 1.1-.8-2.6c-.1-.2-.1-.5-.1-.8zM240.6 207.9h0zM168.5 200.6h-.2c-.2.2-.5.3-.7.4l-2.5.7.2.8c1.1.7 2 1.7 2.5 2.9l1 .4 3.7-5c.9-1.2 2.2-1.9 3.7-2l-.1-.3-2.5.7c-.2.1-.4.1-.6.1h-.2c-.2.2-.5.3-.7.4l-3.1.9c-.1-.1-.3 0-.5 0zM146.9 159.8c.1.1.2.1.3.2 0-.1.1-.2.1-.3-.1 0-.2 0-.4.1zM143.3 112.9c.2-.3.4-.6.7-.8l4.4-2.8-.1-.1-4.2 2.7c-.3.2-.6.6-.8 1zM142.2 166c.3-.5.7-1 1.3-1.2h.1l.2-.1-1.9-.7c.2.4.2.8.2 1.3 0 .2.1.4.1.7zM200.9 117.6c-1.9 0-3.2 1-3.9 1.7.7-.7 2-1.7 3.9-1.7zM206.8 158.8c-.1 0-.1.1-.2.1.1 0 .1 0 .2-.1zM174.5 190.8c.2-.1.4-.1.6-.1h.2c.2-.2.5-.3.7-.4.5-.2 1-.2 1.6-.2 2.4 0 4.5 1.5 5.2 3.9.1.3.1.5.1.8.2.2.3.5.4.7l.9 3.1c.1.3.1.5.1.8.2.2.3.5.4.7l.3 1.1c.3.2.6.4.9.7-1.7-3.9-2.3-8.6-1.6-13.7-1.1.2-2.3.3-3.5.3-3.4 0-6.8-1-9.7-2.8-.7-.5-1.4-1-2.1-1.6 1.7 2.3 3.5 4.6 5.3 6.7h.2z
M143.4 119.9c-1.1-.3-2-.8-2.8-1.6l-.7.5v.1l.7-.4c.8.7 1.7 1.2 2.8 1.4.4.2.9.2 1.3.2 1.4 0 2.7-.5 3.8-1.3-1.1.8-2.4 1.3-3.7 1.3-.5 0-.9-.1-1.4-.2zM198.7 120.8c.4-.4 1.2-.9 2.2-.9-1 0-1.8.5-2.2.9zM213.3 214.1c-1 0-2 0-3-.1 1.2 4.1 1.9 6.8 2.2 8.8 3.2-.1 6.5-.2 9.9-.2-.1-1.7-.1-3.8-.1-6.6l-7-2c-.6.1-1.3.1-2 .1zM275.4 138.9l.9-.3c-.1-.7.1-1.4.4-2.1-1.5 2-3.5 3.6-5.8 4.5.1 0 .1.1.2.1.2-.2.5-.3.7-.4 1.1-.7 2.4-1.3 3.6-1.8zM139.9 151.5c.5-.3 1.1-.5 1.7-.5.3 0 .7.1 1 .2.7.3 1.3.8 1.6 1.5.1.1.1.3.1.4 1-.3 2-.4 3-.4-2.2-4.2-4.8-9.7-7.4-15.2v14z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M227.5 226.4c.1.1.1.1.2.1 0 0-.1 0-.2-.1z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M228.2 231c-1.2 0-2.4-.4-3.4-1.2-1.3-1.1-2.1-2-2.4-7.2-3.4 0-6.7.1-9.9.2.6 3.3.2 4.4-.7 5.6-1 1.4-2.6 2.2-4.3 2.2-2.9 0-5.3-2.1-9.6-7-15.1 1.3-25.3 3.8-25.3 6.6 0 4.3 23.1 7.7 51.6 7.7s51.6-3.4 51.6-7.7c0-3.6-16.7-6.7-39.3-7.5-2.3 5.7-5.1 8.3-8.3 8.3z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M158.9 75.5h13.4c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-13.4c-.3 0-.6.2-.6.6.1.4.3.6.6.6zM155.4 85.7c0-.3-.2-.6-.6-.6h-13.4c-.3 0-.6.2-.6.6 0 .3.2.6.6.6h13.4c.3-.1.6-.3.6-.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M134.3 114.7l.6-.4.4-.2c0-.7.1-1.3.2-2 0-.1.1-.2.1-.4-.4-.9-.8-2-1.2-3v6h-.1zM131.8 102.3c-.1-.3 0-.6.3-.7.3-.1.6 0 .7.3l.3.9V67h-13c.7 2.2 1.8 5.2 3.1 8.8.1.3 0 .6-.3.7h-.2c-.2 0-.4-.1-.5-.4-1.3-3.8-2.4-7-3.2-9.2h-3.4c1.1 3.8 3.1 10.1 5.8 18.2l-.1-.5c1.6 4.4 8.9 24.1 11.5 31l.4-.3v-9.5c-.6-1.4-1.1-2.7-1.4-3.5zM121.2 91.2c-3.9-10.9-6.6-19.6-7.9-24.2H7.1v98.7c0 .6 0 .9.1 1 .1 0 .4.1 1 .1h124c.6 0 .9 0 1-.1 0-.1.1-.4.1-1v-38.4l-1.6 1-.4.2c-.3.2-.6.4-1 .6-.6.3-1.2.4-1.9.4h-.2c-2 0-3.8-1.2-4.6-3-1-2.2-.3-4.7 1.5-6 .2-.2.5-.3.7-.5l2.3-1.4 2.7-1.7c-2.5-6.4-7-18.6-9.6-25.7zm-25.6 27.1h-7.1c-.5 2.1-1.4 4-2.6 5.8l5.1 5.1c1.2 1.6 1.2 3.6.1 5.1-.8 1.1-2 1.7-3.4 1.7-.9 0-1.8-.3-2.5-.8L80 130c-1.8 1.1-3.8 1.8-5.8 2.3v7.1c0 2.3-1.9 4.2-4.2 4.2-2.3 0-4.2-1.9-4.2-4.2V132c-2-.4-4-1.2-5.8-2.3l-4.7 5.1c-.2.3-.5.6-.8.8-.7.6-1.6.8-2.5.8-1.3 0-2.6-.6-3.4-1.7-1.4-1.9-1-4.5.8-5.9l5-4.7c-1.1-1.8-1.8-3.7-2.3-5.8H45c-2.3 0-4.2-1.9-4.2-4.2 0-2.3 1.9-4.2 4.2-4.2h7.1c
.4-2.1 1.2-4 2.3-5.8l-5.1-4.7c-.9-.9-1.3-2-1.3-3.2 0-1.2.5-2.3 1.3-3.1.8-.8 2-1.3 3.1-1.3 1.2 0 2.3.5 3.1 1.3l4.7 5.1c1.8-1.1 3.7-1.8 5.8-2.3v-7.1c0-2.3 1.9-4.2 4.2-4.2 2.3 0 4.2 1.9 4.2 4.2v7.1c2.1.4 4 1.2 5.8 2.3l5.1-5.1c.8-.6 1.7-.9 2.6-.9.9 0 1.8.3 2.5.8.9.7 1.5 1.7 1.6 2.8.2 1.1-.1 2.2-.8 3.1l-5.1 5.1c1.1 1.8 1.8 3.8 2.3 5.8h7.1c2.3 0 4.2 1.9 4.2 4.2.2 2.4-1.7 4.3-4.1 4.3zm28.9-11.5c.3-.1.6.1.7.3l1.7 4.7c.1.3-.1.6-.3.7h-.2c-.2 0-.4-.1-.5-.4l-1.7-4.7c-.1-.2.1-.5.3-.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M70.3 103.8c-5.6 0-10.2 4.6-10.2 10.2s4.6 10.2 10.2 10.2 10.2-4.6 10.2-10.2c.1-5.6-4.5-10.2-10.2-10.2zM137.7 124.4l-.9.6.9 2.1v-2.7zM135.3 121.7s0 .1 0 0l2.4-1.5v-.1l-2.4 1.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M134.8 126.3l-.5.3v39.1c0 1.9-.3 2.2-2.2 2.2H8.1c-1.9 0-2.2-.3-2.2-2.2V65.8h107c-.2-.8-.4-1.4-.4-1.8-.1-.6.3-1.2.9-1.3.6-.1 1.2.3 1.3.9.1.4.3 1.2.6 2.2h3.4l-.8-2.4c-.1-.3.1-.6.4-.7.3-.1.6.1.7.4 0 0 .3 1 .9 2.7h14.5v39.7c.6 1.5 1.3 3.1 1.8 4.4.4-.9.9-1.6 1.6-2.3V49.7c0-2.3-1.9-4.2-4.2-4.2H6.8c-2.3 0-4.2 1.9-4.2 4.2v118c0 2 1.8 3.7 3.9 3.7h127.3c1 0 1.9-.4 2.6-.9-.8-1.6-1.2-3.4-1.3-5.3 0-1.5.9-2.7 2.2-3.3-.8-.8-1.1-2-.7-3.1l1.1-2.9v-23.4c-1-2.1-2-4.3-2.9-6.2zm-18.1-73.5c.3-.1.5 0 .6.3l1.9 5.3v.1c.1.3-.1.5-.4.6h-.1c-.2 0-.4-.1-.4-.3l-1.9-5.3c-.1-.4.1-.6.3-.7zm-1.7.4c0-.3.2-.5.5-.5s.5.2.5.5v5.3c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-5.3zm-1.5.5c0-.3.2-.5.5-.5s.5.2.5.5v4.8c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-4.8zm-1.4-1c0-.3.2-.5.5-.5s.5.2.5.5v5.8c0 .3-.2.5-.5.5s-.5-.2-.5-.5v-5.8zm-77.7 2.7c0-1.7 1.4-3.1 3.1-3.1h63.6c1.7 0 3.1 1.4 3.1 3.1v.3c0 1.7-1.4 3.1-3.1 3.1H37.5c-1.7 0-3.1-1.4-3.1-3.1v-.3zM22 52.7c1.6 0 2.9 1.3 2.9 2.9 0 1.6-1.3 2.9-2.9 2.9-1.6 0-2.9-1.3
-2.9-2.9.1-1.6 1.3-2.9 2.9-2.9zm-9.2 0c1.6 0 2.9 1.3 2.9 2.9 0 1.6-1.3 2.9-2.9 2.9-1.6 0-2.9-1.3-2.9-2.9.1-1.6 1.3-2.9 2.9-2.9z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M129.1 125.6c-.1.1-.2.2-.4.2-.2.1-.4.1-.6.1.2 0 .4 0 .6-.1.2 0 .3-.1.4-.2l4.1-2.5v-.1l-4.1 2.6z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M137.7 120.2v.1l2.2-1.5M139 115.8c-.2-.5-.2-1-.3-1.5 0 .5.1 1 .3 1.5z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M133.8 171.4H6.5c-2.2 0-3.9-1.6-3.9-3.7v-118c0-2.3 1.9-4.2 4.2-4.2h126.6c2.3 0 4.2 1.9 4.2 4.2V107.6c.6-.7 1.4-1.3 2.2-1.8V81.2h27.6c.1-.2.2-.4.2-.6 0-.2.3-.2.3 0 .1.2.1.4.2.6h14.5c.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.1-1.1-1.1h-42.8V49.7c0-3.6-2.9-6.5-6.5-6.5H6.8c-3.6 0-6.5 2.9-6.5 6.5v118c0 3.3 2.8 5.9 6.1 5.9h127.3c1.4 0 2.7-.5 3.7-1.2-.4-.6-.8-1.3-1.1-1.9-.7.5-1.6.9-2.5.9z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M137.7 127.1l-.9-2.1-1.9 1.2c.9 2 1.9 4.1 2.9 6.3V156l1.2-3.2c.2-.5.6-1 1-1.3v-14.1c2.6 5.5 5.2 11 7.4 15.2h.4c.7 0 1.4.1 2.1.2-3.1-6.1-6.1-12.1-8.7-17.9-.2-.5-.7-1.5-1.2-2.7V123l-2.2 1.4v2.7h-.1z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M134.3 65.8h-14.5c-.6-1.7-.9-2.7-.9-2.7-.1-.3-.4-.4-.7-.4-.3.1-.4.4-.4.7l.8 2.4h-3.4c-.3-1-.5-1.8-.6-2.2-.1-.6-.7-1-1.3-.9-.6.1-1 .7-.9 1.3.1.4.2 1 .4 1.8H6v99.8c0 1.9.3 2.2 2.2 2.2h124c1.9 0 2.2-.3 2.2-2.2v-39.1l-1.1.7v38.4c0 .6 0 .9-.1 1-.1 0-.4.1-1 .1H8.2c-.6 0-.9 0-1-.1 0-.1-.1-.4-.1-1V67h106.2c1.3 4.6 4 13.3 7.9 24.2h.1c2.5 7.2 7.1 19.3 9.6 25.7l2-1.2c-2.7-6.9-9.9-26.7-11.5-31l.1.5c-2.8-8.1-4.7-14.4-5.8-18.2h3.4c.8 2.2 1.8 5.4 3.2 9.2.1.2.3.4.5.4h.2c.3-.1.4-.4.3-.7-1.3-3.6-2.3-6.6-3.1-8.8h13v35.8l-.3-.9c-.1-.3-.4-.4-.7-.3-.3.1-.4.4-.3.7.3.8.8 2.1 1.4 3.5v9.5l.2-.1.9-.6v-6c.4 1.1.8 2.1 1.2 3l.6-1.8c-.5-1.3-1.2-2.9-1.8-4.4V65.8h-.1zM12.8 58.4c1.6 0 2.9-1.3 2.9-2.9 0-1.6-1.3-2.9-2.9-2.9-1.6 0-2.9 1.3-2.9 2.9.1 1.7 1.3 2.9 2.9 2.9zM22 58.4c1.6 0 2.9-1.3 2.9-2.9 0-1.6-1.3-2.9-2.9-2.9-1.6 0-2.9 1.3-2.9 2.9.1 1.7 1.3 2.9 2.9 2.9zM37.5 58.8h63.6c1.7 0 3.1-1.4 3.1-3.1v-.3c0-1.7-1.4-3.1-3.1-3.1H37.5c-1.7 0-3.1 1.4-3.1 3.1v.3c0 1.7 1.4 3.1 3
.1 3.1z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M95.6 109.8h-7.1c-.4-2.1-1.2-4-2.3-5.8l5.1-5.1c.7-.9 1-2 .8-3.1-.2-1.1-.7-2.1-1.6-2.8-.7-.6-1.6-.8-2.5-.8-.9 0-1.8.3-2.6.9l-5.1 5.1c-1.8-1.1-3.7-1.8-5.8-2.3v-7.1c0-2.3-1.9-4.2-4.2-4.2-2.3 0-4.2 1.9-4.2 4.2v7.1c-2.1.4-4 1.2-5.8 2.3l-4.7-5.1c-.8-.8-2-1.3-3.1-1.3-1.2 0-2.3.5-3.1 1.3-.8.8-1.3 2-1.3 3.1 0 1.2.5 2.3 1.3 3.2l5.1 4.7c-1.1 1.8-1.8 3.7-2.3 5.8H45c-2.3 0-4.2 1.9-4.2 4.2 0 2.3 1.9 4.2 4.2 4.2h7.1c.4 2.1 1.2 4 2.3 5.8l-5 4.7c-1.9 1.4-2.2 4.1-.8 5.9.8 1.1 2 1.7 3.4 1.7.9 0 1.8-.3 2.5-.8.3-.2.6-.5.8-.8l4.7-5.1c1.8 1.1 3.7 1.8 5.8 2.3v7.4c0 2.3 1.9 4.2 4.2 4.2 2.3 0 4.2-1.9 4.2-4.2v-7.1c2.1-.4 4-1.2 5.8-2.3l5.1 5.1c.7.6 1.6.8 2.5.8 1.3 0 2.6-.6 3.4-1.7 1.1-1.5 1.1-3.6-.1-5.1l-5.1-5.1c1.2-1.8 2.1-3.7 2.6-5.8h7.1c2.3 0 4.2-1.9 4.2-4.2.2-2.3-1.7-4.2-4.1-4.2zm-25.3 14.5c-5.6 0-10.2-4.6-10.2-10.2s4.6-10.2 10.2-10.2 10.2 4.6 10.2 10.2c.1 5.6-4.5 10.2-10.2 10.2zM115.3 21.3h1.1c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-1.1c-.3 0-.6.2-.6.6 0 .4.3.6.6.
6zM126.4 21.3h4.5c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-4.5c-.3 0-.6.2-.6.6.1.4.3.6.6.6zM34.1 20.6h13.4c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6H34.1c-.3 0-.6.2-.6.6.1.4.3.6.6.6zM82 8.5c.1.1.3.2.4.2.1 0 .2 0 .3-.1.2-.2.3-.5.1-.8-.7-.9-1.5-1.8-2.3-2.5-.2-.2-.6-.2-.8 0-.2.2-.2.6 0 .8.8.7 1.6 1.5 2.3 2.4zM109.7 21c.1.2.3.3.5.3h.6c.3 0 .6-.2.6-.6 0-.4-.2-.6-.6-.6h-.3c-.2-.4-.6-1.2-1.2-2.1-.2-.3-.5-.3-.8-.2-.3.2-.3.5-.2.8.9 1.3 1.3 2.2 1.4 2.4zM59.6 4.4c.1 0 .2 0 .3-.1 1.6-1.2 3.7-2.1 6.4-2.4 2.1-.3 4-.2 5.9.2.3.1.6-.1.7-.4.1-.3-.1-.6-.4-.7-2-.4-4.1-.5-6.3-.2-2.9.4-5.2 1.3-6.9 2.7-.2.2-.3.5-.1.8 0 0 .2.1.4.1zM91.5 7.8c1.3-.4 2.7-.5 4.3-.2 2.3.4 4.8 1.8 7.2 4.1.1.1.2.2.4.2.1 0 .3-.1.4-.2.2-.2.2-.6 0-.8-2.6-2.5-5.2-3.9-7.7-4.4-1.8-.3-3.4-.3-4.9.2-.3.1-.4.4-.4.7.1.4.4.5.7.4zM84.9 13c.1.2.3.3.5.3.1 0 .2 0 .2-.1.3-.1.4-.5.3-.7-.1-.3-.3-.6-.5-1-.1-.3-.5-.4-.8-.2-.3.1-.4.5-.2.8.2.3.3.7.5.9zM56.2 14.5c.1 0 .1 0 0 0 .4 0 .6-.3.6-.6 0-.4-.1-.7-.1-1.1 0-.3-.3-.5-.6-.5H56c-.2.1-.4.3-.4.6 0 .4.1.8.1 1.1 0 .1 0 .
1.1.2 0 .2.2.3.4.3zM58.3 20.4c.1-.2.1-.4 0-.5 0 0-.3-.7-.6-1.7-.1-.3-.4-.5-.7-.4-.3.1-.5.4-.4.7.1.4.3.7.4 1h-.7c-.2.1-.4.3-.4.5 0 .3.2.6.6.6H57.9c.2 0 .3-.1.4-.2z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M33.7 25.5h97.9c.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.1-1.1-1.1h-22.8c-2-3.7-7.1-11.7-13.4-12.9-8.4-1.6-10 6.7-10 6.7S79.8 2.6 65.8 4.5c-6.5.9-9 4.2-9.8 7.8h.1c.3 0 .6.2.6.5 0 .4.1.7.1 1.1 0 .3-.2.6-.5.6h-.1c-.2 0-.4-.1-.5-.3-.1 1.9.1 3.8.5 5.3H57c-.1-.3-.2-.6-.4-1-.1-.3.1-.6.4-.7.3-.1.6.1.7.4.3 1 .6 1.7.6 1.7.1.2.1.4 0 .5-.1.2-.3.3-.5.3h-1.3c.4 1.5.9 2.5.9 2.7H33.7c-.6 0-1.1.5-1.1 1.1 0 .5.5 1 1.1 1z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M205.5 42.3c.1 0 .3-.1.4-.2.6-.7 1.5-1.1 2.6-1.4.3-.1.5-.4.4-.7-.1-.3-.4-.5-.7-.4-1.3.4-2.4.9-3.1 1.7-.2.2-.2.6 0 .8.1.2.3.2.4.2zM212.7 40.5c.4.1.7.2 1 .3h.2c.2 0 .5-.1.5-.4.1-.3-.1-.6-.4-.7-.4-.1-.8-.2-1.1-.3-.3-.1-.6.1-.7.4 0 .4.2.7.5.7zM238.3 50.7h3.3c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-3.3c-.3 0-.6.2-.6.6 0 .4.3.6.6.6zM221.2 46.7c.3-1 1.2-3.2 3.8-3.2.3 0 .7 0 1 .1 1.6.3 3.2 1.3 4.8 3 .2.2.6.2.8 0 .2-.2.2-.6 0-.8-1.8-1.9-3.6-3-5.4-3.4-.4-.1-.8-.1-1.2-.1-3.5 0-4.6 3-4.9 4-.1.3.1.6.4.7h.2c.1 0 .2 0 .3-.1.1.1.2 0 .2-.2zM205.5 50.6c.1-.2.1-.4 0-.5l-.1-.1c-.1-.3-.4-.4-.7-.3-.1 0-.1.1-.2.1h-12.7c-.3 0-.6.2-.6.6 0 .3.2.6.6.6H205c.2-.1.4-.2.5-.4z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M191.7 54.6h54.4c.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.1-1.1-1.1h-12.9c-1.1-2.1-3.9-6.5-7.4-7.2-2.4-.5-3.8.5-4.6 1.6 0 .1-.1.2-.2.3-.6 1-.8 1.9-.8 1.9s-3.1-8-10.9-7c-5.7.8-6 5-5.4 7.8h.7s.1-.1.2-.1c.3-.1.6 0 .7.3l.1.1c.1.2.1.4 0 .5-.1.2-.3.3-.5.3h-.9c.2.9.5 1.4.5 1.5h-13.2.2c-.6 0-1.1.5-1.1 1.1-.1.6.4 1.1 1.1 1.1z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M107.4 231.1c-4 0-5.8-2.5-6.2-4.6l-.1-.5c-7 .5-12.1 2.1-12.1 4 0 2.3 7.3 4.1 16.3 4.1s16.3-1.8 16.3-4.1c0-1.4-2.7-2.6-6.7-3.3-.2.7-.6 1.3-1 1.9-2 2.4-5.7 2.5-6.5 2.5z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M227.3 225.7c-.1-.3-.1-.6-.1-1 0 .4 0 .7.1 1zM228 226.5h-.1.1zM226.9 216v0zM199.5 218.8c.3.3.5.6.8.9-.3-.3-.6-.6-.8-.9z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M237.7 208.7c1-.3 1.9-.5 2.8-.8h.1c6.5-2 12.4-4.7 17.4-7.6-7.2 3.5-15 5-20 5.6 0 1-.1 1.9-.3 2.8z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M241.9 163c.1-.2.2-.4.2-.6 0 .2-.1.4-.2.6zM234.1 70.2c-.3 0-.5-.1-.8-.1-.3 0-.7 0-1 .1.3 0 .7-.1 1-.1.2 0 .5 0 .8.1zM232 70.2c-2.5.4-4.6 2.2-5.5 4.5.9-2.3 3-4 5.5-4.5zM219.1 84.9c0-.1 0-.1 0 0 0-.1 0-.1 0 0zM221.2 79.8c.5-.5 1.1-.9 1.7-1.3-.6.3-1.2.8-1.7 1.3zM226 76.7c-.4.3-.7.7-1 1-.7.1-1.4.4-2.1.7.6-.3 1.3-.6 2.1-.7.3-.3.7-.6 1-1zM207.3 226.3s0-.1 0 0h-.1c0-.1.1 0 .1 0zM263.6 172.3c-.4.1-.8.3-1.2.4.4-.1.8-.2 1.2-.4zM248.7 65.6h.8c-.3.1-.5 0-.8 0zM237.3 69.6c1.3-.5 2.6-.9 4-1.2-1.4.4-2.7.8-4 1.2zM189.2 186.5v0zM252.5 139.1h-1c.3.1.6.1 1 0zM272.6 164c-.5 1.3-1.7 3.4-3.8 5.3 2.2-2 3.3-4.1 3.8-5.3zM262.6 67.9h-.6.6zM219.1 84.9c0 .3 0 .7.1 1-.2.3-.3.6-.5 1 .2-.3.3-.7.5-1 0-.3-.1-.6-.1-1zM202.8 96.1c.1.1.1.2.2.2.1.1.3.2.4.3-.1-.1-.3-.2-.4-.3-.1 0-.2-.1-.2-.2zM202.5 90.4c-.1-.1-.2-.1-.2-.2-.1-.1-.1-.2-.2-.3 0 .1.1.3.2.3l.2.2zM259.2 140.3h-.3.3zM277.1 177.5c-.1 0-.1 0 0 0-.1 0-.1 0 0 0-.1.1-.1 0 0 0zM274.7 180c0-.1 0-.1 0 0-.2 0-.4-.1-.6-.1.2 0
.4 0 .6.1z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M235.8 218c-.5 1.4-1.1 3.2-2 4.9-1.5 3.1-3.5 5.9-5.8 5.9-.7 0-1.3-.2-1.8-.6-.6-.5-1.2-.9-1.4-5.4-.1-1.5-.1-3.5-.1-6.2-.5 0-1-.1-1.6-.2l-.7-.2c0 2.8 0 4.9.1 6.6.2 5.1 1 6.1 2.4 7.2 1 .8 2.1 1.2 3.4 1.2 3.2 0 6-2.7 8.4-8.1.6-1.3 1.2-2.8 1.7-4.4.7-2 1.3-4.8 1.9-8.2-.9.3-1.9.5-2.9.8-.5 2.6-1.1 4.9-1.6 6.7zM265 198.7c-2.4 1.6-5 3.1-7.8 4.7 1.6-.7 3.1-1.4 4.6-2.3h.2c3.7 0 7.1-.5 10.2-1.4-1.7-.2-3.3-.6-4.7-1.3-.8.1-1.6.2-2.5.3z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M284.9 173c.8-.7 1.8-1.2 2.9-1.2.4 0 .7 0 1 .1h.1c-.7-.6-1.5-1.1-2.4-1.2-.3-.1-.6-.1-.8-.1-.8 0-1.6.2-2.3.6l-.2.2c.6.6 1.2 1.1 1.7 1.6zM287.7 188c.3-.6.6-1.1.9-1.7-.4.3-.8.6-1.3.8.1.4.3.6.4.9z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M266.3 154.9c-1.2.6-2.1.9-2.7 1.2-.3.1-.6.2-.8.3-.2.1-.3.1-.3.1-.2.1-.4.1-.7.1-.6 0-1.2-.3-1.7-.7-6.4 3.3-13.7 6.8-16.1 7.9-.1.2-.2.4-.2.6.8-.1 1.7-.1 2.5-.1 3.5 0 6.8.6 9.7 1.8 2.7 1.1 5 2.5 7 4.3 6.4-2.4 7.9-7.8 7.9-8 .2-.9.9-1.5 1.8-1.7h.3c.8 0 1.5.4 1.9 1.1.1.2 1.7 2.9 2.3 7.1 1 .2 2 .6 2.9 1-.5-5.5-2.5-9.1-2.9-9.7-.9-1.4-2.4-2.3-4-2.3-.2 0-.5 0-.7.1-1.9.3-3.4 1.7-3.9 3.5 0 .1-1 3.6-5.1 5.7-1.9-1.4-4-2.7-6.4-3.7-1.3-.6-2.8-1-4.2-1.3 5.1-2.5 10.1-5 13.8-7.1-.1-.1-.1-.2-.2-.2 0-.1-.1-.1-.2 0z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M265.3 137.7h.5-.5zM246.3 166.4h-.3H246.3z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M284.3 126.3l1.2-1.8c4.6-2.2 7.4-7.2 6.8-12.3v-.2c1.4-2.3 2-5 1.7-7.7-.3-2.4-1.3-4.6-2.8-6.4-.3-2.1-.7-4.1-1.3-6.1v-1c0-4-2-7.7-5.3-9.9-2.8-4.1-6.5-7.8-10.6-10.6-1.8-4.4-6.2-7.3-11-7.3-1.4 0-2.9.3-4.3.8-.8-.2-1.6-.4-2.4-.5-2.1-1.6-4.7-2.5-7.3-2.5-.5 0-1 0-1.5.1-2.2.3-4.4 1.2-6.1 2.6-2.1.4-4.2 1.1-6.2 1.9-.6-.1-1.1-.1-1.7-.1-5.2 0-9.9 3.5-11.4 8.4-4.4 1.8-7.4 6.2-7.4 11.1v.2c-.2.5-.4 1-.6 1.4-.4.4-.8.7-1.2 1.2-.1-2.2-1.1-4.2-2.2-6.3-.2-.4-.4-.8-.6-1.3-.9-1.8-2.7-3-4.6-3-3.8 0-5.5 3.8-6.2 5.3-1 2.1-2.3 5.9-1.3 9-.4 3.7.2 6.5 1.8 8.2.1.6.2 1.3.4 1.8-8.4 3.3-26.4 11.2-32.7 19.4-1.9 2.4-2.2 5.7-1 9.8 2.6 8.9 10.6 18.2 15.5 20.1 6.2 2.3 14.3 3.8 22.5 4.3-4.1 1.6-7.4 2.9-10 4.1.6.7 1.1 1.4 1.6 2.2 2.6-1.1 5.7-2.3 9.5-3.9 1.9-1.6 3.9-3.1 6-4.5h-2c-9.9 0-19.7-1.6-27.1-4.3-5.2-1.9-12.1-11.9-14-18.4-.9-3.3-.7-5.8.6-7.6 5.6-7.3 22.8-15.2 33.8-19.4-.6-1.4-.9-3-1.1-4.6l-.1-.1c-1.4-1.1-1.9-3.5-1.5-7.1-1.1-2.3.3-6 1.1-7.6 1.2-2.6 2.4-3.8 3.9-3.8 1 0 1
.9.6 2.4 1.6.2.5.5.9.7 1.3 1.2 2.3 2.2 4.3 1.8 6.3.7 1 1.3 2.1 1.4 3.4.7.6 1.3 1.1 1.9 1.7-.1-.3-.1-.7-.1-1.1 0-2 1-3.8 2.6-4.8.3-.8.7-1.7 1.1-2.5v-.7c0-4.3 2.9-8 7-9.1l.1-.1c.8-4.4 4.7-7.8 9.3-7.8.7 0 1.3.1 2 .2 2.3-1 4.6-1.7 7-2.1 1.5-1.4 3.3-2.2 5.3-2.5.4 0 .8-.1 1.2-.1 2.3 0 4.5.9 6.2 2.4 1.2.2 2.4.5 3.6.8 1.3-.6 2.7-.9 4.1-.9 4.1 0 7.7 2.6 9 6.4 4.3 2.8 8 6.5 10.8 10.8 2.8 1.7 4.6 4.8 4.6 8.1 0 .4 0 .8-.1 1.3.7 2.3 1.2 4.6 1.5 7 1.5 1.5 2.5 3.4 2.7 5.6.3 2.5-.4 4.9-1.8 6.8.1.4.2.7.2 1.1.5 4.3-2 8.5-6 10-.6 1-1.2 1.9-1.8 2.8-.5 3.2-2.7 5.8-5.7 6.9-1.6 4.5-5.8 7.5-10.7 7.5-.5 0-1 0-1.5-.1-1 1.6-2.8 2.7-4.9 2.7-1.4 0-2.7-.5-3.7-1.3-1.3.2-2.7.2-4 .2-.4 1.9-1 3.9-1.6 5.8 8.1-1.9 16.9-3.8 18-3.9h.8c.1-.1.3-.2.4-.3l.6-.5c.2-.2.4-.3.6-.4.4-.3.8-.6 1.2-.8-.1 0-.1-.1-.2-.1 2.3-1 4.3-2.5 5.8-4.5.2-.4.4-.7.7-.9.3-.5.5-.9.8-1.4 2.8-2 5.1-4.9 5.8-8.4z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M287.7 101.9c-.4-.6-.9-1.1-1.4-1.5.6.4 1 .9 1.4 1.5zM286.9 111.2c.2.6.4 1.2.5 1.9 0 .2 0 .5.1.7 0-.2 0-.5-.1-.7-.1-.7-.3-1.3-.5-1.9zM289 106c0-.3 0-.6-.1-.9 0-.4-.1-.7-.2-1.1.1.3.2.7.2 1.1.1.3.1.6.1.9zM263.6 137.5c-.3-.1-.7-.1-1-.2h-.1.1c.3.1.6.1 1 .2zM259.6 140.2c.4-.1.7-.2 1.1-.4-.4.2-.7.4-1.1.4zM188.5 192.2v0zM218.2 88.3c-.2.4-.4.9-.5 1.3-.2.1-.3.1-.5.2.1-.1.3-.2.5-.2.1-.4.3-.9.5-1.3zM186 170.6c0-.1-.1-.1-.1-.2 0 .1 0 .2.1.2zM215.8 97.7c0-.4.1-.9.2-1.3-.1.4-.1.8-.2 1.3z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M207.5 230.7c1.7 0 3.3-.8 4.3-2.2.9-1.2 1.3-2.3.7-5.6-.3-2-1.1-4.8-2.2-8.8 1 0 2 .1 3 .1h2.1l-3.8-1.1-4.8-.6c1.6 5.2 2.4 8.5 2.9 10.6.6 3.2.3 3.7-.2 4.3-.5.8-1.4 1.2-2.3 1.2-1.7 0-3.4-1.3-6.6-4.9-.8-.9-1.8-2-2.9-3.3-3.3-3.8-5.6-8.6-7.1-12.7-1-.5-2-1.1-2.9-1.7 1.6 4.8 4.3 11 8.4 15.8.6.8 1.3 1.5 1.8 2.1 4.4 4.8 6.7 6.8 9.6 6.8zM185.9 201.9c1.2.9 2.4 1.7 3.6 2.5l-.3-.9c-2.1-3-3.1-7-3-11.4-.4-.3-.8-.5-1.2-.8-.2-.2-.3-.5-.1-.8.2-.2.5-.3.8-.1.2.1.4.3.6.4.1-1 .2-2.1.3-3.2-.8.3-1.6.5-2.4.6-.5 5.1 0 9.8 1.7 13.7z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M206.8 158.8c.5-.4 1-.9 1.6-1.3-.6.4-1.1.9-1.6 1.3z"/>
- <path fill="url(#a)" fill-rule="nonzero" d="M237.4 200.4c-.1 1-.2 2-.2 2.9 4.1-.4 10.5-1.6 17.1-4.5 1.7-.8 3.3-1.6 4.7-2.6-.7-.2-1.4-.6-1.9-1.1-3.5 1.9-8.3 4-14.2 4.8-1.9.2-3.7.4-5.5.5z"/>
- <path fill="url(#b)" fill-rule="nonzero" d="M268.8 169.3c1.6-.6 3.4-.9 5.1-.9.4 0 .7 0 1.1.1-.4-2.3-1.1-4-1.5-4.9-.1-.3-.3-.5-.3-.6v-.1s0 .1-.1.3c0 .1-.1.2-.1.3-.1.1-.1.3-.2.5-.7 1.2-1.8 3.3-4 5.3z"/>
- <path fill="url(#c)" fill-rule="nonzero" d="M274.9 176.9c-.3 0-.6-.1-.9-.1-2.6 0-5 1.4-6.3 3.6-.3.5-.7 1-1.1 1.4l1.6.4c0-.1.1-.2.2-.3l.9-.7c.2-.2.6-.1.8.1.2.2.1.6-.1.8l-.5.4.9.2c.8.2 1.5.6 2 1.2.7-1.4 1.3-2.8 1.8-4.1.2-1 .5-1.9.7-2.9z"/>
- <path fill="url(#d)" fill-rule="nonzero" d="M189.9 156.3c-2.8-1.8-6-2.6-9.1-2.6-5.6 0-11.1 2.8-14.3 7.8-5 7.9-2.7 18.3 5.2 23.3 2.8 1.8 6 2.6 9.1 2.6 2.1 0 4.2-.4 6.1-1.1.3-1.5.7-3.1 1.2-4.6-.5 0-1-.1-1.5-.4-1.5-.8-2.1-2.6-1.3-4s2.6-1.9 4.1-1.1c.3.2.5.3.7.5.6-1.3 1.3-2.6 2-3.9-3.2.4-4.2.5-4.7.5h-.6c-1-.1-2.3-.6-2.9-1.8-.5-.8-.7-2.3.5-4.3.5-.7 1.1-1.9 10.6-5.9-1.4-1.9-3-3.7-5.1-5zm-14.1 2.1c1.7 0 3.1 1.3 3.1 2.9 0 1.6-1.4 2.9-3.1 2.9-1.7 0-3.1-1.3-3.1-2.9 0-1.6 1.4-2.9 3.1-2.9zm-8.7 10.8c.8-1.4 2.6-1.9 4.1-1.1 1.5.8 2.1 2.6 1.3 4s-2.6 1.9-4.1 1.1c-1.4-.8-2.1-2.6-1.3-4zm13.4 12.7c-.6 1-1.9 1.5-3.3 1.2l1.7 1.7c.2.2.2.6 0 .8-.1.1-.3.2-.4.2-.1 0-.3 0-.4-.1-3.1-2.9-6.2-6.2-9.2-9.8-.2-.2-.2-.6.1-.8.2-.2.6-.2.8.1 1.2 1.5 2.5 2.9 3.7 4.3 0-.4.1-.8.3-1.1.4-.7 1.1-1.2 2-1.3l-.9-1.1c-.2-.2-.2-.6.1-.8.2-.2.6-.2.8.1l1.6 1.9c.4.1.8.2 1.1.4 1.9.9 2.8 2.9 2 4.3zm8.2-19.6c-.8 1.3-2.6 1.5-4 .7-1.4-.9-1.9-2.6-1.1-3.9.8-1.3 2.6-1.5 4-.7 1.4.9 1.9 2.7 1.1 3.9z"/>
- <path fill="url(#e)" fill-rule="nonzero" d="M204.7 160.7c-9.4 3.5-17.8 8.2-17.9 8.3-.1.1-.2.1-.3.1-.2 0-.4-.1-.5-.3-.2.3-.3.6-.3.9v.6c0 .1 0 .2.1.2 0 .1.1.1.1.2.4.5 1.2.5 1.2.5H188c.2 0 .4 0 .6-.1.3 0 .6-.1.9-.1h.2c.3 0 .6-.1.9-.1h.2c.4 0 .7-.1 1.1-.2h.1c.9-.1 2-.3 3.1-.5 2.9-4 5-6.2 5.1-6.4.2-.2.6-.2.8 0 .1.1.2.2.2.4 1.1-1.2 2.2-2.3 3.5-3.5z"/>
- <path fill="url(#f)" fill-rule="nonzero" d="M187.9 167.1c-.1 0-.1.1-.2.1s-.1.1-.2.1c1.1-.6 2.7-1.4 4.8-2.5-1.8.9-3.4 1.7-4.4 2.3z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M213.3 204.7c-.7-.2-1.3-.7-1.7-1.2l-.4 1.3 1.9.5c.3-.1.7-.2 1-.3l-.8-.3z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M188.7 193.1c0 .1-.1.1-.1.1v1.6c0 .4.1.8.2 1.2 0 .2.1.4.1.5l.3 1.2c0 .2.1.3.1.5.1.4.3.8.4 1.2v.1c.8 1.6 2.9 4.5 8.2 5.4.3.1.5.3.4.6-.1.3-.3.5-.5.5h-.1c-2.7-.5-4.6-1.5-6-2.5l.3.9c.2.5.3 1 .5 1.5 1.4.7 2.7 1.2 4.1 1.7 2.4.8 4.8 1.4 7.2 1.9 0-.1-.1-.3-.1-.4 0-.1-.1-.3-.1-.4-.2-.5-.4-1-.5-1.5-.1-.3-.2-.6-.3-.8h.2c0-.6 0-1.1.2-1.7l1.2-4.1c-.7-.2-1.5-.4-2.2-.6-.3-.1-.5-.4-.4-.7.1-.3.4-.5.7-.4.7.2 1.5.4 2.2.6l4.1-14.3c.7-2.4 2.9-4 5.4-4 .5 0 1 .1 1.6.2l15.3 4.4c2-6.2 3.9-13.4 9.5-22.5.5-1.1 1.1-2.1 1.4-2.4.6-.4 12.5-5.9 18-8.5l.1-.1c.1-.2.3-.4.5-.7.3-.5.9-1.3 1.8-2.3.8-1 1.8-2 2.7-2.9l.6-.6c-3.9.8-12 2.6-19.4 4.4.4-.9.7-1.7 1-2.6.1-.2.1-.4.2-.6.5-1.4.9-2.9 1.3-4.3 1-5.6.1-9.3.1-9.4-.1-.3.1-.5.3-.6-.3-2.1-.8-3.8-1.6-5.3-3.1-1-5.4-3.9-5.4-7.4v-.1c-.8-1-1.4-2-2-2.9-.4-.4-.9-.9-1.3-1.4-2.1-2.7-3.1-5.6-3.5-7.3-.2-.4-.3-.7-.5-1.1-.7-.4-1.3-1-1.8-1.6-.8-.6-1.6-1.4-2-2.3-.5-1.3-.7-2.3-.6-3.2l-3.2-.1c-.2 0-.4-.2-.5-.4-.7 0-1.4 0-2.1.1-.4.6-1 1.2-1.7 1.5v
.1c0 .3-.2.6-.5.6h-.6c-1.5 0-2.7-.8-3.2-1.2l-1.4.4c1.1 1.2 2.1 2.8 2.1 4.8 0 4.6-4.6 6.2-4.7 6.2h-.2c-.2 0-.4-.1-.5-.3-.8.2-1.6.3-2.5.1-.2 0-.5-.2-.7-.3h-.2c-.2 0-4.3-.9-6.1-6.6-.1-.3 0-.5 0-.7-.2.1-.4.1-.6.2-.2.1-.3.1-.5.2-.3.1-.5.2-.8.3-.2.1-.4.1-.5.2-.3.1-.5.2-.8.3-.2.1-.4.1-.5.2-.3.1-.5.2-.8.3-.2.1-.4.2-.6.2-.3.1-.5.2-.8.3-.2.1-.4.2-.6.2-.3.1-.5.2-.8.3l-.6.3c-.3.1-.5.2-.8.3l-.6.3c-.3.1-.5.2-.8.3l-.6.3c-.5.2-.9.4-1.4.6-.3.1-.5.2-.8.3-.2.1-.4.2-.7.3-.2.1-.5.2-.7.3-.2.1-.5.2-.7.3-.2.1-.5.2-.7.3-.2.1-.4.2-.7.3-.2.1-.5.2-.7.3l-.6.3c-.2.1-.5.2-.7.4l-.6.3c-.2.1-.5.2-.7.4l-.6.3c-.2.1-.5.3-.7.4l-.6.3c-.2.1-.5.3-.7.4-.2.1-.4.2-.5.3-.3.1-.5.3-.7.4-.2.1-.3.2-.5.3-.3.2-.7.4-1 .6-.1.1-.2.1-.3.2-.3.2-.7.4-1 .6-.1.1-.2.2-.4.2-.2.2-.5.3-.7.5-.1.1-.3.2-.4.3-.2.1-.4.3-.6.4-.1.1-.3.2-.4.3-.2.1-.4.3-.6.4-.1.1-.3.2-.4.3-.2.1-.4.3-.5.4-.1.1-.3.2-.4.3-.2.1-.3.3-.5.4-.1.1-.2.2-.4.3-.2.1-.3.3-.5.4l-.3.3c-.2.1-.3.3-.4.4l-.3.3c-.2.2-.3.3-.4.5-.1.1-.1.2-.2.2-.2.2-.4.5-.6.7-.3.4-.5 1-.7 1.6v.1c.5 0 .9.4 1 .8
0 .1 6.4 15.3 12 18.1 5.1 2.5 24.4 4.5 39.2 3.2 9-1.8 12.1-3.7 19.4-11 2.3-2.3 3.5 6.1-.8 10.1-3.6 3.4-12.9 4.7-23.1 4.7-.8.4-1.6.9-2.4 1.4-.1.1-.3.2-.4.3-.6.3-1.1.7-1.6 1-.2.1-.4.3-.6.4-.8.5-1.6 1.1-2.3 1.6-.3.3-.7.5-1 .8-.4.3-.7.6-1.1.8-.5.4-1.1.9-1.6 1.3-.1 0-.1.1-.2.1-4.6 1.8-10.2 4-14.3 5.9-2.1 1-3.8 1.9-4.8 2.5-.6.4-1.1.7-1.2 1-.1.1-.1.3-.2.4.1.2.3.3.5.3.1 0 .2 0 .3-.1.1-.1 8.5-4.8 17.9-8.3-1.2 1.1-2.4 2.3-3.5 3.5 0 .2 0 .3-.2.4 0 0-2.4 2.4-5.4 6.8-.2.3-.4.6-.6.8-.1.2-.2.4-.3.5-.4.6-.7 1.2-1 1.8-.1.2-.3.5-.4.7-.3.5-.6 1.1-.8 1.6-.1.3-.2.5-.4.8-.2.5-.5 1-.7 1.5-.1.3-.2.6-.3.8-.2.5-.4 1-.5 1.4-.1.3-.2.6-.3.8-.2.5-.3.9-.4 1.4-.1.3-.2.6-.2.8-.1.5-.2.9-.3 1.4 0 .2-.1.4-.1.6v.2c-.1.5-.2.9-.2 1.3 0 .3-.1.5-.1.8-.1.4-.1.9-.1 1.3 0 .2 0 .5-.1.7V191.3c.5 1.2.5 1.5.4 1.8zm7.3-73.4c.5-.8 1.8-2 3.7-2.4 0-.1-.1-.2-.1-.3v-3c0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3v3c0 .1 0 .2-.1.3 1.9.4 3.2 1.6 3.7 2.4.5.8.3 1.8-.5 2.3-.3.2-.6.3-.9.3-.5 0-1.1-.3-1.4-.7-.1-.1-.8-1.1-2.2-1.1-1.4 0-2.1 1.1-2.2 1.1
-.5.8-1.5 1-2.3.5-.6-.6-.8-1.7-.3-2.4zm12 18.1c0 .1-.1.1-.1.2l-.4.3c-.9.8-1.8 1.4-2.6 1.9-.9.5-1.7 1-2.5 1.3-1.6.7-3.1 1.2-4.6 1.5-.4.1-.8.1-1.2.2-2.4.3-4.7.1-6.9-.5h-.1-.1c-2.1-.7-4.2-1.8-6-3.3.2-.1.4-.1.6-.1-.2 0-.4.1-.6.1-.3-.3-.6-.5-.9-.8-1.1-1.1-2.1-2.3-3-3.8-.5-.8-.9-1.6-1.3-2.5-.4-.9-.8-1.9-1.2-3l-.1-.5c-.1-.2 0-.5.3-.5h.2c.5.1 1.1.2 1.6.4.3.1.5.1.8.2.3 1.3.6 2.7.7 2.9.2.3 2.7 1.8 3.1 1.5.2-.2.6-1.8.9-3.2l.6.1c.5.1.9.3 1.4.4-.4 1.6-.8 3.3-.7 3.5.2.3 3.1 1 3.5.8.5-.2 1.7-1.4 2.8-2.7.2.1.4.1.6.2l7.5 2.4 3.8 1.3c.7.3 1.5.5 2.2.8l1.5.6c.1-.1.3.1.2.3zm20.6-15.8c-.3.2-.6.3-.9.3-.5 0-1.1-.3-1.4-.7-.1-.1-.8-1.1-2.2-1.1-1.4 0-2.1 1.1-2.2 1.1-.5.8-1.5 1-2.3.5-.8-.5-1-1.5-.5-2.3.5-.8 1.8-2 3.7-2.4 0-.1-.1-.2-.1-.3v-3c0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3v3c0 .1 0 .2-.1.3 1.9.4 3.2 1.6 3.7 2.4.7.7.4 1.7-.3 2.2zm-37.1 72.8c.1-.3.5-.4.8-.2.3.2.6.4 1 .5.3.1.4.5.2.8-.1.2-.3.3-.5.3-.1 0-.2 0-.3-.1-.3-.2-.7-.4-1-.5-.2-.2-.3-.5-.2-.8z"/>
- <path fill="url(#g)" fill-rule="nonzero" d="M203.6 209.1c0-.1 0-.1 0 0-.1-.2-.2-.3-.2-.4.1.1.1.2.2.4z"/>
- <path fill="url(#h)" fill-rule="nonzero" d="M222.3 203.8l-1.9-.6c0 .1 0 .2-.1.3-.4 1.3-1.6 2.2-2.9 2.2-.3 0-.6 0-.9-.1l-2.4-.7c-.3.1-.7.2-1 .3l10 2.9 1.3-4.5c-.4.2-.8.3-1.3.3-.2.1-.5 0-.8-.1z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M227.1 224.7c0 .4.1.7.1 1 0 .3.1.5.2.6 0 .1.1.1.1.1.1.1.1.1.2.1H228.3s.1 0 .1-.1c.1 0 .1-.1.2-.1l.1-.1c.1 0 .1-.1.2-.1l.1-.1.2-.2.1-.1c.1-.1.2-.2.2-.3l.1-.1c.1-.2.3-.3.4-.5v-.1c.1-.2.2-.3.4-.5 0-.1.1-.2.1-.2.1-.1.2-.3.3-.4.1-.1.1-.2.2-.3.1-.1.1-.2.2-.3-1.4 0-2.9-.1-4.3-.1v.9c.2.2.2.5.2.9z"/>
- <path fill="url(#i)" fill-rule="nonzero" d="M230 212.6c-.5 1.6-1.6 2.8-3.1 3.5v7.5c0 .4.1.7.1 1.1 0 .4.1.7.1 1 0 .3.1.5.2.6 0 .1.1.1.1.1.1.1.1.1.2.1H228.2s.1 0 .1-.1c.1 0 .1-.1.2-.1l.1-.1c.1 0 .1-.1.2-.1l.1-.1.2-.2.1-.1c.1-.1.2-.2.2-.3l.1-.1c.1-.2.3-.3.4-.5v-.1c.1-.2.2-.3.4-.5 0-.1.1-.2.1-.2.1-.1.2-.3.3-.4.1-.1.1-.2.2-.3.1-.1.1-.2.2-.3 0 0 0-.1.1-.1.1-.1.1-.2.2-.3.1-.2.2-.3.2-.5.1-.1.1-.2.2-.4s.2-.4.2-.5c.1-.1.1-.3.2-.4.1-.2.2-.4.2-.6.1-.1.1-.3.2-.4.1-.2.2-.5.3-.7 0-.1.1-.2.1-.4.1-.4.3-.7.4-1.1.1-.4.3-.9.4-1.4.1-.5.3-1 .4-1.5v-.1c.1-.5.2-1 .3-1.6v-.1c.1-.3.1-.6.2-1-1.3.1-3 .4-4.7.7z"/>
- <path fill="url(#j)" fill-rule="nonzero" d="M240.1 167.1c-.1.2-.3.3-.5.3h-.2c-.3-.1-.4-.4-.3-.7.4-.9.9-2.1 1.4-3.2-5.6 9-7.5 16.2-9.5 22.5l.9.3c1.4.4 2.6 1.4 3.3 2.7.7 1.3.9 2.8.5 4.3l-4.9 17.1c1.6-.3 3.2-.6 4.7-.9v-.1-.1c.1-.6.2-1.1.2-1.7v-.1c0-.2.1-.5.1-.7 0-.1-.1-.2 0-.3.5-4.5 1.9-23.7 1.9-23.9 0-.3.3-.5.6-.5s.5.3.5.6c0 .1-.7 9.5-1.3 16.7 1.7-.1 3.5-.2 5.3-.5 5.6-.8 10.3-2.8 13.7-4.7-.5-.9-.6-2-.4-3l1.9-7.3c.4-1.4 1.4-2.4 2.6-2.8-.9-1.2-1-2.9-.3-4.3.8-1.6 2-3.1 3.3-4.3-.4.1-.8.3-1.2.4-1.1.3-2.2.6-3.5.7-1-.8-2.2-1.2-3.6-1.3-.9 0-1.8.1-2.7.4-1.4-1.3-3.3-2-5.3-1.8-1.8.1-3.4.9-4.5 2.1-.9.1-1.8.2-2.6.4-.3 1.5-.5 2.7-.5 2.9 0 .3-.1.5-.4.6h-.2c-.2 0-.5-.1-.5-.4-.1-.2-.1-.4.9-5.1.3-1.6.7-3 1.1-4.4.1-.5.3-.9.4-1.3.1-.4.3-.8.4-1.2v-.1c.1-.4.3-.7.4-1.1 0 0 0-.1.1-.1.1-.2.1-.4.2-.5-.4.7-1.3 2.6-2 4.4zm2.2 29.4c3.9-1.5 8-3.4 12-5.7.3-.1.6-.1.8.2.1.3.1.6-.2.8-4.1 2.3-8.2 4.2-12.2 5.7h-.2c-.2 0-.4-.1-.5-.4-.1-.2 0-.5.3-.6z"/>
- <path fill="url(#k)" fill-rule="nonzero" d="M202.7 206.4c.1.2.2.5.3.8 0-.3-.1-.5-.1-.8h-.2z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M194.4 210.8c.3.6.6 1.3 1 1.9 0 .1.1.1.1.2.3.6.7 1.3 1.1 1.9 0 .1.1.1.1.2l1.2 1.8.1.1c.5.6.9 1.3 1.5 1.9.3.3.5.6.8.9.1.1.1.2.2.2l.6.6c.1.1.2.2.2.3.2.2.3.4.5.5.1.1.2.2.2.3.2.2.3.3.4.5.1.1.2.2.2.3l.5.5.2.2.2.2.4.4.1.1.5.5.2.2.3.3.2.2.3.3c.1.1.1.1.2.1.1.1.2.1.3.2l.1.1c.1.1.2.1.3.2 0 0 .1 0 .1.1.1.1.2.1.3.2h.1c.1 0 .2.1.2.1h.6c.1 0 .2-.1.2-.2 0 0 .1-.1.1-.2v-.1-.3-.1c0-.2 0-.4-.1-.6v-.2c0-.2-.1-.4-.1-.6v-.2c0-.2-.1-.4-.1-.6v-.2-.1c-.1-.3-.1-.6-.2-.9 0-.1 0-.2-.1-.3-.1-.3-.1-.6-.2-.8 0-.1 0-.1-.1-.2-.1-.4-.2-.7-.3-1.1 0-.1-.1-.2-.1-.3-.1-.3-.2-.6-.2-.9 0-.1-.1-.2-.1-.3l-.3-1.2v-.1c-.1-.4-.2-.7-.3-1.1 0-.1-.1-.2-.1-.3-.1-.4-.2-.7-.3-1.1v-.1c-.1-.4-.2-.8-.4-1.2 0-.1 0-.1-.1-.2-.1-.2-.1-.4-.2-.6-2.8-.6-5.7-1.3-8.6-2.2-.8-.2-1.5-.5-2.3-.8.2.6.5 1.1.7 1.7-.1-.2-.1-.2-.1-.1zM196.5 122c.8.5 1.8.3 2.3-.5 0 0 .8-1.1 2.2-1.1 1.4 0 2.1 1 2.2 1.1.3.5.9.7 1.4.7.3 0 .6-.1.9-.3.8-.5 1-1.5.5-2.3-.5-.8-1.8-2-3.7-2.4-.4-.1-.8-.1-1.3-.1-.4 0-.9.1-1.3.1-1.9.4-
3.2 1.6-3.7 2.4-.5.8-.3 1.9.5 2.4zm0-2s.1-.2.3-.4l.3-.3c.7-.7 2-1.7 3.9-1.7 2.9 0 4.4 2.2 4.5 2.3.3.5.2 1.2-.3 1.5-.2.1-.4.2-.6.2-.4 0-.7-.2-.9-.5 0-.1-.9-1.3-2.6-1.3-1.1 0-1.8.5-2.2.9l-.4.4c-.3.5-1 .7-1.5.3-.7-.2-.9-.9-.5-1.4zM225.4 117.2c-.4-.1-.8-.1-1.3-.1-.4 0-.9.1-1.3.1-1.9.4-3.2 1.6-3.7 2.4-.5.8-.3 1.8.5 2.3.8.5 1.8.3 2.3-.5 0 0 .8-1.1 2.2-1.1 1.4 0 2.1 1 2.2 1.1.3.5.9.7 1.4.7.3 0 .6-.1.9-.3.8-.5 1-1.5.5-2.3-.5-.6-1.8-1.9-3.7-2.3zm2.9 4.3c-.2.1-.4.2-.6.2-.4 0-.7-.2-.9-.5l-.2-.2-.2-.2c-.4-.4-1.2-.9-2.3-.9-1.7 0-2.6 1.3-2.6 1.3-.3.5-1 .7-1.5.3-.5-.3-.7-1-.3-1.5.1-.1 1.5-2.3 4.5-2.3 1.4 0 2.5.5 3.2 1.1.1.1.2.2.3.2l.3.3c.4.4.6.7.7.8.2.4.1 1.1-.4 1.4z"/>
- <path fill="url(#l)" fill-rule="nonzero" d="M241.8 136.3c-7.4 7.4-10.4 9.3-19.4 11-14.7 1.3-34.1-.7-39.2-3.2-5.6-2.7-12-17.9-12-18.1-.1-.5-.5-.8-1-.8-.4 2.5.9 6.1 2.9 9.7.3.6.7 1.2 1.1 1.8.6.9 1.2 1.8 1.8 2.6.4.6.8 1.1 1.2 1.6.4.5.8 1 1.3 1.5.2.2.4.5.6.7.4.4.8.8 1.3 1.2.2.2.4.3.6.5.8.6 1.6 1.1 2.3 1.4 6.8 2.5 16.4 4.1 26.3 4.1 1.7 0 3.4-.1 5.1-.2h.2c.1 0 12.1-1.3 17.8-3.6.3-.1.6 0 .7.3.1.3 0 .6-.3.7-3.8 1.5-10.1 2.6-14.2 3.2-.3.2-.6.3-1 .5 10.2 0 19.5-1.3 23.1-4.7 4.3-4 3.1-12.5.8-10.2z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M250.4 158.2c-3.6 1.7-6.5 3.1-7.6 3.6 2.1-1 4.8-2.2 7.6-3.6z"/>
- <path fill="url(#m)" fill-rule="nonzero" d="M224.6 99.7c.7 0 1.4-.1 2.1-.1v-.2c0-.3.3-.6.6-.5l3.3.1c.3-1.1.7-1.7.8-1.7.2-.2.5-.3.8-.1.2.2.3.5.1.8-.1.1-1.4 1.9-.1 4.9.6 1.5 2.9 2.8 3.8 3.2.2.1.3.3.3.5 0 0 .4 4.6 3.5 8.4 3.4 4.2 8.4 5.7 8.5 5.7.2.1.4.2.4.4 0 0 .6 3.3 1.9 4.6.7.7 2.6 2.6 7.4 1.7.3-.1.6.1.6.4.1.3-.1.6-.4.6-1 .2-1.9.3-2.7.3-3.1 0-4.7-1.2-5.8-2.2-1.3-1.3-1.9-3.9-2.1-4.8-1.1-.4-4.5-1.7-7.4-4.6.6 1 1.2 1.9 2 2.9v.1c0 3.5 2.3 6.4 5.4 7.4.7 1.5 1.3 3.2 1.6 5.3h.1c.3-.1.6.1.7.4 0 .1.6 2.4.4 5.9h1.4c.3-1.1.6-2.3.9-3.5.2.1.5.1.8.2 1.6.2 3.1-.9 3.5-2.5h.2c.8.3 1.7.6 2.6.7 4.1.4 7.7-2.1 9-5.8 2.8-.2 5.1-2.2 5.5-5 .9-1.1 1.8-2.2 2.6-3.3 3.3-.5 5.8-3.4 5.7-6.9 0-.6-.1-1.2-.3-1.8 1.6-1.3 2.6-3.3 2.5-5.5 0-1.8-.8-3.5-2-4.7 0-1.5-.1-3-.3-4.4 1.3-1 2.2-2.5 2.5-4.2 0-.2.1-.5.1-.7V91v-.1c0-.3 0-.6-.1-.9v-.2c0-.3-.1-.5-.2-.7V89l-.3-.9s0-.1-.1-.1c-.1-.2-.2-.5-.4-.7 0 0 0-.1-.1-.1-.3-.5-.7-1-1.2-1.4-.5-.4-1-.8-1.6-1.1-1-.5-2-.8-3.2-.8-2.1-3.4-4.7-6.4-7.8-8.9 0-.4-.1-.9-.2-1.3s-.2-.8-.4-1
.1v-.1c-.1-.4-.3-.7-.5-1v-.1c-.2-.3-.4-.6-.7-.9-.3-.3-.5-.6-.8-.8l-.9-.6s-.1 0-.1-.1c-.3-.2-.6-.3-1-.4-.1 0-.1 0-.2-.1-.3-.1-.7-.2-1-.3h-.2c-.4-.1-.8-.1-1.2-.1h-1c-.2 0-.5.1-.7.2-.1 0-.2 0-.3.1-.6.2-1.2.5-1.8.8-1.6-.5-3.2-.9-4.9-1.1-.2-.2-.4-.4-.6-.5l-.2-.2c-.1-.1-.3-.2-.4-.3-.1-.1-.2-.1-.3-.2-.1-.1-.3-.2-.4-.2-.1 0-.2-.1-.3-.1-.1-.1-.3-.1-.4-.2-.1 0-.2-.1-.3-.1-.2-.1-.3-.1-.5-.1-.1 0-.2-.1-.3-.1-.2 0-.4-.1-.5-.1h-1c-.3 0-.6 0-.9.1-.9.1-1.7.4-2.5.8s-1.4.9-2 1.5c-.7.1-1.4.3-2.1.4-1.4.3-2.7.7-4 1.2-.6.2-1.3.5-1.9.8-.4-.1-.9-.2-1.3-.3-.3 0-.5-.1-.8-.1-.3 0-.7 0-1 .1h-.3c-2.5.4-4.6 2.2-5.5 4.5-.1.3-.2.7-.3 1-.1.3-.1.7-.2 1-.4.3-.7.7-1 1-.7.1-1.4.4-2.1.7-.6.3-1.2.8-1.7 1.3-.3.3-.6.6-.8.9-.5.7-.8 1.4-1.1 2.2-.2.6-.2 1.2-.3 1.8v.2c0 .3 0 .7.1 1-.2.3-.3.6-.5 1-.2.5-.4.9-.6 1.4-.2.4-.4.9-.5 1.3-.2.1-.3.1-.5.2-.1.1-.3.2-.4.3-.4.3-.7.7-.9 1.2-.2.5-.4 1-.4 1.5 0 .8.3 1.6.7 2.1-.1.4-.1.9-.2 1.3s-.1.9-.2 1.3c-.1.7-.1 1.4-.1 2.2.2.2.5.3.7.5l2.3-.7c.2-.1.4 0 .6.1 0 0 1.3 1.3 3.1 1.1.3 0 .5.1.6.3.6-
.3 1.2-.8 1.6-1.5zm37.2 25.8c.2-.2.6-.3.8-.1.1.1 2.3 1.9 4.9-.2 2.1-1.8 2.1-3.7 1.9-4.7-1.6 0-2.9-.6-3.7-1.2-.5-.4-.6-1-.3-1.6.4-.5 1-.6 1.6-.3.3.2 3.2 2.1 6.1-.9 3.4-3.4 1.7-6.8 1.7-6.8-.3-.5-.1-1.2.5-1.5.5-.3 1.2-.1 1.5.5.9 1.7 1.6 5.8-2.1 9.4-1.4 1.4-2.9 2-4.2 2.2.2 1.2.1 3.5-2.3 5.6-1.2 1-2.3 1.3-3.3 1.3-1.8 0-3.1-1.1-3.1-1.1-.2 0-.2-.4 0-.6zm-26-50.3c2.4-.3 3.9.7 4.7 1.7.1-.1.3-.1.4-.2 2.1-.9 3.9-.9 5.3-.4.6-1.2 1.9-2.7 4.7-3.1 4.2-.6 5.5 3.1 5.5 3.2.1.3-.1.6-.4.7-.3.1-.6-.1-.7-.4 0-.1-1-2.9-4.3-2.4-2.3.3-3.3 1.5-3.8 2.4 1.2.6 2 1.4 2.5 2.1.3.5.2 1.2-.3 1.5-.5.3-1.2.2-1.5-.3-.2-.3-2.3-3.1-6.1-1.4-4.4 2-4 5.8-4 5.8.1.6-.4 1.2-1 1.2h-.1c-.6 0-1-.4-1.1-1-.2-1.7.4-5.1 3.9-7.3-.6-.7-1.7-1.4-3.5-1.2-3.7.5-4.2 3.4-4.2 3.5 0 .3-.3.5-.5.5h-.1c-.3-.1-.5-.3-.5-.6 0 0 .6-3.7 5.1-4.3z"/>
- <path fill="url(#n)" fill-rule="nonzero" d="M233 105.8c.5.6 1.1 1.2 1.8 1.6.1.3.3.7.5 1.1-.1-.6-.2-1.1-.3-1.4-.4-.3-1.2-.7-2-1.3z"/>
- <path fill="url(#o)" fill-rule="nonzero" d="M202.5 90.4c1.3 1.2 3.4.6 4.4-.9v-.1c0-.1.3-5.4-2.2-7.4 0 0-.1 0-.1.1l-.2.2s-.1.1-.1.2c-.1.1-.1.2-.2.3 0 .1-.1.1-.1.2-.1.1-.1.2-.2.4 0 .1-.1.1-.1.2-.1.2-.2.3-.3.5 0 .1-.1.1-.1.2-.1.2-.2.5-.3.7 0 .1 0 .1-.1.2-.1.2-.2.4-.2.6 0 .1-.1.2-.1.3-.1.2-.1.3-.2.5 0 .1-.1.2-.1.3 0 .2-.1.3-.1.5 0 .1 0 .2-.1.3 0 .1-.1.3-.1.4V89.7c0 .1 0 .2.1.3v.2c0 .1.1.3.2.3.1-.2.1-.2.2-.1z"/>
- <path fill="url(#p)" fill-rule="nonzero" d="M209.1 94.2V94c-.1-.5-.3-1.4-.7-2.6-.1-.3-.2-.5-.3-.7-.6 2.1-3.7 3.3-5.8 1.5 0 .4-.1.7-.1 1.1 0 .6 0 1.1.1 1.6s.2 1 .4 1.3c.1.1.1.2.2.2.1.1.3.2.4.3.1.1.3.1.4.2 2.1.7 4.6-.6 5.4-2.7z"/>
- <path fill="url(#q)" fill-rule="nonzero" d="M204 98c0 .3.1.5.1.8-.1-.7-.2-1.3-.3-2 .1.4.1.8.2 1.2z"/>
- <path fill="url(#r)" fill-rule="nonzero" d="M210.6 95.5c-.4 2.7-3.6 4.7-6.5 3.5v.2c.1.4.2.8.2 1.1.4 1.6 1 2.9 1.6 3.4 2.8.5 6.9-1.5 7.1-4.5v-.5c-.2-.6-.5-1.4-1.1-2.1-.4-.4-.9-.8-1.3-1.1z"/>
- <path fill="url(#s)" fill-rule="nonzero" d="M214.2 112c-.1 0-.1-.1 0 0-.2-.4 0-.7.3-.8.2-.1 3.9-1.4 3.9-5.2 0-2.6-2.1-4.5-3.5-5.5.2 3.4-3.6 6.1-7 6 1.5 2.5 3.4 3 3.5 3 .6.1 1 .7.9 1.3-.1.5-.6.9-1.1.9.2.2.5.3.7.3.6.3 1.5.2 2.3 0z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M240.4 163.4c-.5 1.1-1 2.3-1.4 3.2-.1.3 0 .6.3.7h.2c.2 0 .4-.1.5-.3.7-1.7 1.6-3.7 2.1-4.6.1-.1.1-.3.2-.4.2-.1.3-.2.5-.2 1-.5 4-1.9 7.6-3.6 3-1.4 6.1-3 9-4.5 0-.3.1-.6.3-.9 0 0 0-.1.1-.2-5.5 2.5-17.4 8.1-18 8.5-.3.2-.8 1.2-1.4 2.3z"/>
- <path fill="url(#t)" fill-rule="nonzero" d="M275.8 140c-.7.2-1.3.6-2 .9v.4c.4 1.9 1.8 3.4 3.5 4.2.5-.6.9-1.1 1.3-1.7.3-.5.6-.9.8-1.3-.8-.2-1.5-.6-2-1.1-.4-.5-.7-1-.9-1.5-.2-.1-.4 0-.7.1z"/>
- <path fill="url(#u)" fill-rule="nonzero" d="M273.3 149.1c.1 0 .1-.1.2-.1l.6-.5c.2-.1.4-.3.6-.4.1-.1.2-.2.3-.2-.3-.2-.7-.4-1-.7-1.4-1.1-2.5-2.7-3-4.4-.1.1-.2.1-.3.2-.2.1-.4.3-.6.4l-.6.5c-.2.2-.4.3-.6.5-.6.5-1.2 1-1.7 1.5-.6.5-1.1 1-1.6 1.5-.9.9-1.8 1.9-2.6 2.9s-1.4 1.8-1.7 2.2c-.2.3-.3.5-.4.7l-.1.2c-.2.3-.2.7-.1 1 .1.4.3.7.6.8.3.2.7.2 1 .1 0 0 .1 0 .3-.1.2-.1.4-.1.7-.3.6-.2 1.4-.6 2.6-1.1h.1c-1.2-2.3-.6-5.1-.6-5.3.1-.6.7-1 1.3-.8.4.1.7.4.8.8 1.8-.4 4.1 0 5.8.6z"/>
- <path fill="url(#v)" fill-rule="nonzero" d="M281.4 141.3c.9-.2 2.7-.9 4.2-3.5-1-.8-2.6.8-3.3-.6-.6-1.1.1-1.5-.4-2.1h-.6c-1.6 0-2.9.7-3.5 1.9-.6 1.1-.3 2.5.6 3.5.6.8 1.8 1.1 3 .8z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M267.5 148.5c.1.2.1.4 0 .6 0 0-.5 2.5.5 4.1.5.8 1.3 1.2 2.4 1.4 1.3.2 2.3 0 3.1-.6 1.2-.9 1.4-2.7 1.4-2.7 0-.4.3-.7.6-.9-.3-.3-.7-.5-1.1-.8-.3-.2-.7-.4-1.2-.5-1.6-.6-3.9-1-5.7-.6z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M148 139.7c-.3.1-.4.5-.3.7 2 4.3 4 8.2 6 12 .1.2.3.3.5.3.1 0 .2 0 .3-.1.3-.1.4-.5.2-.8-2-3.7-4-7.6-6-11.9-.1-.2-.4-.4-.7-.2zM160.4 163.3c.1 0 .2 0 .3-.1.3-.2.3-.5.2-.8-.6-.9-1.2-1.9-1.8-2.8-.1-.1-.2-.2-.4-.3.6 1.2 1 2.4 1.2 3.7.2.2.4.3.5.3zM143.3 129.9h-.2v.4l.4 1c.1.2.3.3.5.3h.2c.3-.1.4-.5.3-.7l-.4-1h-.8zM283.4 171.4c1.5-1.3 3.1-2.7 4.6-4.1.2-.2.2-.6 0-.8-.2-.2-.6-.2-.8 0-1.7 1.5-3.3 3-5 4.4.3.2.6.4.9.7.2-.1.2-.2.3-.2zM185 190.5c-.2.2-.1.6.1.8.4.3.8.5 1.2.8.5.4 1.1.8 1.6 1.1.1.1.2.1.3.1.1 0 .2-.1.3-.1l.1-.1c.2-.3.1-.6-.1-.8-.7-.5-1.5-1-2.2-1.5-.2-.1-.4-.3-.6-.4-.2-.2-.5-.1-.7.1zM242.5 197.6h.2c4-1.5 8-3.5 12.2-5.7.3-.1.4-.5.2-.8-.1-.3-.5-.4-.8-.2-4.1 2.2-8.1 4.1-12 5.7-.3.1-.4.4-.3.7.1.2.3.3.5.3zM270 181.4c-.2-.2-.5-.3-.8-.1l-.9.7c-.1.1-.2.2-.2.3l1.2.3.5-.4c.4-.2.4-.6.2-.8zM169.9 175c-.2-.2-.5-.3-.8-.1-.2.2-.3.5-.1.8 3 3.6 6 7 9.2 9.8.1.1.2.1.4.1.1 0 .3-.1.4-.2.2-.2.2-.6 0-.8-.6-.5-1.2-1.1-1.7-1.7-1.2-1.2-2.4-2.4-3.6-3.7-1.3-1.2-2.6-2
.7-3.8-4.2zM164 167l-.6-.9c-.2-.3-.5-.3-.8-.2-.3.2-.3.5-.2.8l.6.9c.1.2.3.2.5.2.1 0 .2 0 .3-.1.3-.1.3-.4.2-.7zM191.8 195.5c.3.2.7.4 1 .5.1 0 .2.1.3.1.2 0 .4-.1.5-.3.1-.3 0-.6-.2-.8-.3-.2-.6-.3-1-.5-.3-.1-.6-.1-.8.2-.2.4-.1.7.2.8zM202.4 198.9c-.3-.1-.6.1-.7.4-.1.3.1.6.4.7.7.2 1.5.4 2.2.6l.3-1.1c-.7-.1-1.5-.3-2.2-.6zM169.1 184.2c-1.7-2.3-3.4-4.7-5-7.1-1.6-2.4-3.2-4.9-4.7-7.4-.3.8-.7 1.5-1.2 2.3 4.5 7.3 9.2 13.9 14 19.6l2.3-.7c-1.9-2.1-3.7-4.3-5.4-6.7zM133.2 123l2.1-1.3-2.1 1.3zM271.7 191c.1 0 .2.1.3.1.6.1 1.2.2 1.8.2.3 0 .7 0 1-.1 3.4-2.9 5.2-5 5.3-5 0 0 0-.1.1-.1l-2.4-.6c-1 1-3.1 3-6.1 5.5zM193.6 208.9c.8.3 1.5.6 2.3.8 2.9.9 5.8 1.6 8.6 2.2.8.2 1.6.3 2.5.4 1.6.3 3.2.5 4.8.6l-4.8-1.4c-1.2-.3-2.2-1.1-2.9-2.1-.1 0-.2 0-.3-.1-2.4-.5-4.7-1.1-7.2-1.9-1.4-.4-2.8-1-4.1-1.7-1-.5-1.9-1-2.9-1.6-1.2-.7-2.4-1.6-3.6-2.5-.3-.2-.6-.4-.9-.7l.6 1.9c.1.3.1.5.1.8.2.2.3.5.4.7v.1c.5.4 1.1.7 1.6 1.1 1 .6 1.9 1.2 2.9 1.7.9.9 1.9 1.3 2.9 1.7zM266.3 197.8c-.7-.4-1.3-.8-2-1.3-1.9 1.3-4 2.6-6.2 3.9-5 2.9-10.9 5.
6-17.4 7.6h-.1c-.9.3-1.9.6-2.8.8-.8.2-1.6.4-2.3.6-1.5.4-3.1.7-4.7.9l-.7 2.3c1.7-.3 3.4-.5 5-.9l2.4-.6c1-.2 1.9-.5 2.9-.8 6.3-1.8 12-4.3 17-7 2.8-1.5 5.4-3.1 7.8-4.7.3-.2.7-.5 1.1-.8z"/>
- <path fill="#FFFEFE" fill-rule="nonzero" d="M235.2 188.8c-.7-1.3-1.9-2.3-3.3-2.7l-.9-.3-15.3-4.4c-.5-.1-1-.2-1.6-.2-2.5 0-4.7 1.7-5.4 4l-4.1 14.3-.3 1.1-1.2 4.1c-.2.6-.2 1.1-.2 1.7 0 .3 0 .5.1.8.1.5.2 1 .5 1.5.1.1.1.2.1.3 0 0 0 .1.1.1.1.2.2.4.4.5.7 1 1.7 1.7 2.9 2.1l4.8 1.4 3.8 1.1 7 2 .7.2c.5.1 1 .2 1.6.2.8 0 1.5-.2 2.2-.5 1.5-.7 2.6-1.9 3.1-3.5l.7-2.3 4.9-17.1c.3-1.5.1-3.1-.6-4.4zm-1.7 3.7l-5.6 19.4c-.4 1.5-1.8 2.4-3.2 2.4-.3 0-.6 0-.9-.1l-16.2-4.7c-1.8-.5-2.8-2.4-2.3-4.2l5.6-19.4c.4-1.5 1.8-2.4 3.2-2.4.3 0 .6 0 .9.1l16.2 4.7c1.8.5 2.8 2.4 2.3 4.2z"/>
- <path fill="#FFFEFE" fill-rule="nonzero" d="M228.7 191.1l-12.9-3.7c-.2 0-.3-.1-.5-.1-.7 0-1.4.5-1.6 1.2l-4.7 16.2c-.3.9.3 1.8 1.2 2.1l12.9 3.7c.2 0 .3.1.5.1.7 0 1.4-.5 1.6-1.2l4.7-16.2c.2-.9-.4-1.9-1.2-2.1zm-14.4 7.2c.1-.4.4-.6.8-.6h.2l8.1 2.3c.4.1.7.6.6 1-.1.4-.4.6-.8.6h-.2l-8.1-2.3c-.5-.1-.7-.5-.6-1zm-.9 3.2c.1-.4.4-.6.8-.6h.2l3.2.9c.4.1.7.6.6 1-.1.4-.4.6-.8.6h-.2l-3.2-.9c-.5 0-.8-.5-.6-1zm9.7 6.7l-10-2.9-1.9-.5.4-1.3c.4.6 1 1 1.7 1.2l.9.2 2.4.7c.3.1.6.1.9.1 1.4 0 2.6-.9 2.9-2.2 0-.1.1-.2.1-.3l1.9.6c.3.1.6.1.9.1.4 0 .9-.1 1.3-.3l-1.5 4.6zm1.8-10.3c-.1.4-.4.6-.8.6h-.2l-8.1-2.3c-.4-.1-.7-.6-.6-1 .1-.4.4-.6.8-.6h.2l8.1 2.3c.5.1.8.5.6 1zm1-3.3c-.1.4-.4.6-.8.6h-.2l-8.1-2.3c-.4-.1-.7-.6-.6-1 .1-.4.4-.6.8-.6h.2l8.1 2.3c.4.1.7.6.6 1zM275 168.4c-.4 0-.7-.1-1.1-.1-1.7 0-3.4.3-5.1.9-.7.3-1.4.5-2.1.9-1.1.6-2.1 1.3-3.1 2.2-1.3 1.2-2.5 2.7-3.3 4.3-.7 1.4-.6 3.1.3 4.3-1.3.4-2.3 1.5-2.6 2.8l-1.9 7.3c-.3 1-.1 2.1.4 3 0 .1 0 .1.1.2.2.3.4.5.6.8.5.5 1.2.9 1.9 1.1.3.1.7.1 1 .1 1.1 0 2.1-.4 2.9-1.2
.5.5.9.9 1.5 1.3.6.5 1.3.9 2 1.3l1.2.6c1.5.7 3.1 1.1 4.7 1.3.6.1 1.1.1 1.7.1 2.5 0 5-.6 7.2-1.8 2.8-1.5 5-3.7 6.4-6.5.5-1 .6-2.1.3-3.1 0-.1-.1-.2-.1-.3-.1-.3-.3-.6-.4-.8.5-.2.9-.5 1.3-.8.6-.5 1.1-1.2 1.3-2l1.9-7.3c.3-1.1.1-2.2-.4-3.1-.5-.9-1.4-1.6-2.4-1.9h-.1c-.3-.1-.7-.1-1-.1-1.1 0-2.1.4-2.9 1.2-.5-.6-1.1-1-1.7-1.5-.3-.2-.6-.5-.9-.7-.7-.4-1.4-.8-2.1-1.1-.9-.4-1.9-.7-2.9-1-1.1-.2-1.8-.3-2.6-.4zm10.6 22.1c-1.2 2.4-3.1 4.3-5.5 5.6-2 1-4.1 1.5-6.1 1.5-4.7 0-9.2-2.5-11.5-6.9l-.5 2c-.2.9-1 1.4-1.8 1.4-.2 0-.3 0-.5-.1-1-.3-1.6-1.3-1.4-2.3l1.9-7.3c.2-.9 1-1.4 1.8-1.4.2 0 .3 0 .5.1l7.3 1.9c1 .3 1.6 1.3 1.4 2.3-.2.9-1 1.4-1.8 1.4-.2 0-.3 0-.5-.1l-3.7-1c1.1 2.8 3.5 4.9 6.4 5.6.8.2 1.5.3 2.3.3 3.4 0 6.6-1.8 8.3-4.9.4-.6 1-.9 1.6-.9.3 0 .6.1.9.2h.1c.9.5 1.2 1.6.8 2.6zm-10.6-7c.6 1 1.4 1.6 2.5 1.9l.3.1 2.4.6 1 .3c-.4.3-.7.7-1 1.1v.1c-1.1 2-3.1 3.4-5.3 3.7-.3 0-.7.1-1 .1-.6 0-1.2-.1-1.8-.2-.1 0-.2-.1-.3-.1l-.9-.3c1.2-.5 2.2-1.5 2.5-2.8.4-1.4 0-2.8-1-3.8-.5-.6-1.2-1-2-1.2l-.9-.2-1.2-.3-1.6-.4c.5-.
4.8-.8 1.1-1.4 1.3-2.2 3.7-3.6 6.3-3.6.3 0 .6 0 .9.1.3 0 .6.1.9.2.4.1.8.3 1.2.4h-.1c-1 .4-1.9 1.3-2.3 2.4 0 .1-.1.2-.1.4-.3.8-.2 1.9.4 2.9zm10.4-6l.5-2c.2-.9 1-1.4 1.8-1.4.2 0 .3 0 .5.1 1 .3 1.6 1.3 1.4 2.3l-1.9 7.3c-.2.9-1 1.4-1.8 1.4-.2 0-.3 0-.5-.1l-7.3-1.9c-1-.3-1.6-1.3-1.4-2.3.2-.9 1-1.4 1.8-1.4.2 0 .3 0 .5.1l3.7 1c-1.1-2.8-3.5-4.9-6.4-5.6-.8-.2-1.6-.3-2.4-.3-3.3 0-6.5 1.8-8.2 4.8-.3.7-1 1.1-1.7 1.1-.2 0-.3 0-.5-.1l-.4-.1h-.1c-.9-.5-1.3-1.6-.8-2.5 1.2-2.4 3.1-4.3 5.5-5.6 2-1 4.1-1.5 6.1-1.5 4.8-.2 9.3 2.3 11.6 6.7zM160.2 164.9c0-.6-.1-1.3-.2-1.9-.2-1.3-.6-2.6-1.2-3.7-1.4-2.7-3.7-4.8-6.7-6-.7-.3-1.5-.5-2.3-.6-.7-.1-1.4-.2-2.1-.2h-.4c-1 0-2 .2-3 .4 0-.1-.1-.3-.1-.4-.3-.7-.9-1.2-1.6-1.5-.3-.1-.7-.2-1-.2-.6 0-1.2.2-1.7.5s-.8.8-1 1.3l-1.2 3.2-1.1 2.9c-.4 1.1-.1 2.3.7 3.1-1.3.5-2.2 1.8-2.2 3.3 0 1.9.5 3.7 1.3 5.3.3.7.7 1.3 1.1 1.9 2.3 3.2 6 5.2 10.2 5.2h.1c3.4 0 6.5-1.4 8.8-3.8.6-.6 1.1-1.2 1.6-1.9s.8-1.5 1.2-2.3c.5-1.3.8-2.9.8-4.6zm-12.5 10.5h-.1c-3.6 0-6.8-1.8-8.6-4.6-.6-.9-1.1-1.9
-1.3-3-.2-.8-.4-1.7-.4-2.6 0-.4.1-.7.4-.9.2-.2.6-.4.9-.4.7 0 1.3.6 1.3 1.3 0 2.2 1 4.4 2.7 5.9 1.5 1.3 3.3 1.9 5.1 1.9 2.2 0 4.3-.9 5.8-2.7 2.8-3.2 2.5-8.1-.7-10.9-1.5-1.3-3.3-1.9-5.1-1.9-2.2 0-4.3.9-5.8 2.7l3.7 1.4c.3.1.5.5.4.8-.1.3-.3.4-.6.4h-.2l-5.2-2-.8-.3c-.3-.1-.5-.5-.4-.8l1.2-3.2 1.1-2.8c.1-.3.3-.4.6-.4h.2c.3.1.5.5.4.8l-1.2 3.3c1.9-1.7 4.3-2.5 6.8-2.5 1.2 0 2.4.2 3.6.6 4 1.5 6.6 5.3 6.6 9.5-.1 5.7-4.7 10.3-10.4 10.4zm-5.8-11.5l1.9.7-.2.1h-.1c-.6.3-1 .7-1.3 1.2 0-.2-.1-.5-.1-.8 0-.3 0-.8-.2-1.2zm5.6 1.6l1.7-4.6c.1-.3.3-.4.6-.4h.2c.3.1.5.5.4.8l-1.8 4.8c0 .2-.1.3-.3.4L145 168l-.1-.2-.8-.3c-.1-.3 0-.7.3-.8l3.1-1.2zm-.6-5.7h.4c0 .1-.1.2-.1.3-.1-.2-.2-.3-.3-.3zm3.9 7l1.6-4.4c.4.7.7 1.5.7 2.4.1 1.5-.4 2.9-1.3 4-1 1.2-2.6 1.9-4.2 1.9-.8 0-1.5-.2-2.2-.5.2 0 .3-.1.5-.2l3.3-1.5c.1 0 .2-.1.2-.1.7-.3 1.2-.9 1.4-1.6zM185.7 204c0-.3 0-.5-.1-.8l-.6-1.9-.3-1.1c-.1-.3-.2-.5-.4-.7 0-.3 0-.5-.1-.8l-.9-3.1c-.1-.3-.2-.5-.4-.7 0-.3 0-.5-.1-.8-.7-2.3-2.8-3.9-5.2-3.9-.5 0-1.1.1-1.6.2-.3.1-.5.2-.7.4h-
.2c-.2 0-.4 0-.6.1h-.2l-2.3.7-.6.2c-.3.1-.5.2-.7.4h-.2c-.2 0-.4 0-.6.1l-3.1.9c-.3.1-.5.2-.7.4h-.2c-.2 0-.4 0-.6.1l-3.1.9c-.3.1-.5.2-.7.4h-.2c-.2 0-.4 0-.6.1-2.9.9-4.5 3.9-3.6 6.8.1.3.2.5.4.7 0 .3 0 .5.1.8l.1.2c-.7.7-1.2 1.5-1.5 2.5-.5 1.6-.4 3.3.3 4.8.7 1.4 1.8 2.4 3.2 3-.3.5-.6 1.1-.8 1.8-.9 3.3 1.1 6.7 4.5 7.6.5.1 1 .2 1.6.2 2.8 0 5.3-1.9 6-4.7.3-1 .3-2.1 0-3.1l.6-.8c.1.1.2.1.3.2l5.7 2.1h.1c.6.2 1.1.3 1.7.3 2.3 0 4.4-1.5 5.2-3.7v-.1c.3-1-.1-2-.9-2.5 2.1-1.2 3.2-3.8 2.5-6.2v-.1c-.2-.5-.3-.7-.5-.9zm-2.2-.2l-3.1.9-.9-3.1 3.1-.9.9 3.1zm-4 5.7l-3.1-1.1 2-2.7c.1.1.2.3.2.4 0 .3 0 .5.1.8l.8 2.6zm2.6-10.3l-3.1.9-.9-3.1 3.1-.9.9 3.1zm-4.4-6.8c1.4 0 2.6.9 3.1 2.3l-3.1.9-.9-3.1c.2-.1.5-.1.9-.1zm-2.5.6l.9 3.1-3.1.9-.9-3.1 3.1-.9zm-3 6.5c.3-.1.5-.2.7-.4h.2c.2 0 .4 0 .6-.1l2.5-.7.1.3c-1.5.1-2.8.9-3.7 2l-3.7 5-1-.4c-.5-1.2-1.4-2.2-2.5-2.9l-.2-.8 2.5-.7c.3-.1.5-.2.7-.4h.2c.2 0 .4 0 .6-.1l3-.8zm-1.6-5.2l.9 3.1-3.1.9-.9-3.1 3.1-.9zm-4.6 1.4l.9 3.1-3.1.9-.9-3.1 3.1-.9zm-4.6 1.4l.9 3.1-3.1.9c-.4-1.7.5
-3.5 2.2-4zm7.1 17.9c.1.2.2.5.2.8.2.7.2 1.5.1 2.2-.5 1.8-2.1 3-3.9 3-.3 0-.7 0-1-.1-2.1-.6-3.4-2.7-2.9-4.9.5-1.8 2.1-3 3.9-3 .3 0 .7 0 1 .1l1.7-2.2-2.3-.8c-.4.6-.9 1-1.5 1.4-.6.3-1.2.4-1.8.4-1.5 0-2.9-.8-3.6-2.2-1-2-.2-4.4 1.8-5.4l-.5-1.7 3.1-.9.7 2.3c1.2.4 2.1 1.4 2.5 2.6l.1.5 3.6 1.3 4.6-6.2c.6-.8 1.6-1.2 2.5-1.2.7 0 1.4.2 2 .7L168.5 215zm13.9-2.1c-.4 1.3-1.7 2.2-3 2.2.1.1.1.3 0 .4-.1.2-.3.4-.5.4h-.2l-3.8-1.3c-.3-.1-.4-.4-.4-.7 0-.1.1-.2.2-.3l-2.1-.8 2-2.6 7.8 2.7zm-.6-3.6l-.9-3.1 3.1-.9c.5 1.7-.5 3.5-2.2 4z"/>
- <path fill="#FFFEFE" fill-rule="nonzero" d="M166.9 216.4c-.3-.9-1.1-1.5-2-1.5-.2 0-.4 0-.6.1-1.1.3-1.7 1.5-1.4 2.6.3.9 1.1 1.5 2 1.5.2 0 .4 0 .6-.1h.2c1-.3 1.6-1.4 1.3-2.4-.1-.1-.1-.2-.1-.2zM163.9 207.1c-.3-.8-1.1-1.3-1.9-1.3-.3 0-.5 0-.8.1-1.1.4-1.6 1.6-1.2 2.7.3.8 1.1 1.3 1.9 1.3.3 0 .5 0 .8-.1.1 0 .1 0 .2-.1 1-.4 1.5-1.5 1.1-2.5l-.1-.1zM136.1 109.9c-.3.6-.5 1.2-.6 1.8 0 .1-.1.2-.1.4-.1.7-.2 1.3-.2 2l-.4.2-.6.4-.9.6-.2.1-.4.3-2 1.2-2.7 1.7-2.3 1.4c-.3.1-.5.3-.7.5-1.8 1.4-2.5 3.9-1.5 6 .8 1.8 2.6 3 4.6 3h.2c.7 0 1.3-.2 1.9-.4.3-.2.7-.3 1-.6l.4-.2 1.6-1 1.1-.7.5-.3 1.9-1.2.9-.6 2.2-1.4.6-.4c.6.3 1.3.6 2 .7h.1c.7.2 1.4.2 2.1.2 4.5 0 8.4-3.1 9.4-7.5.3-1.4.3-2.9 0-4.4-.3-1.1-1-2-2.1-2.4h-.1c0-1.1-.5-2.1-1.3-2.8-1.1-.9-2.4-1.5-3.8-1.8h-.1c-.6-.1-1.3-.2-2-.2-1.8 0-3.4.5-4.9 1.4-.8.5-1.6 1.1-2.2 1.8-.4.6-1 1.4-1.4 2.2zm2.8 2.8c.6-2.9 3.2-4.9 6-4.9.4 0 .8 0 1.3.1.9.2 1.7.6 2.4 1.2l-.2.1.1.1-4.4 2.8c-.3.2-.6.5-.7.8-.2.6-.2 1.2.2 1.7.4.6 1 .9 1.7.9.4 0 .7-.1 1-.3l4.6-2.7c.2.9.2 1.9 0 2.8
-.3 1.5-1.2 2.7-2.2 3.5-1.1.8-2.4 1.3-3.8 1.3-.4 0-.9 0-1.3-.2-1-.3-2-.8-2.8-1.6l-.7.4-2.2 1.4-2.4 1.5-2.1 1.3-4 2.5c-.1.1-.2.2-.4.2-.2.1-.4.1-.6.1h-.1c-.6 0-1.1-.3-1.4-.9-.3-.8 0-1.7.8-2l11.5-7.3c-.1-.5-.2-1-.2-1.5-.3-.3-.3-.8-.1-1.3z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M154.8 144.4l-2.2-4.7c-.1-.3-.5-.4-.7-.3-.3.1-.4.5-.3.7l2.2 4.7c.1.2.3.3.5.3.1 0 .2 0 .2-.1.3 0 .4-.4.3-.6zM161 185.3c.1.2.3.2.5.2.1 0 .2 0 .3-.1.3-.2.3-.5.1-.8l-2.5-3.5c-.2-.3-.5-.3-.8-.1-.3.2-.3.5-.1.8l2.5 3.5z"/>
- <path fill="#E1E1E6" fill-rule="nonzero" d="M179 214.8l-3.8-1.3c-.2-.1-.3 0-.5.1-.1.1-.2.2-.2.3-.1.3.1.6.4.7l3.8 1.3h.2c.2 0 .5-.1.5-.4v-.4c-.1-.2-.2-.3-.4-.3zM179.7 181.2c.1 0 .3 0 .4-.1.2-.2.3-.5.1-.8l-2.7-3.2-1.6-1.9c-.2-.2-.5-.3-.8-.1-.2.2-.3.5-.1.8l.9 1.1 3.3 4c.2.1.4.2.5.2z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M268.1 159.5l-6 5.5c-.2.2-.2.6 0 .8.1.1.3.2.4.2.1 0 .3 0 .4-.1l6-5.5c.2-.2.2-.6 0-.8-.2-.3-.5-.3-.8-.1zM125.9 112.2c.1.2.3.4.5.4h.2c.3-.1.4-.4.3-.7l-1.7-4.7c-.1-.3-.4-.4-.7-.3-.3.1-.4.4-.3.7l1.7 4.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M98.9 188.6c.6-.9 1.6-1.5 2.5-1.7-1.1.2-2.2.8-2.9 1.8-.2.2-.3.5-.4.7h.2c.2-.2.3-.5.6-.8zM113 187.5c-.7-.2-1.3-.4-2-.3-1.6 0-3.3.8-4.3 2.1 0 .1.1.2.1.3 1.4-2 3.9-2.8 6.2-2.1zM95.5 213.7c.3.6.7 1.2 1.3 1.6.5.4 1.1.6 1.7.6l-.1-.1c-.6-.1-1.2-.3-1.7-.7-.6-.4-1-.9-1.2-1.4zM90.5 210.7c-2-1.5-2.9-4-2.4-6.3-.6 2.4.3 5 2.4 6.5 1.1.8 2.4 1.1 3.6 1.1.3 0 .7 0 1-.1v-.2c-1.6.4-3.2.1-4.6-1zM91.6 191.8c.4-.5.8-1 1.3-1.4-.6.4-1.2.9-1.6 1.6-1.8 2.5-1.4 5.9.8 7.9.1 0 .2-.1.3-.1-2.3-2-2.7-5.5-.8-8zM116.4 197.4c.2.1.3.2.5.4-.2-.2-.4-.4-.7-.5-.2-.2-.5-.3-.8-.4.3.1.7.3 1 .5zM109.4 218.5l-.6-3.3h-.1l.5 3.3c.1.1.2.1.2 0zM108.5 214.1c.1 0 .1 0 0 0 .1 0 .1 0 0 0zM102.4 213.5c-.1.3-.2.5-.4.7l-.3.3s0 .1.1.1l.3-.3c.1-.2.2-.5.3-.8l.1.1c.3.2.6.3.9.5-.4-.1-.7-.3-1-.6 0 .1 0 0 0 0zM111.9 213.8c0 .1.1.2.2.4.2.4.4.9.5 1.4 0-.1 0-.1.1-.2-.2-.5-.4-1-.5-1.4-.1-.1-.2-.2-.3-.2 0-.3-.2-.5-.5-.5h-.2c-.1 0-.2.1-.2.2.1 0 .1-.1.2-.1.3 0 .6.1.7.4zM110.3 225.1c.1.3-.2.6-.6.8-.5.3-1.2.5
-1.8.5.7-.1 1.4-.3 2-.5.5-.2.8-.6.7-.9l-1-5.4h.1c-.1 0-.2.1-.2.1l.8 5.4zM99.7 215.7l.1.1h.1c-.1 0-.1 0-.2-.1zM104.3 217.3c-.7-.2-1.3-.5-1.9-.9.6.4 1.2.7 1.9.9z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M114.5 211.4c.3.1.5.4.5.7-.4 1.9-1 4.2-2.5 5.8l-.1.1c-.5.6-1.2 1.1-2 1.4.9-.4 1.6-.9 2.1-1.5l.1-.1c1.4-1.6 2-3.9 2.4-5.8.1-.3-.1-.6-.5-.7h-.1c-.3 0-.5.2-.6.5v.1c.1-.3.4-.5.7-.5z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M121.5 195.5c.4-1.4.5-2.9.2-4.4-.4-2.7-1.9-5.1-4.2-6.8-1.8-1.3-3.9-2-6.1-2-1.4 0-2.7.3-4 .8-1.4-.9-3.1-1.3-4.8-1.3-2.4 0-4.7.9-6.4 2.5-3.3.1-6.5 1.8-8.4 4.5-1.9 2.7-2.5 6.2-1.6 9.3-.3.3-.6.7-.9 1.1-3.5 4.9-2.4 11.7 2.5 15.2 1.2.8 2.5 1.4 3.8 1.8.6 1 1.4 1.9 2.4 2.6 1.2.9 2.6 1.4 4 1.5.7.6 1.5 1 2.4 1.5l.7 4.2.1.5c.3 2.1 2.2 4.6 6.2 4.6.7 0 4.4-.1 6.5-2.6.5-.6.8-1.2 1-1.9.2-.8.3-1.6.2-2.4l-.3-2.1c.4-.3.8-.7 1.2-1.1l.2-.2c2.2-2.5 3.1-5.7 3.5-7.9.1-.5.1-1.1.1-1.6.8-.6 1.5-1.4 2.1-2.2 1.8-2.4 2.5-5.4 2-8.4-.4-1.9-1.2-3.7-2.4-5.2zm-1.9 12.1c-.8 1.1-1.8 2-3 2.7.4.6.6 1.4.5 2.1-.4 1.9-1.1 4.8-2.8 6.8l-.1.1c-.6.7-1.3 1.2-2.1 1.7l.7 3.6c.1.5 0 1.1-.2 1.6-.1.3-.2.5-.4.7-1.1 1.3-3.1 1.8-4.6 1.8-2.4 0-3.6-1.2-3.8-2.5l-.1-.5-1-5.5c-1.5-.6-2.7-1.3-3.7-2.2-1.3 0-2.5-.3-3.5-1.1-1-.7-1.8-1.7-2.2-2.8-1.5-.1-2.9-.6-4.1-1.5-1.8-1.3-3.1-3.2-3.5-5.4-.4-2.2.1-4.4 1.4-6.3.5-.7 1.1-1.3 1.7-1.8-1.4-2.7-1.2-6 .6-8.6 1.5-2.2 4.1-3.6 6.8-3.6h.7c1.3-1.6 3.2-2.6 5.3
-2.6 1.4 0 2.8.4 4 1.2.2.2.4.3.6.5 1.2-.8 2.7-1.3 4.2-1.3 1.7 0 3.3.5 4.6 1.4 1.7 1.2 2.9 3 3.3 5.1.3 1.6.1 3.2-.6 4.6 1.5 1.3 2.4 3 2.8 5 .4 2.5-.1 4.9-1.5 6.8z"/>
- <path fill="url(#w)" fill-rule="nonzero" d="M108.2 214.3c.1 0 .2-.1.3-.1-.1 0-.2 0-.3.1z"/>
- <path fill="url(#x)" fill-rule="nonzero" d="M110.3 225.1l-.9-5.4c.1 0 .2-.1.2-.1.2-.1.5-.1.7-.2.8-.3 1.5-.8 2-1.4l.1-.1c1.4-1.6 2.1-3.9 2.5-5.8.1-.3-.1-.6-.5-.7-.3-.1-.6.1-.7.4-.2 1.2-.6 2.6-1.1 3.7v-.1c0 .1 0 .1-.1.2-.2-.5-.4-1-.5-1.4-.1-.2-.1-.3-.2-.4-.1-.3-.4-.5-.7-.4-.1 0-.1.1-.2.1-.1.2-.2.4-.1.6 0 .1.1.3.2.5.2.4.5 1 .6 1.6.2.6.1.9 0 .9l-.1.1c-.4.5-1 .9-1.6 1.1-.2.1-.3.1-.5.2h-.1l-.5-3.3c-.9.3-1.8.4-2.2.4h-.4c-.3 0-.5-.3-.5-.6 0-.1.1-.2.2-.3-.7 0-1.3-.2-2-.4h.1l.5 3s-.1 0-.1-.1c-.7-.2-1.3-.5-2-.9-.1 0-.2 0-.3-.1-1.2-.7-1.9-1.8-2.2-2.7v-.1-.2c-.1-.2-.1-.4-.1-.6v-.1c0-.1-.1-.3-.2-.4-.1-.1-.3-.1-.5 0-.3.1-.3.9-.1 1.8.2.6.6 1.2 1 1.7l.1.1c.3.4.7.7 1 1 1.1.9 2.5 1.4 3.8 1.8l1.3 7.2c1.3 0 2.6.1 3.8.1.1-.1.4-.3.3-.7z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M107.5 226.5h.4c.7-.1 1.4-.3 1.8-.5-1.2-.1-2.5-.1-3.8-.1v.1c.2.4.8.5 1.6.5z"/>
- <path fill="url(#y)" fill-rule="nonzero" d="M107.5 226.5h.4c.7-.1 1.4-.3 1.8-.5-1.2-.1-2.5-.1-3.8-.1v.1c.2.4.8.5 1.6.5z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M105.2 203.6c.8-.3 1.5-.5 2.3-.8-.8.3-1.6.6-2.3.8zM102.8 204.3c-.7.2-1.5.3-2 .5.6-.2 1.3-.3 2-.5zM98.8 214s0 .1 0 0c.2.7.6 1.3.9 1.7h.1c-.5-.5-.8-1-1-1.7zM107.4 202.8c.7-.3 1.4-.6 1.9-.8-.5.2-1.2.5-1.9.8zM99.6 212.7s.1 0 0 0c.1.1.1 0 0 0z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M105.8 214.7c.1-.1.3-.2.4-.2 0 0 1 .1 2-.3.1 0 .2-.1.3-.1h.1c.4-.2.8-.5 1.2-.8l.1-.1.4-.4.5-.5c.1-.1.1-.2.2-.3.6-.9 1-2 1.1-3h.6c2 0 4-1 5.3-2.8 1.9-2.7 1.4-6.4-1-8.5-.1-.1-.3-.2-.5-.4-.3-.2-.6-.4-1-.6-.1 0-.1-.1-.2-.1.2-.2.4-.4.5-.6 1.8-2.6 1.2-6.1-1.4-7.9-.4-.3-.9-.5-1.3-.7-2.2-.7-4.8.1-6.2 2.1 0-.1-.1-.2-.1-.3-.1.1-.1.2-.2.2-.3-.8-.9-1.5-1.6-2-.8-.6-1.7-.8-2.7-.8-.3 0-.5.1-.8.1-1 .3-1.9.8-2.5 1.7-.2.3-.4.6-.5.9h-.2c0 .1-.1.1-.1.2-.6-.2-1.2-.2-1.8-.2-1.2 0-2.3.4-3.3 1-.5.4-1 .8-1.3 1.4-1.8 2.5-1.4 6 .8 8.1-.1 0-.2.1-.3.1l.1.1c-1.3.4-2.4 1.2-3.2 2.4-.2.3-.4.7-.6 1.1v.1l-.3.9c-.5 2.3.4 4.8 2.4 6.3 1.4 1 3.1 1.3 4.6 1.1v.2c0 .3 0 .6.1.9v.1c.1.2.1.4.2.6.3.6.7 1.1 1.2 1.4.5.4 1.1.6 1.7.7-.3-.4-.5-.9-.6-1.4-.7-2.4.3-3 .7-3.2.5-.2 1.1-.2 1.5.1.4.3.7.7.8 1.3 0 .5.3 1.3.9 2l.3-.3c.2-.2.3-.5.4-.7 0 0 .1 0 .1.1.3.2.6.4.9.5.1.1.3.1.4.2h.1c.5.2 1.1.3 1.8.3zm2.1-19.7c.6-.2 1.3.1 1.5.7l.8 2.4c-.8-.1-1.6.2-2.2.8l-.8-2.4c-.3-.7.1-1.3.7-1.5zM97 199.8c-.2
-.6.1-1.3.7-1.5.6-.2 1.3.1 1.5.7l.8 2.4c-.8-.1-1.6.2-2.2.8l-.8-2.4zm6.3 8.1c.1-.1.1-.2.2-.2-.1.1-.2.1-.2.2-.2 0-.4 0-.6-.1-.7-.1-1.4-.3-2.1-.6-.4-.2-.8-.3-1.1-.6-.4-.2-.8-.5-1.2-.8l-.2-.1c-.1-.1-.1-.2 0-.3 0 0 0-.1.1-.1.2-.1.5-.2.7-.3.3-.1.6-.3 1-.4l1.7-.6c1.1-.4 2.3-.8 3.4-1.2 1.2-.4 2.3-.7 3.5-1.1l1.7-.5c.3-.1.7-.2 1-.3.2-.1.5-.1.7-.2.1 0 .2 0 .2.1v.1l-.1.2c-.1.5-.3 1-.5 1.4-.2.4-.4.8-.6 1.1-.4.7-.9 1.3-1.3 1.8-.1.1-.3.2-.4.4-.8.8-1.7 1.3-2.7 1.6-1 .5-2.1.7-3.2.5z"/>
- <path fill="url(#z)" fill-rule="nonzero" d="M203.6 209.1c.1.2.1.3.1.5.1 0 .2 0 .3.1-.1-.3-.3-.4-.4-.6z"/>
- <path fill="url(#A)" fill-rule="nonzero" d="M227 221.9v-1.3-1.4-1.4-.7-1c-.7.3-1.5.5-2.2.5 0 2.6 0 4.6.1 6.2h2.2c-.1-.3-.1-.6-.1-.9z"/>
- <path fill="url(#B)" fill-rule="nonzero" d="M203.3 223.1l-.2-.2-.5-.5c-.1-.1-.2-.2-.2-.3-.1-.2-.3-.3-.4-.5-.1-.1-.2-.2-.2-.3-.2-.2-.3-.4-.5-.5-.1-.1-.2-.2-.2-.3l-.6-.6c-.1-.1-.1-.2-.2-.2-.3-.3-.5-.6-.8-.9-.5-.6-1-1.2-1.5-1.9l-.1-.1-1.2-1.8c0-.1-.1-.1-.1-.2-.4-.6-.7-1.2-1.1-1.9 0-.1-.1-.1-.1-.2-.3-.6-.7-1.3-1-1.9 0-.1 0-.1-.1-.2-.3-.6-.5-1.1-.7-1.7-1-.4-2-.9-3-1.4 1.6 4.2 3.9 8.9 7.1 12.7 1.1 1.3 2 2.3 2.9 3.3.9-.1 1.9-.1 2.8-.2 0 0 0-.1-.1-.2z"/>
- <path fill="url(#C)" fill-rule="nonzero" d="M204.7 212.6c0 .1 0 .1.1.2.1.4.2.8.4 1.2v.1c.1.4.2.7.3 1.1 0 .1.1.2.1.3.1.4.2.7.3 1.1v.1l.3 1.2c0 .1.1.2.1.3.1.3.2.6.2.9 0 .1.1.2.1.3.1.4.2.7.3 1.1 0 .1 0 .1.1.2.1.3.1.6.2.8 0 .1 0 .2.1.3.1.3.1.6.2.9V223c.7 0 1.5-.1 2.3-.1-.4-2.1-1.3-5.4-2.9-10.6-.8-.1-1.6-.3-2.5-.4.1.3.2.5.3.7z"/>
- <path fill="url(#D)" fill-rule="nonzero" d="M214.9 199.4l8.1 2.3h.2c.4 0 .7-.2.8-.6.1-.4-.1-.9-.6-1l-8.1-2.3h-.2c-.4 0-.7.2-.8.6-.1.4.1.8.6 1z"/>
- <path fill="url(#E)" fill-rule="nonzero" d="M267.5 198.4l-1.2-.6c-.4.3-.9.6-1.3.9.9-.1 1.7-.2 2.5-.3z"/>
- <path fill="url(#F)" fill-rule="nonzero" d="M151.3 155.4c-1.2-.4-2.4-.6-3.6-.6-2.5 0-4.9.9-6.8 2.5l1.2-3.3c.1-.3 0-.7-.4-.8h-.2c-.3 0-.5.2-.6.4l-1.1 2.8v4.4l5.2 2h.2c.3 0 .5-.2.6-.4.1-.3 0-.7-.4-.8l-3.7-1.4c1.5-1.8 3.7-2.7 5.8-2.7 1.8 0 3.6.6 5.1 1.9 3.2 2.8 3.6 7.7.7 10.9-1.5 1.8-3.7 2.7-5.8 2.7-1.8 0-3.6-.6-5.1-1.9-1.7-1.5-2.7-3.6-2.7-5.9v2.5c0 1.1-.3 2.2-.9 3 1.9 2.8 5 4.6 8.6 4.6h.1c5.7-.1 10.3-4.7 10.2-10.4.2-4.2-2.4-8-6.4-9.5z"/>
- <path fill="url(#G)" fill-rule="nonzero" d="M144.1 167.6l.8.3.1.2 3.3-1.5c.2-.1.3-.3.3-.4l1.8-4.8c.1-.3 0-.7-.4-.8h-.2c-.3 0-.5.2-.6.4l-1.7 4.6-3.1 1.3c-.3 0-.4.4-.3.7z"/>
- <path fill="url(#H)" fill-rule="nonzero" d="M163 112.5c.1.5.7.5.8 0 1.2-4.8 5-8.6 9.8-9.8.5-.1.5-.7 0-.8-4.8-1.2-8.6-5-9.8-9.8-.1-.5-.7-.5-.8 0-1.2 4.8-5 8.6-9.8 9.8-.5.1-.5.7 0 .8 4.8 1.2 8.5 5 9.8 9.8z"/>
- <path fill="url(#I)" fill-rule="nonzero" d="M234.8 212.7c-.1.5-.2 1.1-.3 1.6v.1c-.1.5-.2 1-.4 1.5-.1.5-.3.9-.4 1.4-.1.4-.3.8-.4 1.1 0 .1-.1.3-.1.4-.1.2-.2.5-.3.7-.1.1-.1.3-.2.4-.1.2-.2.4-.2.6-.1.1-.1.3-.2.4-.1.2-.2.4-.2.5-.1.1-.1.3-.2.4-.1.2-.2.3-.2.5-.1.1-.1.2-.2.3 0 0 0 .1-.1.1.8 0 1.7 0 2.5.1.8-1.7 1.5-3.5 2-4.9.6-1.7 1.1-4 1.6-6.9l-2.4.6c-.1.3-.1.6-.2 1l-.1.1z"/>
- <path fill="url(#J)" fill-rule="nonzero" d="M191.9 204.4l-.3-.9c1.4 1.1 3.3 2 6 2.5h.1c.3 0 .5-.2.5-.5.1-.3-.1-.6-.4-.6-5.2-1-7.3-3.8-8.2-5.4-.1-.4-.3-.8-.4-1.2 0-.1-.1-.3-.1-.5l-.3-1.2c0-.2-.1-.4-.1-.5-.1-.4-.1-.8-.2-1.2v-.6-1c-.1.1-.2.1-.3.1-.1 0-.2 0-.3-.1-.5-.4-1.1-.7-1.6-1.1-.1 4.4.9 8.4 3 11.4l.3.9c1 .6 1.9 1.1 2.9 1.6-.3-.6-.4-1.2-.6-1.7z"/>
- <path fill="url(#K)" fill-rule="nonzero" d="M178.1 85.3c-.1-.3-.5-.3-.6 0-.8 3.2-3.4 5.8-6.6 6.6-.3.1-.3.5 0 .6 3.2.8 5.8 3.4 6.6 6.6.1.3.5.3.6 0 .8-3.2 3.4-5.8 6.6-6.6.3-.1.3-.5 0-.6-3.3-.9-5.8-3.4-6.6-6.6z"/>
- <path fill="url(#L)" fill-rule="nonzero" d="M180.4 204.7l3.1-.9-.9-3-3.1.9"/>
- <path fill="url(#M)" fill-rule="nonzero" d="M176.8 200.9c-.9 0-1.9.4-2.5 1.2l-4.6 6.2-3.6-1.3-.1-.5c-.4-1.2-1.3-2.2-2.5-2.6l-.7-2.3-3.1.9.5 1.7c-2 1-2.8 3.4-1.8 5.4.7 1.4 2.1 2.2 3.6 2.2.6 0 1.2-.1 1.8-.4.6-.3 1.2-.8 1.5-1.4l2.3.8-1.7 2.2c-.3-.1-.7-.1-1-.1-1.8 0-3.4 1.2-3.9 3-.6 2.1.7 4.3 2.9 4.9.3.1.7.1 1 .1 1.8 0 3.4-1.2 3.9-3 .2-.7.2-1.5-.1-2.2-.1-.3-.1-.5-.2-.8l10.3-13.5c-.6-.3-1.3-.5-2-.5zm-13.9 8.8c-.1 0-.1 0-.2.1-.2.1-.5.1-.8.1-.8 0-1.6-.5-1.9-1.3-.4-1.1.1-2.3 1.2-2.7.2-.1.5-.1.8-.1.8 0 1.6.5 1.9 1.3 0 0 0 .1.1.1.4 1-.1 2.1-1.1 2.5zm2.8 9.2h-.2c-.2.1-.4.1-.6.1-.9 0-1.7-.6-2-1.5-.3-1.1.3-2.3 1.4-2.6.2-.1.4-.1.6-.1.9 0 1.7.6 2 1.5v.1c.4 1.1-.2 2.2-1.2 2.5z"/>
- <path fill="url(#N)" fill-rule="nonzero" d="M274.7 179.9c.4-1.1 1.2-2 2.3-2.4-.4-.2-.8-.3-1.2-.4-.3-.1-.6-.1-.9-.2-.2 1-.4 1.9-.8 3h.6z"/>
- <path fill="url(#O)" fill-rule="nonzero" d="M180.9 206.3l.9 3.1c1.7-.5 2.6-2.3 2.1-4l-3 .9z"/>
- <path fill="url(#P)" fill-rule="nonzero" d="M284.7 187.9c-.4-.2-.7-.3-1-.3-.7 0-1.3.3-1.6.9-1.7 3.1-4.9 4.9-8.3 4.9-.8 0-1.5-.1-2.3-.3-2.9-.7-5.3-2.8-6.4-5.6l3.7 1c.2 0 .3.1.5.1.8 0 1.6-.6 1.8-1.4.3-1-.3-2-1.4-2.3l-7.3-1.9c-.2 0-.3-.1-.5-.1-.8 0-1.6.6-1.8 1.4l-1.9 7.3c-.3 1 .3 2 1.4 2.3.2 0 .3.1.5.1.8 0 1.6-.6 1.8-1.4l.5-2c2.4 4.4 6.9 6.9 11.5 6.9 2.1 0 4.2-.5 6.1-1.5 2.3-1.3 4.3-3.2 5.5-5.6.5-.9.2-2-.8-2.5z"/>
- <path fill="url(#Q)" fill-rule="nonzero" d="M172.7 212.8l2.1.8c.1-.1.3-.1.5-.1l3.8 1.3c.2 0 .3.2.3.3 1.3 0 2.6-.9 3-2.2l-7.7-2.7-2 2.6z"/>
- <path fill="url(#R)" fill-rule="nonzero" d="M176.1 196l-.9-3-3.1.9 1 3"/>
- <path fill="url(#S)" fill-rule="nonzero" d="M171.5 197.4l-.9-3.1-3.1 1 1 3"/>
- <path fill="url(#T)" fill-rule="nonzero" d="M166.9 198.8l-.9-3.1-3.1 1 1 3"/>
- <path fill="url(#U)" fill-rule="nonzero" d="M162.3 200.2l-.9-3.1c-1.7.5-2.6 2.3-2.1 4l3-.9z"/>
- <path fill="url(#V)" fill-rule="nonzero" d="M274.7 180c-.2 0-.4-.1-.6-.1-.4 1.3-1 2.7-1.8 4.1.9 1 1.3 2.4 1 3.8-.3 1.3-1.3 2.3-2.5 2.8l.9.3c3-2.5 5.1-4.5 6.1-5.5l-.3-.1c-1.1-.3-2-1-2.5-1.9-.6-1-.7-2.1-.4-3.1 0-.1.1-.2.1-.3z"/>
- <path fill="url(#W)" fill-rule="nonzero" d="M274.9 191.2c2.2-.3 4.2-1.7 5.3-3.7v-.1c.3-.4.6-.8 1-1.1l-1-.3s0 .1-.1.1c0 .2-1.9 2.2-5.2 5.1z"/>
- <path fill="url(#X)" fill-rule="nonzero" d="M187.6 158.4c-1.4-.9-3.2-.6-4 .7-.8 1.3-.3 3 1.1 3.9 1.4.9 3.2.6 4-.7.8-1.2.3-3-1.1-3.9z"/>
- <path fill="url(#Y)" fill-rule="nonzero" d="M276.7 136.6c-.3.7-.4 1.4-.4 2.1l-.9.3c-1.2.5-2.5 1.1-3.7 1.8-.2.1-.4.3-.7.4-.4.2-.7.5-1.2.8-.2.1-.4.3-.6.4l-.6.5c-.1.1-.3.2-.4.3h-.8c-1.1.1-9.8 2-18 3.9.6-1.9 1.2-3.8 1.6-5.8 1.3 0 2.7-.1 4-.2 1 .9 2.3 1.3 3.7 1.3 2.1 0 3.9-1.1 4.9-2.7.5.1 1 .1 1.5.1 4.8 0 9.1-3 10.7-7.5 3-1 5.2-3.7 5.7-6.9.6-.9 1.2-1.8 1.8-2.8 4-1.5 6.6-5.7 6-10 0-.4-.1-.7-.2-1.1 1.5-1.9 2.1-4.4 1.8-6.8-.3-2.1-1.2-4.1-2.7-5.6-.3-2.4-.8-4.7-1.5-7 .1-.4.1-.9.1-1.3 0-3.3-1.7-6.4-4.6-8.1-2.8-4.3-6.6-8-10.8-10.8-1.3-3.8-4.8-6.4-9-6.4-1.4 0-2.8.3-4.1.9-1.2-.3-2.4-.6-3.6-.8-1.7-1.5-4-2.4-6.2-2.4-.4 0-.8 0-1.2.1-2 .2-3.8 1.1-5.3 2.5-2.4.5-4.8 1.2-7 2.1-.6-.1-1.3-.2-2-.2-4.6 0-8.5 3.4-9.3 7.8l-.1.1c-4.1 1.1-7 4.8-7 9.1v.7c-.4.8-.8 1.7-1.1 2.5-1.6 1-2.6 2.8-2.6 4.8 0 .4 0 .7.1 1.1-.6-.6-1.2-1.2-1.9-1.7-.2-1.3-.8-2.4-1.4-3.4.3-2-.6-3.9-1.8-6.3-.2-.4-.4-.9-.7-1.3-.5-1-1.4-1.6-2.4-1.6-1.5 0-2.7 1.2-3.9 3.8-.7 1.6-2.2 5.3-1.1 7.6-.5 3.6 0 6 1.5 7.1l.1.1c.2 1.6.6 3.2 1.1 4.6-11 4.2
-28.2 12.1-33.8 19.4-1.3 1.8-1.6 4.3-.6 7.6 1.9 6.5 8.8 16.5 14 18.4 7.3 2.7 17.2 4.3 27.1 4.3h2c-2.1 1.4-4.1 2.9-6 4.5-3.9 1.5-7 2.8-9.5 3.9-.5-.8-1-1.5-1.6-2.2-1.1-1.3-2.4-2.4-3.8-3.3-2.9-1.8-6.2-2.8-9.7-2.8-6.2 0-11.9 3.1-15.2 8.3-1.1 1.7-1.8 3.4-2.3 5.3l.6.9c.2.3.1.6-.1.8-.1.1-.2.1-.3.1-.2 0-.3-.1-.5-.2-.5 3.2-.1 6.5 1 9.4 1.6 2.5 3.3 4.8 5 7.1.6.6 1.3 1.1 2.1 1.6 2.9 1.8 6.2 2.8 9.7 2.8 1.2 0 2.4-.1 3.5-.3l2.4-.6c-.2 1.1-.3 2.1-.3 3.2.7.5 1.4 1 2.2 1.5v-.1-1.3c0-.2 0-.5.1-.7 0-.4.1-.9.1-1.3 0-.3.1-.5.1-.8.1-.4.2-.9.2-1.3v-.2c0-.2.1-.4.1-.6.1-.5.2-.9.3-1.4.1-.3.1-.6.2-.8.1-.5.3-.9.4-1.4.1-.3.2-.6.3-.8.2-.5.4-1 .5-1.4.1-.3.2-.6.3-.8.2-.5.4-1 .7-1.5.1-.3.2-.5.4-.8.3-.5.5-1.1.8-1.6.1-.2.2-.5.4-.7.3-.6.7-1.2 1-1.8.1-.2.2-.4.3-.5.2-.3.4-.6.6-.8 3-4.4 5.4-6.8 5.4-6.8.1-.1.2-.3.2-.4 0-.1-.1-.3-.2-.4-.2-.2-.6-.2-.8 0-.1.1-2.3 2.3-5.1 6.4-1.1.2-2.1.3-3.1.5h-.1c-.4.1-.8.1-1.1.2h-.2c-.3 0-.6.1-.9.1h-.2c-.3 0-.6.1-.9.1-.2 0-.4 0-.6.1h-.7-.2s-.8 0-1.2-.5c0-.1-.1-.1-.1-.2s-.1-.1-.1-.2v-.6c0-.
2.1-.5.3-.9.1-.1.1-.2.2-.4.2-.3.6-.6 1.2-1 .1 0 .1-.1.2-.1s.1-.1.2-.1c1.1-.6 2.6-1.4 4.4-2.2 4.1-1.9 9.7-4.1 14.3-5.9.1 0 .1-.1.2-.1.5-.4 1-.9 1.6-1.3.4-.3.7-.6 1.1-.8.3-.3.7-.5 1-.8.8-.6 1.5-1.1 2.3-1.6.2-.1.4-.3.6-.4.5-.3 1.1-.7 1.6-1 .1-.1.3-.2.4-.3.8-.5 1.6-.9 2.4-1.4.3-.2.6-.4 1-.5 4.1-.6 10.4-1.6 14.2-3.2.3-.1.4-.4.3-.7-.1-.3-.4-.4-.7-.3-5.7 2.3-17.7 3.6-17.8 3.6h-.2c-1.7.1-3.4.2-5.1.2-9.9 0-19.5-1.6-26.3-4.1-.7-.3-1.4-.7-2.3-1.4-.2-.2-.4-.3-.6-.5-.4-.4-.8-.8-1.3-1.2-.2-.2-.4-.4-.6-.7-.4-.5-.9-1-1.3-1.5s-.8-1.1-1.2-1.6c-.6-.8-1.2-1.7-1.8-2.6-.4-.6-.7-1.2-1.1-1.8-2-3.6-3.3-7.2-2.9-9.7v-.1c.1-.6.3-1.1.7-1.6.2-.2.4-.4.6-.7.1-.1.1-.2.2-.2.1-.2.3-.3.4-.5l.3-.3.4-.4.3-.3c.1-.1.3-.3.5-.4.1-.1.2-.2.4-.3.2-.1.3-.3.5-.4.1-.1.3-.2.4-.3.2-.1.3-.3.5-.4.1-.1.3-.2.4-.3.2-.1.4-.3.6-.4.1-.1.3-.2.4-.3.2-.1.4-.3.6-.4.1-.1.3-.2.4-.3.2-.2.5-.3.7-.5.1-.1.2-.2.4-.2.3-.2.7-.4 1-.6.1-.1.2-.1.3-.2.3-.2.7-.4 1-.6.2-.1.3-.2.5-.3.2-.1.5-.3.7-.4.2-.1.4-.2.5-.3.2-.1.5-.3.7-.4l.6-.3c.2-.1.5-.3.7-.4l.6-.3c.2-
.1.5-.2.7-.4l.6-.3c.2-.1.5-.2.7-.4l.6-.3c.2-.1.5-.2.7-.3.2-.1.4-.2.7-.3.2-.1.5-.2.7-.3.2-.1.5-.2.7-.3.2-.1.5-.2.7-.3.2-.1.4-.2.7-.3.3-.1.5-.2.8-.3.5-.2.9-.4 1.4-.6l.6-.3c.3-.1.5-.2.8-.3l.6-.3c.3-.1.5-.2.8-.3l.6-.3c.3-.1.5-.2.8-.3.2-.1.4-.2.6-.2.3-.1.5-.2.8-.3.2-.1.4-.2.6-.2.3-.1.5-.2.8-.3.2-.1.4-.1.5-.2.3-.1.5-.2.8-.3.2-.1.4-.1.5-.2.3-.1.5-.2.8-.3.2-.1.3-.1.5-.2s.4-.1.6-.2c-.1.2-.1.5 0 .7 1.8 5.7 5.9 6.6 6.1 6.6h.2c.5 0 1-.4 1.1-.9.1-.6-.3-1.2-.9-1.3-.1 0-2-.5-3.5-3 3.4.1 7.2-2.6 7-6 1.4 1 3.5 2.9 3.5 5.5 0 3.8-3.7 5.1-3.9 5.2-.3.1-.4.4-.4.7 0 0 0 .1.1.1.1.2.3.3.5.3h.2s4.6-1.6 4.7-6.2c0-2-1-3.6-2.1-4.8l1.4-.4c.5.4 1.7 1.2 3.2 1.2h.6c.3 0 .5-.3.5-.6v-.1c-.1-.2-.3-.4-.6-.3-1.7.2-3.1-1.1-3.1-1.1-.1-.1-.4-.2-.6-.1l-2.3.7c-.2-.2-.5-.4-.7-.5 0-.7.1-1.4.1-2.2 0-.4.1-.9.2-1.3s.1-.9.2-1.3c-.5-.6-.7-1.3-.7-2.1 0-.6.1-1.1.4-1.5.2-.5.5-.9.9-1.2.1-.1.3-.2.4-.3.1-.1.3-.2.5-.2.2-.5.3-.9.5-1.3.2-.5.4-.9.6-1.4.1-.3.3-.7.5-1 0-.3-.1-.7-.1-1v-.1-.1c0-.6.1-1.3.3-1.8.2-.8.6-1.6 1.1-2.2.2-.3.5-.7.8-.9.5-
.5 1.1-.9 1.7-1.3.6-.3 1.3-.6 2.1-.7.3-.4.7-.7 1-1 0-.3.1-.7.2-1 .1-.4.2-.7.3-1 .9-2.3 3-4 5.5-4.5h.3c.3 0 .7-.1 1-.1.3 0 .6 0 .8.1.5.1.9.1 1.3.3.6-.3 1.3-.5 1.9-.8 1.3-.5 2.6-.9 4-1.2.7-.2 1.4-.3 2.1-.4.6-.6 1.2-1.1 2-1.5.8-.4 1.6-.7 2.5-.8.3 0 .6-.1.9-.1h1c.2 0 .4.1.5.1.1 0 .2.1.3.1.2 0 .3.1.5.1.1 0 .2.1.3.1.1.1.3.1.4.2.1 0 .2.1.3.1.1.1.3.2.4.2.1.1.2.1.3.2.1.1.3.2.4.3l.2.2c.2.2.4.3.6.5 1.7.2 3.3.6 4.9 1.1.6-.3 1.2-.6 1.8-.8.1 0 .2 0 .3-.1.2-.1.5-.1.7-.2h1c.4 0 .8 0 1.2.1h.2c.4.1.7.2 1 .3.1 0 .1 0 .2.1.3.1.7.3 1 .4 0 0 .1 0 .1.1l.9.6c.3.2.6.5.8.8.3.3.5.6.7.9v.1c.2.3.4.7.5 1v.1c.1.4.3.7.4 1.1.1.4.2.8.2 1.3 3.1 2.5 5.8 5.5 7.8 8.9 1.2 0 2.2.3 3.2.8.6.3 1.1.7 1.6 1.1.5.4.9.9 1.2 1.4 0 0 0 .1.1.1.1.2.3.5.4.7 0 0 0 .1.1.1l.3.9v.1c.1.2.1.5.2.7v.2c0 .3.1.6.1.9V92.9c0 .2-.1.5-.1.7-.3 1.7-1.2 3.1-2.5 4.2.2 1.5.3 2.9.3 4.4 1.2 1.2 2 2.8 2 4.7.1 2.2-.9 4.2-2.5 5.5.2.6.3 1.2.3 1.8.1 3.4-2.4 6.3-5.7 6.9-.8 1.2-1.7 2.3-2.6 3.3-.5 2.8-2.8 4.8-5.5 5-1.2 3.7-4.9 6.2-9 5.8-.9-.1-1.8-.3-2.6-.7h-.2c-.
4 1.6-1.9 2.6-3.5 2.5-.3 0-.5-.1-.8-.2-.3 1.2-.6 2.4-.9 3.5h1-2.4c.2-3.6-.3-5.8-.4-5.9-.1-.3-.4-.5-.7-.4h-.1c-.2.1-.4.4-.3.6 0 0 .9 3.8-.1 9.4-.4 1.4-.8 2.8-1.3 4.3-.1.2-.1.4-.2.6-.3.9-.6 1.7-1 2.6 7.4-1.8 15.5-3.6 19.4-4.4l-.6.6c-.9.9-1.9 2-2.7 2.9-.8 1-1.4 1.8-1.8 2.3-.2.3-.4.5-.5.7 0 0 0 .1-.1.1-.1.1-.1.2-.1.2-.2.3-.2.6-.3.9-2.9 1.5-6 3.1-9 4.5-2.9 1.4-5.5 2.7-7.6 3.6-.2.1-.3.2-.5.2-.1.1-.1.3-.2.4-.1.2-.2.4-.2.6 0 0 0 .1-.1.1-.1.4-.3.7-.4 1.1v.1c-.1.4-.3.8-.4 1.2-.1.4-.3.9-.4 1.3-.4 1.4-.8 2.9-1.1 4.4-1 4.8-1 5-.9 5.1.1.2.3.4.5.4h.2c.3-.1.4-.3.4-.6s.2-1.4.5-2.9c.9-.2 1.8-.3 2.6-.4 1.2-1.2 2.8-2 4.5-2.1 2-.2 3.9.6 5.3 1.8.8-.3 1.7-.5 2.7-.4 1.3.1 2.6.5 3.6 1.3 1.3-.2 2.4-.4 3.5-.7.4-.1.8-.3 1.2-.4.9-.8 1.9-1.6 3.1-2.2.7-.4 1.4-.6 2.1-.9 2.1-1.9 3.3-4 3.8-5.3.1-.2.1-.3.2-.5 0-.1.1-.3.1-.3.1-.2.1-.3.1-.3v.1c.1.1.2.3.3.6.4.9 1.1 2.6 1.5 4.9.8.1 1.6.2 2.3.3-.6-4.3-2.2-7-2.3-7.1-.4-.7-1.1-1.1-1.9-1.1h-.3c-.9.1-1.6.8-1.8 1.7-.1.2-1.6 5.6-7.9 8-2-1.7-4.3-3.1-7-4.3-2.9-1.2-6.1-1.8-9.7-1.8
-.8 0-1.6 0-2.5.1.1-.2.2-.4.2-.6 2.4-1.1 9.7-4.6 16.1-7.9.5.4 1.1.7 1.7.7.2 0 .4 0 .7-.1 0 0 .1 0 .3-.1.2-.1.5-.2.8-.3.6-.2 1.5-.6 2.7-1.2.1 0 .1-.1.2-.1.1.1.1.2.2.2.8.9 2 1.5 3.4 1.7.5.1.9.1 1.3.1 1.3 0 2.5-.4 3.5-1.1 2-1.5 2.3-4.1 2.3-4.2.1-.6-.4-1.2-1-1.2-.2 0-.4 0-.6.1-.3.2-.6.5-.6.9 0 0-.2 1.8-1.4 2.7-.7.6-1.8.8-3.1.6-1.1-.2-1.9-.6-2.4-1.4-1.1-1.6-.6-4-.5-4.1v-.6c-.1-.4-.4-.7-.8-.8-.6-.1-1.2.2-1.3.8 0 .1-.7 2.9.6 5.3h-.1c-1.1.5-2 .9-2.6 1.1-.3.1-.6.2-.7.3-.2.1-.3.1-.3.1-.4.1-.7 0-1-.1-.3-.2-.6-.5-.6-.8-.1-.3-.1-.7.1-1l.1-.2c.1-.2.2-.4.4-.7.3-.4.8-1.2 1.7-2.2.8-1 1.7-2 2.6-2.9.5-.5 1-1 1.6-1.5.6-.5 1.1-1 1.7-1.5.2-.2.4-.3.6-.5l.6-.5c.2-.1.4-.3.6-.4.1-.1.2-.1.3-.2.5 1.7 1.6 3.3 3 4.4.3.2.7.5 1 .7-.1.1-.2.2-.3.2-.2.2-.4.3-.6.4l-.6.5c-.1 0-.1.1-.2.1.4.2.8.3 1.2.5l.3-.3c.2-.2.4-.3.6-.5.7-.5 1.2-1 1.7-1.5 1-1 1.9-2 2.6-3.1.5-.7.8-1.3 1.1-1.8.3 0 .6 0 .9-.1 1.3-.3 4.6-1.7 6.4-7.7.2-.5 0-1.1-.5-1.5-.4-.4-1-.4-1.5-.2-.9.5-2.5 1-4.4.9-1.7-.1-3.3.5-4.3 1.6-.4-.4-.6-.1-.8.3 0-.1 0 0 0 0zm1
2.3-31.5c0 .3.1.6.1.9-.1-.3-.1-.6-.1-.9 0-.4-.1-.7-.2-1.1.1.4.1.8.2 1.1zm-104.7 62.1c-1.2 2-.9 3.4-.5 4.3.7 1.2 1.9 1.7 2.9 1.8h.6c.5 0 1.5-.1 4.7-.5-.7 1.3-1.4 2.6-2 3.9-.2-.2-.4-.4-.7-.5-1.5-.8-3.3-.3-4.1 1.1-.8 1.4-.2 3.2 1.3 4 .5.3 1 .4 1.5.4-.5 1.6-.9 3.1-1.2 4.6-2 .8-4 1.1-6.1 1.1-3.1 0-6.3-.9-9.1-2.6-7.9-5-10.2-15.5-5.2-23.3 3.2-5.1 8.7-7.8 14.3-7.8 3.1 0 6.3.9 9.1 2.6 2.1 1.3 3.7 3.1 5 5-9.3 4-10 5.2-10.5 5.9zm17.8-77.5c0-.1 0-.2-.1-.3v-.2-.4-.3-.4-.3c0-.1.1-.3.1-.4 0-.1 0-.2.1-.3 0-.2.1-.3.1-.5 0-.1.1-.2.1-.3.1-.2.1-.3.2-.5 0-.1.1-.2.1-.3.1-.2.1-.4.2-.6 0-.1 0-.1.1-.2.1-.2.2-.5.3-.7 0-.1.1-.1.1-.2.1-.2.2-.3.3-.5 0-.1.1-.1.1-.2.1-.1.1-.2.2-.4 0-.1.1-.1.1-.2.1-.1.1-.2.2-.3 0-.1.1-.1.1-.2l.2-.2s.1 0 .1-.1c2.4 1.9 2.2 7.3 2.2 7.4v.1c-1.1 1.6-3.1 2.1-4.4.9-.1-.1-.2-.1-.2-.2-.1-.1-.1-.2-.2-.3v.1zM204 98c-.1-.4-.1-.8-.1-1.2-.1-.1-.3-.1-.4-.2-.1-.1-.3-.2-.4-.3-.1-.1-.2-.1-.2-.2-.2-.3-.3-.7-.4-1.3-.1-.5-.1-1-.1-1.6 0-.3 0-.7.1-1.1 2.1 1.8 5.2.5 5.8-1.5.1.2.2.4.3.7.4 1.2.6 2.2.7 2.6v
.2c-.8 2.2-3.3 3.4-5.3 2.7.1.7.2 1.3.3 2-.3-.2-.3-.5-.3-.8zm9.1 1.2c-.2 3-4.3 5-7.1 4.5-.7-.5-1.2-1.8-1.6-3.4-.1-.4-.2-.7-.2-1.1V99c2.9 1.2 6.1-.8 6.5-3.5.4.3.9.7 1.4 1.2.7.7 1 1.5 1.1 2.1-.1.1-.1.3-.1.4zm74.3 13.9c-.1-.7-.3-1.3-.5-1.9.2.6.4 1.2.5 1.9 0 .2 0 .5.1.7-.1-.3-.1-.5-.1-.7zm-1.1-12.7c.5.4 1 .9 1.4 1.5-.4-.6-.8-1.1-1.4-1.5zm-20.4 37.3h-.5.5zm-3.3-.4c.3.1.7.2 1 .2-.4-.1-.7-.1-1-.2-.1 0-.1 0 0 0-.1 0-.1 0 0 0zm-2 2.5c-.3.2-.7.3-1.1.4.5 0 .8-.2 1.1-.4zm-1.4.5h-.3.3zm-12.9 26.1h.1-.4.3zm31.4-29.4c.6-1.2 1.9-1.9 3.5-1.9h.6c.5.6-.2 1 .4 2.1.7 1.3 2.3-.3 3.3.6-1.5 2.6-3.3 3.3-4.2 3.5-1.2.3-2.5 0-3.1-.8-.8-1-1-2.4-.5-3.5zm-.2 4.3c.5.6 1.2.9 2 1.1-.2.4-.5.8-.8 1.3-.4.6-.9 1.2-1.3 1.7-1.7-.7-3.1-2.3-3.5-4.2v-.4c.7-.3 1.3-.7 2-.9.3-.1.5-.2.7-.3.2.7.5 1.2.9 1.7z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M219.1 84.8c0-.6.1-1.3.3-1.8-.2.5-.3 1.2-.3 1.8z"/>
- <path fill="url(#Z)" fill-rule="nonzero" d="M219.1 84.8c0-.6.1-1.3.3-1.8-.2.5-.3 1.2-.3 1.8z"/>
- <path fill="url(#aa)" fill-rule="nonzero" d="M219.1 84.8c0-.6.1-1.3.3-1.8-.2.5-.3 1.2-.3 1.8z"/>
- <path fill="url(#ab)" fill-rule="nonzero" d="M178.6 177.5c-.4-.2-.8-.3-1.1-.4l2.7 3.2c.2.2.2.6-.1.8-.1.1-.2.1-.4.1s-.3-.1-.4-.2l-3.3-4c-.9.1-1.6.6-2 1.3-.2.3-.3.7-.3 1.1 1.2 1.3 2.4 2.6 3.6 3.7 1.4.3 2.7-.2 3.3-1.2.7-1.4-.2-3.4-2-4.4z"/>
- <path fill="url(#ac)" fill-rule="nonzero" d="M267.8 172.1c-2.3 1.3-4.3 3.2-5.5 5.6-.5.9-.1 2.1.8 2.5h.1l.4.1c.2 0 .3.1.5.1.7 0 1.4-.4 1.7-1.1 1.7-3 4.9-4.8 8.2-4.8.8 0 1.6.1 2.4.3 2.9.7 5.3 2.8 6.4 5.6l-3.7-1c-.2 0-.3-.1-.5-.1-.8 0-1.6.6-1.8 1.4-.3 1 .3 2 1.4 2.3l7.3 1.9c.2 0 .3.1.5.1.8 0 1.6-.6 1.8-1.4l1.9-7.3c.3-1-.3-2-1.4-2.3-.2 0-.3-.1-.5-.1-.8 0-1.6.6-1.8 1.4l-.5 2c-2.4-4.4-6.9-6.9-11.5-6.9-2.2.2-4.3.7-6.2 1.7z"/>
- <path fill="url(#ad)" fill-rule="nonzero" d="M180.7 194.6c-.4-1.4-1.7-2.3-3.1-2.3-.3 0-.6 0-.9.1l.9 3.1 3.1-.9z"/>
- <path fill="url(#ae)" fill-rule="nonzero" d="M172.6 172.1c.8-1.4.2-3.2-1.3-4-1.5-.8-3.3-.3-4.1 1.1-.8 1.4-.2 3.2 1.3 4 1.5.8 3.3.3 4.1-1.1z"/>
- <path fill="url(#af)" fill-rule="nonzero" d="M175.8 164.2c1.7 0 3.1-1.3 3.1-2.9 0-1.6-1.4-2.9-3.1-2.9-1.7 0-3.1 1.3-3.1 2.9 0 1.6 1.4 2.9 3.1 2.9z"/>
- <path fill="url(#ag)" fill-rule="nonzero" d="M224.1 117.1c.4 0 .9.1 1.3.1 0-.1.1-.2.1-.3v-3c0-.7-.6-1.3-1.3-1.3-.7 0-1.3.6-1.3 1.3v3c0 .1 0 .2.1.3.2-.1.7-.1 1.1-.1z"/>
- <path fill="url(#ah)" fill-rule="nonzero" d="M237.5 199.2c.6-7.2 1.2-16.6 1.3-16.7 0-.3-.2-.6-.5-.6s-.6.2-.6.5c0 .2-1.4 19.4-1.9 23.9v.3c0 .2-.1.5-.1.7v.1c-.1.6-.2 1.1-.2 1.7v.2c.8-.2 1.6-.4 2.3-.6.1-.9.3-1.8.4-2.8 5.1-.6 12.8-2.1 20-5.6 2.3-1.3 4.3-2.6 6.2-3.9-.5-.4-1-.8-1.5-1.3-.8.7-1.8 1.2-2.9 1.2-.3 0-.7 0-1-.1-1.4.9-3 1.8-4.7 2.6-6.6 3-13 4.1-17.1 4.5.1-.9.2-1.8.2-2.9 1.8-.1 3.6-.2 5.5-.5 5.9-.9 10.7-2.9 14.2-4.8-.2-.2-.4-.5-.6-.8 0 0 0-.1-.1-.2-3.4 1.9-8 3.8-13.7 4.7-1.8.2-3.5.4-5.2.4z"/>
- <path fill="url(#ai)" fill-rule="nonzero" d="M264.9 127.4c1 0 2.1-.3 3.3-1.3 2.4-2 2.5-4.3 2.3-5.6 1.4-.2 2.8-.8 4.2-2.2 3.6-3.7 2.9-7.8 2.1-9.4-.3-.5-1-.8-1.5-.5-.5.3-.8 1-.5 1.5 0 0 1.7 3.4-1.7 6.8-2.9 2.9-5.8 1.1-6.1.9-.5-.4-1.2-.2-1.6.3-.4.5-.2 1.2.3 1.6.8.5 2.1 1.1 3.7 1.2.2.9.2 2.9-1.9 4.7-2.6 2.1-4.8.3-4.9.2-.2-.2-.6-.2-.8.1-.2.2-.2.6.1.8 0-.2 1.2.9 3 .9z"/>
- <path fill="url(#aj)" fill-rule="nonzero" d="M249.6 126.6c1 1 2.7 2.2 5.8 2.2.8 0 1.7-.1 2.7-.3.3-.1.5-.3.4-.6-.1-.3-.3-.5-.6-.4-4.9.9-6.7-1-7.4-1.7-1.3-1.3-1.9-4.5-1.9-4.6 0-.2-.2-.4-.4-.4-.1 0-5.1-1.5-8.5-5.7-3.1-3.9-3.5-8.4-3.5-8.4 0-.2-.1-.4-.3-.5-.8-.4-3.2-1.7-3.8-3.2-1.3-3.1.1-4.9.1-4.9.2-.2.2-.6-.1-.8-.2-.2-.6-.2-.8.1 0 0-.5.6-.8 1.7l-3.3-.1c-.3 0-.6.2-.6.5v.2c.1.2.3.4.5.4l3.2.1c0 .9.1 2 .6 3.2.4.9 1.2 1.7 2 2.3.8.6 1.6 1.1 2.1 1.3 0 .3.1.8.3 1.4.4 1.8 1.3 4.7 3.5 7.3.4.5.8 1 1.3 1.4 2.9 2.9 6.4 4.2 7.4 4.6.2 1 .8 3.6 2.1 4.9z"/>
- <path fill="url(#ak)" fill-rule="nonzero" d="M179 200.2l3.1-1-.9-3-3.1.9"/>
- <path fill="url(#al)" fill-rule="nonzero" d="M231.2 188.3l-16.2-4.7c-.3-.1-.6-.1-.9-.1-1.5 0-2.8 1-3.2 2.4l-5.6 19.4c-.5 1.8.5 3.7 2.3 4.2l16.2 4.7c.3.1.6.1.9.1 1.5 0 2.8-1 3.2-2.4l5.6-19.4c.5-1.8-.5-3.7-2.3-4.2zm-1.4 4.9l-4.7 16.2c-.2.7-.9 1.2-1.6 1.2-.2 0-.3 0-.5-.1l-12.9-3.7c-.9-.3-1.4-1.2-1.2-2.1l4.7-16.2c.2-.7.9-1.2 1.6-1.2.2 0 .3 0 .5.1l12.9 3.7c.9.2 1.5 1.2 1.2 2.1z"/>
- <path fill="url(#am)" fill-rule="nonzero" d="M99.3 199.1c-.2-.6-.9-1-1.5-.7-.6.2-1 .9-.7 1.5l.8 2.4c.6-.6 1.4-.9 2.2-.8l-.8-2.4z"/>
- <path fill="url(#an)" fill-rule="nonzero" d="M224.4 196.8l-8.1-2.3h-.2c-.4 0-.7.2-.8.6-.1.4.1.9.6 1l8.1 2.3h.2c.4 0 .7-.2.8-.6.1-.4-.2-.8-.6-1z"/>
- <path fill="url(#ao)" fill-rule="nonzero" d="M108 198.9c.6-.6 1.4-.9 2.2-.8l-.8-2.4c-.2-.6-.9-1-1.5-.7-.6.2-1 .9-.7 1.5l.8 2.4z"/>
- <path fill="url(#ap)" fill-rule="nonzero" d="M106.2 206.7c1-.5 2-1 3.1-.7.1-.1.3-.2.4-.4.5-.5.9-1.1 1.3-1.8.2-.4.4-.7.6-1.1.2-.4.3-.9.5-1.4l.1-.2v-.1c0-.1-.1-.2-.2-.1-.2.1-.5.1-.7.2-.3.1-.7.2-1 .3l-1.7.5c-1.2.3-2.3.7-3.5 1.1-1.1.4-2.3.8-3.4 1.2l-1.7.6c-.3.1-.6.3-1 .4-.2.1-.5.2-.7.3 0 0-.1 0-.1.1-.1.1 0 .2 0 .3l.2.1c.4.3.8.6 1.2.8.4.2.8.4 1.1.6.7.3 1.4.5 2.1.6.2 0 .4 0 .5.1.1-.1.1-.2.2-.2.7-.9 1.7-1 2.7-1.2zm-5.4-1.9c.6-.1 1.3-.3 2-.5-.7.2-1.4.3-2 .5zm6.6-2c.7-.3 1.4-.6 1.9-.8-.5.2-1.2.5-1.9.8-.7.3-1.5.6-2.3.8.8-.2 1.6-.5 2.3-.8z"/>
- <path fill="url(#aq)" fill-rule="nonzero" d="M225.3 193.6l-8.1-2.3h-.2c-.4 0-.7.2-.8.6-.1.4.1.9.6 1l8.1 2.3h.2c.4 0 .7-.2.8-.6.1-.4-.2-.9-.6-1z"/>
- <path fill="url(#ar)" fill-rule="nonzero" d="M164 84.3c-.2 0-.2.3 0 .3 1.8.5 3.3 1.9 3.7 3.7 0 .2.3.2.3 0 .5-1.8 1.9-3.3 3.7-3.7.2 0 .2-.3 0-.3-1.6-.4-2.9-1.6-3.5-3.1h-.7c-.6 1.5-1.9 2.7-3.5 3.1z"/>
- <path fill="url(#as)" fill-rule="nonzero" d="M213.9 202.6l3.2.9h.2c.4 0 .7-.2.8-.6.1-.4-.1-.9-.6-1l-3.2-.9h-.2c-.4 0-.7.2-.8.6-.1.4.2.9.6 1z"/>
- <path fill="url(#at)" fill-rule="nonzero" d="M227.9 119.2l-.3-.3c-.1-.1-.2-.2-.3-.2-.7-.5-1.8-1.1-3.2-1.1-2.9 0-4.4 2.2-4.5 2.3-.3.5-.2 1.2.3 1.5.5.3 1.2.2 1.5-.3 0 0 .9-1.3 2.6-1.3 1.1 0 1.9.5 2.3.9l.2.2.2.2c.2.3.6.5.9.5.2 0 .4-.1.6-.2.5-.3.7-1 .3-1.5.1 0-.1-.3-.6-.7z"/>
- <path fill="url(#au)" fill-rule="nonzero" d="M196.8 121.5c.5.3 1.2.2 1.5-.3 0 0 .1-.2.4-.4.4-.4 1.2-.9 2.2-.9 1.7 0 2.6 1.3 2.6 1.3.2.3.6.5.9.5.2 0 .4-.1.6-.2.5-.3.7-1 .3-1.5-.1-.1-1.5-2.3-4.5-2.3-1.9 0-3.2 1-3.9 1.7l-.3.3c-.2.2-.3.4-.3.4-.2.4 0 1.1.5 1.4z"/>
- <path fill="url(#av)" fill-rule="nonzero" d="M200.9 117.1c.4 0 .9.1 1.3.1 0-.1.1-.2.1-.3v-3c0-.7-.6-1.3-1.3-1.3-.7 0-1.3.6-1.3 1.3v3c0 .1 0 .2.1.3.3-.1.7-.1 1.1-.1z"/>
- <path fill="url(#aw)" fill-rule="nonzero" d="M207.7 137.3l-1.5-.6c-.7-.3-1.5-.5-2.2-.8l-3.8-1.3-7.5-2.4c-.2-.1-.4-.1-.6-.2-1.1 1.2-2.3 2.4-2.8 2.7-.4.2-3.4-.5-3.5-.8-.1-.2.3-1.9.7-3.5-.5-.1-.9-.3-1.4-.4l-.6-.1c-.3 1.4-.7 3.1-.9 3.2-.4.3-2.9-1.2-3.1-1.5-.1-.2-.5-1.6-.7-2.9-.3-.1-.5-.1-.8-.2-.5-.1-1.1-.2-1.6-.4h-.2c-.2.1-.3.3-.3.5l.1.5c.3 1.1.7 2.2 1.2 3 .4.9.9 1.7 1.3 2.5.9 1.5 1.9 2.7 3 3.8.3.3.6.5.9.8.2-.1.4-.1.6-.1-.2 0-.4.1-.6.1 1.9 1.6 3.9 2.7 6 3.3h.2c2.2.6 4.4.8 6.9.5.4 0 .8-.1 1.2-.2 1.5-.3 3-.8 4.6-1.5.8-.4 1.6-.8 2.5-1.3.8-.5 1.7-1.1 2.6-1.9l.4-.3c0-.1.1-.1.1-.2.2 0 0-.2-.2-.3z"/>
- <path fill="url(#ax)" fill-rule="nonzero" d="M231.2 80.2c.4 0 .6-.2.6-.5 0-.1.5-3 4.2-3.5 1.8-.3 2.9.5 3.5 1.2-3.5 2.2-4.1 5.7-3.9 7.3.1.6.6 1 1.1 1h.1c.6-.1 1-.6 1-1.2 0 0-.4-3.8 4-5.8 3.8-1.7 5.8 1 6.1 1.4.3.5 1 .6 1.5.3s.6-1 .3-1.5c-.5-.7-1.3-1.5-2.5-2.1.5-.9 1.6-2.1 3.8-2.4 3.3-.5 4.2 2.3 4.3 2.4.1.3.4.5.7.4.3-.1.5-.4.4-.7 0 0-1.3-3.8-5.5-3.2-2.8.4-4.1 2-4.7 3.1-1.5-.5-3.3-.5-5.3.4-.1.1-.3.1-.4.2-.8-1-2.2-2.1-4.7-1.7-4.5.6-5.1 4.4-5.2 4.4 0 .2.3.5.6.5z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M207.7 223.7v.2c0 .2.1.4.1.6v.2c0 .2.1.4.1.6v.5c0 .1 0 .2-.1.2l-.2.2H207.3h-.1-.1c-.1 0-.1 0-.2-.1h-.1c-.1 0-.2-.1-.3-.2 0 0-.1 0-.1-.1-.1-.1-.2-.1-.3-.2l-.1-.1c-.1-.1-.2-.1-.3-.2-.1 0-.1-.1-.2-.1l-.3-.3-.2-.2-.3-.3-.2-.2-.5-.5-.1-.1-.4-.4c-1 .1-1.9.1-2.8.2 3.3 3.6 5 4.9 6.6 4.9.9 0 1.8-.4 2.3-1.2.4-.6.8-1.1.2-4.3-.8 0-1.5.1-2.3.1.1.4.1.6.2.8z"/>
- <path fill="url(#ay)" fill-rule="nonzero" d="M207.7 223.7v.2c0 .2.1.4.1.6v.2c0 .2.1.4.1.6v.5c0 .1 0 .2-.1.2l-.2.2H207.3h-.1-.1c-.1 0-.1 0-.2-.1h-.1c-.1 0-.2-.1-.3-.2 0 0-.1 0-.1-.1-.1-.1-.2-.1-.3-.2l-.1-.1c-.1-.1-.2-.1-.3-.2-.1 0-.1-.1-.2-.1l-.3-.3-.2-.2-.3-.3-.2-.2-.5-.5-.1-.1-.4-.4c-1 .1-1.9.1-2.8.2 3.3 3.6 5 4.9 6.6 4.9.9 0 1.8-.4 2.3-1.2.4-.6.8-1.1.2-4.3-.8 0-1.5.1-2.3.1.1.4.1.6.2.8z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M231.2 223.1c-.1.1-.1.2-.2.3-.1.2-.2.3-.3.4 0 .1-.1.2-.1.2-.1.2-.2.4-.4.5v.1c-.1.2-.3.4-.4.5 0 .1-.1.1-.1.1-.1.1-.2.2-.2.3 0 .1-.1.1-.1.1l-.2.2-.1.1c-.1.1-.1.1-.2.1l-.1.1c-.1 0-.1.1-.2.1 0 0-.1 0-.1.1h-.2-.1-.1-.1c-.1 0-.2-.1-.2-.1l-.1-.1c-.1-.1-.1-.3-.2-.6s-.1-.6-.1-1c0-.3-.1-.7-.1-1.1v-.9h-2.2c.2 4.5.8 4.9 1.4 5.4.5.4 1.2.6 1.8.6 2.3 0 4.3-2.8 5.8-5.9-.8 0-1.6 0-2.5-.1-.3.4-.4.5-.4.6z"/>
- <path fill="url(#az)" fill-rule="nonzero" d="M231.2 223.1c-.1.1-.1.2-.2.3-.1.2-.2.3-.3.4 0 .1-.1.2-.1.2-.1.2-.2.4-.4.5v.1c-.1.2-.3.4-.4.5 0 .1-.1.1-.1.1-.1.1-.2.2-.2.3 0 .1-.1.1-.1.1l-.2.2-.1.1c-.1.1-.1.1-.2.1l-.1.1c-.1 0-.1.1-.2.1 0 0-.1 0-.1.1h-.2-.1-.1-.1c-.1 0-.2-.1-.2-.1l-.1-.1c-.1-.1-.1-.3-.2-.6s-.1-.6-.1-1c0-.3-.1-.7-.1-1.1v-.9h-2.2c.2 4.5.8 4.9 1.4 5.4.5.4 1.2.6 1.8.6 2.3 0 4.3-2.8 5.8-5.9-.8 0-1.6 0-2.5-.1-.3.4-.4.5-.4.6z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M167.7 80.6c-.1.2-.1.4-.2.6h.7c-.1-.2-.2-.4-.2-.6 0-.2-.3-.2-.3 0z"/>
- <path fill="url(#aA)" fill-rule="nonzero" d="M167.7 80.6c-.1.2-.1.4-.2.6h.7c-.1-.2-.2-.4-.2-.6 0-.2-.3-.2-.3 0z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M118.4 58.7c.1.2.2.3.4.3h.1c.3-.1.4-.3.4-.6v-.1l-1.9-5.3c-.1-.3-.4-.4-.6-.3-.3.1-.4.4-.3.6l1.9 5.4z"/>
- <path fill="url(#aB)" fill-rule="nonzero" d="M118.4 58.7c.1.2.2.3.4.3h.1c.3-.1.4-.3.4-.6v-.1l-1.9-5.3c-.1-.3-.4-.4-.6-.3-.3.1-.4.4-.3.6l1.9 5.4z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M134.3 121.9c.2-.2.5-.4.9-.2v.1l2.4-1.5v-3.5l-3.4 2.1v3h.1zM137.7 164.3c-.2.2-.4.6-.4.9 0 .9.1 1.8.4 2.6v-3.5z"/>
- <path fill="url(#aC)" fill-rule="nonzero" d="M137.7 164.3c-.2.2-.4.6-.4.9 0 .9.1 1.8.4 2.6v-3.5z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M115.5 59c.3 0 .5-.2.5-.5v-5.3c0-.3-.2-.5-.5-.5s-.5.2-.5.5v5.3c0 .3.2.5.5.5z"/>
- <path fill="url(#aD)" fill-rule="nonzero" d="M115.5 59c.3 0 .5-.2.5-.5v-5.3c0-.3-.2-.5-.5-.5s-.5.2-.5.5v5.3c0 .3.2.5.5.5z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M112.6 59c.3 0 .5-.2.5-.5v-5.8c0-.3-.2-.5-.5-.5s-.5.2-.5.5v5.8c0 .3.2.5.5.5z"/>
- <path fill="url(#aE)" fill-rule="nonzero" d="M112.6 59c.3 0 .5-.2.5-.5v-5.8c0-.3-.2-.5-.5-.5s-.5.2-.5.5v5.8c0 .3.2.5.5.5z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M114 59c.3 0 .5-.2.5-.5v-4.8c0-.3-.2-.5-.5-.5s-.5.2-.5.5v4.8c0 .3.3.5.5.5z"/>
- <path fill="url(#aF)" fill-rule="nonzero" d="M114 59c.3 0 .5-.2.5-.5v-4.8c0-.3-.2-.5-.5-.5s-.5.2-.5.5v4.8c0 .3.3.5.5.5z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M129.1 125.6l4.1-2.6v-.5c0-.1-.1-.1-.1-.2 0 0 .1 0 .1.1v-2.9l-5.6 3.6c-.8.3-1.1 1.2-.8 2 .2.6.8.9 1.3.9.2 0 .4 0 .6-.1.1-.1.2-.2.4-.3z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M139 115.8l-1.3.9v3.5l2.2-1.4v-8.3c-.5.7-.9 1.5-1.1 2.3-.1.5-.1 1-.1 1.4.1.6.1 1.1.3 1.6zM139.9 165.2c0-.7-.6-1.3-1.3-1.3-.4 0-.7.1-.9.4v3.5c.3 1.1.7 2.1 1.3 3 .6-.9.9-1.9.9-3v-2.6z"/>
- <path fill="url(#aG)" fill-rule="nonzero" d="M139.9 165.2c0-.7-.6-1.3-1.3-1.3-.4 0-.7.1-.9.4v3.5c.3 1.1.7 2.1 1.3 3 .6-.9.9-1.9.9-3v-2.6z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M138.7 159.7c-.1.3 0 .7.4.8l.8.3v-4.4l-1.2 3.3z"/>
- <path fill="url(#aH)" fill-rule="nonzero" d="M138.7 159.7c-.1.3 0 .7.4.8l.8.3v-4.4l-1.2 3.3z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M198 217c.5.6.9 1.3 1.5 1.9-.5-.7-1-1.3-1.5-1.9z"/>
- <path fill="url(#aI)" fill-rule="nonzero" d="M198 217c.5.6.9 1.3 1.5 1.9-.5-.7-1-1.3-1.5-1.9z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M207.8 226l-.2.2c.1-.1.2-.1.2-.2z"/>
- <path fill="url(#aJ)" fill-rule="nonzero" d="M207.8 226l-.2.2c.1-.1.2-.1.2-.2z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M224.1 117.6c1.4 0 2.5.5 3.2 1.1-.7-.5-1.8-1.1-3.2-1.1z"/>
- <path fill="url(#aK)" fill-rule="nonzero" d="M224.1 117.6c1.4 0 2.5.5 3.2 1.1-.7-.5-1.8-1.1-3.2-1.1z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M224.1 119.9c1.1 0 1.9.5 2.3.9-.4-.4-1.2-.9-2.3-.9z"/>
- <path fill="url(#aL)" fill-rule="nonzero" d="M224.1 119.9c1.1 0 1.9.5 2.3.9-.4-.4-1.2-.9-2.3-.9z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M134.3 121.9v-3.1l-1.1.7v2.9s-.1 0-.1-.1c0 .1.1.1.1.2v.5l2.1-1.3v-.1c-.5-.1-.8 0-1 .3z"/>
- <path fill="url(#aM)" fill-rule="nonzero" d="M150.7 112.6l-4.5 2.7c-.3.2-.7.3-1 .3-.6 0-1.3-.3-1.6-.9-.4-.6-.4-1.3-.1-1.8.1-.4.4-.7.8-1l4.2-2.7c-.7-.5-1.5-.9-2.3-1.1-.4-.1-.8-.1-1.3-.1-2 0-3.8 1-4.9 2.5-.5.7-.9 1.5-1.1 2.3-.1.5-.1 1-.1 1.4 0 .5.1 1 .3 1.5v.1l-1.3.8-3.4 2.1-1.1.7-5.6 3.6c-.8.3-1.1 1.2-.8 2 .2.6.8.9 1.3.9.2 0 .4 0 .6-.1.1-.1.3-.1.4-.2l4.1-2.6 2.1-1.3 2.4-1.5 2.2-1.4.7-.5c.8.8 1.7 1.3 2.8 1.6.5.1.9.2 1.4.2 1.4 0 2.7-.5 3.7-1.3s1.8-2 2.1-3.4c.2-1 .2-1.9 0-2.8z"/>
- <path fill="#FFFEFE" fill-rule="nonzero" d="M143.5 114.7c.4.6 1 .9 1.6.9.4 0 .7-.1 1-.3l4.5-2.7c.2.9.2 1.9 0 2.8-.3 1.4-1.1 2.6-2.1 3.4 1.1-.8 1.9-2.1 2.2-3.5.2-.9.2-1.9 0-2.8l-4.6 2.7c-.3.2-.7.3-1 .3-.6 0-1.3-.3-1.7-.9-.3-.5-.4-1.2-.2-1.7-.1.5-.1 1.2.3 1.8z"/>
- <path fill="url(#aN)" fill-rule="nonzero" d="M143.5 114.7c.4.6 1 .9 1.6.9.4 0 .7-.1 1-.3l4.5-2.7c.2.9.2 1.9 0 2.8-.3 1.4-1.1 2.6-2.1 3.4 1.1-.8 1.9-2.1 2.2-3.5.2-.9.2-1.9 0-2.8l-4.6 2.7c-.3.2-.7.3-1 .3-.6 0-1.3-.3-1.7-.9-.3-.5-.4-1.2-.2-1.7-.1.5-.1 1.2.3 1.8z"/>
- <path fill="#FFFEFE" fill-rule="nonzero" d="M126.8 125.1c-.3-.8 0-1.7.8-2l5.6-3.6 1.1-.7 3.4-2.1 1.3-.8v-.1l-11.5 7.3c-.8.3-1.1 1.3-.8 2 .3.6.8.9 1.4.9h.1c-.7 0-1.2-.3-1.4-.9z"/>
- <path fill="url(#aO)" fill-rule="nonzero" d="M126.8 125.1c-.3-.8 0-1.7.8-2l5.6-3.6 1.1-.7 3.4-2.1 1.3-.8v-.1l-11.5 7.3c-.8.3-1.1 1.3-.8 2 .3.6.8.9 1.4.9h.1c-.7 0-1.2-.3-1.4-.9z"/>
- <path fill="#FFFEFE" fill-rule="nonzero" d="M139.9 110.5c1.1-1.5 2.9-2.5 4.9-2.5.4 0 .8 0 1.3.1.8.2 1.6.6 2.3 1.1l.2-.1c-.7-.6-1.5-1-2.4-1.2-.4-.1-.8-.1-1.3-.1-2.8 0-5.4 2-6 4.9-.1.5-.1 1-.1 1.6 0-.5 0-1 .1-1.4.1-1 .5-1.7 1-2.4z"/>
- <path fill="url(#aP)" fill-rule="nonzero" d="M139.9 110.5c1.1-1.5 2.9-2.5 4.9-2.5.4 0 .8 0 1.3.1.8.2 1.6.6 2.3 1.1l.2-.1c-.7-.6-1.5-1-2.4-1.2-.4-.1-.8-.1-1.3-.1-2.8 0-5.4 2-6 4.9-.1.5-.1 1-.1 1.6 0-.5 0-1 .1-1.4.1-1 .5-1.7 1-2.4z"/>
- <path fill="url(#aQ)" fill-rule="nonzero" d="M106.4 207.6c.1 0 .1 0 0 0h.1c1-.3 1.9-.9 2.7-1.6-1.1-.3-2 .2-3.1.7-1 .2-2 .3-2.7 1l-.2.2c1.2.2 2.3 0 3.2-.3z"/>
- <path fill="url(#aR)" fill-rule="nonzero" d="M118.3 196.1c.7-1.4.9-3 .6-4.6-.4-2.1-1.5-3.9-3.3-5.1-1.4-1-3-1.4-4.6-1.4-1.5 0-3 .5-4.2 1.3-.2-.2-.4-.3-.6-.5-1.2-.8-2.5-1.2-4-1.2-2.1 0-4 1-5.3 2.6h-.7c-2.7 0-5.2 1.4-6.8 3.6-1.8 2.6-1.9 5.9-.6 8.6-.7.5-1.2 1.1-1.7 1.8-1.3 1.8-1.8 4.1-1.4 6.3.4 2.2 1.6 4.1 3.5 5.4 1.2.9 2.6 1.4 4.1 1.5.4 1.1 1.2 2.1 2.2 2.8 1 .7 2.2 1.1 3.5 1.1 1 .9 2.2 1.6 3.7 2.2l1 5.5h2.3l-1.3-7.2c-1.3-.4-2.7-1-3.8-1.8-.4-.3-.7-.6-1-1h-.1l-.1-.1c-.4-.4-.7-1-.9-1.6v-.1c-.3-.9-.2-1.7.1-1.8.2-.1.4-.1.5 0 .1.1.2.3.2.4v.2c0 .2.1.4.1.6V213.9c.3.9 1 2 2.2 2.7.1 0 .2.1.3.1.6.4 1.3.6 1.9.9 0 0 .1 0 .1.1l-.5-3h-.1-.1c-.1-.1-.3-.1-.4-.2-.3-.1-.6-.3-.9-.5 0 0-.1 0-.1-.1-.1.3-.2.5-.4.7l-.3.3s0-.1-.1-.1c-.6-.7-.9-1.5-.9-2-.1-.6-.3-1-.8-1.3-.4-.3-1-.3-1.5-.1-.5.2-1.4.8-.7 3.2.1.5.4 1 .6 1.4l.1.1c-.6-.1-1.2-.3-1.7-.6-.6-.4-1-1-1.3-1.6-.1-.2-.2-.4-.2-.6v-.1c-.1-.3-.1-.6-.1-.9-.3.1-.7.1-1 .1-1.2 0-2.5-.3-3.6-1.1-2.2-1.5-3-4.1-2.4-6.5l.3-.9v-.1c.2-.4.4-.7.6-1.1.8-1.2 2-2 3.2-2.4l-.
1-.1c-2.1-2.1-2.5-5.4-.8-7.9.5-.7 1-1.2 1.6-1.6 1-.7 2.2-1 3.3-1 .6 0 1.2.1 1.8.2 0-.1.1-.1.1-.2.1-.3.2-.5.4-.7.7-1 1.8-1.6 2.9-1.8.3 0 .5-.1.8-.1.9 0 1.8.2 2.7.8.7.5 1.3 1.2 1.6 2 .1-.1.1-.2.2-.2 1.1-1.4 2.7-2.1 4.3-2.1.7 0 1.3.1 2 .3.5.2.9.4 1.3.7 2.6 1.8 3.2 5.3 1.4 7.9-.2.2-.3.4-.5.6.1 0 .1.1.2.1.3.1.5.3.8.4.2.2.4.3.7.5 2.4 2.2 2.9 5.8 1 8.5-1.2 1.8-3.2 2.8-5.3 2.8h-.6c-.1 1.1-.4 2.1-1.1 3-.1.1-.1.2-.2.3-.1.2-.3.3-.5.5l-.4.4-.1.1c-.4.3-.8.6-1.2.8h-.1c-.1 0-.2.1-.3.1-1 .4-2 .3-2 .3-.2 0-.3.1-.4.2-.1.1-.2.2-.2.3 0 .3.2.6.5.6h.4c.5 0 1.3-.1 2.2-.4h.1l.6 3.3c.2-.1.4-.1.5-.2.6-.3 1.2-.7 1.6-1.1l.1-.1c.1-.1.1-.3 0-.9-.1-.6-.4-1.2-.6-1.6-.1-.2-.1-.3-.2-.5s0-.4.1-.6l.2-.2h.2c.2 0 .5.1.6.4 0 .1.1.2.2.4.2.4.4.9.5 1.4v.1c.6-1.2.9-2.5 1.1-3.7v-.1c.1-.3.3-.5.6-.5h.1c.3.1.5.4.5.7-.4 1.9-1 4.2-2.4 5.8l-.1.1c-.6.6-1.3 1.2-2.1 1.5-.2.1-.5.2-.7.2h-.1l1 5.4c.1.3-.2.7-.7.9l2.7.3c.2-.5.3-1 .2-1.6l-.7-3.6c.8-.4 1.4-1 2.1-1.7l.1-.1c1.8-2.1 2.5-4.9 2.8-6.8.1-.8 0-1.5-.5-2.1 1.2-.6 2.2-1.5 3-2.7 1.3-1.9
1.8-4.2 1.4-6.5.2-2.4-.8-4.2-2.2-5.4z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M107.9 226.5h-.4c-.8 0-1.5-.2-1.5-.6v-.1h-2.3l.1.5c.2 1.2 1.3 2.5 3.8 2.5 1.5 0 3.5-.5 4.6-1.8.2-.2.3-.5.4-.7l-2.7-.3c-.5.2-1.3.4-2 .5z"/>
- <path fill="url(#aS)" fill-rule="nonzero" d="M107.9 226.5h-.4c-.8 0-1.5-.2-1.5-.6v-.1h-2.3l.1.5c.2 1.2 1.3 2.5 3.8 2.5 1.5 0 3.5-.5 4.6-1.8.2-.2.3-.5.4-.7l-2.7-.3c-.5.2-1.3.4-2 .5z"/>
- <path d="M-30-28h352v303H-30z"/>
- </g>
-</svg>
diff --git a/browser/extensions/onboarding/content/img/figure_default.svg b/browser/extensions/onboarding/content/img/figure_default.svg
deleted file mode 100644
index c52e4b8500f7..000000000000
--- a/browser/extensions/onboarding/content/img/figure_default.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="272" height="247" viewBox="0 0 272 247" xmlns="http://www.w3.org/2000/svg"><title>default-browser</title><defs><linearGradient x1="-12.708%" y1="-28.803%" x2="102.994%" y2="115.824%" id="a"><stop stop-color="#FFCCD7" offset="40.06%"/><stop stop-color="#EDBEE2" offset="100%"/></linearGradient><linearGradient x1="-78.121%" y1="-55.724%" x2="136.609%" y2="135.651%" id="b"><stop stop-color="#FFE900" offset="28.07%"/><stop stop-color="#FFCC07" offset="32.21%"/><stop stop-color="#FF8119" offset="41.22%"/><stop stop-color="#FF0B36" offset="54.35%"/><stop stop-color="#FF0039" offset="55.5%"/><stop stop-color="#ED00B5" offset="85.24%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><path d="M-36-18h352v303H-36z"/><g fill-rule="nonzero"><g fill="#D7D7DB"><path d="M116.6 201.9H42.1c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h74.6c.6 0 1.1.5 1.1 1.1-.1.6-.6 1.1-1.2 1.1zM104 195.9H71c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h33c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zM109.7 206.7h-3.3c-.3 0-.6-.
2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.2.6-.6.6zm-12.2 0H84.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-23.5 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6H74c.3 0 .6.2.6.6 0 .4-.2.6-.6.6zm-5.5 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-12.3 0H42.8c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-23.4 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-5.6 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-12.3 0H1.5c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6z"/></g><path d="M138.8 171.9c-2.8 0-5-2.1-5-4.8V49.7c0-2.9 2.4-5.3 5.3-5.3h126.1c2.9 0 5.3 2.4 5.3 5.3v117.4c0 2.6-2.2 4.8-5 4.8H138.8z" fill="#FFF"/><path d="M265.2 45.4c2.3 0 4.2 1.9 4.2 4.2V167c0 2-1.7 3.7-3.9 3.7H138.8c-2.2 0-3.9-1.6-3.9-3.7V49.7c0-2.3 1.9-4.2 4.2-4.2h126.1v-.1zm0-2.2H139.1c-3.5 0-6.4 2.9-6.4 6.4V167c0 3.2 2.8 5.9 6.1 5.9h126.7c3.4 0 6.1-2.6 6.1-5.9V49.7c0-3.
6-2.9-6.5-6.4-6.5z" fill="#D7D7DB"/><path d="M264.8 66.4V165c0 .9-.1 1.2-.1 1.2s-.3.1-1.2.1H140.8c-.9 0-1.2-.1-1.2-.1s-.1-.3-.1-1.2V66.4h125.3zm1.1-1.1H138.3V165c0 2 .4 2.4 2.4 2.4h122.7c2 0 2.4-.4 2.4-2.4V65.3h.1z" fill="#D7D7DB"/><g fill="#D7D7DB"><circle cx="2.9" cy="3.3" r="2.8" transform="translate(143 52)"/><circle cx="3.1" cy="3.3" r="2.8" transform="translate(152 52)"/><path d="M233.8 58.5h-63.4c-1.7 0-3.1-1.4-3.1-3.1v-.3c0-1.7 1.4-3.1 3.1-3.1h63.4c1.7 0 3.1 1.4 3.1 3.1v.3c0 1.7-1.4 3.1-3.1 3.1z"/><g><circle cx="3.2" cy="3.3" r="2.8" transform="translate(246 52)"/><circle cx="3.4" cy="3.3" r="2.8" transform="translate(255 52)"/></g></g><path d="M21.8 23.4h23.9S38.2 6.7 54.1 4.5c14.2-1.9 19.8 12.6 19.8 12.6s1.7-8.4 10.1-6.8c8.3 1.6 14.5 15 14.5 15h20.8" fill="#F9F9FA"/><path d="M119.7 21.4h-5.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h5.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-15.3 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-5.5-.1c-.2 0-.4-.1-.5-.3-.2-.3-.7-1.
4-1.7-2.9-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2 1 1.5 1.6 2.6 1.7 2.9.1.3 0 .6-.2.8-.2.1-.3.1-.3.1zm-52.8-.6h-1.6c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h.8c-.1-.2-.2-.5-.3-.9-.1-.3.1-.6.4-.7.3-.1.6.1.7.4.3 1 .6 1.6.6 1.6.1.2.1.4 0 .5-.2.2-.4.3-.6.3zm-10.5 0H22.2c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm8.9-6c-.3 0-.5-.2-.6-.5 0-.4-.1-.8-.1-1.1 0-.3.2-.6.5-.6s.6.2.6.5c0 .4.1.7.1 1.1.1.3-.1.6-.5.6.1 0 0 0 0 0zM73.6 13c-.2 0-.4-.1-.5-.3-.1-.3-.3-.6-.5-1-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2.2.4.4.7.5 1 .1.3 0 .6-.2.8-.1 0-.2.1-.3.1zm17.9-1.5c-.1 0-.3 0-.4-.1-2.3-2.1-4.6-3.4-6.8-3.8-.7-.1-1.4-.2-2-.2-1 0-2 .2-2.8.5-.3.1-.6 0-.7-.3-.1-.3 0-.6.3-.7 1-.4 2.1-.6 3.3-.6.7 0 1.4.1 2.2.2 2.4.5 4.9 1.8 7.3 4 .2.2.2.6 0 .8-.1.2-.3.2-.4.2zM70.6 8.3c-.2 0-.3-.1-.4-.2-.7-.9-1.5-1.6-2.3-2.3-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1.8.7 1.6 1.6 2.4 2.5.2.2.2.6-.1.8-.1.1-.2.1-.3.1zm-23-3.8c-.2 0-.3-.1-.4-.2-.2-.2-.2-.6.1-.8C49.1 2 51.5 1.1 54.5.6c2.1-.3 4.1-.2 6 .1.3.1.5.4.4.7-.1.3-.3.5-.7.4-1.8-.4-3.7-
.4-5.6-.1-2.8.4-5 1.3-6.6 2.6-.1.2-.2.2-.4.2z" fill="#D7D7DB"/><path d="M120.4 25.6H21.8c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h98.6c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1z" fill="#F9F9FA"/><path d="M15.2 181.9c-2.8 0-5-2.1-5-4.8V59.7c0-2.9 2.4-5.3 5.3-5.3h126.1c2.9 0 5.3 2.4 5.3 5.3v117.4c0 2.6-2.2 4.8-5 4.8H15.2z" fill="#FFF"/><path d="M141.6 55.5c2.3 0 4.2 1.9 4.2 4.2V177.1c0 2-1.7 3.7-3.9 3.7H15.2c-2.2 0-3.9-1.6-3.9-3.7V59.7c0-2.3 1.9-4.2 4.2-4.2h126.1zm0-2.2H15.5c-3.5 0-6.4 2.9-6.4 6.4V177.1c0 3.2 2.8 5.9 6.1 5.9h126.7c3.4 0 6.1-2.6 6.1-5.9V59.7c0-3.5-2.9-6.4-6.4-6.4z" fill="#D7D7DB"/><path d="M141.2 76.4V175c0 .9-.1 1.2-.1 1.2s-.3.1-1.2.1H17.2c-.9 0-1.2-.1-1.2-.1s-.1-.3-.1-1.2V76.4h125.3zm1.1-1.1H14.8V175c0 2 .4 2.4 2.4 2.4h122.7c2 0 2.4-.4 2.4-2.4V75.3z" fill="#D7D7DB"/><g fill="#D7D7DB"><circle cx="3.3" cy="3.3" r="2.8" transform="translate(19 62)"/><circle cx="3.5" cy="3.3" r="2.8" transform="translate(28 62)"/><path d="M110.2 68.6H46.9c-1.7 0-3.1-1.4-3.1-3.1v-.3c0-1.7 1.4
-3.1 3.1-3.1h63.4c1.7 0 3.1 1.4 3.1 3.1v.3c-.1 1.7-1.5 3.1-3.2 3.1z"/><g><circle cx="3.6" cy="3.3" r="2.8" transform="translate(122 62)"/><circle cx="2.8" cy="3.3" r="2.8" transform="translate(132 62)"/></g></g><path d="M210 28.8h13.3s-4.2-9.3 4.7-10.5c7.9-1.1 11 7 11 7s.9-4.7 5.6-3.8c4.6.9 8 8.3 8 8.3h11.6" fill="#F9F9FA"/><path d="M223.7 27.3h-13.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.3v.5l.5-.2c.1.2.1.4 0 .6-.2.2-.3.3-.5.3zm36.5-.2h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-20.8-3.3h-.1c-.3-.1-.5-.4-.4-.7.1-.4 1.1-4.3 5-4.3.4 0 .8 0 1.2.1 1.7.3 3.5 1.4 5.2 3.1.2.2.2.6 0 .8-.2.2-.6.2-.8 0-1.6-1.6-3.1-2.5-4.6-2.8-.4-.1-.7-.1-1-.1-3 0-3.8 2.8-3.9 3.4-.1.3-.4.5-.6.5zm-15.3-5.1c-.1 0-.3 0-.4-.1-.2-.2-.2-.6 0-.8.8-.8 1.8-1.5 3.1-1.8.3-.1.6.1.7.4.1.3-.1.6-.4.7-1.1.3-2 .8-2.6 1.5-.1.1-.3.1-.4.1zm8.3-1.6h-.2c-.3-.1-.7-.2-1-.2-.3-.1-.5-.3-.5-.6.1-.3.3-.5.6-.5l1.2.3c.3.1.5.4.4.7 0 .1-.2.3-.5.3z" fill="#D7D7DB"/><path d="M265.1 31h-54.9c-.6 0-1.1-.5-1.1-1.1 0-.6.
5-1.1 1.1-1.1h54.9c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1zM237.9 58H87.8c-5.8 0-10.6 4.8-10.6 10.6v139.9c0 5.5 4.6 9.9 10.2 9.9h150.9c5.6 0 10.2-4.5 10.2-9.9V68.6c0-5.8-4.7-10.6-10.6-10.6z" fill="#F9F9FA"/><ellipse fill="#EDEDF0" cx="164.5" cy="239.7" rx="82" ry="6.8"/><path d="M148.2 68.3c-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6l-6.3-5.1-.2-.2H87.7c-2.8 0-5 2.2-5 5v140c0 2.4 2.1 4.4 4.6 4.4h150.9c2.6 0 4.6-1.9 4.6-4.4V68.1c0-2.8-2.2-5-5-5h-83.3c-.1 0-.1.1-.2.2l-6.1 5zm-41.4 3.1c1.9 0 3.4 1.5 3.4 3.4s-1.5 3.4-3.4 3.4-3.4-1.5-3.4-3.4 1.5-3.4 3.4-3.4zm-10.9 0c1.9 0 3.4 1.5 3.4 3.4s-1.5 3.4-3.4 3.4-3.4-1.5-3.4-3.4 1.5-3.4 3.4-3.4zm133.9 0c1.9 0 3.4 1.5 3.4 3.4s-1.5 3.4-3.4 3.4-3.4-1.5-3.4-3.4 1.6-3.4 3.4-3.4zm-10.9 0c1.9 0 3.4 1.5 3.4 3.4s-1.5 3.4-3.4 3.4-3.4-1.5-3.4-3.4 1.6-3.4 3.4-3.4zm-18.3-.4c2 0 3.7 1.6 3.7 3.7v.3c0 2-1.6 3.7-3.7 3.7h-5.8c.9 2.6.9 5.5-.2 8h44.3v118.7c0 2.4-.5 2.9-2.9 2.9H89.8c-2.4 0-2.9-.5-2.9-2.9V86.7h73.3c-1.1-2.6-1.1-5.5-.2-8h-34.9c-2 0-3.7-1.6-3.7-3.7v-.3c0-2 1.6-3.7
3.7-3.7h75.5z" fill="#FFF"/><path d="M190.6 91.5l-11.1 9c-.6.5-1.3.7-2.1.7s-1.5-.3-2.1-.7l-11.1-9c-1.3-.8-2.3-1.9-3.1-3.1-.4-.6-.7-1.1-.9-1.7H86.9v118.7c0 2.4.5 2.9 2.9 2.9H236c2.4 0 2.9-.5 2.9-2.9V86.7h-44.3c-.3.6-.6 1.2-1 1.8-.8 1.2-1.8 2.2-3 3zm10.1 24c7.4 8.8 8.2 21.5 1.8 31.1-1.9 2.9-4.3 5.3-7.2 7.3l-30.2 24.7c-.9.7-2.1 1.1-3.3 1.1-1.2 0-2.4-.4-3.3-1.2l-30.4-24.6c-3-2-5.6-4.5-7.5-7.5-6.7-10.3-5.3-24 3.4-32.7 4.9-4.9 11.4-7.6 18.3-7.6 7 0 13.5 2.7 18.4 7.6.3.3.6.4.8.4.2 0 .5-.1.9-.4 4.9-4.9 11.4-7.6 18.3-7.6 7.8.2 15 3.5 20 9.4z" fill="url(#a)"/><path d="M162.5 113.8c-.3.3-.7.4-.9.4-.2 0-.5-.1-.8-.4-4.9-4.9-11.4-7.6-18.4-7.6-6.9 0-13.4 2.7-18.3 7.6-8.7 8.6-10.1 22.4-3.4 32.7 1.9 3 4.4 5.5 7.5 7.5l30.4 24.6c.9.7 2.1 1.2 3.3 1.2 1.2 0 2.3-.4 3.3-1.1l30.2-24.7c2.9-2 5.3-4.4 7.2-7.3 6.3-9.6 5.6-22.3-1.8-31.1-5-5.9-12.2-9.3-19.9-9.3-7 0-13.5 2.7-18.4 7.5zM199 117c6.7 8 7.4 19.7 1.6 28.4-1.8 2.8-4.2 5-6.7 6.7l-30.3 24.7c-.6.4-1.2.7-1.9.7s-1.3-.2-1.9-.7l-30.5-24.7c-2.6-1.7-5-4-6.9-6.9-
6.1-9.3-4.8-22 3.1-29.9 4.6-4.6 10.7-6.9 16.8-6.9 6.1 0 12.2 2.3 16.8 7 .7.7 1.5 1 2.4 1 .9 0 1.7-.3 2.4-1 4.6-4.6 10.7-6.9 16.8-6.9 6.8 0 13.5 2.8 18.3 8.5z" fill="#FFF"/><path d="M138 115.4c-7.6 1.7-13.2 8.1-13.8 15.8-.2 2.2 1.5 4.1 3.6 4.3h.3c2.1 0 3.8-1.6 3.9-3.6.4-4.3 3.4-7.8 7.6-8.7 2.2-.5 3.5-2.6 3-4.7-.3-2.2-2.4-3.6-4.6-3.1z" fill="#F9F9FA"/><path d="M184.5 71.4c-2.6 0-5.1.9-7.1 2.6-2-1.7-4.5-2.6-7.1-2.6-2.9 0-5.7 1.1-7.7 3.2-1.2 1.2-2 2.5-2.6 4-.9 2.6-.9 5.5.2 8 .3.6.6 1.2.9 1.7.8 1.2 1.8 2.3 3.1 3.1l11.1 9c.6.5 1.3.7 2.1.7s1.5-.3 2.1-.7l11.1-9c1.2-.8 2.2-1.8 3-3 .4-.6.7-1.2 1-1.8 1.1-2.6 1.1-5.5.2-8-.4-1.2-1.1-2.3-1.9-3.3-2.1-2.5-5.2-3.9-8.4-3.9zm7.3 15.8c-.7 1-1.5 1.8-2.5 2.5l-11.2 9.1c-.2.2-.4.2-.7.2-.2 0-.5-.1-.7-.2l-11.2-9.1c-1-.6-1.9-1.5-2.6-2.5-2.2-3.4-1.8-8.1 1.1-11 1.7-1.7 3.9-2.5 6.2-2.5 2.2 0 4.5.9 6.2 2.6.2.2.6.4.9.4.3 0 .6-.1.9-.4 1.7-1.7 3.9-2.6 6.2-2.6 2.5 0 4.9 1 6.7 3.1 2.5 2.9 2.8 7.2.7 10.4z" fill="#FFF"/><path d="M168.7 76.2c-2.8.6-4.8 3-5.1 5.8-.1.8.5 1
.5 1.3 1.6h.1c.8 0 1.4-.6 1.5-1.3.1-1.6 1.3-2.9 2.8-3.2.8-.2 1.3-1 1.1-1.7-.1-.9-.9-1.4-1.7-1.2zM138.1 63l.2.2 6.3 5.1c.5.4 1.1.6 1.8.6.6 0 1.3-.2 1.8-.6l6.2-5.1c.1 0 .1-.1.2-.2.7-.5 1.3-1.1 1.7-1.8.1-.1.2-.3.2-.4 1.5-2.6 1.2-5.9-.7-8.1-1.4-1.6-3.4-2.6-5.5-2.6-1.4 0-2.8.4-4 1.2-1.2-.8-2.6-1.2-4-1.2-1.9 0-3.7.7-5.1 2.1-2.3 2.3-2.7 5.8-1.2 8.6.1.1.1.3.2.4.6.7 1.2 1.3 1.9 1.8zm.8-9.2c1-1 2.2-1.4 3.5-1.4 1.3 0 2.5.5 3.5 1.5.1.1.3.2.5.2s.4-.1.5-.2c1-1 2.2-1.4 3.5-1.4 1.4 0 2.8.6 3.8 1.8 1.4 1.7 1.5 4.1.3 5.9-.4.6-.9 1-1.4 1.4l-6.3 5.1c-.1.1-.3.1-.4.1-.1 0-.3 0-.4-.1l-6.3-5.1c-.5-.4-1-.8-1.4-1.4-1.3-2.2-1.1-4.8.6-6.4z" fill="#F9F9FA"/><path d="M139.3 58c.1 0 .1 0 0 0 .5 0 .9-.3.9-.8.1-.9.7-1.6 1.6-1.8.4-.1.7-.5.6-1-.1-.4-.5-.7-1-.6-1.6.4-2.7 1.7-2.9 3.3 0 .4.4.8.8.9z" fill="#F9F9FA"/><path d="M245.2 68.1V208c0 3.6-3.1 6.6-6.9 6.6H87.4c-3.8 0-6.9-3-6.9-6.6V68.1c0-4 3.2-7.2 7.2-7.2h48.4c.1.1.1.3.2.4.5.7 1.1 1.3 1.8 1.8H87.7c-2.8 0-5 2.2-5 5V208c0 2.4 2.1 4.4 4.6 4.4h150.9c2.6 0 4.6-1.9 4.6-
4.4V68.1c0-2.8-2.2-5-5-5h-83.3c.7-.5 1.3-1.1 1.7-1.8.1-.1.2-.3.2-.4h81.4c4.1-.1 7.4 3.2 7.4 7.2zM95.9 78.2c1.9 0 3.4-1.5 3.4-3.4s-1.5-3.4-3.4-3.4-3.4 1.5-3.4 3.4 1.5 3.4 3.4 3.4zm10.9 0c1.9 0 3.4-1.5 3.4-3.4s-1.5-3.4-3.4-3.4-3.4 1.5-3.4 3.4 1.5 3.4 3.4 3.4zm14.6-3.6v.3c0 2 1.6 3.7 3.7 3.7H160c.5-1.5 1.4-2.8 2.6-4 2.1-2.1 4.8-3.2 7.7-3.2 2.6 0 5.1.9 7.1 2.6 2-1.7 4.5-2.6 7.1-2.6 3.2 0 6.3 1.4 8.4 3.9.8 1 1.5 2.1 1.9 3.3h5.8c2 0 3.7-1.6 3.7-3.7v-.3c0-2-1.6-3.7-3.7-3.7h-75.5c-2 .1-3.7 1.7-3.7 3.7zm97.5 3.6c1.9 0 3.4-1.5 3.4-3.4s-1.5-3.4-3.4-3.4-3.4 1.5-3.4 3.4 1.6 3.4 3.4 3.4zm10.9 0c1.9 0 3.4-1.5 3.4-3.4s-1.5-3.4-3.4-3.4-3.4 1.5-3.4 3.4 1.6 3.4 3.4 3.4zm-49 30.3c6.7 0 13.4 2.8 18.2 8.5 6.7 8 7.4 19.7 1.6 28.4-1.8 2.8-4.2 5-6.7 6.7l-30.3 24.7c-.6.4-1.2.7-1.9.7s-1.3-.2-1.9-.7l-30.5-24.7c-2.6-1.7-5-4-6.9-6.9-6.1-9.3-4.8-22 3.1-29.9 4.6-4.6 10.7-6.9 16.8-6.9 6.1 0 12.2 2.3 16.8 7 .7.7 1.5 1 2.4 1 .9 0 1.7-.3 2.4-1 4.8-4.6 10.9-6.9 16.9-6.9zm-38 9.9c-.5-2.2-2.6-3.5-4.7-3-7.6 1.7-13.2 8.1-1
3.8 15.8-.2 2.2 1.5 4.1 3.6 4.3h.3c2.1 0 3.8-1.6 3.9-3.6.4-4.3 3.4-7.8 7.6-8.7 2.2-.5 3.6-2.7 3.1-4.8zm48.4-41.6c2.5 2.9 2.7 7.3.6 10.5-.7 1-1.5 1.8-2.5 2.5l-11.2 9.1c-.2.2-.4.2-.7.2-.2 0-.5-.1-.7-.2l-11.2-9.1c-1-.6-1.9-1.5-2.6-2.5-2.2-3.4-1.8-8.1 1.1-11 1.7-1.7 3.9-2.5 6.2-2.5 2.2 0 4.5.9 6.2 2.6.2.2.6.4.9.4.3 0 .6-.1.9-.4 1.7-1.7 3.9-2.6 6.2-2.6 2.5-.1 5 .9 6.8 3zm-20.7.5c-.2-.8-1-1.3-1.7-1.1-2.8.6-4.8 3-5.1 5.8-.1.8.5 1.5 1.3 1.6h.1c.8 0 1.4-.6 1.5-1.3.1-1.6 1.3-2.9 2.8-3.2.7-.2 1.2-1 1.1-1.8zM138.2 60c-1.3-1.9-1-4.6.6-6.2 1-1 2.2-1.4 3.5-1.4 1.3 0 2.5.5 3.5 1.5.1.1.3.2.5.2s.4-.1.5-.2c1-1 2.2-1.4 3.5-1.4 1.4 0 2.8.6 3.8 1.8 1.4 1.7 1.5 4.1.3 5.9-.4.6-.9 1-1.4 1.4l-6.3 5.1c-.1.1-.3.1-.4.1-.1 0-.3 0-.4-.1l-6.3-5.1c-.5-.5-1-1-1.4-1.6zm.4-2.9c0 .5.3.9.8.9h.1c.4 0 .8-.3.8-.8.1-.9.7-1.6 1.6-1.8.4-.1.7-.5.6-1-.1-.4-.5-.7-1-.6-1.6.3-2.8 1.7-2.9 3.3zM158 42.4c-2.1-3.2-1.6-7.5 1.1-10.2 1.6-1.6 3.6-2.4 5.7-2.4s4.2.8 5.7 2.4c.2.2.5.3.8.3.3 0 .6-.1.8-.3 1.6-1.6 3.7-2.4 5.7-2.4 2.3 0 4.6 1 6.2
2.9 2.3 2.7 2.5 6.7.6 9.7-.6 1-1.4 1.7-2.3 2.3L172 53.2c-.2.2-.4.2-.6.2-.2 0-.5-.1-.6-.2l-10.4-8.4c-1-.7-1.8-1.4-2.4-2.4zm.6-4.8c-.1.7.5 1.4 1.2 1.5h.1c.7 0 1.3-.5 1.3-1.2.1-1.5 1.2-2.7 2.6-3 .7-.2 1.2-.9 1-1.6-.2-.7-.9-1.2-1.6-1-2.5.5-4.4 2.6-4.6 5.3z" fill="url(#b)"/><path d="M159 46.5l10.3 8.4c.6.5 1.3.7 2 .7s1.5-.3 2-.7l10.3-8.4c1.1-.8 2.1-1.7 2.8-2.8 2.5-3.8 2.2-8.9-.7-12.4-2-2.3-4.9-3.7-7.9-3.7-2.4 0-4.7.8-6.6 2.3-1.9-1.5-4.2-2.4-6.6-2.4-2.8 0-5.3 1.1-7.3 3-3.5 3.4-4 8.9-1.4 13 1 1.3 1.9 2.2 3.1 3zm0-14.3c1.6-1.6 3.6-2.4 5.7-2.4s4.2.8 5.7 2.4c.2.2.5.3.8.3.3 0 .6-.1.8-.3 1.6-1.6 3.7-2.4 5.7-2.4 2.3 0 4.6 1 6.2 2.9 2.3 2.7 2.5 6.7.6 9.7-.6 1-1.4 1.7-2.3 2.3L172 53.2c-.2.2-.4.2-.6.2-.2 0-.5-.1-.6-.2l-10.4-8.4c-.9-.6-1.7-1.4-2.4-2.4-2.1-3.2-1.7-7.5 1-10.2z" fill="#F9F9FA"/><path d="M159.8 39.1h.1c.7 0 1.3-.5 1.3-1.2.1-1.5 1.2-2.7 2.6-3 .7-.2 1.2-.9 1-1.6-.2-.7-.9-1.2-1.6-1-2.6.6-4.5 2.8-4.7 5.4 0 .6.6 1.3 1.3 1.4z" fill="#F9F9FA"/></g></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/figure_library.svg b/browser/extensions/onboarding/content/img/figure_library.svg
deleted file mode 100644
index aad20181b996..000000000000
--- a/browser/extensions/onboarding/content/img/figure_library.svg
+++ /dev/null
@@ -1,689 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="267" height="240">
- <defs>
- <linearGradient id="a" x1="-287.251713%" x2="363.382118%" y1="-127.999431%" y2="247.172106%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="b" x1="-8347.28%" x2="11424.26%" y1="-8337.33%" y2="11434.21%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="c" x1="-2354.3122%" x2="2468.01463%" y1="-738.5544%" y2="843.1688%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="d" x1="-11316.73%" x2="8454.81%" y1="-5346.60952%" y2="4068.40952%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="e" x1="-156.148629%" x2="205.305484%" y1="-480.49483%" y2="430.938303%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="f" x1="-11777.11%" x2="7994.43%" y1="-1542.90541%" y2="1128.92432%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="g" x1="-1966.10678%" x2="1385.00169%" y1="-2646.49545%" y2="1847.03636%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="h" x1="-1259.26087%" x2="945.558937%" y1="-1283.95691%" y2="942.373333%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="i" x1="-4828.28387%" x2="3895.46452%" y1="-2550.56897%" y2="2112.12414%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="j" x1="-1420.34388%" x2="1159.68716%" y1="-3565.4194%" y2="2819.67133%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="k" x1="-6578.28%" x2="13193.26%" y1="-6566.33%" y2="13205.21%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="l" x1="-690.589109%" x2="1266.98911%" y1="-1068.60597%" y2="1882.37015%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="m" x1="-3693.78418%" x2="6240.18862%" y1="-1360.99327%" y2="2373.67085%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="n" x1="-51.4002563%" x2="99.3496099%" y1="-59.6430664%" y2="133.087695%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="o" x1="-47.4074974%" x2="121.810771%" y1="-106.87209%" y2="132.306567%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="p" x1="-701.943676%" x2="609.202314%" y1="-537.964802%" y2="487.22249%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="q" x1="-1074.53%" x2="834.91%" y1="-358.218519%" y2="348.981481%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="r" x1="-5230.64688%" x2="3222.21875%" y1="-2856.73793%" y2="1806.91207%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="s" x1="-1536.40601%" x2="955.898444%" y1="-3896.2795%" y2="2345.49035%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="t" x1="-2573.03736%" x2="4141.82528%" y1="-7694%" y2="12077.54%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="u" x1="-105.756%" x2="253.726545%" y1="-959.543678%" y2="1313.04713%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="v" x1="-113.495628%" x2="246.641894%" y1="-1951.93556%" y2="2441.74%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="w" x1="-203.741261%" x2="362.77851%" y1="-8794.04%" y2="10977.5%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="x" x1="-8901.65455%" x2="9072.47273%" y1="-4629.9%" y2="4785.11905%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="y" x1="-135.885507%" x2="273.463147%" y1="-6854.87692%" y2="8354%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="z" x1="-237.240755%" x2="222.496119%" y1="-950.902381%" y2="659.16369%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="A" x1="-323.294457%" x2="276.418625%" y1="-16784.12%" y2="10262.94%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="B" x1="-324.50885%" x2="273.863496%" y1="-16876.15%" y2="10170.29%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="C" x1="-8757.43409%" x2="-13250.9636%" y1="-25788.3267%" y2="-38969.3533%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="D" x1="-4977.81154%" x2="-7512.62308%" y1="-21732.3667%" y2="-32716.5611%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="E" x1="-778.197863%" x2="-1200.66709%" y1="-2873.70382%" y2="-4382.98244%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="F" x1="-3162.7925%" x2="-4810.42083%" y1="-25654.4533%" y2="-38835.4867%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="G" x1="-1053.32338%" x2="1514.40909%" y1="-4984.71765%" y2="6645.6%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="H" x1="-5039.72338%" x2="-7607.45714%" y1="-23040.7706%" y2="-34671.0941%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="I" x1="143.631333%" x2="-4.86%" y1="790.352632%" y2="-381.952632%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="J" x1="-2552.41333%" x2="-3870.516%" y1="-20494.2053%" y2="-30900.2789%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="K" x1="-1250.60304%" x2="-1918.56115%" y1="-38487.33%" y2="-58258.87%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="L" x1="-37598.9%" x2="-57370.44%" y1="-17879.1857%" y2="-27294.2048%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="M" x1="-882.727251%" x2="-1363.78637%" y1="-29434.6846%" y2="-44643.5692%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="N" x1="-268.313828%" x2="273.677355%" y1="-882.118713%" y2="699.481287%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="O" x1="-420.455862%" x2="943.098621%" y1="-4784.28571%" y2="9338.24286%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="P" x1="-587.656122%" x2="1429.84796%" y1="-3859.74375%" y2="8497.475%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="Q" x1="-597.567708%" x2="1461.96771%" y1="-6217.96%" y2="13553.58%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="R" x1="-989.3%" x2="1835.20571%" y1="-6563.19091%" y2="11410.9364%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="S" x1="-1683.03158%" x2="3520.00526%" y1="-4061.93125%" y2="8295.28125%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="T" x1="-289.56383%" x2="551.778298%" y1="-736.619802%" y2="1220.95842%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="U" x1="-8102.24%" x2="11669.3%" y1="-8112.37%" y2="11659.17%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="V" x1="-527.27218%" x2="959.309774%" y1="-7671.89%" y2="12099.65%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="W" x1="-563.298261%" x2="1155.96609%" y1="-4360.425%" y2="7996.7875%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="X" x1="-595.656881%" x2="1218.24587%" y1="-7031.95%" y2="12739.59%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="Y" x1="-4261.16471%" x2="7369.15294%" y1="-5186.16429%" y2="8936.36429%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="Z" x1="-7291.52%" x2="12480.03%" y1="-7323.1%" y2="12448.44%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aa" x1="-46.8866667%" x2="106.777333%" y1="-610.354545%" y2="437.354545%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="ab" x1="-954.992%" x2="1681.21333%" y1="-6801.97273%" y2="11172.1545%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ac" x1="-53.1965517%" x2="108.827586%" y1="-138.8375%" y2="154.825%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="ad" x1="-2268.40345%" x2="4549.36897%" y1="-4153.9%" y2="8203.3125%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ae" x1="-134.196822%" x2="349.214914%" y1="-7485.96%" y2="12285.58%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="af" x1="-203.129153%" x2="467.092542%" y1="-7412.3%" y2="12359.24%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ag" x1="-8254.16%" x2="11517.38%" y1="-4829.67647%" y2="6800.64118%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ah" x1="-261.207831%" x2="281.860241%" y1="-1137.19462%" y2="943.173846%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="ai" x1="-353.298433%" x2="352.892428%" y1="-15403.61%" y2="11643.5%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aj" x1="-355.267885%" x2="350.914099%" y1="-15487.8%" y2="11558.97%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="ak" x1="-2084.69358%" x2="-3141.99572%" y1="-5548.86479%" y2="-8333.58732%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="al" x1="-2136.94011%" x2="-3223.28791%" y1="-39758.41%" y2="-59529.95%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="am" x1="-8671.43111%" x2="-13065.1111%" y1="-39159.26%" y2="-58930.8%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="an" x1="42.05%" x2="39.02%" y1="40.85%" y2="37.83%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ao" x1="-1655.02189%" x2="-2503.58541%" y1="-18008.5045%" y2="-26995.5636%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ap" x1="26.16%" x2="23.82%" y1="17.93%" y2="15.58%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aq" x1="-7321.04%" x2="-10915.8655%" y1="-26976.66%" y2="-40157.6867%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ar" x1="-3806.45143%" x2="-5689.45619%" y1="-33702.4583%" y2="-50178.75%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="as" x1="-719.07449%" x2="1298.42959%" y1="-4375.10588%" y2="7255.21176%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="at" x1="-4193.87653%" x2="-6211.37959%" y1="-24406.3118%" y2="-36036.6294%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="au" x1="-524.679508%" x2="1095.93852%" y1="-4333.45%" y2="8023.7625%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="av" x1="-3315.91393%" x2="-4936.53115%" y1="-25616.6063%" y2="-37973.8188%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aw" x1="-1422.94082%" x2="2612.06735%" y1="-5115.85714%" y2="9006.67143%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ax" x1="-8372.54082%" x2="-12407.5531%" y1="-29439.4643%" y2="-43561.9929%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="ay" x1="-2040.6303%" x2="3950.74545%" y1="-6860.53%" y2="12911.01%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="az" x1="-12359.7364%" x2="-18351.1091%" y1="-40913.58%" y2="-60685.12%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aA" x1="-1005.75152%" x2="1989.93788%" y1="-6296.96364%" y2="11677.1727%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aB" x1="-6165.30303%" x2="-9160.98939%" y1="-37254.2727%" y2="-55228.4%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aC" x1="-2871.84%" x2="5036.776%" y1="-4515.63125%" y2="7841.58125%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aD" x1="-16493.056%" x2="-24401.672%" y1="-25798.7875%" y2="-38156%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aE" x1="-4836.46667%" x2="8344.56%" y1="-7269.91%" y2="12501.63%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aF" x1="-27538.4933%" x2="-40719.52%" y1="-41322.96%" y2="-61094.5%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aG" x1="123.979381%" x2="7.09896907%" y1="645.125%" y2="-299.65%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aH" x1="-4143.41443%" x2="-6181.71959%" y1="-33849.65%" y2="-50325.925%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aI" x1="110.22963%" x2="13.6574074%" y1="263.406667%" y2="-84.2533333%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aJ" x1="-7493.57037%" x2="-11154.9667%" y1="-27110.28%" y2="-40291.3067%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aK" x1="-1314.06588%" x2="-1982.02331%" y1="-40374.36%" y2="-60145.89%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aL" x1="-39504.49%" x2="-59276.05%" y1="-23215.4176%" y2="-34845.7353%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aM" x1="-935.697066%" x2="-1419.10856%" y1="-40260.71%" y2="-60032.24%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aN" x1="-239.365731%" x2="302.59479%" y1="-1057.81832%" y2="1006.59618%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aO" x1="-195.98196%" x2="188.238494%" y1="-262.20413%" y2="218.292299%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aP" x1="-148.239568%" x2="156.504317%" y1="-236.10625%" y2="205.1375%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aQ" x1="-684.479137%" x2="737.933813%" y1="-1012.53646%" y2="1046.99896%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- <linearGradient id="aR" x1="-802.736152%" x2="689.739334%" y1="-1056.80385%" y2="890.777014%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aS" x1="-1124.88665%" x2="549.535228%" y1="-1423.71471%" y2="673.128094%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aT" x1="-465.885211%" x2="339.528169%" y1="-152.931663%" y2="157.298039%">
- <stop stop-color="#FFE900" offset="28.07%"/>
- <stop stop-color="#FFCC07" offset="32.21%"/>
- <stop stop-color="#FF8119" offset="41.22%"/>
- <stop stop-color="#FF0B36" offset="54.35%"/>
- <stop stop-color="#FF0039" offset="55.5%"/>
- <stop stop-color="#ED00B5" offset="85.24%"/>
- </linearGradient>
- <linearGradient id="aU" x1="-632.473239%" x2="759.889437%" y1="-217.098158%" y2="319.212821%">
- <stop stop-color="#FFCCD7" offset="40.06%"/>
- <stop stop-color="#EDBEE2" offset="100%"/>
- </linearGradient>
- </defs>
- <g fill="none" fill-rule="evenodd">
- <path d="M150.1 145.9v-.2.2zM152.6 147.1c0 .9.3 1.9.9 2.8-.6-.9-.9-1.9-.9-2.8zM149.7 154.2c0-.2-.1-.5-.3-.6.2.2.3.4.3.6 0 0-.1.7.8 1.8-.9-1-.8-1.8-.8-1.8zM229.2 188.9c.4-1.5.7-3 .8-4.4 0-.5.1-1 .1-1.5 0 .5-.1 1-.1 1.5-.1 1.4-.4 2.9-.8 4.4zM103.1 216.7h.8l-.3-.3c-.1.2-.3.3-.5.3zM235.1 153.6v.2c.4.1.8.3 1.1.6.8.7 1 1.8.7 2.7.1-.2.1-.4.1-.6.1-1.3-.7-2.5-2-2.9v-.2l-.1-.9c-1.5-.1-3-.2-4.6-.4l-.3 3.3 5.1-1.8zM245.1 143.8c6.7-3.5 11.1-12.3 10.9-20.8.3 8.5-4.2 17.3-10.9 20.8-3.5 1.8-8.8 2.6-14.2 2.7 5.4-.1 10.7-.8 14.2-2.7zM228.5 173.5l-.1 1.1c.6.3 1.3.5 1.9.8v.1c.1 0 .1.1.2.1-.1-1.3-.2-2.8-.4-4.3.1 1 .1 2 .2 2.9-.6-.2-1.2-.4-1.8-.7zM147.3 150.3l1-2.8-.1.1-.9 2.7c-.2.3 0 .6.3.7h.1c-.4-.1-.5-.4-.4-.7zM210.1 73.1c.5.1 1 .2 1.6.4-.5-.1-1-.3-1.6-.4zM155.1 180c0 .1.5 2.8 1.3 6.9h.1c-.8-4.1-1.3-6.9-1.3-7 0-.2.1-.4.2-.5-.2.1-.4.3-.3.6zM160 204.4h.2c-1.2-5.1-2.3-10.7-3.2-15.3h-.1c.8 4.6 1.9 10.2 3.1 15.3z"/>
- <path d="M239.9 150.3c-.8.1-1.6.2-2.4.2-.1-.1-.3-.1-.4-.1-2.1-.1-4.3-.2-6.4-.4v.1c2.1.2 4.2.4 6.3.5.1 0 .3 0 .4.1.8 0 1.6-.1 2.4-.2 6.9-.9 11-3.2 15.3-8.7 1.4-1.7 3-4.6 4.1-7.8-1.2 3.2-2.7 5.9-4.1 7.7-4.3 5.4-8.4 7.7-15.2 8.6zM104 200.6c0-.1 0-.1 0 0 0-.1 0-.1 0 0zM145.8 157.9l-.2-.3v-.1l.1.1M140.7 165.2h-.1l-.6.9v.1M252 110.6c-2.8-4.7-6.4-9.1-8.6-11.7 2.2 2.6 5.8 7 8.6 11.7zM206.9 117.5c-.2-.3-.5-.5-.7-.7-.6-.5-1.4-.7-2.1-.7 1 0 2.1.5 2.8 1.4.5.8 1.5 1 2.3.5.1-.1.2-.1.3-.2-.1.1-.2.1-.3.2-.8.5-1.8.3-2.3-.5zM218.4 218.6c-.2 3.3-.2 5.7-.2 7.4h.1c-.1-1.7 0-4.1.1-7.4-6.4 1.4-13 2.3-19.7 2.4-7.5.1-14.9-.8-22.2-2.6v.1c7.2 1.8 14.6 2.7 22.1 2.6 6.7-.2 13.3-1 19.8-2.5zM209 117.5h-.1.1zM244.8 117.2c-.5.4-1.2.3-1.6-.2-.2-.3-.4-.5-.7-.7-.7.4-1.4.6-2.2.6-1 0-1.9-.3-2.6-.9-.4.3-.8.6-1.1 1-.1.2-.3.4-.6.4.2.2.5.4.7.6 2.9 2 6.8 1.3 8.8-1.6.3-.5.2-1.2-.3-1.5-.3-.2-.6-.2-1-.1.3.3.6.6.8 1 .4.5.2 1.1-.2 1.4zM241.5 113.3c.3-.3.4-.6.4-1.1v-3.5c0-.7-.4-1.3-1.1-1.5.4.3.7.8.7 1.3v3.5c0 .2-.1.5-.2.7-.5-.
1-1.1-.2-1.6-.2-.3 0-.6 0-.9.1.1.2.1.4.3.5.7 0 1.6 0 2.4.2zM200.6 117.5l.3-.3.6-.6c-.2.2-.4.4-.6.7 0 0-.1.1-.3.2zM208.1 114.6c-.1 0-.1-.1-.2-.2-1.5-1.1-3.3-1.4-5-1 1.8-.4 3.7.1 5.2 1.2zM209.5 116.7c0-.2 0-.5-.1-.7l-.3-.3.3.3c.1.2.2.5.1.7zM159.7 206.8c.7 3.1 1.5 6.2 2.6 9.2.3.9 2.2 6 4.6 10.2h.1c-2.5-4.2-4.3-9.3-4.7-10.3-1-3-1.9-6-2.6-9.1-1.2.1-2.5.1-3.8.1-4-.1-7.9-.5-11.8-1.2v.1c3.9.7 7.8 1.1 11.7 1.1 1.3 0 2.6 0 3.9-.1zM198.4 115.7c1.1-1.5 2.7-2.5 4.4-2.8-.1-.2-.1-.4-.1-.6v-3.5c0-.9.7-1.6 1.6-1.6-.9 0-1.6.7-1.6 1.6v3.5c0 .2 0 .4.1.6-1.8.2-3.4 1.3-4.4 2.8-.5.7-.3 1.5.2 2.1-.6-.6-.7-1.5-.2-2.1zM156.8 110.8c.3-.1.4-.4.3-.7l-1.2-2.9V106.9l-.3-1 .3.9v.1l-.3-1 .4 1.1v.2l1.2 2.9c0 .3-.1.6-.4.7h-.3c.2.1.3.1.3 0zM164.8 90.6l-.1 4.1M164.9 97.3l-.3-2.4c.1.8.2 1.7.3 2.5V97.3zM184.8 79.4l.2-.2 2.6-1.1h-.1l-2.4 1c-.2.1-.3.2-.3.3z"/>
- <path d="M214.8 223.5v-.9c-1.3.2-2.6.4-3.8.6-4.1.6-8.2 1-12.4 1-6.3 0-12.6-.5-18.8-1.7 0 1.3 0 2.3-.1 3.3 4.7-.1 9.6-.2 14.7-.2 7.1 0 13.9.1 20.4.3v-2.4zM159.1 216.9c-.7-1.9-1.3-4.2-2-6.8h-1.3c-3.9-.1-7.9-.4-11.7-1.1v1.9h1c1 0 1.9 1 1.9 2.2v1.4c0 1.2-.8 2.1-1.7 2.2h.2l.4.3c.2-.2.4-.3.7-.3h.8c1.9.1 3.1.4 3.6.9 1.6 1.3 2.6 4.2 2.6 7.5 0 .5-.1 1.2-.2 1.9 3.1-.2 6.3-.4 9.8-.6-.6-1-1.1-2.1-1.6-3.2-.9-1.9-1.8-4.1-2.5-6.3zM235.4 114.9c-.2.1-.3.3-.3.4.1-.1.2-.2.3-.4.1 0 .1 0 0 0zM150.3 134.7c0-12.6 1.1-21.9 3.3-27.6l-.2-.5c-.4-1.2.3-2.4 1.5-2.8l.3-.1c2-3.6 4.4-6.9 7.3-9.9l.1-3.3c0-1.2 1-2.2 2.2-2.2l3.5.1c3.3-2.6 6.8-5 10.5-7.1l1.4-5.3c.3-1.2 1.5-1.8 2.6-1.6h-.1c-1.2-.3-2.4.4-2.7 1.6l-1.4 5.3c-3.7 2-7.2 4.4-10.5 7.1l-3.5-.1c-1.2 0-2.2 1-2.2 2.2l-.1 3.3c-2.8 3-5.3 6.3-7.3 9.9l-.3.1c-1.2.4-1.8 1.6-1.5 2.8l.2.5c-2.2 5.7-3.3 15-3.3 27.6-.6 3.6-1.3 7.2-2.2 10.6l-4.8 2.9 5-2.8c.9-3.5 1.6-7.1 2.2-10.7zM149.2 158.3c.7.7 1.6 1.5 2.8 2.1-1.2-.6-2.1-1.3-2.8-2.1zM206.5 72.8c.6 0 1.3.1 1.9.1.6 0 1.1.
1 1.7.2-.7-.1-1.3-.2-1.9-.3-.6-.1-1.2-.1-1.9-.1-5.7.2-11.4 1.3-16.7 3.4l.2.1c5.3-2 10.9-3.2 16.7-3.4zM140.8 153.8c-.5-.9-.6-1.9-.4-2.8-.3.9-.2 1.9.4 2.8l2.6 4.3-2.6-4.3zM227.3 212.8c-1.9 1.7-4.1 3-6.5 4v.1c2.3-1 4.5-2.3 6.5-4.1-.1.1-.1.1 0 0zM162.3 170.7l-.1-1.2c-2.4.6-4.8 1.4-7.2 2.3-.4-2.9-.8-5.5-1.1-7.6.3 2.1.7 4.8 1.1 7.7-.1 0-.2.1-.4.2.4 2.2 1.1 5.1 1.5 7.4-.3-2.2-.7-4.4-1-6.4 2.4-1.1 4.7-1.9 7.2-2.4zM174.5 205.9v2.9"/>
- <path d="M152.3 147.3c-.2-3.1-.3-6.4-.4-9.8.2-1 .4-1.9.5-2.8 0-10.7.9-20.1 2.9-26v-.1c-2 5.9-2.9 15.3-2.9 26.1-.2.9-.3 1.8-.5 2.8v.2c0-.1 0-.2.1-.3 0 3.5.1 6.8.3 9.9 0 .1 0 .1 0 0zM236.4 182.5c-.4 15.2-3.8 25.4-5.2 29-.3 1.4-.7 2.7-1.1 3.8-1.6 4.5-3.5 8.5-5.2 11.1 1.7-2.6 3.7-6.6 5.3-11.2.4-1.1.7-2.4 1.1-3.8 1.4-3.6 4.8-13.7 5.2-29v-2.3s-.1 0-.1-.1v2.5zM149 153.6c.1-.6.3-1.3.6-1.9-.3.6-.6 1.2-.6 1.9h.2c-.1-.1-.2-.1-.2 0zM174.2 215.2v.2h-.1l.1-.2-.1.3c.1 2.1.1 4.1.1 6 0 1.7 0 3.2-.1 4.5h.1c.1-1.3.1-2.9.1-4.6 0-1.9-.1-3.9-.1-6h.1v-.2l-.2-5.8c0-.1 0-.2.1-.3-.1.1-.2.3-.2.4l.2 5.7zM236.5 172.8v-2.2c-.1-.7-.1-1.6-.2-2.4.1 1.5.2 3 .2 4.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M7.7 72.3v98.1c0 1 .1 1.2.1 1.2s.2.1 1.2.1h121.1l-.6-1.9c-.9-3.1.3-6.3 2.9-7.9V72.3H7.7zm45.8 65.5c0 1.8-1.5 3.3-3.3 3.3-1.8 0-3.3-1.5-3.3-3.3V98.4c0-1.8 1.5-3.3 3.3-3.3 1.8 0 3.3 1.5 3.3 3.3v39.4zm9.8 0c0 1.8-1.5 3.3-3.3 3.3-1.8 0-3.3-1.5-3.3-3.3V105c0-1.8 1.5-3.3 3.3-3.3 1.8 0 3.3 1.5 3.3 3.3v32.8zm9.9 0c0 1.8-1.5 3.3-3.3 3.3-1.8 0-3.3-1.5-3.3-3.3v-36.1c0-1.8 1.5-3.3 3.3-3.3 1.8 0 3.3 1.5 3.3 3.3v36.1zm20.8 3.1c-.4.1-.8.2-1.1.2-1.3 0-2.6-.8-3.1-2.2l-13.1-36.1c-.6-1.7.3-3.6 2-4.2 1.7-.6 3.6.3 4.2 2L96 136.7c.6 1.7-.3 3.5-2 4.2zM133.5 171.4c-.1 0-.1 0 0 0l.5 1.7-.5-1.7z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M127.3 173.2l1.8.1c.1-.2.3-.4.5-.5H9c-2 0-2.5-.4-2.5-2.5V71.2h127v90.2c.2-.1.4-.2.7-.2l3.6-1.1v-4.8c-1.3-2.3-1.2-5 0-7.1V55.4c0-2.3-1.9-4.2-4.2-4.2H6.5c-2.3 0-4.2 1.9-4.2 4.2v118.3c0 2 1.8 3.7 3.9 3.7h90c.3-.6.6-1.2 1.1-1.5.9-.7 2.6-.8 3.8-.8.5 0 .9.2 1.2.5l.5-.4h19.1c1.3-1.2 3-2 4.9-2h.5zm9.1-13.5l-.1-.2.1.2zm-.1-.3v.4l-.3-.9.3.5zm-9.6-101.2c1.6 0 2.9 1.3 2.9 2.9 0 1.6-1.3 2.9-2.9 2.9-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9zm-9.2 0c1.6 0 2.9 1.3 2.9 2.9 0 1.6-1.3 2.9-2.9 2.9-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9zM35 61c0-1.7 1.4-3.1 3.1-3.1H102c1.7 0 3.1 1.4 3.1 3.1v.3c0 1.7-1.4 3.1-3.1 3.1H38.1c-1.7 0-3.1-1.4-3.1-3.1V61zm-12.4-2.8c1.6 0 2.9 1.3 2.9 2.9 0 1.6-1.3 2.9-2.9 2.9-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.3-2.9 2.9-2.9zm-9.3 0c1.6 0 2.9 1.3 2.9 2.9 0 1.6-1.3 2.9-2.9 2.9-1.6 0-2.9-1.3-2.9-2.9 0-1.6 1.4-2.9 2.9-2.9zM136.4 173.1l-.1-.3-.2-.6-1.1-3.7c-.2-.8.2-1.6 1-1.8-.8.2-1.2 1.1-1 1.8l1.1 3.7.3.9.1.5c-.5.6-.9 1.1-1.4 1.7.5-.6 1-1
.1 1.4-1.7l-.1-.5z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M138.7 159.7c.3-.5.6-1.1.8-1.7l-1.7-2.8v4.7l.9-.2zM6.2 177.5c-2.2 0-3.9-1.6-3.9-3.7V55.4c0-2.3 1.9-4.2 4.2-4.2h127.1c2.3 0 4.2 1.9 4.2 4.2V148c.5-.9 1.3-1.7 2.2-2.3V55.4c0-3.6-2.9-6.5-6.5-6.5H6.5c-3.6 0-6.5 2.9-6.5 6.5v118.3c0 3.3 2.8 5.9 6.2 5.9h89.2c.2-.8.4-1.5.7-2.2H6.2v.1zM139 167.8l1.1-1.6v-.1l-1.1 1.7c-.2.1-.2.4 0 .5-.1-.1-.1-.3 0-.5z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M6.5 71.2v99.2c0 2 .4 2.5 2.5 2.5h120.5c.2-.2.4-.5.7-.7l-.1-.4H9c-1 0-1.2-.1-1.2-.1s-.1-.2-.1-1.2V72.3h124.7V162c.3-.2.7-.4 1.1-.6V71.2H6.5zM132.8 169.2c-.2-.7-.2-1.4 0-2.1-.3.6-.3 1.4 0 2.1l.7 2.3v-.1l-.7-2.2zM13.3 64c1.6 0 2.9-1.3 2.9-2.9 0-1.6-1.3-2.9-2.9-2.9-1.6 0-2.9 1.3-2.9 2.9 0 1.6 1.4 2.9 2.9 2.9zM22.6 64c1.6 0 2.9-1.3 2.9-2.9 0-1.6-1.3-2.9-2.9-2.9-1.6 0-2.9 1.3-2.9 2.9 0 1.6 1.3 2.9 2.9 2.9zM38.1 64.3H102c1.7 0 3.1-1.4 3.1-3.1V61c0-1.7-1.4-3.1-3.1-3.1H38.1c-1.7 0-3.1 1.4-3.1 3.1v.3c0 1.7 1.4 3 3.1 3zM117.5 64c1.6 0 2.9-1.3 2.9-2.9 0-1.6-1.3-2.9-2.9-2.9-1.6 0-2.9 1.3-2.9 2.9 0 1.6 1.3 2.9 2.9 2.9zM126.7 64c1.6 0 2.9-1.3 2.9-2.9 0-1.6-1.3-2.9-2.9-2.9-1.6 0-2.9 1.3-2.9 2.9 0 1.6 1.3 2.9 2.9 2.9z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M60 101.6c-1.8 0-3.3 1.5-3.3 3.3v32.8c0 1.8 1.5 3.3 3.3 3.3 1.8 0 3.3-1.5 3.3-3.3v-32.8c0-1.8-1.4-3.3-3.3-3.3zM69.9 98.4c-1.8 0-3.3 1.5-3.3 3.3v36.1c0 1.8 1.5 3.3 3.3 3.3 1.8 0 3.3-1.5 3.3-3.3v-36.1c0-1.9-1.5-3.3-3.3-3.3zM50.2 95.1c-1.8 0-3.3 1.5-3.3 3.3v39.4c0 1.8 1.5 3.3 3.3 3.3 1.8 0 3.3-1.5 3.3-3.3V98.4c0-1.8-1.5-3.3-3.3-3.3zM82.8 100.5c-.6-1.7-2.5-2.6-4.2-2-1.7.6-2.6 2.5-2 4.2l13.1 36.1c.5 1.3 1.7 2.2 3.1 2.2.4 0 .8-.1 1.1-.2 1.7-.6 2.6-2.5 2-4.2l-13.1-36.1zM122.5 21.4h1.1c.3 0 .6-.2.6-.6 0-.4-.2-.6-.6-.6h-1.1c-.3 0-.6.2-.6.6 0 .4.3.6.6.6zM133.7 21.4h4.5c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-4.5c-.3 0-.6.2-.6.6 0 .3.2.6.6.6zM116.9 21.1c.1.2.3.3.5.3h.6c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-.3c-.2-.4-.6-1.2-1.2-2.1-.2-.3-.5-.3-.8-.2-.3.2-.3.5-.2.8.9 1.3 1.3 2.1 1.4 2.4zM66.7 4.5c.1 0 .2 0 .3-.1 1.6-1.2 3.7-2.1 6.4-2.4 2.1-.3 4-.2 5.9.2.3.1.6-.1.7-.4.1-.3-.1-.6-.4-.7-2-.4-4.1-.5-6.3-.2-2.9.4-5.2 1.3-6.9 2.7-.2.2-.3.5-.1.8.1 0 .3.1.4.1zM41.3
20.7h13.4c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6H41.3c-.3 0-.6.2-.6.6 0 .3.3.6.6.6zM98.6 7.9c1.3-.4 2.7-.5 4.3-.2 2.3.4 4.8 1.8 7.2 4.1.1.1.2.2.4.2.1 0 .3-.1.4-.2.2-.2.2-.6 0-.8-2.6-2.5-5.2-3.9-7.7-4.4-1.8-.3-3.4-.3-4.9.2-.3.1-.4.4-.4.7.1.3.5.5.7.4zM92.1 13.1c.1.2.3.3.5.3.1 0 .2 0 .2-.1.3-.1.4-.5.3-.7-.1-.3-.3-.6-.5-1-.1-.3-.5-.4-.8-.2-.3.1-.4.5-.2.8.2.3.3.6.5.9zM89.1 8.5c.1.1.3.2.4.2.1 0 .2 0 .3-.1.2-.2.3-.5.1-.8-.7-.9-1.5-1.8-2.3-2.5-.2-.2-.6-.2-.8 0-.2.2-.2.6 0 .8.9.7 1.6 1.5 2.3 2.4zM63.4 14.6s.1 0 0 0c.4 0 .6-.3.6-.6 0-.4-.1-.7-.1-1.1 0-.3-.3-.5-.6-.5h-.1c-.2.1-.4.3-.4.6 0 .4.1.8.1 1.1 0 .1 0 .1.1.2 0 .2.2.3.4.3zM65.5 20.4c.1-.2.1-.4 0-.5 0 0-.3-.7-.6-1.7-.1-.3-.4-.5-.7-.4-.3.1-.5.4-.4.7.1.4.3.8.4 1h-.7c-.2.1-.4.3-.4.5 0 .3.2.6.6.6H65.1c.1.1.3 0 .4-.2z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M40.9 25.6h97.9c.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.1-1.1-1.1H116c-2-3.7-7.1-11.7-13.4-12.9-8.4-1.6-10 6.7-10 6.7S87 2.7 73 4.6c-6.5.9-9 4.2-9.8 7.8h.1c.3 0 .6.2.6.5 0 .4.1.7.1 1.1 0 .3-.2.6-.5.6h-.1c-.2 0-.4-.1-.5-.3-.1 1.9.1 3.8.5 5.3h.7c-.1-.3-.2-.6-.4-1-.1-.3.1-.6.4-.7.3-.1.6.1.7.4.3 1 .6 1.7.6 1.7.1.2.1.4 0 .5-.1.2-.3.3-.5.3h-1.3c.4 1.5.9 2.5.9 2.7H40.7c-.6 0-1.1.5-1.1 1.1.1.5.6 1 1.3 1z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M229.2 52.9c.3-1 1.2-3.2 3.8-3.2.3 0 .7 0 1 .1 1.6.3 3.2 1.3 4.8 3 .2.2.6.2.8 0 .2-.2.2-.6 0-.8-1.8-1.9-3.6-3-5.4-3.4-.4-.1-.8-.1-1.2-.1-3.5 0-4.6 3-4.9 4-.1.3.1.6.4.7h.2c.1 0 .2 0 .3-.1.1 0 .2-.1.2-.2zM213.5 48.4c.1 0 .3-.1.4-.2.6-.7 1.5-1.1 2.6-1.4.3-.1.5-.4.4-.7-.1-.3-.4-.5-.7-.4-1.3.4-2.4.9-3.1 1.7-.2.2-.2.6 0 .8.1.2.3.2.4.2zM246.3 56.9h3.3c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-3.3c-.3 0-.6.2-.6.6 0 .3.3.6.6.6zM220.7 46.6c.4.1.7.2 1 .3h.2c.2 0 .5-.1.5-.4.1-.3-.1-.6-.4-.7-.4-.1-.8-.2-1.1-.3-.3-.1-.6.1-.7.4 0 .4.2.7.5.7zM213.5 56.8c.1-.2.1-.4 0-.5l-.1-.1c-.1-.3-.4-.4-.7-.3-.1 0-.1.1-.2.1h-12.7c-.3 0-.6.2-.6.6 0 .3.2.6.6.6H213c.2-.2.4-.3.5-.4z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M199.6 60.7h54.5c.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.1-1.1-1.1h-12.9c-1.1-2.1-3.9-6.5-7.4-7.2-2.4-.5-3.8.5-4.6 1.6 0 .1-.1.2-.2.3-.6 1-.8 1.9-.8 1.9s-3.1-8-10.9-7c-5.8.8-6 5-5.4 7.8h.7s.1-.1.2-.1c.3-.1.6 0 .7.3l.1.1c.1.2.1.4 0 .5-.1.2-.3.3-.5.3h-.9c.2.9.5 1.4.5 1.5h-13.2.2c-.6 0-1.1.5-1.1 1.1-.1.6.4 1.1 1 1.1z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M173.7 229.1c-.1.2-.1.4-.2.5 0 0-.1 0-.1.1.1 0 .2-.1.3-.1.3-.3.5-1.6.6-3.6h-.1c-.2 1.5-.3 2.6-.5 3.1zM173.1 232c.5 0 1-.1 1.5-.4-.4.2-.9.4-1.5.4-2.1 0-4.3-2.7-6.1-5.8h-.1c1.8 3.2 4 5.8 6.2 5.8z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M231.1 226.7c-2.6 4.8-5.9 8.5-9.7 8.5-1.4 0-2.9-.5-4-1.4-1.7-1.4-2.5-2.9-2.6-7.8-6.4-.2-13.3-.3-20.4-.3-5 0-9.9.1-14.7.2-.2 5.1-1 6.6-2.7 7.9-1.1.9-2.5 1.4-4 1.4-4 0-6.8-3.6-8.7-6.8-.4-.6-.8-1.3-1.1-2-3.4.2-6.7.4-9.8.6-.3 2-1.1 4.5-2.2 5.4-1.1.9-3.1 1.1-4.5 1.1-.6 0-1-.3-1.4-.6l-.6.6H97.4c-1 0-1.9-.7-2.2-1.7l-.3-1.1v-.2c-5.9.7-9.4 1.5-9.4 2.4 0 2.1 17.6 3.7 39.4 3.7 3.5 0 6.8 0 10-.1 12.2 2.1 34.3 3.4 59.5 3.4 38.5 0 69.7-3.2 69.7-7.1 0-2.6-13.2-4.8-33-6.1z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M219.5 231.3c.5.4 1.2.7 1.9.7.6 0 1.3-.2 1.9-.6-.6.4-1.2.6-1.8.6-.7 0-1.4-.3-2-.7-.6-.6-1.2-1.1-1.3-5.3h-.1c.2 4.3.8 4.8 1.4 5.3zM223.3 228.4c.5-.5 1-1.2 1.5-2-.5.8-1 1.4-1.5 2z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M102.1 188.2l-.3-.2c-.1.2-.3.3-.6.3h-.7c-1.6-.1-2.6-.3-3.1-.7l-.6-.6H83c-.6 0-1.1.5-1.1 1.1 0 .6.5 1.1 1.1 1.1h19.4c.1-.4.2-.7.5-.9h-.8v-.1zM156.8 189.1h.1c-.2-.8-.3-1.5-.4-2.2h-.1c.1.7.3 1.4.4 2.2zM27.3 194.1c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6H24c-.3 0-.6.2-.6.6 0 .3.2.6.6.6h3.3zM19.5 193h-1.1c-.3 0-.6.2-.6.6 0 .3.2.6.6.6h1.1c.3 0 .6-.2.6-.6 0-.3-.3-.6-.6-.6zM68.5 194.1c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-3.3c-.3 0-.6.2-.6.6 0 .3.2.6.6.6h3.3zM49.6 194.1c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6H36.2c-.3 0-.6.2-.6.6 0 .3.2.6.6.6h13.4zM102 194.1c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-1.1c-.3 0-.6.2-.6.6 0 .3.2.6.6.6h1.1zM60.7 194.1c.3 0 .6-.2.6-.6 0-.3-.2-.6-.6-.6h-1.1c-.3 0-.6.2-.6.6 0 .3.2.6.6.6h1.1zM91.4 193.6c0-.3-.2-.6-.6-.6H77.4c-.3 0-.6.2-.6.6 0 .3.2.6.6.6h13.4c.3-.1.6-.3.6-.6z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M65.7 230.4c-.3.9-.6 1.7-1.1 2.1-.8.8-2.3.9-3.4.9-.4 0-.8-.3-1-.6l-.5.5H24.5h-.1c2.2 1.6 12.1 2.7 24 2.7 13.5 0 24.4-1.5 24.4-3.4 0-.7-2.7-1.6-7.1-2.2z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M28.3 224.9h32.9c.1 0 .1 0 .2.1-.1-.4-.1-.7-.3-1H27.2v4.6h33.7c.2-.3.3-.7.4-1.1h-33c-.2 0-.4-.2-.4-.4s.2-.4.4-.4h32.9c.1 0 .2 0 .2.1v-1.1c-.1.1-.2.1-.3.1H28.3c-.2 0-.4-.2-.4-.4s.2-.5.4-.5z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M59.2 231.8l.8-.9.3.1c.3.1.5.3.6.5.1.1.2.3.3.3 1.2 0 2.1-.2 2.5-.6.6-.5 1.3-3.3 1.3-5.1 0-2.6-.7-4.6-1.4-5.2-.1-.1-.8-.3-1.9-.4-.1.4-.2.7-.7.8h-.3l-.9-.9H24.3c-.1 0-.3.1-.3.3v1.2c0 .2.1.3.3.3H62l.2.4c1.3 2.4.8 5.9-.4 7.3l-.2.2H24.3c-.1 0-.2 0-.2.1s-.1.2 0 .3l.2 1c0 .1.1.2.2.2h34.7v.1z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M59.7 233.4l.5-.5c.2.3.6.6 1 .6 1.1 0 2.6-.2 3.4-.9.4-.4.8-1.2 1.1-2.1.5-1.5.7-3.3.7-4.3 0-2.8-.8-5.4-1.9-6.5-.4-.4-1.3-.7-2.7-.8h-.6c-.3 0-.4.1-.5.3l-.3-.3h-36c-.9 0-1.7.9-1.7 2v1.2c0 1.1.7 2 1.7 2h.9v4.6h-.9c-.5 0-1 .3-1.3.8-.3.5-.4 1.1-.3 1.7l.2 1c.2.8.8 1.4 1.5 1.5h35.2v-.3zm-35.5-1.8l-.2-1v-.3c0-.1.1-.1.2-.1h37.2l.2-.2c1.3-1.4 1.7-4.9.4-7.3l-.2-.4H24.3c-.1 0-.3-.1-.3-.3v-1.2c0-.2.1-.3.3-.3h35.5l.9.9h.3c.4-.1.6-.5.7-.8 1.2.1 1.8.3 1.9.4.7.7 1.4 2.7 1.4 5.2 0 1.8-.7 4.6-1.3 5.1-.4.3-1.3.6-2.5.6-.1-.1-.2-.3-.3-.3-.2-.2-.3-.5-.6-.5l-.3-.1-.8.9H24.5l-.3-.3zm4.1-5.9h32.9c.1 0 .2-.1.3-.1v1.1c-.1-.1-.1-.1-.2-.1h-33c-.2 0-.4.2-.4.4s.2.4.4.4h33c-.1.4-.2.8-.4 1.1H27.2v-4.6h33.9c.1.3.2.7.3 1-.1 0-.1-.1-.2-.1H28.3c-.2 0-.4.2-.4.4s.2.5.4.5z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M174.2 215.4v-.2M236.7 157.9c.2-.2.3-.4.3-.6.1-.2.1-.5.1-.7 0 .2-.1.4-.1.6-.1.2-.2.4-.3.7zM161.3 204.2v.1h.1v-.1h-.1zM173.7 229.1c-.1.1-.1.2-.2.3-.4.3-1 .1-1.7-.5-.1 0-.1-.1-.2-.2-.3-.2-.5-.5-.8-.9.9 1.1 1.7 1.8 2.3 1.8h.2s.1 0 .1-.1c.1 0 .2-.1.3-.4z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M233.4 212.2c-.3 1.4-.7 2.7-1.1 3.8-.5 1.4-4.6 12.7-9 15.4-.6.4-1.3.6-1.9.6-.7 0-1.3-.2-1.9-.7-.7-.5-1.3-1-1.3-5.3 0-1.7 0-4.1.2-7.4-6.5 1.5-13.1 2.3-19.7 2.4-7.4.1-14.9-.7-22.1-2.6.2 11.4-.6 12-1.5 12.8-.1.1-.3.2-.5.3-.5.3-1 .4-1.5.4-2.2 0-4.4-2.6-6.2-5.8-2.5-4.2-4.3-9.3-4.6-10.2-1-3-1.9-6.1-2.6-9.2-1.3.1-2.6.1-3.9.1-3.9-.1-7.9-.5-11.7-1.1v3.2c3.9.7 7.8 1 11.7 1.1h1.3c.7 2.7 1.3 5 2 6.8.8 2.2 1.6 4.3 2.6 6.3.5 1.1 1 2.1 1.6 3.2.4.7.7 1.3 1.1 2 2 3.2 4.7 6.8 8.7 6.8 1.4 0 2.9-.5 4-1.4 1.6-1.3 2.4-2.9 2.7-7.9 0-1 .1-2.1.1-3.3 6.2 1.2 12.5 1.8 18.8 1.7 4.1 0 8.3-.4 12.4-1 1.2-.2 2.5-.4 3.8-.6v3.4c.1 4.9.9 6.4 2.6 7.8 1.1.9 2.5 1.4 4 1.4 3.8 0 7.1-3.7 9.7-8.5.2-.4.5-.8.7-1.3 1.4-2.8 2.6-5.6 3.6-8.5.4-1.1.8-2.4 1.2-3.9 1.5-4 4.8-14.1 5.4-29-1-1.2-2.1-2.3-3.3-3.3v1.8c-.5 15.4-3.9 25.8-5.4 29.7z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M137.8 148.1c-1.2 2.1-1.3 4.8 0 7.1v.1l1.7 2.8c-.3.6-.6 1.1-.8 1.7l-.8.3-3.6 1.1c-.2.1-.5.2-.7.2-.4.2-.8.4-1.1.6-2.5 1.7-3.8 4.9-2.9 7.9l.6 1.9.1.4c-.2.3-.4.5-.7.7-.2.2-.3.4-.5.5l-1.8-.1h-.6c-1.9 0-3.6.8-4.9 2h10.3l1.8-2.1-.5-1.7-.7-2.2c-.2-.7-.2-1.5 0-2.2.3-1.1 1.2-2.1 2.4-2.5l5.8-1.8c.8-1.4 1.6-3 2.3-4.7l-2.6-4.3c-.5-.9-.7-1.9-.4-2.8.2-.9.8-1.8 1.7-2.3l1.1-.7 4.8-2.9c.9-3.3 1.7-6.9 2.2-10.6 0-12.6 1.1-21.9 3.3-27.6l-.2-.5c-.4-1.2.3-2.4 1.5-2.8l.3-.1c2-3.6 4.4-6.9 7.3-9.9l.1-3.3c0-1.2 1-2.2 2.2-2.2l3.5.1c3.3-2.6 6.8-5 10.5-7.1l1.4-5.3c.3-1.2 1.6-1.9 2.7-1.6h.2l6.5 1.8c5.3-2.1 11-3.2 16.7-3.4.6 0 1.3 0 1.9.1.6 0 1.3.1 1.9.3h.1c.5.1 1 .2 1.6.4 3.9 1.1 8.5 3.5 13.9 7.2 6.2 4.5 12.1 9.4 17.5 14.7.7 0 1.3.3 1.8.8 3.5 3.3 6.7 7 9.7 10.8 3 3.2 6.8 8.1 8.1 13.3 2 7.8-2.2 17.9-5.9 22.5-4.7 5.9-9.2 8.5-16.7 9.5-.7.1-1.5.2-2.4.2 1.9 1.8 2.1 4.8.5 6.9 1 1.5 1.1 3.3.2 4.8-.1.1-.1.3-.2.5.2 4.9.4 10.9.4 14.4 1.1.9 2.2 1.9 3.2 3 .2-6.2 0-12.5-.4-18.7
l-.3.1c-.3 0-.5-.2-.5-.5s.2-.6.5-.6c.2 0 .4-.1.5-.2 0-.6-.1-1.2-.1-1.8 1-1.6 1.5-3.6 1.3-5.5l1-.2c.2-.3.5-.3.8-.2.9-.2 1.7-.4 2.5-.7 0-.3.2-.6.5-.6.2 0 .4.1.5.2 4.5-1.7 8.1-4.5 11.6-9 3.8-4.7 8.8-15.6 6.6-25 0-.1 0-.3-.1-.4-.1-.1-.1-.5-.2-.7-.6-1.8-1.3-3.5-2.2-5.2-.4-.7-.8-1.5-1.3-2.2-1.2-1.8-2.5-3.6-3.9-5.2-.3-.4-.6-.7-1-1.1l-.1-.2c-3-4-6.3-7.7-9.9-11.1-.7-.7-1.6-1.2-2.5-1.4-8-7.7-24.5-22.1-36.2-22.9-.7 0-1.4-.1-2.1-.1-5.8.1-11.5 1.2-16.9 3.2l-5.7-1.6c-3-.8-6 .9-6.8 3.9l-1.1 3.9c-3 1.8-6 3.7-8.7 5.9H165c-3 0-5.5 2.4-5.6 5.4v2c-2.4 2.6-4.5 5.5-6.3 8.5-2.1 1.2-3.3 3.6-2.8 5.9-2.1 6.1-3.2 15.3-3.2 27.5-.5 3-1.1 5.9-1.8 8.7l-4.8 2.9c-.1 0-.1.1-.2.1-1.2 1.2-2 2-2.5 3z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M136.3 159.7v-.3l-.2-.5.2.9M155.9 106.8l-.3-.9.3 1"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M230.3 174.3c0-1-.1-2-.2-2.9-.1-.7-.2-1.4-.2-2.1-.3-.1-.6-.1-1-.2l-.4 4.5c.6.2 1.2.4 1.8.7zM242.5 116.3c-.7-.6-1.6-.9-2.6-1-.8 0-1.6.2-2.3.7.7.6 1.7.9 2.6.9.9 0 1.7-.2 2.3-.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M174.5 205.9c9.6 4.4 20.4 5.7 30.8 3.8 14.7-2.9 21.6-12.6 23.9-20.8.4-1.5.7-3 .8-4.4 0-.5.1-1 .1-1.5.2-2.5.2-5 .2-7.5v-.1c-.6-.3-1.3-.6-1.9-.8l-1.1 11.7c-.1.9-.8 1.5-1.7 1.5l-22.1 3.1c-.9.9-2.9 2.3-6.5 2.5h-.8c-3.3 0-5.3-1.4-6.2-2.3l-24.9-3.6c-.9 0-1.6-.7-1.6-1.5l-1.2-15.4c-2.4.6-4.8 1.4-7.1 2.3.3 2 .6 4.2 1 6.4.1.1.2.2.2.4l.2.9c.6 3.2 2.6 14.1 4.8 23.4v.1h.1v.1h.1c.8 3.7 1.7 7.3 2.9 10.9 2 5.6 4.5 10.3 6.4 12.7.3.3.6.6.8.9.1 0 .1.1.2.2.7.6 1.3.8 1.7.5.1 0 .1-.1.2-.3.2-.5.3-1.6.4-3.2.1-1.3.1-2.8.1-4.5 0-1.9 0-3.9-.1-6v-.2h.1l-.2-5.8c0-.2.1-.3.2-.4.1-.1.2-.2.3-.2l-.1-2.9z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M152 137.6c.1 3.3.2 6.6.4 9.8l.3-.3v.1c-.1.9.3 1.9.8 2.9.8 1.4 2.1 2.7 3.2 3.7 1.8-1 3.3-1.2 4-1.2l-.3-4.3c0-.5.1-1 .5-1.3.3-.3.8-.5 1.3-.5h.3l1.4-6.1c.1-.4.4-.8.8-.8.4-.1 10.5-2.3 19.1 1.5 7.1 3.1 11.3 7.9 13.1 10.5 1.5-2.6 5.2-7.4 12.7-11 6.3-3.1 15.5-3.4 16.7-2.9.3.1.6.4.7.7.2.6 1.3 4.5 1.9 7.1h.2c.5 0 1 .1 1.3.5.2.2.4.5.4.8 5.4-.1 10.7-.9 14.2-2.7 6.7-3.5 11.1-12.3 10.9-20.7 0-1.2-.2-2.4-.4-3.6-.6-2.9-2-5.9-3.7-8.9-2.8-4.7-6.4-9.1-8.6-11.7-.3-.3-.5-.6-.8-.9 0 0-.1 0-.1.1C231 87.2 216.6 76.1 208 75.5c-.6 0-1.1-.1-1.7-.1-5.7.2-11.3 1.4-16.6 3.5l-.5-.1-3.8 1.7h-.1c-.3.1-.6 0-.7-.3-.1-.2 0-.4.1-.6 0-.1.1-.2.2-.3l2.4-1-5.1-1.4-1.7 6.2c-4.1 2.2-8 4.8-11.6 7.8l-4.3-.1-.1 4.1v.1l-.1.1.3 2.4v.3c0 .2-.2.4-.4.5h-.2c-.2 0-.4-.2-.5-.4l-.3-1.8c-2.7 2.9-5 6.1-6.8 9.6l-1.1.3.3 1V107.3l1.2 2.9c.1.3 0 .6-.3.7h-.3c-.2 0-.4-.1-.5-.4l-.7-1.7c-2 5.9-2.9 15.3-2.9 26 .1.9 0 1.8-.2 2.8zm82.7-21.8c.1-.2.2-.3.4-.4.1-.2.2-.3.3-.4.3-.2.5-.5.8-.7.8-.6 1.8-.9 2.
7-1.1-.1-.2-.2-.3-.3-.5h-.3c-.1-.2-.1-.4-.1-.6v-3.5c0-.9.7-1.6 1.6-1.6.3 0 .6.1.9.3.6.2 1.1.8 1.1 1.5v3.5c0 .4-.2.8-.4 1.1 1 .3 2 .8 2.8 1.5.3-.1.7-.1 1 .1.5.3.7 1 .3 1.5-2 2.9-5.9 3.6-8.8 1.6-.3-.2-.5-.4-.7-.6-.3.1-.7.1-1-.1-.5-.4-.6-1.1-.3-1.6zm-36.4-.2c1.1-1.5 2.7-2.5 4.5-2.8-.1-.2-.1-.4-.1-.6v-3.5c0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6v3.5c0 .2-.1.5-.2.7 1.6.4 3 1.4 4 2.7.4.7.3 1.6-.2 2.1-.1.1-.2.2-.3.2-.8.5-1.8.3-2.3-.5-.7-.9-1.7-1.4-2.8-1.5H203.5c-.2 0-.4.1-.5.1h-.1c-.6.2-1.2.6-1.6 1.2-.5.8-1.5 1-2.3.5-.1-.1-.2-.1-.3-.2-.7-.3-.8-1.2-.4-1.9zM236.2 154.4c-.3-.3-.7-.5-1.1-.6v-.2l-5 1.9v.1h.4c.1 0 3-.3 6.2 2.3.1-.2.2-.5.3-.7.3-1 0-2-.8-2.8z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M161.7 166.1c-3.6.4-6.2-.6-7.8-1.9.3 2.1.7 4.7 1.1 7.6 2.3-.9 4.7-1.7 7.2-2.3l-.1-.8c-.2-.9-.4-1.7-.4-2.6z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M136.4 159.7l-.1-.3"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M156.4 186.9H145c-.1.3-.2.5-.4.7h.8l.3.2c.1-.2.3-.3.6-.3h.7c1.6.1 2.6.3 3.1.7.3.2.5.5.8.8h6c-.2-.7-.4-1.4-.5-2.1zM150.2 182.9c0-.3-.2-.6-.6-.6h-7.5v1.1h7.5c.3 0 .6-.2.6-.5z"/>
- <path fill="url(#a)" fill-rule="nonzero" d="M252 110.6c1.7 3 3.1 6 3.7 8.9.2 1.2.4 2.4.4 3.6.2 8.5-4.2 17.3-10.9 20.8-3.5 1.9-8.8 2.6-14.2 2.7v.5l-.3 2.9c2.1.2 4.2.4 6.4.4.1 0 .3 0 .4.1.8 0 1.6-.1 2.4-.2 6.9-.9 11-3.2 15.3-8.7 1.4-1.7 2.9-4.5 4.1-7.7 1.5-4.1 2.4-8.8 1.3-12.8-1.2-4.7-4.7-9.3-7.7-12.5-2.9-3.8-6-7.3-9.5-10.6-.1-.1-.3-.2-.5-.2-.1 0-.3.1-.4.1.2.3.5.6.8.9 2.3 2.7 5.9 7.1 8.7 11.8z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M242.6 98c.2.3.5.6.8.9-.3-.3-.6-.6-.8-.9z"/>
- <path fill="url(#b)" fill-rule="nonzero" d="M242.6 98c.2.3.5.6.8.9-.3-.3-.6-.6-.8-.9z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M252 110.6c1.7 3 3.1 6 3.7 8.9.2 1.2.4 2.4.4 3.6 0-1.2-.2-2.4-.4-3.6-.6-2.9-2-6-3.7-8.9z"/>
- <path fill="url(#c)" fill-rule="nonzero" d="M252 110.6c1.7 3 3.1 6 3.7 8.9.2 1.2.4 2.4.4 3.6 0-1.2-.2-2.4-.4-3.6-.6-2.9-2-6-3.7-8.9z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M229.9 169.3c.1.7.1 1.4.2 2.1 0-.8-.1-1.5-.2-2.1z"/>
- <path fill="url(#d)" fill-rule="nonzero" d="M229.9 169.3c.1.7.1 1.4.2 2.1 0-.8-.1-1.5-.2-2.1z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M220.4 226.2c0 1.8.2 3.1.5 3.3.1.1.3.2.5.2.5 0 1.2-.5 1.9-1.3.5-.5 1-1.2 1.5-2-1.4-.1-2.9-.2-4.4-.2z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M205.3 209.7c-10.4 1.9-21.2.6-30.8-3.8 9.6 4.4 20.3 5.8 30.8 3.8 14.7-2.8 21.6-12.5 23.9-20.8-2.3 8.3-9.2 17.9-23.9 20.8z"/>
- <path fill="url(#e)" fill-rule="nonzero" d="M205.3 209.7c-10.4 1.9-21.2.6-30.8-3.8 9.6 4.4 20.3 5.8 30.8 3.8 14.7-2.8 21.6-12.5 23.9-20.8-2.3 8.3-9.2 17.9-23.9 20.8z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M230.1 183c.2-2.5.3-5 .2-7.4 0 2.4 0 4.9-.2 7.4z"/>
- <path fill="url(#f)" fill-rule="nonzero" d="M230.1 183c.2-2.5.3-5 .2-7.4 0 2.4 0 4.9-.2 7.4z"/>
- <path fill="url(#g)" fill-rule="nonzero" d="M236.4 180.1v-1c-1.9-1.3-3.9-2.4-5.9-3.4 0 .7.1 1.3.1 1.8 2 .8 3.9 1.4 5.8 2.6z"/>
- <path fill="url(#h)" fill-rule="nonzero" d="M236.5 172.8c-.1-1.6-.1-3.1-.2-4.6-1.4 1-3.6 1.6-6.4 1.1.1.7.2 1.4.2 2.1.2 1.5.3 3 .4 4.3-.1 0-.1-.1-.2-.1 0 2.5 0 5-.2 7.4 0 .5-.1 1-.1 1.5-.1 1.4-.4 2.9-.8 4.4-2.3 8.3-9.2 18-23.9 20.8-10.4 1.9-21.2.6-30.8-3.8v2.9h.1c.3 0 .6.2.6.5l.3 6.4c2.9.9 10.8 3 23.3 3 7.3-.2 14.5-1.1 21.5-2.9 2.3-.9 4.4-2.2 6.3-3.8.2-.2.6-.2.8 0 .2.2.2.6 0 .8h-.1v.1c-1.9 1.7-4.1 3-6.4 4-.2 2.9-.3 5.7-.3 7.9v1.4c0 1.8.2 3.1.5 3.3.1.1.3.2.5.2.5 0 1.2-.5 1.9-1.3.5-.5 1-1.2 1.5-2 1.7-2.6 3.6-6.5 5.2-11.1.4-1.1.8-2.4 1.1-3.8 1.4-3.6 4.8-13.8 5.2-29V180s.1 0 .1.1v-1.2c-.2-1.5-.1-4.1-.1-6.1z"/>
- <path fill="url(#i)" fill-rule="nonzero" d="M202.7 108.7v3.5c0 .2 0 .4.1.6.4-.1.8-.1 1.2-.1.5 0 1.1.1 1.6.2.1-.2.2-.5.2-.7v-3.5c0-.9-.7-1.6-1.6-1.6-.8 0-1.5.7-1.5 1.6z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M202.8 112.8c-1.8.3-3.4 1.3-4.5 2.8-.4.7-.3 1.5.2 2.1.1.1.2.2.3.2.8.5 1.8.3 2.3-.5.4-.6 1-1 1.6-1.2h.1c.2-.1.4-.1.5-.1H203.9c.7 0 1.5.2 2.1.7.3.2.5.4.7.7.5.8 1.5 1 2.3.5.1-.1.2-.1.3-.2.6-.5.7-1.4.2-2.1-1-1.4-2.4-2.3-4-2.7-.5-.1-1.1-.2-1.6-.2-.3-.1-.7 0-1.1 0zm5.1 1.6c.1 0 .1.1.2.2s.3.2.4.4c.2.1.3.3.5.5.1.1.2.2.2.3l.3.3c.1.2.1.5.1.7v.1c0 .1-.1.2-.1.2 0 .1 0 .1-.1.2 0 .1-.1.1-.1.1l-.1.1h-.1-.1c-.1 0-.2.1-.2.1h-.1c-.4 0-.7-.1-1-.4-.8-1-2-1.7-3.3-1.7H203.8c-.2 0-.4.1-.6.1-.1 0-.3.1-.4.2-.1.1-.3.1-.4.2-.2.1-.4.2-.5.4l-.1.1-.6.6-.3.3c-.4.3-.9.3-1.2 0-.5-.3-.7-1-.3-1.5.2-.3.4-.5.6-.7l.1-.1c.2-.2.5-.5.8-.7h.1c.1-.1.3-.2.5-.3h.1c.2-.1.3-.2.5-.2h.1c.2-.1.3-.1.5-.2s.4-.1.6-.2c1.3-.4 3.1-.1 4.6.9z"/>
- <path fill="url(#j)" fill-rule="nonzero" d="M202.9 113.4c-.2 0-.4.1-.6.2-.2.1-.4.1-.5.2h-.1c-.2.1-.3.2-.5.2h-.1c-.2.1-.3.2-.5.3h-.1c-.3.2-.5.4-.8.7l-.1.1c-.2.2-.4.5-.6.7-.3.5-.2 1.2.3 1.5.4.3.9.2 1.2 0l.3-.3c.2-.2.4-.5.6-.7l.1-.1c.2-.1.4-.3.5-.4.1-.1.2-.1.4-.2.1-.1.3-.1.4-.2.2-.1.4-.1.6-.1H204c1.3 0 2.5.6 3.3 1.7.2.3.6.4 1 .4h.1c.1 0 .2 0 .2-.1.1 0 .1 0 .2-.1h.1l.1-.1.1-.1s.1-.1.1-.2.1-.1.1-.2v-.1c0-.2 0-.5-.1-.7l-.3-.3c-.1-.1-.1-.2-.2-.3-.1-.2-.3-.3-.5-.5-.1-.1-.3-.2-.4-.4-1.2-.8-3.1-1.3-4.9-.9z"/>
- <path fill="url(#k)" fill-rule="nonzero" d="M140 165.4v.7l.6-.9"/>
- <path fill="#FFF" fill-rule="nonzero" d="M137.8 166.1l-1.9.6c-.8.2-1.2 1.1-1 1.8l1.1 3.7.2.6.1.2v.1l.1.4c-.5.6-1 1.1-1.4 1.7h2.4c.2-.4.3-.9.3-1.4v-7.7h.1z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M140 168.2l-.1.2c-.2.3-.5.3-.8.2l-.2-.2c-.1-.2-.1-.4 0-.6l1.1-1.6v-.7l-2.2.7v7.7c0 .5-.1 1-.3 1.4h2.3c.1-.5.2-.9.2-1.4v-5.7z"/>
- <path fill="url(#l)" fill-rule="nonzero" d="M154.4 170.6c-3.5 1.5-6.8 3.4-9.9 5.6.1.1.1.2.2.4l.2.7c3.1-2 6.3-3.8 9.7-5.2-.1-.6-.1-1.1-.2-1.5z"/>
- <path fill="url(#m)" fill-rule="nonzero" d="M156.8 189.1c-.2-.8-.3-1.5-.4-2.2-.8-4.1-1.3-6.9-1.3-6.9 0-.3.1-.5.4-.6.1-.1.2-.1.2-.1.2 0 .3 0 .4.1-.4-2.2-1.1-5.2-1.5-7.4.1-.1.2-.1.4-.2-.4-2.9-.8-5.5-1.1-7.7-1.5-1.3-2.1-2.8-2-3.7v-.1c-1.2-.6-2.1-1.4-2.8-2.1-1.4-1.5-1.7-3-1.7-3.2v-.4c.1-.4.5-.8.9-.8h.3l.2-.2c.1-.6.3-1.3.6-1.9.8-1.9 2.1-3.5 2.7-4.3-.1-3.2-.2-6.5-.3-9.9 0 .1 0 .2-.1.3l-.6 3c-.1.2-.1.5-.2.7-.3 1.1-.5 2.3-.9 3.5-.1.2-.1.4-.2.6v.2l-.1.2-.1.5h-.1l-1.5 4.1c-.1.2-.3.4-.6.3h-.1-.1c-.3-.1-.4-.4-.3-.7l1-2.7-.3.2-4.7 2.9c-.7.4-.9 1.3-.5 2l2.9 4.7.1.1.1.1.2.3v.1c-1 2.3-2.1 4.5-3.3 6.7h-.1l-2.4 3.5-.1.2c-.2.3-.5.3-.8.2l-.2-.2c-.1-.2-.1-.4 0-.6l1.1-1.6v-.7l-2.2.7-1.9.6c-.8.2-1.2 1.1-1 1.8l1.1 3.7.2.6.1.2v.1l.1.4c-.5.6-1 1.1-1.4 1.7H142.6c.7 0 1.3.4 1.7.9.1.1.1.2.2.4l.2.7.1.2c.1.5 0 1.1-.3 1.5-.4.4-.9.7-1.5.7h-1v4h1c1 0 1.9.8 1.9 1.7v1.1c0 .1 0 .3-.1.4-.1.3-.2.5-.4.7h.8l.3.2c.1-.2.3-.3.6-.3h.7c1.6.1 2.6.3 3.1.7.3.2.5.5.8.8.9 1.2 1.4 3 1.4 5 0 1.5-.7 4.7-2 5.7-.9.7-2.6.8-3.8.8h-.2c.
2.3.4.6.5 1.1l.2 1.1c.1.4.1.7 0 1.1 3 .4 6 .7 9 .7 1.4 0 2.8-.1 4.1-.2-1.1-4.9-2.2-10.5-3.1-15.1z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M149.2 153.6s0-.1 0 0c.2 0 .2 0 .3.1.2.1.3.3.3.6 0 0-.1.7.8 1.8.5.6 1.3 1.2 2.5 1.9.2-.9.7-1.7 1.5-2.5s1.5-1.3 2.3-1.7c-1.2-1.1-2.4-2.4-3.2-3.7-.6-.9-.9-1.9-.9-2.8v-.1l-.3.3c-.6.7-1.9 2.4-2.7 4.3-.3.6-.5 1.3-.6 1.9-.2-.2-.1-.2 0-.1z"/>
- <path fill="url(#n)" fill-rule="nonzero" d="M136.3 173.1l-.3-.9-1.1-3.7c-.2-.8.2-1.6 1-1.8l1.9-.6 2.2-.7.6-.2h.1l-.7 1-1.1 1.6c-.1.2-.1.4 0 .5 0 .1.1.2.2.2.3.2.6.1.8-.2l.1-.2 2.4-3.5h.1c1.2-2.2 2.4-4.4 3.3-6.7v-.1l-.2-.3-.1-.2-.1-.1-2.9-4.7c-.4-.7-.2-1.6.5-2l4.7-2.9.3-.2.1-.1-1 2.8c-.1.3.1.6.3.7h.1c.2 0 .5-.1.6-.3l1.5-4.1h.1l.1-.5.1-.2v-.2c.1-.2.1-.4.2-.6.3-1.2.6-2.3.9-3.5.1-.2.1-.5.2-.7l.6-3v-.2c.2-.9.3-1.9.5-2.8 0-10.8.9-20.2 2.9-26.1v.1l.7 1.7c.1.2.3.3.5.4h.2c.3-.1.4-.4.3-.7l-1.2-2.9v-.2l-.4-1.1 1.1-.3c1.8-3.5 4.1-6.7 6.8-9.6 0 .6.1 1.2.3 1.8.1.2.3.4.5.4h.2c.2-.1.4-.3.4-.5v-.2c-.1-.8-.2-1.7-.3-2.5l.1-.1v-.1l.1-4.1 4.3.1c3.6-3 7.5-5.6 11.6-7.8l1.7-6.2 5.1 1.4h.1l-2.6 1.1c-.1 0-.2.1-.2.2-.1.1-.2.4-.1.6.1.3.4.4.7.3h.1l3.8-1.7.5.1c5.3-2.1 10.9-3.3 16.6-3.5.6 0 1.2 0 1.7.1 8.6.6 23 11.7 34.3 22.9 0 0 .1 0 .1-.1.1-.1.3-.1.4-.1.2 0 .4.1.5.2 3.4 3.3 6.6 6.8 9.5 10.6 2.9 3.2 6.5 7.7 7.7 12.5 1 4 .2 8.7-1.3 12.8-1.2 3.2-2.8 6-4.1 7.8-4.3 5.5-8.4 7.8-15.3 8.7-.8.1-1.6.2-2.4.2-.1-.1-.3-.
1-.4-.1-2.1-.1-4.2-.2-6.3-.5l-.2 2.1c1.5.2 3 .3 4.6.4l.1.9v.2c1.3.4 2.1 1.6 2 2.9 0 .2 0 .5-.1.7l-.3.6.6.6c.3.3.6.7.9 1.1 1.6-2.1 1.5-5-.5-6.9.8 0 1.6-.1 2.4-.2 7.5-1 12.1-3.6 16.7-9.5 3.7-4.6 7.9-14.7 5.9-22.5-1.3-5.2-5.1-10.1-8.1-13.3-2.9-3.9-6.1-7.5-9.7-10.8-.5-.5-1.2-.8-1.8-.8-5.4-5.4-11.3-10.3-17.5-14.7-5.4-3.7-10-6.2-13.9-7.2-.5-.2-1.1-.3-1.6-.4h-.1c-.6-.1-1.2-.2-1.7-.2-.6 0-1.2-.1-1.9-.1-5.7.2-11.4 1.3-16.7 3.4l-.2-.1-6.5-1.8h-.1c-1.2-.3-2.3.4-2.6 1.6l-1.4 5.3c-3.7 2-7.2 4.4-10.5 7.1l-3.5-.1c-1.2 0-2.2 1-2.2 2.2l-.1 3.3c-2.8 3-5.3 6.3-7.3 9.9l-.3.1c-1.2.4-1.8 1.6-1.5 2.8l.2.5c-2.2 5.7-3.3 15-3.3 27.6-.6 3.6-1.4 7.2-2.2 10.6l-5 2.8-1.1.7c-.9.5-1.4 1.4-1.7 2.3-.2.9-.1 1.9.4 2.8l2.6 4.3c-.7 1.6-1.5 3.2-2.3 4.7l-5.8 1.8c-1.2.4-2.1 1.3-2.4 2.5-.2.7-.2 1.4 0 2.1l.7 2.2.5 1.7-1.8 2.1h2.9c.5-.6 1-1.1 1.4-1.7l-.2-.8z"/>
- <path fill="url(#o)" fill-rule="nonzero" d="M237.3 167.2c-.2.3-.6.7-1 1 0 .9.1 1.7.2 2.4.1.5 0 1.3 0 2.2 0 2-.2 4.6 0 6.1v3.5c-.4 15.3-3.8 25.4-5.2 29-.4 1.4-.7 2.6-1.1 3.8-1.6 4.6-3.6 8.6-5.3 11.2-.5.8-1.1 1.5-1.5 2-.7.8-1.4 1.3-1.9 1.3-.2 0-.3-.1-.5-.2-.3-.3-.5-1.5-.5-3.3v-1-.3-.1c0-2.2.2-5.1.3-7.9v-.1c2.4-.9 4.6-2.3 6.5-4h.1c.2-.2.2-.6 0-.8-.2-.2-.6-.2-.8 0-1.9 1.6-4 2.9-6.3 3.8-7.1 1.8-14.3 2.7-21.5 2.9-12.5 0-20.4-2.1-23.3-3l-.3-6.4c0-.3-.3-.5-.6-.5h-.1c-.1 0-.2.1-.3.2-.1.1-.1.2-.1.3l.2 5.8v.2h-.1c0 2.1.1 4.1.1 6 0 1.7 0 3.3-.1 4.6-.1 2-.3 3.3-.6 3.6-.1.1-.2.1-.3.1h-.2c-.6 0-1.4-.6-2.3-1.8-2-2.4-4.5-7.1-6.4-12.7-1.2-3.6-2.1-7.2-2.9-10.9h-.2v-.2c-2.2-9.3-4.2-20.2-4.8-23.4l-.2-.9c0-.1-.1-.3-.2-.4-.1-.1-.3-.1-.4-.1-.1 0-.2.1-.2.1-.2.1-.2.3-.2.5 0 .1.5 2.9 1.3 7 .1.7.3 1.5.4 2.2.9 4.6 2 10.2 3.2 15.3h-.2c-1.4.1-2.7.2-4.1.2-3 0-6-.3-9-.7-.1.3-.2.6-.3.8-.4.5-.9.9-1.5.9h-1v.2c3.9.7 7.8 1.1 11.8 1.2 1.3 0 2.6 0 3.9-.1.7 3.1 1.5 6.2 2.6 9.2.3.9 2.2 6.1 4.7 10.3 1.8 3.1 4 5.7 6.2 5.7
.5 0 1-.1 1.4-.4.2-.1.3-.2.5-.3.9-.8 1.7-1.4 1.5-12.8v-.1c7.2 1.8 14.7 2.7 22.2 2.6 6.6-.1 13.3-.9 19.7-2.4-.2 3.3-.3 5.7-.2 7.5.1 4.2.7 4.7 1.3 5.2.5.4 1.2.7 1.9.7.6 0 1.2-.2 1.8-.6 4.4-2.7 8.5-14 9-15.4.4-1.1.8-2.4 1.1-3.8 1.5-3.9 4.9-14.2 5.3-29.7v-1.8-1.3c-.1-3.6-.2-9.6-.4-14.4-.4.6-.7 1.7-1.1 2.2z"/>
- <path fill="url(#p)" fill-rule="nonzero" d="M152 160.4c.2-.2 1.1.2 1-.1-.2-.8-.2-1.6 0-2.4-1.2-.7-2-1.3-2.5-1.9-.9-1-.8-1.8-.8-1.8 0-.2-.1-.4-.2-.6-.1 0-.1-.1-.2-.1H149c-.1 0-.2.1-.2.2h-.3c-.5.1-.8.4-.9.8v.4c0 .2.3 1.7 1.7 3.2.6 1 1.5 1.7 2.7 2.3z"/>
- <path fill="url(#q)" fill-rule="nonzero" d="M161.9 166s-.1 0-.2.1c.1.9.2 1.8.4 2.6l-.2-2.7z"/>
- <path fill="url(#r)" fill-rule="nonzero" d="M241.3 112.7c.1-.2.2-.5.2-.7v-3.5c0-.5-.3-1-.7-1.3-.3-.2-.6-.3-.9-.3-.9 0-1.6.7-1.6 1.6v3.5c0 .2 0 .4.1.6h.3c.3 0 .6-.1.9-.1.6 0 1.2.1 1.7.2z"/>
- <path fill="url(#s)" fill-rule="nonzero" d="M235.1 117.3c.3.2.7.2 1 .1.2-.1.4-.2.6-.4.3-.4.7-.7 1.1-1 .7-.4 1.4-.7 2.3-.7 1 0 1.9.4 2.6 1 .3.2.5.4.7.7.4.5 1.1.6 1.6.2.4-.3.6-.9.3-1.4-.2-.4-.5-.7-.8-1-.8-.8-1.8-1.3-2.8-1.5-.8-.2-1.6-.2-2.4-.1-1 .1-1.9.5-2.7 1.1-.3.2-.6.4-.8.7l-.4.4-.4.4c-.6.5-.5 1.2.1 1.5z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M102.5 224.6c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h44.2c.1 0 .2 0 .2.1-.1-.4-.2-.8-.4-1.2H101v5.2h45.2c.2-.3.4-.8.6-1.3H102.4c-.3 0-.5-.2-.5-.5s.2-.5.5-.5h44.2c.1 0 .2 0 .3.1.1-.4.1-.8 0-1.3-.1.1-.2.2-.3.2h-44.1v.2z"/>
- <path fill="url(#t)" fill-rule="nonzero" d="M96.8 230.3c.9-.1 1.9-.2 2.9-.3v-.3h-2.6c-.1 0-.2 0-.3.1 0 .2-.1.3 0 .5z"/>
- <path fill="url(#u)" fill-rule="nonzero" d="M151.8 225.1c0-2.9-1-5.2-1.9-6-.2-.1-1-.4-2.6-.5-.1.4-.3.9-.9.9l-.4.1-1.2-1H97.1c-.2 0-.3.2-.3.3v1.4c0 .2.2.3.3.3h15.6l34.2-.6.6.6h.1l.2.3 1.1 1.1-.2 1.1c.3 1.4.2 3-.2 4.2l3-.3c.2-.6.3-1.3.3-1.9z"/>
- <path fill="#EDEDF0" fill-rule="nonzero" d="M142.6 230.1h-43v-.1c-1 .1-2 .2-2.9.3l.3 1c0 .2.2.3.3.3H144l1.1-1 .5.1c.4.1.6.3.8.6l.4.4c1.6 0 2.8-.3 3.3-.7.5-.4 1.1-2.1 1.5-3.8l-3 .3c-.2.5-.4 1-.6 1.4l-.2 1-5.2.2z"/>
- <path fill="url(#v)" fill-rule="nonzero" d="M142.6 230.1h-43v-.1c-1 .1-2 .2-2.9.3l.3 1c0 .2.2.3.3.3H144l1.1-1 .5.1c.4.1.6.3.8.6l.4.4c1.6 0 2.8-.3 3.3-.7.5-.4 1.1-2.1 1.5-3.8l-3 .3c-.2.5-.4 1-.6 1.4l-.2 1-5.2.2z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M112.7 220.7h34.9l-.7-.6"/>
- <path fill="url(#w)" fill-rule="nonzero" d="M112.7 220.7h34.9l-.7-.6"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M147.9 221l.1.1c.4.6.7 1.3.8 2l.2-1.1-1.1-1z"/>
- <path fill="url(#x)" fill-rule="nonzero" d="M147.9 221l.1.1c.4.6.7 1.3.8 2l.2-1.1-1.1-1z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M99.7 230.1h43l5.1-.3.2-1c-.2.3-.4.5-.6.7l-.3.3H99.7v.3z"/>
- <path fill="url(#y)" fill-rule="nonzero" d="M99.7 230.1h43l5.1-.3.2-1c-.2.3-.4.5-.6.7l-.3.3H99.7v.3z"/>
- <path fill="url(#z)" fill-rule="nonzero" d="M95.2 231.8c.2 1 1.1 1.7 2.2 1.7h47.3l.6-.6c.3.3.8.6 1.4.6 1.5 0 3.4-.2 4.5-1.1 1.1-.9 1.9-3.4 2.2-5.4.1-.7.2-1.4.2-1.9 0-3.2-1-6.2-2.6-7.5-.6-.4-1.8-.7-3.6-.9h-.8c-.3 0-.6.1-.7.3l-.4-.3H97c-1.2 0-2.2 1-2.2 2.2v1.4c0 1.2 1 2.2 2.2 2.2h1.2v5.2H97c-.7 0-1.3.3-1.8.9-.4.5-.5 1.1-.4 1.7v.2l.4 1.3zm1.6-1.9c.1-.1.2-.1.3-.1h50l.3-.3c.2-.2.4-.4.6-.7.3-.4.5-.9.6-1.4.4-1.3.5-2.8.2-4.2-.2-.7-.4-1.4-.8-2l-.1-.1-.2-.3H97.2c-.2 0-.3-.2-.3-.3v-1.4c0-.2.2-.3.3-.3h47.7l1.2 1 .4-.1c.6-.1.8-.5.9-.9 1.6.1 2.4.4 2.6.5.9.8 1.9 3.1 1.9 6 0 .6-.1 1.4-.2 2.1-.3 1.7-.9 3.4-1.5 3.8-.5.4-1.8.6-3.3.7l-.4-.4c-.2-.3-.4-.5-.8-.6l-.5-.1-1.1 1H97.5c-.2 0-.3-.1-.3-.3l-.3-1v-.1c-.2-.3-.1-.4-.1-.5zm50.2-4.1c.1.1.2.2.2.4s-.1.4-.3.4c-.1.5-.3.9-.6 1.3H101v-5.2h45.5c.2.4.3.8.4 1.2.1.1.2.2.2.4 0 .1-.1.2-.1.3.1.3.1.8 0 1.2z"/>
- <path fill="url(#A)" fill-rule="nonzero" d="M147 223.8c-.1 0-.2-.1-.2-.1h-44.2c-.3 0-.5.2-.5.5s.2.5.5.5h44.2c.1 0 .3-.1.3-.2.1-.1.1-.2.1-.3 0-.2-.1-.3-.2-.4z"/>
- <path fill="url(#B)" fill-rule="nonzero" d="M102.5 225.6c-.3 0-.5.2-.5.5s.2.5.5.5H146.9c.2-.1.3-.2.3-.4 0-.1-.1-.3-.2-.4-.1-.1-.2-.1-.3-.1h-44.2v-.1z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M103 210.8h38.8v-5.2h-38.5c-.8 1.1-1 3.5-.3 5.2z"/>
- <path fill="url(#C)" fill-rule="nonzero" d="M134.5 203.4c-1.4-.5-2.8-.9-4.2-1.5h-.2l4.2 1.5h.2z"/>
- <path fill="url(#D)" fill-rule="nonzero" d="M145.3 203.6c-2.5-.5-5.1-1-7.6-1.8h-.2c2.5.8 5.1 1.4 7.8 1.8z"/>
- <path fill="url(#E)" fill-rule="nonzero" d="M103.2 213.9l.4-.1 1 1h40.6c.2 0 .3-.2.3-.3v-1.4c0-.2-.1-.3-.3-.3h-13.3l-29.1.6-.5-.6h-.1l-.2-.3-.9-1.1.1-1.1c-.4-2-.1-4.2.7-5.6l.1-1 4.4-.3h18.5c-.8-.4-1.7-.9-2.6-1.5h-17.1l-.9 1-.4-.1c-.3-.1-.5-.3-.7-.6-.1-.1-.2-.3-.3-.4-1.3 0-2.4.3-2.8.7-.7.6-1.4 3.8-1.4 5.9 0 2.9.8 5.2 1.6 6 .1.1.9.4 2.2.5 0-.5.2-.9.7-1z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M134.3 203.4c-1.4-.5-2.8-.9-4.2-1.5h-7.8c.9.6 1.8 1.1 2.6 1.5h9.4z"/>
- <path fill="url(#F)" fill-rule="nonzero" d="M134.3 203.4c-1.4-.5-2.8-.9-4.2-1.5h-7.8c.9.6 1.8 1.1 2.6 1.5h9.4z"/>
- <path fill="url(#G)" fill-rule="nonzero" d="M145.3 203.6c.1-.1.1-.2.1-.3l-.2-1.1c0-.2-.1-.3-.3-.3h-7.2c2.5.7 5 1.3 7.6 1.7z"/>
- <path fill="url(#H)" fill-rule="nonzero" d="M145.3 203.6c.1-.1.1-.2.1-.3l-.2-1.1c0-.2-.1-.3-.3-.3h-7.2c2.5.7 5 1.3 7.6 1.7z"/>
- <path fill="url(#I)" fill-rule="nonzero" d="M142.9 203.4v.3h2.2c.1 0 .1 0 .2-.1-2.6-.4-5.2-1-7.8-1.8h-7.2l4.2 1.5h8.4v.1z"/>
- <path fill="url(#J)" fill-rule="nonzero" d="M142.9 203.4v.3h2.2c.1 0 .1 0 .2-.1-2.6-.4-5.2-1-7.8-1.8h-7.2l4.2 1.5h8.4v.1z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M131.8 212.7h-29.6l.5.7"/>
- <path fill="url(#K)" fill-rule="nonzero" d="M131.8 212.7h-29.6l.5.7"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M101.9 212.4l-.1-.1c-.3-.6-.6-1.3-.7-2l-.1 1.1.9 1z"/>
- <path fill="url(#L)" fill-rule="nonzero" d="M101.9 212.4l-.1-.1c-.3-.6-.6-1.3-.7-2l-.1 1.1.9 1z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M134.5 203.4h-28.1l-4.4.3-.1 1c.1-.3.3-.5.5-.7l.2-.3H143v-.3h-8.5z"/>
- <path fill="url(#M)" fill-rule="nonzero" d="M134.5 203.4h-28.1l-4.4.3-.1 1c.1-.3.3-.5.5-.7l.2-.3H143v-.3h-8.5z"/>
- <path fill="url(#N)" fill-rule="nonzero" d="M103 216.8h.2c.2 0 .4-.1.5-.3l.3.3H145.4c1-.1 1.7-1.1 1.7-2.2v-1.4c0-1.2-.9-2.2-1.9-2.2h-1v-5.5h1c.6 0 1.1-.3 1.5-.9.2-.3.3-.5.3-.8.1-.3.1-.7 0-1.1l-.2-1.1c-.1-.4-.3-.8-.5-1.1-.4-.1-.7-.3-1-.5l-.5.4h-40.1c-.2 0-.3 0-.5-.1-.4-.1-.7-.3-.9-.6h-.2c-1.2 0-2.9.2-3.9 1.1-1.3 1.3-2 5.5-2 7.4 0 3.2.9 6.2 2.2 7.5.5.4 1.5.7 3.1.9.1.1.3.2.5.2zm-2.8-2.5c-.8-.8-1.6-3.1-1.6-6 0-2.1.8-5.3 1.4-5.9.4-.4 1.5-.6 2.8-.7.1.1.3.3.3.4.2.3.4.5.7.6l.4.1.9-1H144.8c.1 0 .2.1.3.3l.2 1.1c0 .1 0 .2-.1.3l-.1.1s-.1.1-.2.1h-42.6l-.2.3c-.2.2-.3.4-.5.7-.8 1.4-1.1 3.6-.7 5.6.1.7.4 1.4.7 2l.1.1.2.3h43c.2 0 .3.2.3.3v1.4c0 .2-.1.3-.3.3h-40.6l-1-1-.4.1c-.5.1-.7.5-.8.9-1 0-1.8-.2-1.9-.4zm41.5-8.7v5.2H103c-.7-1.7-.5-4.1.3-5.2h38.4z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M108.9 193.8c-.2 0-.4-.2-.4-.4s.2-.4.4-.4h37.5c.1 0 .1 0 .2.1l-.3-.9h-38.6v4.1H146c.2-.3.4-.6.5-1h-37.6c-.2 0-.4-.2-.4-.4s.2-.4.4-.4h37.5c.1 0 .2 0 .3.1 0-.3.1-.7 0-1-.1.1-.2.1-.3.1h-37.5v.1z"/>
- <path fill="url(#O)" fill-rule="nonzero" d="M104.3 198.9c0 .1.1.2.3.2h13.9c-.4-.4-.9-.8-1.3-1.1h-10.7v-.3h-2.2c-.1 0-.2 0-.2.1-.1.1-.1.1-.1.2l.3.9z"/>
- <path fill="url(#P)" fill-rule="nonzero" d="M104.2 189.1c-.1 0-.2.1-.2.2v1.1c0 .1.1.3.3.3h9.3c0-.6.1-1.1.2-1.6h-9.6z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M113.8 189.1h-9.5-.1 9.6z"/>
- <path fill="url(#Q)" fill-rule="nonzero" d="M113.8 189.1h-9.5-.1 9.6z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M117.2 198c.4.4.8.8 1.3 1.1h5.7c-.7-.4-1.4-.7-2-1.1h-5z"/>
- <path fill="url(#R)" fill-rule="nonzero" d="M117.2 198c.4.4.8.8 1.3 1.1h5.7c-.7-.4-1.4-.7-2-1.1h-5z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M113.8 189.1c-.1.5-.2 1.1-.2 1.6h3.4c.1-.6.2-1.1.4-1.6h-3.6z"/>
- <path fill="url(#S)" fill-rule="nonzero" d="M113.8 189.1c-.1.5-.2 1.1-.2 1.6h3.4c.1-.6.2-1.1.4-1.6h-3.6z"/>
- <path fill="url(#T)" fill-rule="nonzero" d="M142.9 198h-15.8c.9.4 1.7.8 2.6 1.1h14.4l.9-.8.4.1c.3.1.5.3.7.5.1.1.2.3.3.3 1.3 0 2.4-.2 2.8-.5.7-.5 1.4-2.9 1.4-4.6 0-2.3-.8-4-1.6-4.6-.1-.1-.8-.3-2-.4h-.2c-.1.3-.3.6-.7.7h-.3l-1-.7h-13.3c-.4.5-.7.9-1.1 1.4l16.2-.3.5.5h.1l.2.2.9.8-.1.9c.4 1.6.1 3.2-.7 4.3l-.1.8-4.5.3z"/>
- <path fill="url(#T)" fill-rule="nonzero" d="M142.9 198h-15.8c.9.4 1.7.8 2.6 1.1h14.4l.9-.8.4.1c.3.1.5.3.7.5.1.1.2.3.3.3 1.3 0 2.4-.2 2.8-.5.7-.5 1.4-2.9 1.4-4.6 0-2.3-.8-4-1.6-4.6-.1-.1-.8-.3-2-.4h-.2c-.1.3-.3.6-.7.7h-.3l-1-.7h-13.3c-.4.5-.7.9-1.1 1.4l16.2-.3.5.5h.1l.2.2.9.8-.1.9c.4 1.6.1 3.2-.7 4.3l-.1.8-4.5.3z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M146.8 189.1h.2-.2z"/>
- <path fill="url(#U)" fill-rule="nonzero" d="M146.8 189.1h.2-.2zM146.8 189.1h.2-.2z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M144.8 189.1h-13.3 13.3z"/>
- <path fill="url(#V)" fill-rule="nonzero" d="M144.8 189.1h-13.3 13.3zM144.8 189.1h-13.3 13.3z"/>
- <path fill="url(#W)" fill-rule="nonzero" d="M119.8 189.1c-.3.5-.5 1-.6 1.6l10.5-.2c.3-.5.7-.9 1-1.4h-10.9z"/>
- <path fill="url(#W)" fill-rule="nonzero" d="M119.8 189.1c-.3.5-.5 1-.6 1.6l10.5-.2c.3-.5.7-.9 1-1.4h-10.9z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M130.8 189.1h-10.9 10.9z"/>
- <path fill="url(#X)" fill-rule="nonzero" d="M130.8 189.1h-10.9 10.9zM130.8 189.1h-10.9 10.9z"/>
- <path fill="url(#Y)" fill-rule="nonzero" d="M129.7 190.5h.6c.4-.5.7-.9 1.1-1.4h-.7c-.3.5-.6.9-1 1.4z"/>
- <path fill="url(#Y)" fill-rule="nonzero" d="M129.7 190.5h.6c.4-.5.7-.9 1.1-1.4h-.7c-.3.5-.6.9-1 1.4z"/>
- <path fill="url(#Y)" fill-rule="nonzero" d="M129.7 190.5h.6c.4-.5.7-.9 1.1-1.4h-.7c-.3.5-.6.9-1 1.4z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M131.5 189.1h-.7.7z"/>
- <path fill="url(#Z)" fill-rule="nonzero" d="M131.5 189.1h-.7.7zM131.5 189.1h-.7.7zM131.5 189.1h-.7.7z"/>
- <path fill="url(#aa)" fill-rule="nonzero" d="M122.2 198c.6.4 1.3.8 2 1.1h5.5c-.9-.4-1.8-.7-2.6-1.1h-4.9z"/>
- <path fill="url(#ab)" fill-rule="nonzero" d="M122.2 198c.6.4 1.3.8 2 1.1h5.5c-.9-.4-1.8-.7-2.6-1.1h-4.9z"/>
- <path fill="url(#ac)" fill-rule="nonzero" d="M119.8 189.1h-2.5c-.2.5-.3 1-.4 1.6h2.3c.1-.6.3-1.1.6-1.6z"/>
- <path fill="url(#ad)" fill-rule="nonzero" d="M119.8 189.1h-2.5c-.2.5-.3 1-.4 1.6h2.3c.1-.6.3-1.1.6-1.6z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M117.2 198H142.9l4.4-.2.1-.8c-.1.2-.3.4-.5.5l-.2.2h-40.2v.3h10.7z"/>
- <path fill="url(#ae)" fill-rule="nonzero" d="M117.2 198H142.9l4.4-.2.1-.8c-.1.2-.3.4-.5.5l-.2.2h-40.2v.3h10.7z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M130.3 190.5h-.6l-10.5.2h-1.6 29.5l-.5-.5"/>
- <path fill="url(#af)" fill-rule="nonzero" d="M130.3 190.5h-.6l-10.5.2h-1.6 29.5l-.5-.5"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M147.4 191l.1.1c.3.5.6 1 .7 1.6l.1-.9-.9-.8z"/>
- <path fill="url(#ag)" fill-rule="nonzero" d="M147.4 191l.1.1c.3.5.6 1 .7 1.6l.1-.9-.9-.8z"/>
- <path fill="url(#ah)" fill-rule="nonzero" d="M104.1 200.5c.2 0 .3.1.5.1h40.1l.5-.4c.2.2.6.4 1 .5h.2c1.2 0 2.9-.2 3.8-.8 1.3-1 2-4.2 2-5.7 0-2-.6-3.8-1.4-5-.2-.3-.5-.6-.8-.8-.5-.3-1.5-.6-3.1-.7h-.7c-.3 0-.5.1-.6.3l-.3-.2h-.8c-.3.4-.8.6-1.4.6h-40.2c-.2.3-.4.6-.5.9v1.3c0 1 .8 1.7 1.9 1.7h1v4.1h-1c-.6 0-1.1.2-1.5.7-.4.4-.5 1-.3 1.5l.2.9c.1.3.2.5.4.7.2 0 .5.2 1 .3-.1 0-.1 0 0 0zm0-2.7c.1-.1.1-.1.2-.1H146.7l.2-.2.5-.5c.8-1.1 1.1-2.8.7-4.3-.1-.6-.4-1.1-.7-1.6l-.1-.1-.2-.2h-42.8c-.2 0-.3-.1-.3-.3v-1.1c0-.1.1-.2.2-.2h40.6l1 .7h.3c.5-.1.7-.4.7-.7h.2c1.2.1 1.9.3 2 .4.8.6 1.6 2.4 1.6 4.6 0 1.6-.8 4.1-1.4 4.6-.4.3-1.5.5-2.8.5-.1-.1-.3-.2-.3-.3-.2-.2-.4-.4-.7-.5l-.4-.1-.9.8h-39.5c-.1 0-.2-.1-.3-.2l-.3-1s0-.1.1-.2zm42.5-3.2c.1.1.1.2.1.3 0 .2-.1.3-.3.3-.1.4-.3.7-.5 1h-38.4v-4.1h38.6l.3.9c.1.1.2.2.2.3 0 .1 0 .2-.1.3.2.4.2.7.1 1z"/>
- <path fill="url(#ai)" fill-rule="nonzero" d="M146.6 193.1c-.1 0-.1-.1-.2-.1h-37.5c-.2 0-.4.2-.4.4s.2.4.4.4h37.5c.1 0 .2 0 .3-.1.1-.1.1-.2.1-.3 0-.1-.1-.2-.2-.3z"/>
- <path fill="url(#aj)" fill-rule="nonzero" d="M108.9 194.6c-.2 0-.4.2-.4.4s.2.4.4.4h37.6c.2 0 .3-.2.3-.3 0-.1-.1-.2-.1-.3-.1-.1-.2-.1-.3-.1h-37.5v-.1z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M101.1 183.6h38.6v-4.1h-38.4c-.6 1-.8 2.8-.2 4.1z"/>
- <path fill="url(#ak)" fill-rule="nonzero" d="M98.4 186.4c.1.1.9.3 2.2.4.1-.3.3-.7.8-.7h.3l1 .8h11.9c.2-.5.5-1 .8-1.4l-14.6.2-.5-.5h-.1l-.2-.2-.9-.8.1-.9c-.3-1.2-.2-2.5.2-3.5H97c-.2.7-.3 1.4-.3 2 .1 2.2.9 4 1.7 4.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M120.7 176.7h-17.3l-.9.8h17.9c0-.3.1-.5.3-.8z"/>
- <path fill="url(#al)" fill-rule="nonzero" d="M120.7 176.7h-17.3l-.9.8h17.9c0-.3.1-.5.3-.8z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M102 177.4c-.3-.1-.5-.3-.7-.5-.1-.1-.2-.3-.3-.3-1.3 0-2.4.2-2.8.5l-.3.3h4.5-.4z"/>
- <path fill="url(#am)" fill-rule="nonzero" d="M102 177.4c-.3-.1-.5-.3-.7-.5-.1-.1-.2-.3-.3-.3-1.3 0-2.4.2-2.8.5l-.3.3h4.5-.4z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M133 177.5c.2-.3.5-.5.8-.8l-.8.8z"/>
- <path fill="url(#an)" fill-rule="nonzero" d="M133 177.5c.2-.3.5-.5.8-.8l-.8.8z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M100 178.9l.1-.8 4.4-.2h15.6c0-.1.1-.2.2-.4H97.9c-.3.5-.7 1.3-.9 2.2h2.5c.2-.3.3-.6.5-.8z"/>
- <path fill="url(#ao)" fill-rule="nonzero" d="M100 178.9l.1-.8 4.4-.2h15.6c0-.1.1-.2.2-.4H97.9c-.3.5-.7 1.3-.9 2.2h2.5c.2-.3.3-.6.5-.8z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M133 177.5c-.2.1-.3.2-.4.4l.4-.4z"/>
- <path fill="url(#ap)" fill-rule="nonzero" d="M133 177.5c-.2.1-.3.2-.4.4l.4-.4z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M120.2 185.3l-4.7.1c-.3.4-.6.9-.8 1.4h4.1c.3-.6.8-1.1 1.4-1.5z"/>
- <path fill="url(#aq)" fill-rule="nonzero" d="M120.2 185.3l-4.7.1c-.3.4-.6.9-.8 1.4h4.1c.3-.6.8-1.1 1.4-1.5z"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M120.1 177.9h4c.7-.7 1.6-1.1 2.6-1.1h.3l3.3.3c.1-.1.2-.2.3-.4h-10c-.1.3-.3.5-.4.8 0 .1 0 .2-.1.4z"/>
- <path fill="url(#ar)" fill-rule="nonzero" d="M120.1 177.9h4c.7-.7 1.6-1.1 2.6-1.1h.3l3.3.3c.1-.1.2-.2.3-.4h-10c-.1.3-.3.5-.4.8 0 .1 0 .2-.1.4z"/>
- <path fill="url(#as)" fill-rule="nonzero" d="M143.1 186.7c.2 0 .3-.1.3-.3v-1.1c0-.1-.1-.3-.3-.3h-7.9l-1.6 1.6h9.5v.1z"/>
- <path fill="url(#at)" fill-rule="nonzero" d="M143.1 186.7c.2 0 .3-.1.3-.3v-1.1c0-.1-.1-.3-.3-.3h-7.9l-1.6 1.6h9.5v.1z"/>
- <path fill="url(#au)" fill-rule="nonzero" d="M122 186.7h10.7c.3-.3.6-.6.8-.9l.7-.7h-4.4l-5.8.1c-.7.6-1.4 1.1-2 1.5z"/>
- <path fill="url(#av)" fill-rule="nonzero" d="M122 186.7h10.7c.3-.3.6-.6.8-.9l.7-.7h-4.4l-5.8.1c-.7.6-1.4 1.1-2 1.5z"/>
- <path fill="url(#aw)" fill-rule="nonzero" d="M140.9 177.9v.3h1c.4-.3.9-.7 1.3-1l-.1-.2c0-.1-.1-.2-.3-.2h-3.6c-.2.4-.5.8-.9 1.1h2.6z"/>
- <path fill="url(#ax)" fill-rule="nonzero" d="M140.9 177.9v.3h1c.4-.3.9-.7 1.3-1l-.1-.2c0-.1-.1-.2-.3-.2h-3.6c-.2.4-.5.8-.9 1.1h2.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M133.9 177.5c.9 0 1.7-.3 2.4-.8h-2.5c-.2.3-.5.5-.8.8h.9z"/>
- <path fill="url(#ay)" fill-rule="nonzero" d="M133.9 177.5c.9 0 1.7-.3 2.4-.8h-2.5c-.2.3-.5.5-.8.8h.9z"/>
- <path fill="url(#az)" fill-rule="nonzero" d="M133.9 177.5c.9 0 1.7-.3 2.4-.8h-2.5c-.2.3-.5.5-.8.8h.9z"/>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M133 177.5l-.4.4h5.7c.3-.3.6-.7.9-1.1h-3c-.7.5-1.5.8-2.4.8h-.8v-.1z"/>
- <path fill="url(#aA)" fill-rule="nonzero" d="M133 177.5l-.4.4h5.7c.3-.3.6-.7.9-1.1h-3c-.7.5-1.5.8-2.4.8h-.8v-.1z"/>
- <path fill="url(#aB)" fill-rule="nonzero" d="M133 177.5l-.4.4h5.7c.3-.3.6-.7.9-1.1h-3c-.7.5-1.5.8-2.4.8h-.8v-.1z"/>
- <path fill="url(#aC)" fill-rule="nonzero" d="M132.7 186.7h.9c.5-.6 1.1-1.1 1.6-1.6h-.9l-.7.7-.9.9z"/>
- <path fill="url(#aC)" fill-rule="nonzero" d="M132.7 186.7h.9c.5-.6 1.1-1.1 1.6-1.6h-.9l-.7.7-.9.9z"/>
- <path fill="url(#aD)" fill-rule="nonzero" d="M132.7 186.7h.9c.5-.6 1.1-1.1 1.6-1.6h-.9l-.7.7-.9.9z"/>
- <path fill="url(#aE)" fill-rule="nonzero" d="M143.1 178.1c.1 0 .2 0 .2-.1.1-.1.1-.1.1-.2l-.2-.7c-.4.3-.9.7-1.3 1h1.2z"/>
- <path fill="url(#aE)" fill-rule="nonzero" d="M143.1 178.1c.1 0 .2 0 .2-.1.1-.1.1-.1.1-.2l-.2-.7c-.4.3-.9.7-1.3 1h1.2z"/>
- <path fill="url(#aF)" fill-rule="nonzero" d="M143.1 178.1c.1 0 .2 0 .2-.1.1-.1.1-.1.1-.2l-.2-.7c-.4.3-.9.7-1.3 1h1.2z"/>
- <path fill="url(#aG)" fill-rule="nonzero" d="M127 176.8h-.3c-1 0-1.9.4-2.6 1.1h8.5l.4-.4c.2-.3.5-.5.8-.8h-3c-.1.1-.2.2-.3.4l-3.5-.3z"/>
- <path fill="url(#aH)" fill-rule="nonzero" d="M127 176.8h-.3c-1 0-1.9.4-2.6 1.1h8.5l.4-.4c.2-.3.5-.5.8-.8h-3c-.1.1-.2.2-.3.4l-3.5-.3z"/>
- <path fill="url(#aI)" fill-rule="nonzero" d="M120.2 185.3c-.6.5-1.1 1-1.5 1.5h3.4c.6-.5 1.3-1 2-1.5h-3.9z"/>
- <path fill="url(#aJ)" fill-rule="nonzero" d="M120.2 185.3c-.6.5-1.1 1-1.5 1.5h3.4c.6-.5 1.3-1 2-1.5h-3.9z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M115.4 185.3h4.8l3.9-.1 5.8-.1h-29.6l.6.5"/>
- <path fill="url(#aK)" fill-rule="nonzero" d="M115.4 185.3h4.8l3.9-.1 5.8-.1h-29.6l.6.5"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M100.1 184.9l-.1-.1c-.3-.5-.6-1-.7-1.6l-.1.9.9.8z"/>
- <path fill="url(#aL)" fill-rule="nonzero" d="M100.1 184.9l-.1-.1c-.3-.5-.6-1-.7-1.6l-.1.9.9.8z"/>
- <path fill="#FAFAFA" fill-rule="nonzero" d="M138.4 177.9h-33.8l-4.4.2-.1.8c.1-.2.3-.4.5-.5l.2-.2H141v-.3h-2.6z"/>
- <path fill="url(#aM)" fill-rule="nonzero" d="M138.4 177.9h-33.8l-4.4.2-.1.8c.1-.2.3-.4.5-.5l.2-.2H141v-.3h-2.6z"/>
- <path fill="url(#aN)" fill-rule="nonzero" d="M97.4 187.5c.5.3 1.5.6 3.1.7h.7c.3 0 .5-.1.6-.3l.3.2h41c.6 0 1.1-.2 1.4-.6.2-.2.4-.5.4-.7 0-.1.1-.3.1-.4v-1.1c0-1-.8-1.7-1.9-1.7h-1v-4h1c.6 0 1.1-.2 1.5-.7.4-.4.5-1 .3-1.5l-.1-.2-.2-.7c0-.1-.1-.3-.2-.4-.3-.6-.9-.9-1.7-.9h-40l-.5.4c-.3-.2-.7-.5-1.2-.5-1.2 0-2.9.2-3.8.8-.4.3-.8.8-1.1 1.5-.3.7-.6 1.5-.7 2.2-.2.8-.3 1.5-.3 2 0 2.1.6 4 1.6 5.2.2.3.4.5.7.7zm-.4-7.8c.2-.9.5-1.8.9-2.2l.3-.3c.4-.3 1.5-.5 2.8-.5.1.1.3.2.3.3.2.2.4.4.7.5l.4.1.9-.8h39.4c.1 0 .2.1.3.2l.1.2.2.7c0 .1 0 .2-.1.2-.1.1-.1.1-.2.1H100.6l-.2.2-.5.5c-.2.3-.3.5-.5.8-.4 1-.5 2.3-.2 3.5.1.6.4 1.1.7 1.6l.1.1.2.2H143c.2 0 .3.1.3.3v1.1c0 .1-.1.3-.3.3h-40.4l-1-.8h-.3c-.5.1-.7.4-.8.7-1.3-.1-2.1-.3-2.2-.4-.8-.6-1.6-2.4-1.6-4.6.1-.6.2-1.3.3-2zm42.8-.1v4.1h-38.6c-.7-1.3-.5-3.2.3-4.1h38.3z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M190.1 151.1c-8.6-5.4-23.3-5.4-23.5-5.4-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6.1 0 7.6-.1 15.1 1.8 5.8 1.5 10 3.7 12.6 6.7h.2c-9.2-10.9-26.7-9.7-26.9-9.6-.3 0-.6-.2-.6-.5s.2-.6.5-.6c.2 0 15.7-1.1 25.6 7.7-2.1-2.3-5.5-5.2-10.1-7.3-6.7-2.9-14.7-1.9-17-1.5l-1.2 5.3 25.1 4.3c0 .3.1.3.2.3zM210.5 142.3c-5 2.4-8.1 5.4-10 7.7 8.8-8.7 22.6-8.9 22.7-8.9.3 0 .6.2.6.6 0 .3-.2.6-.6.6-.2 0-15.1.2-23.3 10 .2-.1.4-.2.6-.4 2.3-2.2 5.4-4 9.5-5.5 6.9-2.5 14.1-3.1 14.2-3.1.3 0 .6.2.6.5s-.2.6-.5.6c-.2 0-12 1-19.8 5.9l22.3-4.7c-.7-2.4-1.4-5-1.7-6.2-2.1 0-9.4.4-14.6 2.9z"/>
- <path fill="url(#aO)" fill-rule="nonzero" d="M230.9 147v-.5c-.1-.3-.2-.6-.4-.8-.3-.4-.8-.5-1.3-.5h-.2c-.7-2.6-1.7-6.5-1.9-7.1-.1-.3-.4-.6-.7-.7-1.2-.5-10.5-.2-16.7 2.9-7.5 3.7-11.2 8.5-12.7 11-1.8-2.6-6-7.4-13.1-10.5-8.6-3.7-18.7-1.6-19.1-1.5-.4.1-.8.4-.8.8l-1.4 6.1h-.3c-.5 0-.9.2-1.3.5-.3.3-.5.8-.5 1.3l.3 4.3h.5l.4.1.5 4.9c1.6-.1 6-.5 6.5-.5.8 0 1.3.5 1.4 1.4.2 1.9-1.9 5-7.1 6.2-.3.1-.9.6-1.1.8-.1.1.2.6-.1.8l.2 2.7.1.8.1 1.2 1.2 15.4c.1.9.8 1.5 1.6 1.5l24.9 3.6c.9.9 2.9 2.3 6.2 2.3h.8c3.6-.2 5.6-1.6 6.5-2.5l22.1-3.1c.9 0 1.6-.7 1.7-1.5l1.1-11.7.1-1.1.4-4.5c-.3-.1-.7-.2-1-.3-.8-.3 1.5-.1.4-.3-3.5-.8-5.4-2.9-6.2-4.7l-10.6 1.6h-.2c-.3 0-.5-.1-.7-.3-.2-.2-.4-.5-.4-.9l.1-5.5c0-.5.4-1 .9-1.1l11.5-1.8c.3 0 .7 0 .9.3.2.2.4.5.4.9l.1 3c1.5.1 4.3.3 5.5.5l.5-4.9h.1v-.1l.3-3.3.2-2.1v-.1l.3-3zm-66.3-.2l1.2-5.3c2.4-.4 10.3-1.4 17 1.5 4.7 2 8 4.9 10.1 7.3-9.9-8.9-25.4-7.8-25.6-7.7-.3 0-.5.3-.5.6s.3.5.6.5c.2 0 17.7-1.3 26.9 9.6h-.2c-2.6-2.9-6.8-5.2-12.6-6.7-7.5-1.9-15-1.8-15.1-1.8-.3 0-.6.3-.6.
6s.3.5.6.6c.2 0 14.9-.1 23.5 5.4-.1 0-.2-.1-.3-.1l-25-4.5zm38.5 40.8s-1.4 3.6-6.7 3.1c-5.3-.5-6.4-2.8-6.4-2.8l-.3-33.2s3.3 2 7.5 1.7c4.2-.3 6.7-2.5 6.7-2.5l-.8 33.7zm1.3-37.2c7.9-4.9 19.6-5.9 19.8-5.9.3 0 .5-.3.5-.6s-.3-.5-.6-.5c-.1 0-7.2.6-14.2 3.1-4.1 1.5-7.2 3.3-9.5 5.5-.2.1-.4.2-.6.4 8.2-9.8 23.1-10 23.3-10 .3 0 .6-.3.6-.6s-.3-.6-.6-.6c-.2 0-14 .2-22.7 8.9 1.9-2.3 5.1-5.3 10-7.7 5.2-2.5 12.4-2.9 14.5-2.8.3 1.2 1 3.8 1.7 6.2l-22.2 4.6z"/>
- <path fill="url(#aP)" fill-rule="nonzero" d="M223.7 156.1c-.2-.2-.6-.3-.9-.3l-11.5 1.8c-.5.1-.9.5-.9 1.1l-.1 5.5c0 .3.1.6.4.9.2.2.5.3.7.3h.2l10.6-1.6c-.4-.9-.5-1.8-.4-2.4.1-.8.6-1.4 1.4-1.4.1 0 .5 0 .9.1l.1-3.1c-.2-.4-.3-.7-.5-.9z"/>
- <path fill="url(#aQ)" fill-rule="nonzero" d="M223.7 156.1c-.2-.2-.6-.3-.9-.3l-11.5 1.8c-.5.1-.9.5-.9 1.1l-.1 5.5c0 .3.1.6.4.9.2.2.5.3.7.3h.2l10.6-1.6c-.4-.9-.5-1.8-.4-2.4.1-.8.6-1.4 1.4-1.4.1 0 .5 0 .9.1l.1-3.1c-.2-.4-.3-.7-.5-.9z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M162.8 163.3c4.7-1 6.4-3.7 6.3-5 0-.4-.2-.4-.3-.4-.4 0-4.4.3-6.9.6h-.5l-.6-5.1c-.9 0-3.2.4-5.5 2.6-1.4 1.3-1.7 3.1-.9 4.6.9 2 3.7 3.8 8.4 2.7z"/>
- <path fill="url(#aR)" fill-rule="nonzero" d="M161.7 166.1c.1 0 .2 0 .2-.1.3-.2 0-.7.1-.8.2-.2.8-.7 1.1-.8 5.2-1.1 7.3-4.3 7.1-6.2-.1-.8-.6-1.4-1.4-1.4-.5 0-4.9.4-6.5.5l-.5-4.9-.4-.1h-.5c-.8 0-2.3.2-4 1.2-.7.4-1.5 1-2.3 1.7-.8.7-1.3 1.6-1.5 2.5-.2.8-.2 1.6 0 2.4.1.3-.8-.1-1 .1v.1c-.1.9.5 2.4 2 3.7 1.4 1.5 3.9 2.5 7.6 2.1zm-6.5-9.9c2.3-2.3 4.6-2.6 5.5-2.6l.6 5.1h.5c2.6-.2 6.5-.6 6.9-.6.1 0 .2 0 .3.4.1 1.2-1.6 3.9-6.3 5-4.7 1-7.5-.7-8.5-2.5-.7-1.7-.3-3.4 1-4.8z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M231.1 156.6l-.6 5.1h-.5c-2.6-.2-6.5-.6-6.9-.6-.1 0-.2 0-.3.4-.1 1.2 1.6 3.9 6.3 5 4.7 1 7.5-.7 8.5-2.5.8-1.5.5-3.3-.9-4.6-2.5-2.4-4.7-2.7-5.6-2.8z"/>
- <path fill="url(#aS)" fill-rule="nonzero" d="M236.7 157.9c-3.2-2.7-6.1-2.4-6.2-2.4h-.5l-.5 4.9c-1.2-.1-4-.3-5.5-.5-.5 0-.8-.1-.9-.1-.8 0-1.3.5-1.4 1.4-.1.6.1 1.5.4 2.4.8 1.9 2.7 4 6.2 4.7 1 .2-1.2 0-.4.3.4.1.7.2 1 .3.3.1.6.2 1 .2 2.8.5 5.1-.1 6.4-1.1.4-.3.8-.6 1-1 .4-.5.7-1.6.9-2.2.1-.2.2-.4.2-.5.8-1.6.7-3.3-.2-4.8-.2-.4-.5-.7-.9-1.1-.2-.1-.4-.3-.6-.5zm.8 6c-1 1.8-3.8 3.5-8.5 2.5s-6.4-3.7-6.3-5c0-.4.2-.4.3-.4.4 0 4.4.3 6.9.6h.5l.6-5.1c.9 0 3.2.4 5.5 2.6 1.5 1.5 1.8 3.2 1 4.8z"/>
- <path fill="url(#aT)" fill-rule="nonzero" d="M189.7 154.7l.3 33.2s1.1 2.2 6.4 2.8c5.3.6 6.7-3.1 6.7-3.1l.8-33.7s-2.5 2.2-6.7 2.5c-4.2.3-7.5-1.7-7.5-1.7z"/>
- <path fill="url(#aU)" fill-rule="nonzero" d="M189.7 154.7l.3 33.2s1.1 2.2 6.4 2.8c5.3.6 6.7-3.1 6.7-3.1l.8-33.7s-2.5 2.2-6.7 2.5c-4.2.3-7.5-1.7-7.5-1.7z"/>
- <path d="M-31-22h352v303H-31z"/>
- </g>
-</svg>
diff --git a/browser/extensions/onboarding/content/img/figure_performance.svg b/browser/extensions/onboarding/content/img/figure_performance.svg
deleted file mode 100644
index f7c5c219aada..000000000000
--- a/browser/extensions/onboarding/content/img/figure_performance.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="297" height="245" viewBox="0 0 297 245" xmlns="http://www.w3.org/2000/svg"><title>performance</title><defs><linearGradient x1="-920.838%" y1="-294.992%" x2="891.374%" y2="366.984%" id="a"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-162.81%" y1="-242.422%" x2="179.364%" y2="239.183%" id="b"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-347.431%" y1="-836.5%" x2="1777.43%" y2="3692.808%" id="c"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-494.697%" y1="-397.029%" x2="2194.58%" y2="1809.556%" id="d"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-358.927%" y1="-240.795%" x2="1727.185%" y2="1250.312%" id="e"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="1
00%"/></linearGradient><linearGradient x1="-626.22%" y1="-1767.938%" x2="1375.102%" y2="3610.616%" id="f"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-2092.13%" y1="-2092.3%" x2="2102.26%" y2="2102.09%" id="g"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-10687.27%" y1="-10695.62%" x2="6524.09%" y2="6515.75%" id="h"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-235.943%" y1="-613.083%" x2="463.706%" y2="1010.631%" id="i"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-10998.63%" y1="-10974.25%" x2="6212.73%" y2="6237.11%" id="j"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-73.995%" y1="-65.306%" x2="120.692%" y2="159.00
8%" id="k"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-21.918%" y1="-53.508%" x2="187.863%" y2="264.044%" id="l"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-489.211%" y1="-179.924%" x2="521.605%" y2="253.611%" id="m"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-7695.347%" y1="-543.989%" x2="5437.677%" y2="468.444%" id="n"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-871.152%" y1="-248.513%" x2="1179.248%" y2="414.667%" id="o"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-737.21%" y1="-1393.274%" x2="549.019%" y2="955.49%" id="p"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></li
nearGradient><linearGradient x1="-638.104%" y1="-1298.114%" x2="447.684%" y2="806.622%" id="q"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-1950.055%" y1="-1089.986%" x2="3277.839%" y2="1905.929%" id="r"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-575.859%" y1="-1406.193%" x2="985.226%" y2="2277.098%" id="s"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-1033.963%" y1="-1091.623%" x2="2289.262%" y2="2403.036%" id="t"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-2408.138%" y1="-454.703%" x2="4538.159%" y2="962.257%" id="u"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-998.9%" y1="-1143.058%" x2="1755.168%" y2="1997.85
%" id="v"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-4669.755%" y1="-4076.6%" x2="8549.086%" y2="7499.45%" id="w"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-195.59%" y1="-922.704%" x2="389.831%" y2="1341.95%" id="x"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient><linearGradient x1="-343.613%" y1="-263.57%" x2="487.353%" y2="406.119%" id="y"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-27.659%" y1="2.333%" x2="125.482%" y2="104.574%" id="z"><stop stop-color="#D7B600" offset="0%"/><stop stop-color="#05A700" offset="100%"/></linearGradient><linearGradient x1="-651.262%" y1="-472.878%" x2="435.248%" y2="317.591%" id="A"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGr
adient><linearGradient x1="-548.021%" y1="-473.693%" x2="248.049%" y2="204.898%" id="B"><stop stop-color="#FFFBCC" offset="0%"/><stop stop-color="#CEF7C6" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><path d="M-24-20h352v303H-24z"/><g fill-rule="nonzero"><path d="M13.6 181.6c-2.8 0-5.1-2.2-5.1-4.8V58.3c0-3 2.4-5.4 5.4-5.4h127.2c3 0 5.4 2.4 5.4 5.4v118.5c0 2.6-2.3 4.8-5 4.8H13.6z" fill="#FFF"/><path d="M141.1 54c2.3 0 4.2 1.9 4.2 4.2v118.5c0 2-1.8 3.7-3.9 3.7H13.6c-2.2 0-3.9-1.7-3.9-3.7V58.3c0-2.3 1.9-4.2 4.2-4.2h127.2V54zm0-2.2H13.9c-3.6 0-6.5 2.9-6.5 6.5v118.4c0 3.3 2.8 5.9 6.2 5.9h127.8c3.4 0 6.2-2.7 6.2-5.9V58.3c-.1-3.6-3-6.5-6.5-6.5z" fill="#D7D7DB"/></g><path d="M139.9 75.2v98.2c0 1-.1 1.2-.1 1.2s-.2.1-1.2.1H16.4c-1 0-1.2-.1-1.2-.1s-.1-.2-.1-1.2V75.2h124.8zM141 74H13.9v99.3c0 2 .4 2.5 2.5 2.5h122.2c2 0 2.5-.4 2.5-2.5V74h-.1z" fill-rule="nonzero" fill="#D7D7DB"/><g fill-rule="nonzero" fill="#D7D7DB"><circle cx="3.7" cy="3" r="2.9" transform="translat
e(17 61)"/><circle cx="3" cy="3" r="2.9" transform="translate(27 61)"/><path d="M109.4 67.2H45.5c-1.7 0-3.1-1.4-3.1-3.1v-.3c0-1.7 1.4-3.1 3.1-3.1h63.9c1.7 0 3.1 1.4 3.1 3.1v.3c0 1.7-1.3 3.1-3.1 3.1z"/><g><circle cx="3" cy="3" r="2.9" transform="translate(122 61)"/><circle cx="3.2" cy="3" r="2.9" transform="translate(131 61)"/></g></g><g fill-rule="nonzero"><path d="M39.9 22.9h23.8S56.3 6.3 72.1 4.1c14.1-1.9 19.7 12.6 19.7 12.6s1.7-8.4 10.1-6.8c8.3 1.6 14.4 14.9 14.4 14.9H137" fill="#F9F9FA"/><path d="M137.2 20.9h-4.5c-.3 0-.6-.3-.6-.6s.3-.6.6-.6h4.5c.3 0 .6.3.6.6s-.2.6-.6.6zm-14.5 0h-1.1c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .3-.3.6-.6.6zm-5.5 0h-.6c-.2 0-.4-.1-.5-.3-.1-.2-.6-1.1-1.3-2.3-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2.6.9 1 1.7 1.2 2.1h.3c.3 0 .6.2.6.6 0 .4-.4.5-.7.5zm-53.1-.7h-1.5c-.3 0-.6-.3-.6-.6s.3-.6.6-.6h.6c-.1-.3-.2-.6-.4-1-.1-.3.1-.6.4-.7.3-.1.6.1.7.4.3 1 .6 1.7.6 1.7.1.2.1.4 0 .5 0 .2-.2.3-.4.3zm-10.4 0H40.3c-.3 0-.6-.3-.6-.6s.3-.6.6-.6h13.4c.3 0 .6.3.6.6s-.3
.6-.6.6zm8.8-6.1c-.3 0-.5-.2-.6-.5 0-.4-.1-.8-.1-1.1 0-.3.2-.6.5-.6s.6.2.6.5c0 .4.1.7.1 1.1.1.3-.1.6-.5.6zm29.1-1.2c-.2 0-.4-.1-.5-.3-.1-.3-.3-.6-.5-1-.1-.3 0-.6.2-.8.3-.1.6 0 .8.2.2.4.4.7.5 1 .1.3 0 .6-.3.7 0 .2-.1.2-.2.2zm18-1.4c-.1 0-.3-.1-.4-.2-2.4-2.3-4.8-3.7-7.2-4.1-1.6-.3-3.1-.2-4.3.2-.3.1-.6-.1-.7-.4-.1-.3.1-.6.4-.7 1.4-.5 3.1-.6 4.9-.2 2.6.5 5.2 2 7.7 4.4.2.2.2.6 0 .8-.1.2-.2.2-.4.2zM88.7 8.2c-.2 0-.3-.1-.4-.2-.7-.9-1.4-1.7-2.2-2.4-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0 .8.8 1.6 1.6 2.3 2.5.2.2.2.6-.1.8-.2.1-.3.1-.4.1zM65.8 4c-.2 0-.3-.1-.4-.2-.2-.2-.2-.6.1-.8C67.2 1.6 69.6.7 72.4.3c2.2-.3 4.3-.2 6.3.2.3.1.5.4.4.7-.1.3-.4.5-.7.4-1.9-.4-3.9-.5-5.9-.2-2.7.4-4.8 1.2-6.4 2.4-.1.1-.2.2-.3.2z" fill="#D7D7DB"/><path d="M137.9 25.1h-98c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h98c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1z" fill="#F9F9FA"/></g><path d="M261.4 80.6c.2-.3.6-1 .2-1.3-.3-.2-.6-.3-1-.3-.8 0-1.6.3-2.3.8-1.4 1-2.6 2.7-2.3 3.5 2.5-.5 4.6-1.5 5.4-2.7z"/><path d="M59.3 94.4c4.3.1 8.5-1 12
.1-3.3 3.3-2.1 7.2-3.1 11.1-3 3.9-.1 7.8 1 11.1 3 7.5 4.4 16.8 4.4 24.3 0 6.8-4 15.3-4 22.2 0 7.5 4.4 16.8 4.4 24.3 0 6.8-4 15.3-4 22.2 0 3.6 2.2 7.9 3.4 12.1 3.3.6 0 1.1-.5 1.1-1.1 0-.6-.5-1.1-1.1-1.1-3.9.1-7.8-.9-11.1-3-7.5-4.4-16.8-4.4-24.3 0-6.8 4-15.3 4-22.2 0-7.5-4.4-16.8-4.4-24.3 0-6.8 4-15.3 4-22.2 0-3.6-2.2-7.9-3.4-12.1-3.3-4.3-.1-8.5 1-12.1 3.3-3.3 2.1-7.2 3.1-11.1 3-3.9.1-7.8-.9-11.1-3-3.6-2.2-7.9-3.4-12.1-3.3-.6 0-1.1.5-1.1 1.1 0 .6.5 1.1 1.1 1.1 3.9-.1 7.8.9 11.1 3 3.6 2.3 7.8 3.4 12.1 3.3zM269.2 82.1c-.2-.2-.5-.3-.8-.1-3.1 2-6.6 3.2-10.3 3.5-1.4.2-2.8.2-4.2 0 2.2-.7 4.2-1.7 5.1-2.9 1.1-1.5.4-2.4.1-2.7-1-.9-3.1-.7-4.7.4-1.2.9-3.2 3-2.8 4.7-1.8.4-3.6.7-5.4.8-.3 0-.6.2-.6.6 0 .4.2.6.6.6 2-.1 4-.4 6-.9 1 .8 2.9 1 6 .7 7-.8 10.7-3.6 10.8-3.8.3-.3.4-.6.2-.9zm-14.1-.9c.7-.5 1.5-.8 2.3-.8.4 0 .7.1 1 .3.3.3 0 1-.2 1.3-.8 1.2-3 2.1-5.4 2.8-.3-1 .9-2.6 2.3-3.6z" fill="#D7D7DB" fill-rule="nonzero"/><path d="M154.6 87.1c-.3 0-.6-.3-.7-.6 0-.4.2-.7.6-.7 1.4-.1 2.8-.4 4-.9.3-.1.7.1.9
.4.1.3-.1.7-.4.9-1.4.4-2.8.7-4.4.9zM202.6 86.9c-.3 0-.6-.2-.7-.6-.1-.4.2-.7.5-.8 3.4-.6 5.5-1.9 7.5-3.3.3-.2.7-.1.9.2.2.3.1.7-.2.9-2.1 1.3-4.4 2.8-8 3.4.1.2 0 .2 0 .2zM148.2 86.8h-.1c-3.5-.6-5.7-2.1-7.9-3.5l-.1-.1c-.3-.2-.4-.6-.2-.9.2-.3.6-.4.9-.2l.1.1c2.2 1.4 4.2 2.7 7.4 3.3.4.1.6.4.5.8 0 .3-.3.5-.6.5zM241.1 86.7h-.1c-3.2-.7-5.4-2.1-7.5-3.4l-.5-.3c-.3-.2-.4-.6-.2-.9.2-.3.6-.4.9-.2l.4.3c2.1 1.3 4 2.6 7 3.2.4.1.6.4.5.8.1.3-.2.5-.5.5zM194.1 86.7h-.2c-.4-.1-.7-.2-1.1-.3-.4-.1-.6-.5-.4-.8.1-.4.5-.6.8-.4.3.1.6.2 1 .3.4.1.6.4.5.8 0 .2-.3.4-.6.4zM189.2 84.7c-.1 0-.2 0-.3-.1-.7-.4-1.4-.8-2-1.3-.5-.3-1.1-.7-1.6-1-.3-.2-.4-.6-.2-.9.2-.3.6-.4.9-.2.6.3 1.1.7 1.6 1 .6.4 1.3.8 2 1.2.3.2.4.6.2.9-.1.3-.4.4-.6.4zM162.6 84.3c-.2 0-.4-.1-.6-.3-.2-.3-.1-.7.2-.9l.9-.6c.3-.2.7-.1.9.2.2.3.1.7-.2.9l-.9.6c-.1 0-.2.1-.3.1zM216.1 80.6c-.3 0-.5-.2-.6-.5-.1-.4.1-.7.4-.8 1.4-.4 2.8-.7 4.3-.8.4 0 .7.2.7.6 0 .4-.2.7-.6.7-1.5.1-2.8.4-4 .8h-.2zM123.2 80.5c-.3 0-.6-.2-.6-.5-.1-.4.1-.7.5-.8 1.4-.4 2.8-.6 4.4-.7.4 0 .7
.3.7.6 0 .4-.3.7-.6.7-1.5.1-2.8.3-4.1.7h-.3zM171.2 80.1c-.3 0-.6-.2-.7-.5-.1-.4.2-.7.5-.8 1.4-.3 2.9-.4 4.5-.4 1.5 0 2.9.1 4.2.4.4.1.6.4.5.8-.1.4-.4.6-.8.5-1.2-.2-2.5-.4-4-.4-1.6 0-2.9.1-4.2.4.1 0 0 0 0 0zM132.7 80h-.1c-.3-.1-.7-.1-1-.1-.4 0-.6-.4-.6-.7 0-.4.4-.6.7-.6.4 0 .7.1 1.1.2.4.1.6.4.5.8 0 .2-.3.4-.6.4zM225.6 79.9h-.1c-.3-.1-.7-.1-1-.1-.4 0-.6-.4-.6-.7 0-.4.4-.6.7-.6.4 0 .7.1 1.1.1.4.1.6.4.6.8-.1.3-.4.5-.7.5z" fill="#D7D7DB" fill-rule="nonzero"/><g fill-rule="nonzero" fill="#D7D7DB"><path d="M12 200.6c4.3.1 8.5-1 12.1-3.3 6.8-4 15.3-4 22.2 0 7.5 4.4 16.8 4.4 24.3 0 3.3-2.1 7.2-3.1 11.1-3 .6 0 1.1-.5 1.1-1.1 0-.6-.5-1.1-1.1-1.1-4.3-.1-8.5 1-12.1 3.3-6.8 4-15.3 4-22.2 0-7.5-4.4-16.8-4.4-24.3 0-3.3 2.1-7.2 3.1-11.1 3-3.6.1-7.2-.8-10.3-2.6-.3.7-.7 1.3-1.2 1.9 3.5 2 7.5 3 11.5 2.9zM61.3 208.7c-.3 0-.6-.2-.7-.6-.1-.4.2-.7.5-.8 3.4-.6 5.5-1.9 7.5-3.3.3-.2.7-.1.9.2.2.3.1.7-.2.9-2.1 1.3-4.4 2.8-8 3.4v.2zM52.8 208.5h-.2c-.4-.1-.7-.2-1.1-.3-.4-.1-.6-.5-.4-.8.1-.4.5-.6.8-.4.3.1.6.2 1 .3.
4.1.6.4.5.8-.1.2-.3.4-.6.4zM47.8 206.5c-.1 0-.2 0-.3-.1-.7-.4-1.4-.8-2-1.3-.5-.3-1.1-.7-1.6-1-.3-.2-.4-.6-.2-.9.2-.3.6-.4.9-.2.6.3 1.1.7 1.6 1 .6.4 1.3.8 2 1.2.3.2.4.6.2.9-.1.3-.3.4-.6.4zM74.7 202.4c-.3 0-.5-.2-.6-.5-.1-.4.1-.7.4-.8 1.4-.4 2.8-.7 4.3-.8.4 0 .7.2.7.6 0 .4-.2.7-.6.7-1.5.1-2.8.4-4 .8h-.2z"/><path d="M29.8 202c-.3 0-.6-.2-.7-.5-.1-.4.2-.7.5-.8 1.4-.3 2.9-.4 4.5-.4 1.5 0 2.9.1 4.2.4.4.1.6.4.5.8-.1.4-.4.6-.8.5-1.2-.2-2.5-.4-4-.4-1.6 0-2.9.1-4.2.4.1-.1 0 0 0 0zM84.2 201.8h-.1c-.3-.1-.7-.1-1-.1-.4 0-.6-.4-.6-.7 0-.4.4-.6.7-.6.4 0 .7.1 1.1.1.4.1.6.4.6.8-.1.2-.4.5-.7.5z"/></g><path d="M112.1 196.9c-.2-.2-.5-.3-.8-.1-3.1 2-6.6 3.2-10.3 3.5-1.4.2-2.8.2-4.2 0 2.2-.7 4.2-1.7 5.1-2.9 1.1-1.5.4-2.4.1-2.7-1-.9-3.1-.7-4.7.4-1.2.9-3.2 3-2.8 4.7-1.8.4-3.6.7-5.4.8-.3 0-.6.2-.6.6 0 .3.2.6.6.6 2-.1 4-.4 6-.9 1 .8 2.9 1 6 .7 7-.8 10.7-3.6 10.8-3.8.3-.2.4-.6.2-.9zm-14.2-.9c.7-.5 1.5-.8 2.3-.8.4 0 .7.1 1 .3.3.3 0 1-.2 1.3-.8 1.2-3 2.1-5.4 2.8-.3-1 1-2.6 2.3-3.6z" fill="#D7D7DB" fill-rule="no
nzero"/><g fill-rule="nonzero" fill="#D7D7DB"><path d="M77 97.8c-14.9 0-27 12.1-27 27 0 4 .9 8 2.6 11.6.7 1.7 2.6 2.6 4.4 1.9 1.7-.7 2.6-2.6 1.9-4.4-.1-.2-.1-.3-.2-.4-1.3-2.7-2-5.7-2-8.7 0-11.2 9-20.3 20.2-20.3s20.3 9 20.3 20.2c0 3-.7 6-2 8.8-.8 1.7-.1 3.7 1.6 4.5 1.7.8 3.7.1 4.5-1.6 6.4-13.5.7-29.6-12.7-36-3.5-1.8-7.5-2.7-11.6-2.6z"/><path d="M89.8 118.3c-.8-.5-1.8-.3-2.3.5l-8.3 13.1c-3.6-1.2-7.4.8-8.5 4.3-1.2 3.6.8 7.4 4.3 8.5 2 .6 4.2.3 5.9-.8.7-.5 1.3-1.1 1.8-1.8 1.8-2.6 1.5-6.1-.7-8.4l8.3-13.1c.5-.8.3-1.8-.5-2.3z"/></g><g fill-rule="nonzero"><path d="M251.2 231.9l-13.4-1.7c-.5-.1-.9-.5-.9-1l-1.1-27.6-2.6 1.1c-.1.1-.3.1-.4.1-.2 0-.5-.1-.6-.2-.3-.2-.4-.6-.3-1l.8-3.6-3.6.6h-.2c-.3 0-.7-.2-.9-.5-.2-.3-.2-.8.1-1.1l4.2-5.6c.1-.1.2-.2.4-.3l7-3.3c.1-.1.3-.1.4-.1.2 0 .3 0 .4.1l7.8 3.9c.4.2.6.6.5 1 0 .4-.3.8-.7.9l-4.2 1.3 2 4c.2.3.1.7-.1 1-.2.3-.5.4-.8.4h-.2l-3.1-.5 10.3 30.8c.1.3 0 .7-.2 1-.2.2-.5.4-.8.4.3-.1.2-.1.2-.1z" fill="#F5F5F7"/><path d="M240.2 188.8l7.8 3.9-5.3 1.7 2.5 5-4.7-.8
10.9 32.4-13.4-1.7-1.1-29-3.9 1.7 1.1-5-5 .8 4.2-5.6 6.9-3.4zm0-2c-.3 0-.6.1-.9.2l-7 3.3c-.3.1-.5.3-.7.6l-4.2 5.6c-.5.7-.5 1.5-.1 2.2.4.6 1 1 1.7 1h.3l2.1-.3-.5 2.1c-.2.7.1 1.5.7 2 .4.3.8.5 1.3.5.3 0 .5-.1.8-.2l1.2-.5 1 26.1c0 1 .8 1.8 1.8 1.9l13.4 1.7h.2c.6 0 1.2-.3 1.5-.7.4-.5.6-1.3.3-1.9l-9.8-29.2 1.4.3h.3c.6 0 1.2-.3 1.6-.8.5-.6.5-1.4.2-2.1l-1.5-2.9 3.1-1c.8-.2 1.3-.9 1.4-1.7.1-.8-.4-1.6-1.1-1.9l-7.8-3.9c-.1-.3-.4-.4-.7-.4z" fill="#D7D7DB"/></g><g fill-rule="nonzero"><path d="M199.7 227.4c-.2 0-.5-.1-.7-.3-.2-.2-.3-.4-.3-.7l-1.1-24.8-2.6 1.1c-.1.1-.3.1-.4.1-.2 0-.5-.1-.6-.2-.3-.2-.4-.6-.3-1l.8-3.6-3.6.6h-.2c-.3 0-.7-.2-.9-.5-.2-.3-.2-.8.1-1.1l4.2-5.6c.1-.1.2-.2.4-.3l7-3.3c.1-.1.3-.1.4-.1.2 0 .3 0 .4.1l7.8 3.9c.4.2.6.6.5 1 0 .4-.3.8-.7.9l-4.2 1.3 2 4c.2.3.1.7-.1 1-.2.3-.5.4-.8.4h-.2l-3.2-.6 7.4 25.8c.1.3 0 .6-.1.9-.2.2-.5.4-.8.4.2.1-10.2.6-10.2.6z" fill="#F5F5F7"/><path d="M202 188.8l7.8 3.9-5.3 1.7 2.5 5-4.7-.8 7.8 27.3-10.3.6-1.1-26.2-3.9 1.7 1.1-5-5 .8 4.2-5.6 6.9-3.4zm0-2c-.
3 0-.6.1-.9.2l-7 3.3c-.3.1-.5.3-.7.6l-4.2 5.6c-.5.7-.5 1.5-.1 2.2.4.6 1 1 1.7 1h.3l2.1-.3-.5 2.1c-.2.7.1 1.5.7 2 .4.3.8.5 1.3.5.3 0 .5-.1.8-.2l1.2-.5 1 23.3c0 .5.3 1 .7 1.4.4.3.8.5 1.3.5h.1l10.3-.6c.6 0 1.2-.3 1.5-.8.3-.5.5-1.1.3-1.7l-6.9-24.3 1.6.3h.3c.6 0 1.2-.3 1.6-.8.5-.6.5-1.4.2-2.1l-1.5-2.9 3.1-1c.8-.2 1.3-.9 1.4-1.7.1-.8-.4-1.6-1.1-1.9l-7.8-3.9c-.2-.2-.5-.3-.8-.3z" fill="#D7D7DB"/></g><path d="M201.4 210.6l1.4 17.5" stroke="#D7D7DB" stroke-linecap="round" stroke-linejoin="round"/><path d="M203.6 221.7l2 11.7" stroke="#EAEAEE" stroke-linecap="round" stroke-linejoin="round"/><path d="M240.2 207.5l5 19" stroke="#D7D7DB" stroke-linecap="round" stroke-linejoin="round"/><path d="M236.5 220.6l1.2 10.9" stroke="#EAEAEE" stroke-linecap="round" stroke-linejoin="round"/><g transform="translate(153 210)" fill-rule="nonzero"><ellipse fill="#EDEDF0" cx="72.1" cy="27" rx="71.5" ry="7.9"/><ellipse fill="#F9F9FA" cx="72.2" cy="25.5" rx="56.8" ry="6.3"/><path d="M20.7 24.2l-.2-.2S12.4 7.7 28.1
4.9c14-2.5 20.1 11.8 20.1 11.8s1.4-8.4 9.8-7.1c8.3 1.3 14.9 14.3 14.9 14.3h.2" fill="#F9F9FA"/><path d="M79.4 19.7h-1.1c-.3 0-.6-.2-.6-.5s.2-.6.5-.6h1.1c.3 0 .6.2.6.5 0 .4-.2.6-.5.6zm-5.6.2h-.6c-.2 0-.4-.1-.5-.3-.1-.2-.6-1.1-1.4-2.3-.2-.3-.1-.6.1-.8.3-.2.6-.1.8.1.6.9 1.1 1.7 1.3 2.1h.3c.3 0 .6.2.6.5s-.3.7-.6.7zm-53 1.4l-1.5.1c-.3 0-.6-.2-.6-.5s.2-.6.5-.6h.6c-.1-.3-.3-.6-.4-1-.1-.3 0-.6.3-.7.3-.1.6 0 .7.3.4 1 .7 1.7.7 1.7.1.2.1.4 0 .5 0 .1-.2.2-.3.2zm-1.9-6.1c-.3 0-.5-.2-.6-.5-.1-.4-.1-.8-.1-1.1 0-.3.2-.6.5-.6s.6.2.6.5c0 .4.1.7.1 1.1.1.3-.1.6-.5.6zM48 13c-.2 0-.4-.1-.5-.3-.1-.3-.3-.6-.5-1-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2.2.4.4.7.6 1 .1.3 0 .6-.2.8-.2 0-.3.1-.4.1zm17.9-2.1c-.1 0-.3 0-.4-.1-2.5-2.2-5-3.5-7.3-3.9-1.6-.2-3.1-.1-4.3.3-.3.1-.6 0-.7-.3-.1-.3 0-.6.3-.7 1.4-.5 3.1-.7 4.9-.4 2.6.4 5.2 1.8 7.9 4.1.2.2.3.6 0 .8-.1.1-.2.2-.4.2zM44.8 8.4c-.2 0-.3-.1-.4-.2-.7-.8-1.5-1.6-2.3-2.3-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1.9.7 1.7 1.5 2.4 2.4.2.2.2.6-.1.8 0 .1-.2.2-.3.2zM21.8 5c-.2 0-.3-.1-.4-.2
-.2-.2-.2-.6.1-.8 1.7-1.4 4-2.4 6.8-2.9 2.2-.4 4.3-.4 6.3 0 .3.1.5.3.4.6-.1.3-.3.5-.6.4-1.9-.3-3.9-.3-5.9 0-2.7.5-4.8 1.4-6.3 2.7-.1.2-.3.2-.4.2z" fill="#D7D7DB"/><g><path d="M119.8 27l.2-.2s8.2-16.3-7.5-19.2C98.5 5 92.3 19.2 92.3 19.2S91 10.8 82.6 12c-8.3 1.2-15 14.2-15 14.2h-.2" fill="#F9F9FA"/><path d="M60.6 21.4c0-.3.3-.5.6-.5l1.1.1c.3 0 .5.3.5.6s-.3.5-.6.5l-1.1-.1c-.3 0-.5-.3-.5-.6zm5.5.3c0-.3.3-.5.6-.5h.3c.2-.4.7-1.1 1.3-2 .2-.3.5-.3.8-.1.3.2.3.5.1.8-.8 1.2-1.3 2-1.4 2.3-.1.2-.3.3-.5.3h-.6c-.3-.3-.6-.5-.6-.8zm53.2 2.1c-.1-.2-.1-.4 0-.5 0 0 .3-.6.7-1.7.1-.3.4-.4.7-.3.3.1.4.4.3.7-.1.4-.3.7-.4 1h.6c.3 0 .5.3.5.6s-.3.5-.6.5l-1.5-.1c-.1 0-.3-.1-.3-.2zm2.2-5.8c-.3-.1-.5-.3-.5-.6.1-.4.1-.7.1-1.1 0-.3.3-.5.6-.5s.5.3.5.6c0 .4-.1.8-.2 1.1.1.3-.1.5-.5.5.1 0 .1 0 0 0zm-29.2-2.6c-.3-.1-.4-.5-.2-.8.2-.3.3-.6.6-1 .2-.3.5-.3.8-.2.3.2.3.5.2.8-.2.4-.4.7-.5.9-.1.2-.3.3-.5.3-.2.1-.3.1-.4 0zm-18.1-2.3c-.2-.2-.2-.6.1-.8 2.7-2.3 5.3-3.7 7.9-4.1 1.8-.3 3.5-.1 4.9.4.3.1.4.4.3.7-.1.3-.4.4-.7.3-1.2-.5-2
.7-.6-4.3-.4-2.4.3-4.8 1.6-7.4 3.8-.1.1-.3.1-.4.1-.1.1-.3.1-.4 0zm21.2-2.3c-.2-.2-.3-.6 0-.8.8-.9 1.6-1.7 2.5-2.4.2-.2.6-.2.8.1.2.2.2.6-.1.8-.8.7-1.6 1.4-2.3 2.3-.1.1-.3.2-.4.2-.3-.1-.4-.1-.5-.2zm23-3.2c-1.5-1.3-3.6-2.2-6.3-2.7-2-.4-4-.4-5.9-.1-.3 0-.6-.2-.6-.5-.1-.3.2-.6.5-.6 2-.3 4.1-.3 6.3.1 2.9.5 5.1 1.5 6.8 3 .2.2.3.6.1.8-.1.1-.3.2-.4.2-.3-.1-.4-.1-.5-.2z" fill="#D7D7DB"/></g></g><g transform="translate(159 16)" fill-rule="nonzero"><path d="M125.2 89.7c-.8-4.6-5-4.7-14.4-4.7-7.5 0-17.8-.1-23.3-2.4-9.6-4-17.5-13.4-17.6-13.6-.6-.7-1.4-1.2-2.3-1.5l-.6 1.2c2.7 2.8 5 5.7 7 8.6 3.3 2.9 7.6 6 12.2 7.9 6.1 2.5 16.8 2.6 24.5 2.6 8.4.1 10.8.1 11.1 1.9.3 1.7-2 3.5-6.5 6.6-2.2 1.6-5.9 4.2-6.1 5.1 0 3.4-5.1 9.2-12.9 10-2.6.3-4.8.3-6.5.3-3.2.1-5.2.1-7.6 1.4-.3.2-.8.3-1.3.4-.4 1.1-.9 2.4-1.5 3.8 1.9 0 3.4-.3 4.4-.9 1.6-.9 2.8-.9 6-1 1.8 0 4-.1 6.8-.3 8.4-.8 14.8-6.8 15.8-12 1-.9 3.3-2.6 4.8-3.7 5.2-3.4 8.6-5.8 8-9.7z" fill="#F9F9FA"/><path d="M34.7 63.9h0zM37.6 63.9h-.4.4zM42.2 67.5c.8-1.1 1.
7-2.3 2.6-3.4-.9 1.2-1.8 2.3-2.6 3.4zM40.4 63.6H40c.1.1.2.1.4 0zM43.2 63.3c-.1 0-.3 0-.4.1.1-.1.3-.1.4-.1z" fill="#FFF"/><path d="M62.4 149.2c-.8-1-1.6-2-2.4-3.1-3.6 1-7.5 1.5-11.2 1.5-.8 0-1.6 0-2.4-.1.2.2.3.5.4.8v.1c0 .1.1.2.1.3v.2c.1.3.1.6 0 .9v1.2h1.5c3.2 0 6.6-.4 9.8-1.1.6.7 1.1 1.4 1.7 2.2.5-1.1 1.3-2.2 2.5-2.9z" fill="#F9F9FA"/><path d="M59.6 143.9c-.1 0-.3.1-.4.1.1 0 .3-.1.4-.1z" fill="#FFF"/><path d="M27.9 147c-.7-2.4-1.3-5.4-1.9-8.9-1.6-2.2-2.9-4.8-3.7-7.8-.9 0-1.9-.3-2.7-.8-1.9-1.1-2.9-3.2-2.7-5.4l-3.7-9.6c-.3-.8-.3-1.7 0-2.5-.8-3-1.3-7.3-.4-12.6 1.9-10.4 8.8-19.8 20.6-28.1.1-.4.3-.8.7-1.1l3.3-3c.4-.4 1-.6 1.5-.6.3 0 .6.1.9.2.2-.3.5-.7.7-1-2 .2-4 .3-5.9.3-14.8 0-23-6.5-23.3-18.3 0-2.7.3-5.5 1-8.4-2.9-2.4-4.8-5.3-5.7-8.5-.5-.9-1-1.9-1.3-2.9-2.4-7.5 1.8-15.5 9.3-17.9 1.4-.4 2.8-.7 4.3-.7 1.7 0 3.4.3 5 .9 2-.4 4-.6 6.1-.6h1.2c.6 0 1.2.1 1.8.1 3.3-2.2 6.7-3.9 10.1-4.9 3.7-1.1 7.5-1.7 11.3-1.7 7.4 0 14.8 2.3 20.9 6.4 13 2.2 22.3 11.2 22.3 21.6 0 10.2-8.8 18.9-21.5 21.4-2.1 1.6
-4.5 3-7 4.4-1.6 2.9-3.1 5.8-4.4 8.6.7.5 1.4 1.3 1.7 2.4.3.9.4 1.8.4 2.4.1 0 .1.1.2.1 0 .1 2.6 3.2 6.7 6.6-2-2.9-4.3-5.8-7-8.6l.6-1.2c1.2-2.6 2.5-5.2 4-7.9 2.1-1.2 4.1-2.4 5.9-3.7 13.9-3 23.4-12.9 23.4-24.5 0-11.8-10.2-22.1-24.4-24.7C69.6 2.3 61.8 0 54 0c-4.1 0-8.3.6-12.3 1.9-3.4 1.1-6.7 2.6-10 4.7h-2.2c-1.9 0-3.9.2-5.8.5-1.7-.5-3.5-.8-5.3-.8-1.8 0-3.5.3-5.3.8-4.5 1.4-8.2 4.5-10.3 8.7C.6 20 .2 24.7 1.6 29.2c.3 1.1.8 2.1 1.3 3.2.9 3.1 2.6 5.9 5.1 8.4-.5 2.5-.7 4.9-.6 7.2.1 5.4 1.7 9.9 4.7 13.5.4.4.7.8 1.1 1.2.8.8 1.6 1.5 2.6 2.1 3.6 2.5 8.3 4.1 13.9 4.6-11.9 8.6-19 18.5-21 29.5-1 5.4-.5 9.9.2 13.2-.2 1.2-.1 2.5.4 3.7l3.4 9c0 3.1 1.6 6 4.3 7.7.6.4 1.2.6 1.8.9.8 2.3 1.9 4.4 3.1 6.2.7 4 1.4 7.4 2.2 9.9 1.3-1.2 2.4-2.1 3.8-2.5z" fill="#F9F9FA"/><circle fill="#FFF" transform="rotate(-26.565 9.428 30.382)" cx="8.978" cy="29.932" r="1"/><path d="M7.2 22.9c-.1 1.5 0 3.1.5 4.7-.5-1.6-.7-3.2-.5-4.7zM22.6 128h.4-.6.2zM25.1 131.3c.2.6.4 1.2.7 1.8-.3-.6-.5-1.2-.7-1.8-.1 0 0 0 0 0zM22.7 119.8v-.7l
-1.4-1 1.4 1.7zM21.5 127.8c-.2-.1-.5-.2-.7-.3.2.2.5.3.7.3zM22.3 128c-.2 0-.5-.1-.7-.1.2 0 .5.1.7.1zM15.3 113v-.1.1zM15.3 113.3v-.1.1zM19.2 124.9v-.5c0 .2-.1.3 0 .5zM19.2 124.4v-.3.3zM50.5 145.3h-.1.1zM53.9 145h-.3.3zM28.5 138.9v-.1c-.1 0-.1 0 0 .1zM57 144.5c-.2 0-.3.1-.5.1.1 0 .3-.1.5-.1zM58.3 144.2c-.2 0-.3.1-.5.1.2 0 .4 0 .5-.1zM55.5 144.8c-.1 0-.3.1-.4.1.1-.1.3-.1.4-.1zM38.9 145.2c0 .1 0 .1 0 0 0 .1 0 .1 0 0zM48.8 145.4h.1-.2c.1-.1.1 0 .1 0zM41.5 144.6h-.2.2zM44 145h-.2.2zM95.7 31.4c0 1.8-.3 3.5-.9 5.1.6-1.6.9-3.3.9-5.1zM14.8 53.7c0-.1-.1-.2-.1-.3 0 .1 0 .2.1.3zM15.5 55.4c0-.1-.1-.2-.1-.3 0 .1.1.2.1.3zM16.3 56.7c-.1-.1-.1-.2-.1-.2 0 .1.1.2.1.2zM17.4 58.1c-.1-.1-.1-.2-.2-.2.1.1.2.1.2.2zM14.3 52c0-.1 0-.1-.1-.2 0 .1 0 .1.1.2zM14.4 41.2c0-.1.1-.3.1-.4 0 .1-.1.3-.1.4zM13.9 50.1v-.4.4zM13.8 45.9v-.5.5zM30.5 63.7h-.3.3zM18.5 59.2l-.1-.1s.1 0 .1.1zM28.6 63.5c-.1 0-.2 0-.4-.1.1 0 .3.1.4.1zM14.1 38l-.3-.3.3.3zM24.7 62.6c-.1 0-.2 0-.2-.1.1 0 .2 0 .2.1zM26.5 63.1c-.1 0-.2-.1-.3-.1.1 0 .2 0
.3.1zM19.9 60.3c-.1-.1-.2-.1-.3-.2.2.1.3.1.3.2zM23 61.9c-.1 0-.2-.1-.3-.1.1 0 .2.1.3.1zM8.3 29s0-.1-.1-.1c0 0 0 .1.1.1zM27.7 12.4c.4 0 .7-.1 1.1-.1-.3 0-.7 0-1.1.1zM18.1 11.9h.8-.8zM25.5 12.6h.2-.2zM30.3 12.2h-.7 1.8-1.1zM93.7 23.9c.2.4.5.9.7 1.4-.3-.5-.5-.9-.7-1.4zM89.5 18.7l.8.8c-.2-.3-.5-.6-.8-.8zM91.5 20.8c.5.5.9 1.1 1.3 1.7-.4-.6-.8-1.2-1.3-1.7zM10.6 34.1c-.1-.2-.2-.4-.3-.5.1.2.2.4.3.5zM9.3 31.6c-.1-.2-.2-.5-.2-.7.1.2.1.4.2.7zM12.9 37l-.3-.3.3.3zM17 12.1c.2 0 .5-.1.7-.1-.2 0-.5.1-.7.1zM11.9 35.9s0-.1 0 0c0-.1 0 0 0 0zM9.9 32.9l-.3-.6.3.6zM32.8 63.9h-.4.4zM11.4 14.7c.6-.5 1.2-1 1.9-1.3-.7.4-1.3.8-1.9 1.3zM15.6 12.4c.4-.1.7-.2 1.1-.3-.4.1-.8.2-1.1.3zM81.2 139.8h-1.1 1.1zM72.5 139.6c-.2 0-.4 0-.6-.1.2 0 .4 0 .6.1zM82.7 139.7c-.3 0-.6 0-1 .1.4-.1.7-.1 1-.1zM84.3 139.6c-.3 0-.6.1-1 .1.3-.1.6-.1 1-.1zM76.3 139.8h-.5.5zM74.4 139.7h-.6.6zM78.2 139.9h1.5-1.5zM92 138.5c-.3.1-.6.1-.9.2.3-.1.6-.1.9-.2zM90.6 138.8c-.3.1-.6.1-.9.1.3 0 .6-.1.9-.1zM85.9 139.4c-.3 0-.7.1-1 .1.3 0 .6 0 1-.1zM93.
4 138.2c-.3.1-.6.1-.9.2.3-.1.6-.1.9-.2zM89.2 139c-.4.1-.8.1-1.1.2.3-.1.7-.2 1.1-.2zM87.7 139.2c-.5.1-1 .1-1.4.2.5-.1 1-.1 1.4-.2zM69.2 121.2c-.3-.1-.5-.1-.8-.2l-1.3.8c.3.2.6.3.8.5l.6.3.7-1.4zM23.3 107.4v-.1.1zM23.2 105.3v-.1.1zM23.2 106.4v-.1.1zM71.5 141.8c.9 1.7 1.7 3.3 2.2 4.7-.5-1.4-1.3-3-2.2-4.7zM65.9 150c-1.8-2.3-3.6-4.6-5.1-6.4 1.5 1.8 3.2 4.1 5.1 6.4zM95 137.9l-1.2.3c.4-.2.8-.2 1.2-.3zM65 117.8c-.8.4-1.5.5-2.4.7.8.6 1 .9 1.9 1.5l1.3-.8c-.2-.2-.3-.4-.4-.6-.2-.2-.3-.4-.4-.8zM19.2 125c.1 1 .7 1.9 1.6 2.5-.9-.5-1.5-1.5-1.6-2.5zM38.9 144.1c0-.1 0-.1 0 0 0-.1 0-.1 0 0zM22.4 121.2l-2-2.5 1 2.7c.3-.2.6-.2 1-.2zM25.9 133.3c.7 1.4 1.4 2.7 2.3 3.9 0 .2.1.4.1.6 0-.2-.1-.4-.1-.6-.9-1.2-1.7-2.5-2.3-3.9zM96.3 137.5l-1.2.3c.5-.1.9-.2 1.2-.3zM105.8 134c-.2.1-.3.2-.5.3.2-.1.4-.2.5-.3zM106.2 133.7c-.1.1-.2.2-.3.2.1 0 .2-.1.3-.2zM105.2 134.4c-.1.1-.3.2-.4.2.1 0 .2-.1.4-.2zM106.6 133.5l-.2.2c0-.1.1-.2.2-.2zM104.5 134.8c-.1.1-.3.1-.4.2.1-.1.2-.2.4-.2zM106.8 133.2c0 .1-.1.1-.1.2 0-.1.1-.2.1-.2zM106
.9 132.9c0 .1 0 .1-.1.2.1-.1.1-.1.1-.2zM103.8 135.1c-.2.1-.3.1-.5.2.1 0 .3-.1.5-.2zM106.9 132.6v0zM95.8 130.5h.2-.2zM98.7 136.9c-.2.1-.5.1-.7.2.2-.1.5-.1.7-.2zM97.5 137.2c-.3.1-.5.1-.8.2.3 0 .6-.1.8-.2zM99.8 136.6c-.2.1-.5.1-.7.2.3-.1.5-.2.7-.2zM101 136.2c-.3.1-.5.2-.8.3.2-.1.5-.2.8-.3zM102.1 135.8l-.9.3.9-.3zM103 135.4c-.2.1-.4.2-.6.2.2 0 .4-.1.6-.2zM59.3 111.8h-.1.3-.2zM58.4 111.9h.2-.2zM57.6 112.2c-.1.1-.2.2-.3.2.1 0 .2-.1.3-.2zM74.2 116.6v0zM61 112.2c.1 0 .1.1.2.1-.1 0-.2 0-.2-.1zM65.4 114l.1-.1-.1.1zM61.6 112.8l.2.2c0-.1-.1-.2-.2-.2zM62.7 115.2c.7-.2 1.5-.4 2.3-.5-.8.1-1.5.3-2.3.5 0-.5-.1-1.1-.4-1.6.3.5.4 1 .4 1.6zM60.1 111.9h0zM64.3 111.8c.1-.1.1-.2.2-.3l-1.2-.3c.3.3.5.6.7.9l.3-.3z" fill="#FFF"/><path d="M79.1 113.9c-.5 0-1 0-1.5-.1-.3.9-.8 1.9-1.2 2.9 0 .4-.1.9-.3 1.3l-1.9 4.4c0 .1 0 .2-.1.3 0 .1 0 .1-.1.2.4.2.8.3 1.1.5 10.3 4.3 18.9 4.8 24.5 5.2 4.9.3 8.1.5 9.2 3.2.3.9.2 1.8-.3 2.7-2.3 3.4-17.1 7.7-30.4 7.7-1.4 0-2.8 0-4.1-.1.6 1.1 1 2.1 1.4 3 .1 0 .1 0 .2-.1.6-.1 3.7-.3 5.5
.4 7.3-.3 13.6-1.7 16.9-2.6 10.5-2.8 12.4-5.5 13-6.5 1.2-1.8 1.4-3.9.7-5.8-1.9-4.7-6.8-5-12.1-5.3-5.1-.3-12.6-.8-21.5-4.1l.7-1.7c.2-.6.4-1.1.5-1.7 0-.1 0-.1.1-.2.6-1.3 1.1-2.6 1.5-3.8-.5.2-1.1.2-1.8.2z" fill="#F9F9FA"/><path d="M56.8 110.8c.1.3.1.5.2.8 0-.3-.1-.5-.2-.8zM66.7 112c-.3.6-.6 1-.7 1.2.1-.2.4-.6.7-1.2z" fill="#FFF"/><path d="M58.4 107.7c2.3.6 4.7 1.2 7 1.8 1.7-4.3 3.2-13.6-7-26-1.7 7.8-1.7 15.9 0 24.2z" fill="url(#a)"/><path d="M81.2 111.4c2.9-1.6 5.3-1.6 8.6-1.7 1.8 0 3.8-.1 6.3-.3 6.8-.7 10.9-5.8 10.9-7.8 0-.4.1-.7.3-1.1-1.7.2-3.2.2-4.6.2-6.7 0-10.6-1.5-10.8-1.6-.3-.1-.4-.4-.3-.7.1-.3.4-.4.7-.3.1 0 6 2.4 15.9 1.2 1.2-1.2 3.1-2.7 5.8-4.6 1.8-1.3 4.4-3.1 5.3-4.2-1.5-.3-5.2-.3-8.6-.3-8-.1-18.9-.1-25.4-2.8C78.5 84.6 72.6 79.5 69 76c11 13.8 11.5 25.8 9.7 33.9 0 0-.2.7-.5 1.8 1.5.1 2.5 0 3-.3z" fill="url(#b)"/><path d="M28.3 16.1c1.8-1.9 3-3.1 3.9-3.7-.2 0-.5 0-.7-.1H29c-.4 0-.7 0-1.1.1-.7.1-1.4.1-2.1.2h-.2l-1.5.3c1.5.7 3 1.8 4.2 3.2z" fill="url(#c)"/><path d="M60.1 146.8s-4.
3 5.9-3.1 9c1.2 3.1 9.3 12.9 9.3 12.9s-1.2 8.1-.8 9.6c.4 1.5 4.2 5.8 12.7 2.5s8.8-8.3 8.9-12.3c0-1.6.3-4.2.1-7.8 0-.3 3.5-4.3 1.7-11.3-.8-3.1-2.5-4.3-2.8-4.3-1.1 0-.4 0-.7-.6-1.1-2.2-25.3 2.3-25.3 2.3z" fill="#F9F9FA"/><path d="M8.9 30.2c.1.2.1.4.2.7.1.2.1.5.2.7.1.2.2.5.3.7l.3.6c.1.2.2.5.4.7.1.2.2.4.3.5.4.6.8 1.2 1.2 1.7.2.3.5.5.7.8l.3.3c.3.3.5.5.8.7l.3.3s.1 0 .1.1c.4-1 .8-1.9 1.3-2.7-2.6-.8-4.9-2.6-6.4-5.1z" fill="url(#d)"/><path d="M16.6 30.2c-.3.5-1 .7-1.5.3-.5-.3-.7-1-.3-1.5.1-.1 1.8-2.7 5.1-2.7h.4c-.6-.2-1.1-.8-1.1-1.5l.1-3.5c0-.9.7-1.5 1.6-1.5.9 0 1.5.7 1.5 1.6l-.1 2.4c.9-1.3 1.9-2.5 2.9-3.7-.1-.2-.2-.5 0-.7 1.1-1.4 2.1-2.5 3-3.4-1.2-1.4-2.7-2.4-4.3-3.2-1.5-.7-3.1-1-4.8-1h-1.5c-.2 0-.5.1-.7.1-.1 0-.2 0-.3.1-.4.1-.7.2-1.1.3-.8.2-1.5.6-2.2 1-.7.4-1.4.8-1.9 1.3-1.5 1.3-2.6 2.9-3.4 4.7-.4 1.1-.7 2.3-.8 3.5-.1 1.5 0 3.1.5 4.7.1.5.3.9.5 1.3 0 0 0 .1.1.1l.6 1.2c1.5 2.5 3.8 4.3 6.5 5.2.7-1.3 1.4-2.2 1.4-2.3.1-.1.2-.2.3-.2.6-1.4 1.4-2.9 2.2-4.3-1.7.3-2.6 1.6-2.7 1.7z" fill="#F9F9FA"/><
path d="M20.9 19.8c-.9 0-1.6.7-1.6 1.5l-.1 3.5c0 .7.4 1.3 1.1 1.5h-.4c-3.4 0-5 2.5-5.1 2.7-.3.5-.2 1.2.3 1.5.5.3 1.2.2 1.5-.3 0 0 .9-1.3 2.6-1.6.9-1.6 1.9-3.2 3.1-4.7l.1-2.4c0-.9-.6-1.6-1.5-1.7z" fill="url(#e)"/><path d="M77.5 13.6c2.2 0 4.2.6 6 1.6-1.1-.8-2-1.3-2.6-1.6-1.9-.7-3.9-1.2-6-1.6.8.9 1.6 1.6 2.6 1.6z" fill="url(#f)"/><path fill="url(#g)" d="M19.1 113.1v-.1l-.1.1"/><path d="M68 122.3c.2.1.4.2.6.4-.2-.2-.4-.3-.6-.4z" fill="url(#h)"/><path d="M46.2 67.8c.6 0 1.3 0 2-.1 6.3-.4 13.8-2.8 13.9-2.9.2-.1.5-.1.7-.1h.3c1.3-2.7 2.6-5.2 3.8-7.5-3.4 1.7-10.3 4.6-22 6.8-.9 1.1-1.7 2.2-2.6 3.4.9.3 2.2.4 3.9.4z" fill="url(#i)"/><path d="M24.7 143.9s-4.7 5.6-3.8 8.8c.9 3.2 8.4 13.7 8.4 13.7s-1.8 8.1-1.5 9.6c.3 1.5 3.8 6.1 12.6 3.5 8.8-2.6 8.9-6.7 9.3-10.7.4-4 1-16.3.7-18.8-.3-2.5-25.7-6.1-25.7-6.1z" fill="#F9F9FA"/><path d="M69.7 127.3c.1-.2.1-.5.3-.8l-.3.6v.2z" fill="url(#j)"/><path d="M65.9 150c.8.3 2.4.4 5.3-.3 1.7-.4 2.7-.9 3.3-1.3l-.6-1.8c-.6-1.4-1.3-3.1-2.2-4.8-2.1-3.4-3.7-6.1-3.7-6.
1-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2 0 0 1.1 1.8 2.6 4.3.2 0 .4.1.6.1.2 0 .4 0 .6.1.4 0 .9.1 1.3.1h.6c.4 0 .9.1 1.4.1h6c.3 0 .6 0 1-.1h.6c.3 0 .6-.1 1-.1h.5c.4 0 .7-.1 1-.1h.4c.5-.1 1-.1 1.4-.2h.3c.4-.1.8-.1 1.1-.2.2 0 .3-.1.5-.1.3 0 .6-.1.9-.1.2 0 .4-.1.5-.1.3-.1.6-.1.9-.2.2 0 .3-.1.5-.1.3-.1.6-.1.9-.2.1 0 .3-.1.4-.1l1.2-.3h.1l1.2-.3c.1 0 .3-.1.4-.1.3-.1.5-.1.8-.2.2 0 .3-.1.4-.1.2-.1.5-.1.7-.2.1 0 .3-.1.4-.1.2-.1.5-.1.7-.2.1 0 .3-.1.4-.1.3-.1.5-.2.8-.3.1 0 .1 0 .2-.1l.9-.3c.1 0 .2-.1.2-.1.2-.1.4-.2.6-.2.1 0 .2-.1.3-.1.2-.1.3-.1.5-.2.1 0 .2-.1.3-.1.2-.1.3-.1.4-.2.1 0 .2-.1.2-.1.2-.1.3-.2.4-.2.1 0 .1-.1.2-.1.2-.1.4-.2.5-.3 0 0 .1 0 .1-.1.1-.1.2-.2.3-.2l.1-.1.2-.2.1-.1c0-.1.1-.1.1-.2 0 0 0-.1.1-.1 0-.1 0-.1.1-.2v-.1-.2c-.7-1.8-4.7-1.6-10.9-2.1h-.2c-5.6-.5-12.9-1.5-21.4-5.1-.4-.2-.8-.3-1.2-.5-.7 1.6-1.3 3.1-1.3 3.5-.1 1-1.2 2.7-2.7 3.6-.8.5-1.6.7-2.5.7-.5 0-1-.1-1.5-.3-.5-.2-.8-.8-.7-1.3-1.6-.8-2.2-2.3-2.3-3.2 0-.3.2-.6.5-.6h.1c.1-1.1.7-2.2 1.8-2.8 1-.5 2.1-.5 3-.1l.4-.9-.1-.1c-.4-.2-.7-.4
-1.1-.6l-.4-.2-.5-.3-1.7 1c-.3 1.3-1.3 3.4-3.5 3.5h-.2c-3 0-3.8-1.9-4.2-3.3-.1-.3.1-.6.4-.7h.1c0-.4 0-.8.1-1.2.5-1.8 2.5-2.9 4.3-2.3.8.2 1.4.7 1.9 1.4l.2-.1c-.3-.3-.6-.5-.8-.7-.2-.2-.4-.4-.7-.6l-.9-.7c-.9.2-1.8.3-2.6.3-.5 0-.9-.1-1.2-.2-2.3-.9-2.3-3.8-2.3-3.9 0-.3.3-.5.6-.6.2 0 .3.1.4.2.1-.9.6-1.7 1.4-2.2-.1-.3-.2-.6-.2-.9-.1-.3-.1-.5-.2-.8-.1-.4-.2-.9-.3-1.3 0-.2-.1-.4-.1-.6-.1-.6-.3-1.2-.4-1.8v-.1c-1.5-8.1-1.7-17.2 1-26.8-.9-1.2-1.5-1.9-2-2.4-2 .4-4.1.6-6.5.6h-.2c-1.3 3.8-2 7.3-2.3 10.5l2.3.1c.4 0 .8.3 1 .7.2.4 0 .9-.3 1.2l-3.1 2.9c.3 6.4 2.1 11.8 3.5 16 .4 1.2.8 2.4 1.1 3.4 2.8 9.4 2.6 17.3-.4 22.2-1.7 2.7-4.1 4.4-7.1 4.9-.4.1-.9.1-1.4.1-2.3 0-4.8-1-7-2.7-2.8-2.3-7.7-7.9-8.2-20.8C26 108.9 28 101 30.6 94c-.4-.1-.7-.3-.8-.6-.2-.3-.1-.7.1-1.1l6.2-10.2c1.1-2.1 2.2-3.9 3.1-5.3-2.9-1-4.3-2.4-5-3.3-4.3 3.1-8 6.3-10.9 9.7 0 0 0 .1-.1.2 1.2-1.4 2-2.2 2.1-2.3.3-.3.7-.3 1 0 .3.3.3.7 0 1 0 0-2.8 2.8-5.2 6.6-1.3 3.7-2.7 8.5-2.6 12.2.1 4.7 1.3 7.8 2.1 9.3.9.3 1.9.5 2.9.8-.1.8-.3 1.8-.3 2.9-.5-
.1-1-.3-1.4-.4.5.3.9.6 1.4.8.2-1.5.4-2.5.4-2.7.1-.3.3-.5.6-.5.3.1.5.3.5.6 0 .1-2 11.3.5 19.2.2.6.5 1.2.7 1.8 0 .1.1.1.1.2.7 1.4 1.4 2.7 2.3 3.9 0 .2.1.4.1.6.1.3.1.6.2 1v.1c.6 3.6 1.4 7.2 2.3 9.8.8.4 2.2.6 4.7.5 2-.1 3-.5 3.6-.8 0-1 0-2-.1-3v-.1c-4.5-1.2-6.1-2.9-6.2-3-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0 0 0 1.5 1.5 5.4 2.6v-.1l2.4.6h.2c.8.2 1.6.3 2.4.4h.2c1.6.2 3.2.3 4.7.3h1.7c1.1 0 2.1-.1 3.1-.3h.3c.4 0 .8-.1 1.1-.2.1 0 .3 0 .4-.1.3-.1.6-.1 1-.2.2 0 .3-.1.5-.1.3-.1.6-.1.9-.2.2 0 .3-.1.5-.1.3-.1.6-.1.9-.2.1 0 .3-.1.4-.1l1.2-.3c1.3 2.3 3 4.6 4.9 6.9zm8-22.2c.1-.2.3-.4.5-.5.4-.1.8.1 1.2.3 4.8 2.9 14 4.5 27.2 4.6.1 0 .6 0 .8.4.1.2.1.5-.1.8-.5.7-8.8 1.8-15.3 1.8-2 0-3.8-.1-5.2-.3-5.8-1-8-3.7-8.6-4.9-.6-.8-.7-1.6-.5-2.2zm-49.7-17.2c0 .3-.3.5-.6.5s-.5-.3-.5-.6c0-.9.1-1.8.3-2.7 0-.2-.1-.3-.1-.5v-.1c0-.3-.1-.6-.1-.9v-.1-1-.1-1.1-.1c.2-3.2 1.2-7.3 4.2-11.8l.1-.1c.3-.5.7-1 1-1.5.8-2 1.5-3.3 1.5-3.5.1-.3.5-.4.7-.3.3.1.4.5.3.7-.1.4-6.3 13.7-6.8 23.2z" fill="url(#k)"/><path d="M37.2 63.9h.4c.8 0 1.6-.
1 2.4-.2h.4l2.4-.3c.1 0 .3 0 .4-.1.5-.1 1-.2 1.5-.2 13.5-2.6 20.6-6 23.1-7.5.1-.1.2-.1.4-.2.5-.3.7-.4.7-.5.1-.1.2-.1.3-.1 1.7-1 3.4-2 4.9-3.1-4.2-.1-7.5-1.9-7.7-2-.3-.1-.4-.5-.2-.8.1-.3.5-.4.8-.2 0 0 4.6 2.4 9.5 1.7 1.1-.2 2.2-.5 3.2-.8 6.7-2.1 12-6.3 14.5-11.6.2-.5.5-1.1.7-1.6.6-1.6.9-3.3.9-5.1 0-2.2-.5-4.2-1.3-6.2-.2-.5-.4-.9-.7-1.4l-.9-1.5c-.4-.6-.8-1.1-1.3-1.7-.4-.4-.8-.9-1.2-1.3l-.8-.8c.9 1.6 1.5 3.4 1.7 5.6.9 1.4 1.6 2.9 1.8 4.6 1.4 7.8-5.3 15.4-14.8 17.1-3.2.6-6.3.4-9-.4-6.2 3.4-14.2 5.7-22.1 6.6-16.5 1.9-29.8-1.4-28.8-13.1.8-8.9 9.4-22.1 19.5-29.1-.5.3-1.1.6-1.6.9-.8.5-1.6 1-2.4 1.6 0 0-2.4 1.2-7.7 7.7-.1.1-.3.2-.4.2-.1 0-.2 0-.4-.1l-.1-.1c-1 1.2-2 2.4-2.9 3.7-1.1 1.5-2.1 3.1-3.1 4.7-.8 1.4-1.5 2.8-2.2 4.3.2 0 .3 0 .5.1.3.2.3.5.1.8 0 0-2.2 3.2-3 6.3-.1.3-.1.6-.2.8 0 .1-.1.3-.1.4-.1.7-.3 1.4-.4 2.1-.1.7-.2 1.4-.2 2v.5c0 .7-.1 1.3 0 2 0 .6.1 1.2.1 1.8v.4c.1.6.2 1.1.3 1.7 0 .1 0 .1.1.2.1.5.3.9.4 1.4 0 .1.1.2.1.3.2.5.4.9.6 1.4 0 .1.1.2.1.3.2.4.4.8.7 1.1 0 .1.1.2.1.2.3.4.6.8.9 1.
1.1.1.1.2.2.2l.9.9.1.1 1.2.9c.1.1.2.1.3.2.4.3.8.5 1.3.8h.1c.4.2.9.4 1.3.7.1 0 .2.1.3.1l1.5.6c.1 0 .2.1.2.1.5.1.9.3 1.4.4.1 0 .2.1.3.1.6.1 1.1.2 1.7.3.1 0 .2 0 .4.1.5.1 1.1.2 1.6.2h.3c.6.1 1.2.1 1.9.1h2.4c1 .6 1.8.6 2.6.6z" fill="url(#l)"/><path d="M68.1 113.9c1.7-2.1 3.7-5.6 4.9-11.1 1.6-7-3-17.6-6.6-24.5-1-1.3-2-2.5-2.8-3.4-1.7.9-4.2 1.9-7.3 2.6.4.5.9 1.1 1.5 1.8 14.4 15.6 11.4 27.5 9.3 32-.1.3-.2.5-.4.7-.3.6-.6 1-.7 1.2-.2.2-.3.4-.5.6l-.1.1c-.1.2-.3.4-.4.7 1.1-.2 2.1-.4 3.1-.7z" fill="url(#m)"/><path d="M76.4 110.7c.2-.8.3-1.3.3-1.3 1.2-5.5.8-10.8-.6-15.7 1.7 6.5 1.4 12.4.3 17z" fill="url(#n)"/><path d="M30.7 86.9c-.3-.1-.6 0-.7.3-.1.2-.7 1.5-1.5 3.5-.4.5-.7 1-1 1.5l-.1.1c-3 4.5-4 8.6-4.2 11.8V106.5c0 .3.1.6.1.9v.1c0 .2 0 .3.1.5l-.3 2.7c0 .3.2.6.5.6s.5-.2.6-.5c.4-9.5 6.7-22.8 6.7-23 .2-.4.1-.8-.2-.9z" fill="url(#o)"/><path d="M32.7 105.7c-.2 0-.4-.1-.6-.2-.4-.3-.6-.8-.4-1.3l3.6-9.5-4.5-.6c-2.6 6.9-4.5 14.9-4.2 22.8.6 12.8 5.4 18.5 8.2 20.8 2.2 1.7 4.7 2.7 7 2.7.5 0 .9 0 1.4-.1 3-.
5 5.4-2.2 7.1-4.9 3-4.9 3.2-12.8.4-22.2-.3-1-.7-2.2-1.1-3.4-1.4-4.2-3.2-9.5-3.5-16l-12.5 11.6c-.4.2-.7.3-.9.3zM36.2 82.1c.2-.3.6-.6 1-.5l7.8.4c.4 0 .8.3 1 .6.2.4.1.8-.1 1.2l-3.9 5 4.1.2c.3-3.3 1-6.8 2.3-10.5-1.1 0-2.1-.1-3.2-.2-2.5-.2-4.5-.7-6-1.2-.9 1.4-1.9 3.2-3.1 5.3l.1-.3zM82.9 134.9c1.4.2 3.2.3 5.2.3 6.5 0 14.8-1.1 15.3-1.8.2-.2.2-.5.1-.8-.2-.4-.6-.4-.8-.4-13.2-.1-22.3-1.7-27.2-4.6-.5-.3-.8-.5-1.2-.3-.2.1-.4.3-.5.5-.2.5 0 1.3.4 2.2.7 1.1 2.9 3.9 8.7 4.9zM69.5 120.6h-.4l-1.9 1.2 1.3-.8c.2.1.5.2.8.2l-.6 1.4.8-2zM65.4 118.7c.1.2.2.4.4.6h.1c-.2-.3-.4-.4-.5-.6z" fill="#F9F9FA"/><path d="M57.3 112.5c-.8.5-1.2 1.4-1.4 2.2.1.1.1.2.1.3 0 0 0 2.2 1.6 2.8 1.2.5 5.3-.7 7.5-1.5h.3l.2-.1.4 1.2c.1.4.3.6.6 1l.9 1-1.1.7-1.4.9-.6.4-.6-.4c-.1-.1-.3-.2-.4-.3l-.2.1c-.4-.6-1.1-1.1-1.9-1.4-1.8-.5-3.8.5-4.3 2.3-.1.4-.1.8-.1 1.2.3 0 .5.1.6.4.4 1.5 1.1 2.5 3.3 2.5 2-.1 2.5-2.8 2.5-2.8 0-.2.1-.3.3-.4l4.5-2.8c.1 0 .1-.1.2-.1l.2-.1.3-.2h.6l1.9-.2-.8 1.8-.9 2.1-.5 1.1-1-.5-.4.9c-.9-.4-2.1-.4-3 .1-1.1.6-1.7
1.6-1.8 2.8.2 0 .5.2.5.5 0 .1.3 1.9 2.1 2.5h.5c.3.1.5.1.8.1h.3c.3-.1.6-.2.9-.4.6-.4 1-.9 1.3-1.3.3-.5.4-1 .4-1.1 0-.1 0-.3.1-.4v-.2l.3-.6c.4-1 1-2.3 1.4-3.1l2.7-6.2c0-.1.1-.2.1-.3v-.2-.3c1.1-2 1.8-4.2 2.2-5.6 1.1-4.7 1.4-10.5-.2-17-2.2-7.6-6.7-14.2-11.3-19.4-.3.2-.7.4-1.2.6.9 1 1.8 2.2 2.8 3.4 3.6 6.8 8.2 17.5 6.6 24.5-1.2 5.4-3.2 8.9-4.9 11.1-1 .2-2 .5-3 .7-.8.2-1.6.4-2.3.5 0-.5-.1-1.1-.4-1.6-.1-.3-.3-.5-.5-.7l-.2-.2c-.2-.1-.3-.3-.5-.4-.1 0-.1-.1-.2-.1-.2-.1-.5-.2-.7-.3h-.1c-.2-.1-.4-.1-.7-.1h-.3c-.2 0-.4 0-.5.1h-.2c-.3.1-.5.2-.7.3-.5 0-.6.1-.7.2zM64.4 123.5l1.7-1-1.7 1zM18.4 39.1c-1.1 11.7 12.3 15 28.8 13.1 7.9-.9 15.9-3.2 22.1-6.6 2.8.8 5.8 1 9 .4 9.5-1.7 16.1-9.3 14.8-17.1-.3-1.7-.9-3.2-1.8-4.6.2 2.6-.3 5.5-2 8.7-.1.2-.2.3-.4.4-2 4.2-6.7 7-12 6.6-4.3-.4-7.9-2.8-9.8-6.2-2.6-3.7-1.8-7.3-1.7-7.5.1-.3.4-.5.7-.4.3.1.5.4.4.7 0 .1-.4 1.5.1 3.5 1.7 4.1 5.3 7 10.3 7.2.1-.1.2-.1.4-.1.4 0 10.5-.3 11.6-9.9.7-6.3-2.5-10-5.2-12-1.8-1-3.8-1.6-6-1.6-1 0-1.8-.7-2.6-1.5h-.2c-5.5-3.8-12.5-6.3-20.1
-6.3-3.4 0-7 .5-10.6 1.6-2.1.6-4.1 1.5-6.1 2.6-10.3 6.9-18.9 20-19.7 29zM60 42c-.1 0-.2.1-.2.1-.2 0-.4-.1-.5-.3-2.6-5.6-.5-10.6-.4-10.8.1-.3.4-.4.7-.3.3.1.4.5.3.7 0 0-2 4.7.4 9.9.1.2 0 .6-.3.7zm25.3-12.3c.3.5.2 1.2-.3 1.5-.2.1-.4.2-.6.2-.4 0-.7-.2-.9-.5 0-.1-1.1-1.6-3.2-1.6s-3.2 1.6-3.2 1.6c-.3.5-1 .7-1.5.3-.5-.3-.7-1-.3-1.5.1-.1 1.8-2.7 5.1-2.7 3.2.1 4.9 2.6 4.9 2.7zm-17.2-.9h-.2c-.2 0-.5-.1-.5-.4l-.1-.3c-.1-.3.1-.6.4-.7.3-.1.6.1.7.4l.1.3c.1.3-.1.6-.4.7zm5.6 6.2h-.1c-.1 0-2.9-.6-5.1-4.3-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2 2 3.3 4.4 3.8 4.4 3.8.3.1.5.3.4.6-.1.4-.3.5-.6.5zm8.1-12.2l-.1 3.5v.3c-.4-.1-.9-.2-1.4-.2-.6 0-1.1.1-1.6.2 0-.1-.1-.3 0-.4l.1-3.5c0-.9.7-1.5 1.6-1.5.7 0 1.4.7 1.4 1.6zM72.7 14c.1.3 0 .6-.3.7 0 0-2.4.9-3.6 3.3-.1.2-.3.3-.5.3-.1 0-.2 0-.2-.1-.3-.1-.4-.5-.2-.7 1.4-2.8 4.1-3.8 4.2-3.9.2-.1.5.1.6.4zM23.4 111.2c-1-.3-2-.6-2.9-.8-.8-1.5-2-4.7-2.1-9.3-.1-3.7 1.3-8.5 2.6-12.2 2.4-3.8 5.2-6.6 5.2-6.6.3-.3.3-.7 0-1-.3-.3-.7-.3-1 0-.1.1-1 .9-2.1 2.3.1-.1.1-.2.1-.2-4.4 5.1-7.1 10.6
-8.2 16.4-1 5.3-.2 9.7.6 12.4-.1.1-.1.2-.2.3v.1c0 .1-.1.1-.1.2v.4c0 .1 0 .2.1.3l3.9 10.1v1.3c.1 1 .7 1.9 1.6 2.5.2.1.5.2.7.3h.1c.2.1.5.1.7.1H23.3c-.4-2.2-.5-4.5-.5-6.6-.1 0-.2-.1-.2-.2l-.1-.1c-.3 0-.7.1-1 .2l-1-2.7-1-1.2c-.2-.2-.2-.6.1-.8.2-.2.6-.2.8.1l1.1 1.3 1.4 1c.1-1.2.1-2.3.2-3.3-1.6-.9-3.3-2-3.6-2.1-.3-.1-.4-.4-.3-.6v-.1c.1-.3.4-.4.7-.3.2.1 1 .5 1.9 1.1.4.1.9.3 1.4.4-.1-.9 0-1.9.2-2.7z" fill="#F9F9FA"/><path d="M64.4 121.4l.6-.4 1.4-.9 1.1-.7-.9-1c-.4-.4-.5-.6-.6-1l-.4-1.2-.2.1h-.3c-2.2.8-6.3 2-7.5 1.5-1.6-.6-1.6-2.8-1.6-2.8 0-.1-.1-.3-.1-.3-.1-.1-.2-.2-.4-.2-.3 0-.6.2-.6.6 0 .1 0 3 2.3 3.9.3.1.7.2 1.2.2.8 0 1.7-.1 2.6-.3l.9.7c.3.2.5.4.7.6.2.2.5.4.8.7.1.1.2.2.4.3l.6.2zm1.4-2.1l-1.3.8c-.9-.6-1.1-.9-1.9-1.5.9-.2 1.6-.3 2.4-.7.1.4.2.6.4.9.1.1.3.2.4.5z" fill="url(#p)"/><path d="M69.6 123.1l.9-2.1.8-1.8-1.9.2h-.6l-.3.2-.2.1c-.1 0-.1 0-.2.1l-4.5 2.8c-.1.1-.2.2-.3.4 0 0-.4 2.8-2.5 2.8-2.2 0-2.9-1-3.3-2.5-.1-.3-.3-.4-.6-.4h-.1c-.3.1-.5.4-.4.7.4 1.4 1.3 3.3 4.2 3.3h.2c2.2-.1 3.2-2.2 3.
5-3.5l1.6-1 .5.3.4.2c.4.2.7.4 1.1.6l.1.1 1 .5.6-1zm-1-.4c-.2-.1-.4-.2-.6-.4-.3-.2-.6-.3-.8-.5l1.9-1.2h.4l-.9 2.1z" fill="url(#q)"/><path d="M78.7 22.7l-.1 3.5v.4c.5-.1 1-.2 1.6-.2.5 0 .9.1 1.4.2v-.3l.1-3.5c0-.9-.7-1.6-1.5-1.6-.8-.1-1.5.6-1.5 1.5z" fill="url(#r)"/><path d="M80.2 27.1c-3.4 0-5 2.5-5.1 2.7-.3.5-.2 1.2.3 1.5.5.3 1.2.2 1.5-.3 0 0 1.1-1.6 3.2-1.6s3.2 1.6 3.2 1.6c.2.3.6.5.9.5.2 0 .4-.1.6-.2.5-.3.7-1 .3-1.5.2-.2-1.5-2.7-4.9-2.7z" fill="url(#s)"/><path d="M67.8 17.5c-.1.3 0 .6.2.7.1 0 .2.1.2.1.2 0 .4-.1.5-.3 1.2-2.4 3.6-3.3 3.6-3.3.3-.1.4-.4.3-.7-.1-.3-.4-.4-.7-.3 0 0-2.7 1-4.1 3.8z" fill="url(#t)"/><path d="M59.9 31.3c.1-.3 0-.6-.3-.7-.3-.1-.6 0-.7.3-.1.2-2.2 5.2.4 10.8.1.2.3.3.5.3.1 0 .2 0 .2-.1.3-.1.4-.5.3-.7-2.4-5.1-.4-9.8-.4-9.9z" fill="url(#u)"/><path d="M73.8 33.9s-2.4-.5-4.4-3.8c-.2-.3-.5-.3-.8-.2-.3.2-.4.5-.2.8 2.3 3.8 5 4.3 5.1 4.3h.1c.3 0 .5-.2.5-.5.2-.2 0-.5-.3-.6z" fill="url(#v)"/><path d="M68.5 28.1l-.1-.3c-.1-.3-.4-.4-.7-.4-.3.1-.4.4-.4.7l.1.3c.1.2.3.4.5.4h.2c
.3-.1.5-.4.4-.7z" fill="url(#w)"/><path d="M65 71.5s0-1.4-.4-2.6c0-.2-.1-.3-.2-.4-1.4.6-6.2 2.4-15.4 3.3-6.1.6-9.9-.8-11.5-1.6l-1.9 1.7s1.1 3.3 9.7 4.1c1.1.1 2.2.1 3.2.1 10.4 0 16.5-4.6 16.5-4.6z" fill="url(#x)"/><path d="M49 71.8c9.2-.9 14-2.7 15.4-3.3-.5-.9-1.7-1.4-1.7-1.4s-7.8 2.6-14.5 3c-.7 0-1.4.1-2.1.1-5.2 0-7.2-1.2-7.2-1.2l-1.4 1.3c1.6.7 5.4 2.1 11.5 1.5z" fill="#FFF"/><path d="M47.9 83.5c.3-.3.3-.8.1-1.2-.2-.4-.5-.6-1-.6l-7.8-.4c-.4 0-.8.2-1 .5l-.1.2-6.2 10.2c-.2.3-.2.7-.1 1.1.2.3.5.6.8.6l4.5.6-3.6 9.5c-.2.5 0 1 .4 1.3.2.1.4.2.6.2.3 0 .5-.1.8-.3l12.5-11.6 3.1-2.9c.3-.3.4-.8.3-1.2-.2-.4-.5-.7-1-.7l-2.3-.1-4.1-.2 4.1-5z" fill="url(#y)"/><path d="M77.3 148.2c-.5 1.6-2.3 2.8-5.6 3.7-3.5.9-6 .8-7.5-.3-.2-.2-.4-.3-.6-.5-1.1.7-1.6 1.7-1.3 2.4.5 1.4 3.5 2.3 9.2.9 8.2-2 9.3-4.8 9.5-5.6.1-.8-.2-1.2-.3-1.3-.5-.3-1.9-.5-3.2-.4-.1.3-.1.7-.2 1.1z" fill="#FFF"/><path d="M75.7 144.9c-.1 0-.2 0-.2.1-.4-.9-.8-1.9-1.4-3 1.3.1 2.7.1 4.1.1 13.4 0 28.1-4.3 30.4-7.7.6-.8.7-1.8.3-2.7-1.1-2.7-4.3-2.
9-9.2-3.2-5.7-.4-14.2-.9-24.5-5.2-.4-.2-.8-.3-1.1-.5 0-.1 0-.1.1-.2 0-.1.1-.2.1-.3l1.9-4.4c.2-.4.3-.9.3-1.3.5-1 .9-2 1.2-2.9.5 0 1 .1 1.5.1.7 0 1.3 0 1.8-.1s1-.2 1.3-.4c2.4-1.3 4.4-1.4 7.6-1.4 1.7 0 3.8-.1 6.5-.3 7.8-.8 12.9-6.6 12.9-10 .2-.9 3.9-3.5 6.1-5.1 4.5-3.2 6.8-4.9 6.5-6.6-.3-1.8-2.7-1.9-11.1-1.9-7.8-.1-18.4-.1-24.5-2.6-4.7-1.9-8.9-5-12.2-7.9-4-3.5-6.6-6.6-6.7-6.6 0-.1-.1-.1-.2-.1 0-.6-.2-1.5-.4-2.4-.3-1.1-1.1-1.9-1.7-2.4 1.3-2.8 2.8-5.7 4.4-8.6 2.5-1.4 4.9-2.8 7-4.4C89.2 50.6 98 41.8 98 31.6c0-10.4-9.4-19.4-22.3-21.6-6.1-4.1-13.5-6.4-20.9-6.4-3.8 0-7.6.6-11.3 1.7-3.4 1.1-6.8 2.7-10.1 4.9-.6-.1-1.2-.1-1.8-.1h-1.2c-2 0-4.1.2-6.1.6-1.6-.6-3.3-.9-5-.9-1.4 0-2.9.2-4.3.7-7.5 2.4-11.7 10.4-9.3 17.9.3 1 .7 1.9 1.3 2.9.8 3.2 2.8 6.1 5.7 8.5-.7 2.9-1 5.7-1 8.4.2 11.8 8.5 18.3 23.3 18.3 1.9 0 3.8-.1 5.9-.3-.3.3-.5.7-.7 1-.3-.1-.6-.2-.9-.2-.5 0-1.1.2-1.5.6l-3.3 3c-.3.3-.6.7-.7 1.1C22 79.9 15.1 89.3 13.2 99.8c-1 5.2-.4 9.6.4 12.6-.3.8-.3 1.7 0 2.5l3.7 9.6c-.2 2.1.8 4.2 2.7 5.4.8.5 1.7.
8 2.7.8.9 3 2.1 5.6 3.7 7.8.6 3.6 1.2 6.5 1.9 8.9-1.4.4-2.5 1.3-3.1 2.3-.4.7-.6 1.5-.5 2.3.1.4.3 1.2.9 1.9 3.4 5.5 7 11.8 7.1 12.9 0 .4-.2 1.1-.3 1.9-.5 2.4-1.1 5.5-.3 7.3.4 1.1 1.8 1.6 3.8 1.6h.5c3.2-.1 8.6-1.8 9.9-6 1.4-4.1 1.2-15.5 1.1-20.3v-1.2-.9-.1-.1c0-.1 0-.2-.1-.3v-.1c-.1-.3-.2-.6-.4-.8.8 0 1.6.1 2.4.1 3.7 0 7.5-.5 11.2-1.5.9 1.1 1.7 2.1 2.4 3.1-1.2.8-2 1.8-2.3 2.9-.2.7-.2 1.4 0 2.1 0 .1-.1.1-.1.2-.1.4 0 .8.2 1 4.2 5.2 8.7 11.3 9 12.4 0 .4-.1 1.1-.2 1.9-.3 2.5-.7 5.6.3 7.3.6 1.1 2.1 1.4 3.5 1.4.6 0 1.1-.1 1.6-.1 4-.5 8.5-2.8 9.5-6.5.7-2.6.5-8 .2-12.9.9-.5 1.8-1.3 2.2-2.4 1.6-4.2 0-7.3 0-7.4-.1-.2-.3-.3-.5-.3s-.4.1-.5.3c-.4.9-1 2.3-1.8 3.3-.2-1.9-.4-3.1-.4-3.3.2-1.6-.5-2.8-1.3-3.3l-.6-.3c-2.3-1.2-5.3-.9-6-.9zm5.7 13.8c-.3.1-.5.4-.4.7.1.3.4.5.7.4 0 0 .1 0 .3-.1.3 4.5.4 9.2-.2 11.4-.5 1.9-2.6 3.5-5.6 4.4-2.6.8-4.6.6-4.9.3-.6-1.1-.3-4.1 0-5.9.1-.6.1-1.1.2-1.5.7.2 1.3.3 1.9.3 1.7 0 2.8-.7 2.9-.8.3-.2.3-.5.2-.8-.2-.3-.5-.3-.8-.2 0 0-1.8 1.1-4.3.2-.6-1.8-3.6-6-6.8-10 .6.1 1.2.1 1.
9.1 1.5 0 3.3-.2 5.6-.8 4.9-1.2 7.7-2.7 9.3-4.2 0 .4.1.9.2 1.5-1.2.4-2.8.9-3.4 2.8-.7 2.4.8 4.1.9 4.2.1.1.3.2.4.2.1 0 .3 0 .4-.1.2-.2.2-.6 0-.8 0-.1-1.2-1.3-.6-3.1.4-1.4 1.6-1.8 2.8-2.1.2-.1.3-.1.5-.2 0 .1 0 .1.1.2.1.2.3.3.5.3.1 0 .2 0 .3-.1.6-.4 2.5-1.6 2.6-2.8 0-.3-.2-.6-.5-.6h-.1c.2-.3.3-.6.5-.9.3 1.2.4 3-.4 5.2-1.1 2-4.2 2.8-4.2 2.8zm-.8-11.2c.1.1.5.5.3 1.3-.1.8-1.2 3.6-9.5 5.6-5.7 1.4-8.7.5-9.2-.9-.2-.7.2-1.7 1.3-2.4.2.2.3.3.6.5 1.5 1 4 1.1 7.5.3 3.3-.8 5.1-2 5.6-3.7.1-.4.1-.8.1-1.1 1.4 0 2.8.1 3.3.4zM69.1 76c3.5 3.5 9.4 8.6 16.3 11.4 6.5 2.7 17.4 2.8 25.4 2.8 3.4 0 7.1 0 8.6.3-.9 1-3.5 2.9-5.3 4.2-2.7 1.9-4.7 3.3-5.8 4.6-9.9 1.2-15.8-1.2-15.9-1.2-.3-.1-.6 0-.7.3-.1.3 0 .6.3.7.2.1 4 1.6 10.8 1.6 1.4 0 3-.1 4.6-.2-.2.4-.3.7-.3 1.1 0 2.1-4.1 7.1-10.9 7.8-2.6.3-4.5.3-6.3.3-3.3.1-5.7.1-8.6 1.7-.5.3-1.5.4-2.8.3.3-1.1.5-1.8.5-1.8 1.7-8.1 1.1-20.1-9.9-33.9zM44.8 64.2c11.7-2.2 18.6-5 22-6.8-1.2 2.2-2.5 4.8-3.8 7.5h-.3c-.2 0-.5 0-.7.1-.1 0-7.6 2.5-13.9 2.9-.7 0-1.3.1-2 .1-1.7 0-3-.1-4-.
3.9-1.3 1.8-2.4 2.7-3.5zm3.7 11.9c-1 0-2.1 0-3.2-.1-8.5-.8-9.7-4.1-9.7-4.1l1.9-1.7 1.4-1.3s2.1 1.2 7.2 1.2c.6 0 1.3 0 2.1-.1 6.7-.4 14.5-3 14.5-3s1.1.5 1.7 1.4c.1.1.1.3.2.4.4 1.2.4 2.6.4 2.6s-6.1 4.7-16.5 4.7zM34.7 63.9h-2.3c-.6 0-1.3-.1-1.9-.1h-.3c-.5-.1-1.1-.1-1.6-.2-.1 0-.2 0-.4-.1-.6-.1-1.1-.2-1.7-.3-.1 0-.2-.1-.3-.1-.5-.1-1-.3-1.4-.4-.1 0-.2 0-.2-.1l-1.5-.6c-.1 0-.2-.1-.3-.1-.5-.2-.9-.4-1.3-.7h-.1c-.4-.2-.9-.5-1.3-.8-.1-.1-.2-.1-.3-.2l-1.2-.9-.1-.1-.9-.9c-.1-.1-.1-.2-.2-.2-.3-.4-.6-.7-.9-1.1-.1-.1-.1-.2-.1-.2-.2-.4-.5-.7-.7-1.1 0-.1-.1-.2-.1-.3-.2-.4-.4-.9-.6-1.4 0-.1-.1-.2-.1-.3-.2-.5-.3-.9-.4-1.4 0-.1 0-.1-.1-.2-.1-.5-.2-1.1-.3-1.7V50c-.1-.6-.1-1.2-.1-1.8v-2-.5c0-.7.1-1.3.2-2s.2-1.4.4-2.1c0-.1.1-.3.1-.4.1-.3.1-.6.2-.8.8-3.1 3-6.2 3-6.3.2-.3.1-.6-.1-.8-.1-.1-.3-.1-.5-.1-.1 0-.2.1-.3.2 0 .1-.7 1-1.4 2.3-.4.8-.9 1.7-1.3 2.7 0 0-.1 0-.1-.1l-.3-.3c-.3-.2-.5-.5-.8-.7l-.3-.3c-.2-.3-.5-.5-.7-.8-.5-.5-.9-1.1-1.2-1.7-.1-.2-.2-.4-.3-.5-.1-.2-.3-.5-.4-.7l-.3-.6c-.1-.2-.2-.5-.3-.7-.1-.2-.
2-.5-.2-.7-.1-.2-.1-.4-.2-.7-.2-.4-.5-.8-.6-1.2 0 0 0-.1-.1-.1-.2-.4-.4-.9-.5-1.3-.5-1.6-.6-3.1-.5-4.7.1-1.2.4-2.4.8-3.5.7-1.8 1.9-3.4 3.4-4.7.6-.5 1.2-1 1.9-1.3.7-.4 1.4-.7 2.2-1 .4-.1.7-.2 1.1-.3.1 0 .2 0 .3-.1.2 0 .5-.1.7-.1H19.4c1.7 0 3.3.4 4.8 1l1.5-.3h.2c.7-.1 1.4-.2 2.1-.2.4 0 .7-.1 1.1-.1h2.5c.2 0 .5 0 .7.1-.8.7-2.1 1.8-3.9 3.7-.9.9-1.8 2.1-3 3.4-.2.2-.2.5 0 .7l.1.1c.1.1.2.1.4.1s.3-.1.4-.2c5.3-6.5 7.6-7.7 7.7-7.7.8-.6 1.6-1.1 2.4-1.6.5-.3 1.1-.6 1.6-.9 2-1.1 4-2 6.1-2.6 3.6-1.1 7.2-1.6 10.6-1.6 7.6 0 14.5 2.4 20.1 6.3h.2c2.1.3 4.1.9 6 1.6.6.3 1.6.8 2.6 1.6 2.7 2 5.9 5.7 5.2 12-1.1 9.6-11.2 9.9-11.6 9.9-.1 0-.3.1-.4.1-5-.2-8.6-3.1-10.3-7.2-.5-1.9-.1-3.3-.1-3.5.1-.3-.1-.6-.4-.7-.3-.1-.6.1-.7.4 0 .2-.9 3.8 1.7 7.5 1.8 3.4 5.5 5.9 9.8 6.2 5.3.4 10-2.3 12-6.6.2-.1.3-.2.4-.4 1.7-3.3 2.2-6.2 2-8.7-.2-2.1-.8-4-1.7-5.6l.8.8c.4.4.8.9 1.2 1.3.5.5.9 1.1 1.3 1.7l.9 1.5c.2.4.5.9.7 1.4.8 1.9 1.3 4 1.3 6.2 0 1.8-.3 3.5-.9 5.1-.2.5-.4 1.1-.7 1.6-2.5 5.2-7.7 9.4-14.5 11.6-1 .3-2.1.6-3.2.8-4.9
.7-9.5-1.7-9.5-1.7-.3-.1-.6 0-.8.2-.1.3 0 .6.2.8.2.1 3.5 1.8 7.7 2-1.6 1.1-3.2 2.1-4.9 3.1-.1 0-.2 0-.3.1 0 0-.2.2-.7.5-.1.1-.2.1-.4.2-2.5 1.4-9.6 4.9-23.1 7.5-.5.1-1 .2-1.5.2-.1 0-.3 0-.4.1l-2.4.3h-.4c-.8.1-1.6.1-2.4.2h-.4c-.8 0-1.6.1-2.4.1v-.8zm9.2 106.6c-.9 2.8-4.7 3.9-5.8 4.2-2.5.6-4 .2-4.2 0-.5-1.2.1-4.2.4-6l.3-1.5c.8.3 1.5.4 2.1.4 1.4 0 2.3-.5 2.3-.6.3-.2.3-.5.2-.8-.2-.3-.5-.3-.8-.2 0 0-1.7 1-3.8-.1-.4-1.9-3.1-6.6-5.5-10.6 1.1.2 2.4.4 4 .4.6 0 1.2 0 1.9-.1 5.1-.3 8.1-1.4 9.8-2.7.2 5.6.1 14.4-.9 17.6zm.7-21.7c.1.1.3.6.1 1.2-.3.7-1.8 3.2-9.8 3.7-5.5.4-8.2-1-8.4-2.3-.1-.7.5-1.5 1.6-2 .1.2.3.4.4.6 1.2 1.2 3.6 1.8 7 1.5 3.2-.2 5.2-1 5.9-2.5.2-.3.3-.7.3-1 1.3.1 2.5.4 2.9.8zm16.2-5.3l-1.2.3c-.1 0-.3.1-.4.1-.3.1-.6.2-.9.2-.2 0-.3.1-.5.1-.3.1-.6.1-.9.2-.2 0-.3.1-.5.1-.3.1-.6.1-1 .2-.1 0-.3.1-.4.1-.4.1-.8.1-1.1.2h-.3c-1 .1-2 .2-3.1.3H49h-.1-.1c-1.5 0-3.1-.1-4.7-.3h-.2c-.8-.1-1.6-.2-2.4-.4h-.2l-2.4-.6v.1c-3.9-1.1-5.3-2.6-5.4-2.6-.2-.2-.6-.2-.8 0-.2.2-.2.6 0 .8.1.1 1.8 1.8 6.2 3v.1c0 1 .1
2 .1 3-.5.3-1.6.7-3.6.8-2.5.2-3.9-.1-4.7-.5-.9-2.6-1.7-6.2-2.3-9.8v-.1c-.1-.3-.1-.6-.2-1 0-.2-.1-.4-.1-.6-.9-1.2-1.7-2.5-2.3-3.9 0-.1-.1-.1-.1-.2-.3-.6-.5-1.2-.7-1.8-2.5-7.9-.5-19.1-.5-19.2.1-.3-.1-.6-.5-.6-.3-.1-.6.1-.6.5 0 .1-.2 1.1-.4 2.7-.5-.3-1-.6-1.4-.8-.9-.6-1.7-1-1.9-1.1-.3-.1-.6.1-.7.3v.1c-.1.3.1.5.3.6.2.1 2 1.1 3.6 2.1-.1 1-.2 2.1-.2 3.3v.7l-1.4-1.7-1.1-1.3c-.2-.2-.5-.3-.8-.1-.2.2-.3.5-.1.8l1 1.2 2 2.5.1.1.2.2c0 2.1.1 4.4.5 6.6h-.8-.1c-.2 0-.5-.1-.7-.1h-.1c-.2-.1-.5-.2-.7-.3-.9-.6-1.5-1.5-1.6-2.5v-.1-.5-.1-.3-.3l-3.9-10.1c0-.1-.1-.2-.1-.3v-.1-.2-.1c0-.1 0-.1.1-.2v-.1c.1-.1.1-.2.2-.3-.8-2.8-1.5-7.1-.6-12.4 1.1-5.8 3.8-11.3 8.2-16.4 2.9-3.4 6.5-6.6 10.9-9.7.7 1 2.1 2.3 5 3.3 1.5.5 3.5 1 6 1.2 1.1.1 2.2.1 3.2.2h.2c2.4 0 4.6-.2 6.5-.6.4.5 1.1 1.2 2 2.4-2.7 9.6-2.5 18.7-1 26.8v.1c.1.6.2 1.2.4 1.8 0 .2.1.4.1.6.1.4.2.9.3 1.3.1.3.1.5.2.8.1.3.2.6.2.9.1-.1.2-.2.3-.2.2-.1.5-.2.7-.3h.2c.2 0 .4-.1.5-.1h.2c.2 0 .5 0 .7.1h.1c.3.1.5.2.7.3.1 0 .1.1.2.1.2.1.3.2.5.4l.2.2c.2.2.4.4.5.7.3.5.4
1 .4 1.6.7-.2 1.5-.4 2.3-.5.1-.2.2-.5.4-.7 0-.1.1-.1.1-.1.1-.2.3-.4.5-.6.1-.2.4-.6.7-1.2.1-.2.2-.5.4-.7 2.1-4.5 5.1-16.4-9.3-32-.6-.8-1.1-1.4-1.5-1.8 3.1-.7 5.6-1.7 7.3-2.6.5-.2.9-.4 1.2-.6 4.6 5.2 9.2 11.8 11.3 19.4 1.4 4.9 1.8 10.2.6 15.7 0 0-.1.5-.3 1.3-.4 1.4-1.1 3.6-2.2 5.6v.5c0 .1 0 .2-.1.3l-2.7 6.2c-.4.8-1 2.1-1.4 3.1-.1.3-.2.6-.3.8 0 .2-.1.3-.1.4 0 .1-.1.6-.4 1.1-.3.4-.7.9-1.3 1.3-.3.2-.6.3-.9.4h-.3c-.3 0-.5 0-.8-.1-.2-.1-.3-.1-.5 0-1.8-.6-2.1-2.4-2.1-2.5 0-.3-.2-.4-.5-.5h-.1c-.3 0-.5.3-.5.6.1.8.7 2.4 2.3 3.2-.1.5.2 1.1.7 1.3.5.2 1 .3 1.5.3.8 0 1.7-.2 2.5-.7 1.5-.9 2.6-2.6 2.7-3.6.1-.4.6-1.9 1.3-3.5.4.2.8.3 1.2.5 8.5 3.5 15.9 4.6 21.4 5.1h.2c6.3.5 10.2.3 10.9 2.1V133.5c0 .1 0 .1-.1.2 0 0 0 .1-.1.1 0 .1-.1.1-.1.2l-.1.1-.2.2-.1.1c-.1.1-.2.2-.3.2 0 0-.1 0-.1.1-.2.1-.3.2-.5.3-.1 0-.1.1-.2.1-.1.1-.3.2-.4.2-.1 0-.2.1-.2.1-.1.1-.3.1-.4.2-.1 0-.2.1-.3.1-.2.1-.3.1-.5.2-.1 0-.2.1-.3.1-.2.1-.4.2-.6.2-.1 0-.2.1-.2.1l-.9.3c-.1 0-.1 0-.2.1-.3.1-.5.2-.8.3-.1 0-.2.1-.4.1-.2.1-.5.1-.7.2-.1 0
-.3.1-.4.1-.2.1-.5.1-.7.2-.1 0-.3.1-.4.1-.3.1-.5.1-.8.2-.1 0-.3.1-.4.1l-1.2.3h-.1l-1.2.3c-.1 0-.3.1-.4.1-.3.1-.6.1-.9.2-.2 0-.3.1-.5.1-.3.1-.6.1-.9.2-.2 0-.4.1-.5.1-.3.1-.6.1-.9.1-.2 0-.3.1-.5.1-.4.1-.8.1-1.1.2h-.3c-.5.1-1 .1-1.4.2h-.4c-.3 0-.7.1-1 .1h-.5c-.3 0-.6.1-1 .1h-.6c-.3 0-.6 0-1 .1h-6c-.5 0-.9 0-1.4-.1h-.6c-.4 0-.9-.1-1.3-.1-.2 0-.4 0-.6-.1-.2 0-.4-.1-.6-.1-1.5-2.5-2.6-4.3-2.6-4.3-.2-.3-.5-.4-.8-.2-.3.2-.4.5-.2.8 0 0 1.6 2.7 3.7 6.1.9 1.7 1.7 3.3 2.2 4.7l.6 1.8c-.6.4-1.6.9-3.3 1.3-2.8.7-4.4.6-5.3.3-1.4-2.6-3.1-4.9-4.6-6.8zm3.7-32c-.1.1-.1.2-.2.3l-.3.3c-.2-.3-.5-.6-.7-.9l1.2.3zm1-2c-2.4-.6-4.8-1.2-7-1.8-1.7-8.3-1.7-16.4 0-24.2 10.1 12.4 8.6 21.7 7 26z" fill="url(#z)"/><path d="M35 155.9c-.7 0-1.3.1-1.9.1-1.6 0-3-.2-4-.4 2.4 4 5 8.7 5.5 10.6 2.2 1.1 3.8.1 3.8.1.3-.2.6-.1.8.2.2.3.1.6-.2.8-.1 0-1 .6-2.3.6-.6 0-1.3-.1-2.1-.4-.1.4-.2.9-.3 1.5-.3 1.8-.9 4.8-.4 6 .2.2 1.8.5 4.2 0 1.1-.3 4.8-1.3 5.8-4.2 1.1-3.2 1.1-12 1-17.3-1.8 1-4.7 2-9.9 2.4z" fill="url(#A)"/><path d="M41.5 148.8
c-.8 1.5-2.7 2.3-5.9 2.5-3.4.2-5.8-.3-7-1.5-.2-.2-.3-.4-.4-.6-1.1.5-1.7 1.3-1.6 2 .2 1.4 2.9 2.7 8.4 2.3 8-.5 9.5-2.9 9.8-3.7.2-.6 0-1.1-.1-1.2-.4-.4-1.6-.7-2.8-.9-.1.5-.2.8-.4 1.1z" fill="#FFF"/><path d="M85.3 156c.8-2.2.7-4.1.4-5.2-.1.3-.3.6-.5.9h.1c.3 0 .5.3.5.6-.2 1.1-2.1 2.4-2.6 2.8-.1.1-.2.1-.3.1-.2 0-.4-.1-.5-.3 0-.1-.1-.1-.1-.2-.2.1-.3.1-.5.2-1.1.4-2.3.7-2.8 2.1-.6 1.7.6 3 .6 3.1.2.2.2.6 0 .8-.1.1-.2.1-.4.1s-.3-.1-.4-.2c-.1-.1-1.6-1.8-.9-4.2.6-1.9 2.2-2.4 3.4-2.8-.1-.5-.1-1-.2-1.5-1.6 1.5-4.4 3-9.3 4.2-2.3.6-4.1.8-5.6.8-.7 0-1.3-.1-1.9-.1 3.2 4.1 6.2 8.2 6.8 10 2.5 1 4.3-.2 4.3-.2.3-.2.6-.1.8.2.2.3.1.6-.2.8-.1 0-1.2.8-2.9.8-.6 0-1.2-.1-1.9-.3 0 .4-.1 1-.2 1.5-.2 1.8-.6 4.8 0 5.9.3.3 2.3.5 4.9-.3 3-.9 5.1-2.6 5.6-4.4.6-2.2.5-6.9.2-11.4-.2 0-.3.1-.3.1-.3.1-.6-.1-.7-.4-.1-.3.1-.6.4-.7.3-.1 3.4-.9 4.2-2.8z" fill="url(#B)"/></g></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/figure_private.svg b/browser/extensions/onboarding/content/img/figure_private.svg
deleted file mode 100644
index f90163e4b4d7..000000000000
--- a/browser/extensions/onboarding/content/img/figure_private.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="289" height="237" viewBox="0 0 289 237" xmlns="http://www.w3.org/2000/svg"><title>private-browsing</title><defs><linearGradient x1="12.376%" y1="17.359%" x2="82.943%" y2="91.352%" id="a"><stop stop-color="#E60024" offset="0%"/><stop stop-color="#ED00B5" offset="51.53%"/><stop stop-color="#8000D7" offset="100%"/></linearGradient><linearGradient x1="-3.914%" y1=".14%" x2="98.417%" y2="106.522%" id="b"><stop stop-color="#E60024" offset="0%"/><stop stop-color="#ED00B5" offset="51.53%"/><stop stop-color="#8000D7" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><path d="M-30-29h352v303H-30z"/><g fill-rule="nonzero"><g><ellipse fill="#EDEDF0" cx="226.9" cy="229.8" rx="54.2" ry="6.7"/><g fill="#D7D7DB"><path d="M195.6 79.5h-76.5c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h76.5c.6 0 1.1.5 1.1 1.1 0 .6-.4 1.1-1.1 1.1zM148.7 73.8h-19.2c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h19.2c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zM260.7 84.5h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0
.6.2.6.6 0 .4-.3.6-.6.6zm-5.6 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-12.3 0h-13.4c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-23.4 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-5.6 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-12.3 0h-13.4c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.2.6-.6.6zm-23.4 0H177c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-5.6 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-12.2 0h-13.4c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6z"/></g><g transform="translate(171 26)"><path d="M31.5 4.5c0 .1 0 .1-.1.2l-3.7.6-2.3.4c-.1 0-.1 0-.2-.1l-.7-4.2c0-.1 0-.1.1-.2l6-.9c.1 0 .1 0 .2.1l.7 4.1z" fill="#D7D7DB"/><path d="M35 26.7L5.2 31.4c-.8.1-1.5-.4-1.7-1.2L.2 9.2c-.1-.8.4-1.5 1.2-1.7l29.8-4.7c.8-.1 1.5.4 1.7 1.2l3.3 21c.1.8-.4 1.5-1.2 1.7z" fill="#D7D7DB"/><path d="
M32.1 9.4s-.1.1 0 0l-4.8.8h-.1l-.3-1.9s0-.1.1-.1l4.7-.7h.1l.3 1.9z" fill="#F9F9FA"/><circle transform="rotate(-8.946 119.14 -7.38)" cx="2.592" cy="2.794" r="1.7" fill="#F9F9FA"/><circle transform="rotate(-8.946 52.95 -31.036)" cx="11.1" cy="10.705" r="9.3" fill="#F9F9FA"/><path d="M17.2 10.9c-3.2.5-5.4 3.5-4.9 6.7s3.5 5.4 6.7 4.9 5.4-3.5 4.9-6.7c-.5-3.3-3.5-5.4-6.7-4.9z" fill="#D7D7DB"/><circle fill="#F9F9FA" transform="rotate(-8.946 19.487 14.795)" cx="19.487" cy="14.795" r="1.1"/></g><g transform="translate(46)"><path d="M30.4 4.8c0 .1 0 .1-.1.1l-3.6.3-2.2.2c-.1 0-.1 0-.1-.1L24 1.2c0-.1 0-.1.1-.1l5.8-.5c.1 0 .1 0 .1.1l.4 4.1z" fill="#D7D7DB"/><path d="M32.3 26.2L3.5 28.7c-.8.1-1.4-.5-1.5-1.3L.2 7.1c-.1-.8.5-1.4 1.3-1.5l28.8-2.5c.8-.1 1.4.5 1.5 1.3l1.8 20.3c0 .7-.6 1.4-1.3 1.5z" fill="#D7D7DB"/><path d="M30.6 9.4c0 .1 0 .1 0 0l-4.7.5c-.1 0-.1 0-.1-.1l-.2-1.9s0-.1.1-.1l4.6-.4c.1 0 .1 0 .1.1l.2 1.9z" fill="#F9F9FA"/><circle transform="rotate(-4.97 187.782 -12.435)" cx="2.497" cy="2.6
01" r="1.7" fill="#E1E1E6"/><circle transform="rotate(-4.97 70.888 -67.624)" cx="9.799" cy="10.501" r="8.9" fill="#F9F9FA"/><path d="M16.3 9.9c-3.1.3-5.4 3-5.1 6.1.3 3.1 3 5.4 6.1 5.1 3.1-.3 5.4-3 5.1-6.1-.3-3.1-3-5.4-6.1-5.1z" fill="#D7D7DB"/><circle fill="#F9F9FA" transform="rotate(-4.97 18.195 13.8)" cx="18.195" cy="13.8" r="1"/></g><path d="M170.8 55.2h24.5s-7.7-17.2 8.6-19.4c14.5-2 20.3 13 20.3 13s1.7-8.6 10.4-7c8.5 1.6 14.8 15.3 14.8 15.3h21.4" fill="#F9F9FA"/><path d="M271.2 53.1h-8.6c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h8.6c.3 0 .6.2.6.6 0 .3-.3.6-.6.6zm-18.6 0h-1.1c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h1.1c.3 0 .6.2.6.6-.1.3-.3.6-.6.6zm-56.9-.7h-2.2c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h1.4c0-.1-.1-.2-.1-.3-.1-.3 0-.6.3-.7.3-.1.6 0 .7.3.2.6.4 1 .4 1 .1.2.1.4 0 .5-.1.3-.3.4-.5.4zm-11.1 0h-13.4c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.4c.3 0 .6.2.6.6-.1.4-.3.6-.6.6zm63.8-1.8c-.2 0-.4-.1-.5-.3-.6-1-1.2-1.9-1.9-2.7-.2-.2-.1-.6.1-.8.2-.2.6-.1.8.1.7.9 1.3 1.8 1.9 2.8.2.3.1.6-.2.8 0 .1-.1.1-.2.1zm-5
4.2-3.5c-.3 0-.5-.2-.5-.5-.1-.4-.1-.7-.2-1.1 0-.3.2-.6.5-.6s.6.2.6.5c0 .4.1.7.2 1.1 0 .2-.2.5-.6.6zm28.8-4.2c-.2 0-.4-.1-.5-.3l-.6-.9c-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2.2.3.4.7.6 1 .2.3.1.6-.2.8-.1-.1-.2 0-.3 0zm17.3-1.4c-.1 0-.2 0-.3-.1-1.7-1.2-3.4-2-5.1-2.4-.7-.1-1.4-.2-2-.2-1.8 0-3.3.5-4.6 1.5-.2.2-.6.2-.8-.1-.2-.2-.2-.6.1-.8 1.5-1.2 3.3-1.8 5.3-1.8.7 0 1.5.1 2.2.2 1.8.4 3.7 1.2 5.6 2.5.2.2.3.5.1.8-.1.3-.3.4-.5.4zm-20.7-3.1c-.1 0-.3-.1-.4-.2-.8-.8-1.6-1.5-2.4-2.1-.2-.2-.3-.5-.1-.8.2-.2.5-.3.8-.1.9.7 1.8 1.4 2.6 2.3.2.2.2.6 0 .8-.2.1-.3.1-.5.1zm-23.1-1.8c-.1 0-.3 0-.4-.2-.2-.2-.2-.6 0-.8 1.8-2 4.6-3.2 8.2-3.7 1.6-.2 3.2-.2 4.7-.1.3 0 .5.3.5.6s-.3.5-.6.5c-1.4-.2-2.9-.1-4.5.1-3.3.5-5.9 1.6-7.5 3.4-.1.1-.2.2-.4.2z" fill="#D7D7DB"/><path d="M271.9 57.4H170.8c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1H272c.6 0 1.1.5 1.1 1.1-.1.6-.6 1.1-1.2 1.1z" fill="#F9F9FA"/><g><path d="M26.5 27h13.7s-4.3-9.5 4.8-10.8c8.1-1.1 11.3 7.2 11.3 7.2s1-4.8 5.8-3.9c4.7.9 8.2 8.5 8.2 8.5h11.9" fill="#F9F9FA"/><pat
h d="M40.3 25.5H26.9c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm41.5-.2h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-5.6 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-19.6-3.4c-.2 0-.4-.1-.5-.4 0 0-.1-.4-.4-.9-.1-.3 0-.6.2-.8.2-.1.4-.1.6 0 .7-1.5 2.2-3.2 4.7-3.2.4 0 .8 0 1.3.1 1.4.3 2.9 1 4.3 2.2.2.2.3.6.1.8-.2.2-.6.3-.8.1-1.3-1.1-2.5-1.7-3.8-2-.4-.1-.7-.1-1.1-.1-3.3 0-4 3.4-4 3.5 0 .2-.2.4-.4.4-.1.3-.1.3-.2.3zm-16-4.8c-.1 0-.2 0-.3-.1-.3-.2-.3-.5-.1-.8.7-1 1.7-1.7 2.9-2.1.3-.1.6 0 .7.3.1.3 0 .6-.3.7-1 .4-1.8 1-2.4 1.7-.2.3-.4.3-.5.3zm8.1-2.3h-.1c-.3-.1-.7-.1-1-.1-.3 0-.5-.3-.5-.6s.3-.5.6-.5c.4 0 .8.1 1.2.2.3.1.5.4.4.7-.1.1-.3.3-.6.3z" fill="#D7D7DB"/><path d="M83 29.3H26.7c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1H83c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1z" fill="#F9F9FA"/></g><g><path d="M6.5 172.2c-2.8 0-5-2.1-5-4.8v-118c0-2.9 2.4-5.3 5.3-5.3h126.7c2.9 0 5.3 2.4 5.3 5.3v118c0 2.6-2.3 4.8-5 4.8H6.5z" f
ill="#FFF"/><path d="M133.5 45.1c2.3 0 4.2 1.9 4.2 4.2v118c0 2-1.8 3.7-3.9 3.7H6.5c-2.2 0-3.9-1.6-3.9-3.7V49.4c0-2.3 1.9-4.2 4.2-4.2h126.7v-.1zm0-2.2H6.8c-3.6 0-6.5 2.9-6.5 6.5v118c0 3.3 2.8 5.9 6.2 5.9h127.3c3.4 0 6.2-2.6 6.2-5.9v-118c0-3.6-2.9-6.5-6.5-6.5z" fill="#D7D7DB"/><path d="M133.1 66.2v99.1c0 1-.1 1.2-.1 1.2s-.3.1-1.2.1H8.5c-1 0-1.2-.1-1.2-.1s-.1-.3-.1-1.2V66.2h125.9zm1.2-1.1H6.1v100.2c0 2.1.4 2.5 2.5 2.5h123.3c2.1 0 2.5-.4 2.5-2.5V65.1h-.1z" fill="#D7D7DB"/><g fill="#D7D7DB"><circle cx="3.6" cy="3" r="2.9" transform="translate(10 52)"/><circle cx="2.9" cy="3" r="2.9" transform="translate(20 52)"/><path d="M102 58.3H38.3c-1.7 0-3.1-1.4-3.1-3.1v-.3c0-1.7 1.4-3.1 3.1-3.1H102c1.7 0 3.1 1.4 3.1 3.1v.3c0 1.7-1.4 3.1-3.1 3.1z"/><g><circle cx="3.5" cy="3" r="2.9" transform="translate(114 52)"/><circle cx="3.7" cy="3" r="2.9" transform="translate(123 52)"/></g></g><path d="M88.2 127.5c-7.2 0-12.1-8.6-19-8.6s-12.2 8.6-19 8.6c-8.8 0-15.4-8.3-15.5-22.6-.1-8.9 2.6-11.7 14.1-11.7s14.8
4.7 20.4 4.7c5.6 0 8.9-4.7 20.4-4.7 11.5 0 14.1 2.8 14.1 11.7-.1 14.3-6.7 22.6-15.5 22.6zm-33.8-23.4c-7 .3-9.8 4.4-9.8 5.5 0 1 4.6 3.9 9.1 3.9s9.8-1.7 9.8-3.1c.1-1.7-2.5-6.6-9.1-6.3zm29.6 0c-6.6-.3-9.1 4.6-9.1 6.2 0 1.5 5.3 3.1 9.8 3.1 4.5 0 9.1-2.9 9.1-3.9 0-.9-2.8-5.1-9.8-5.4z" fill="#D7D7DB"/></g></g><path d="M215.6 218.3c.2.5.4.9.6 1.4.4.9.8 1.6 1.2 2.2-.4-.6-.7-1.4-1.2-2.2-.2-.5-.4-.9-.6-1.4z" fill="#FFF"/><g transform="translate(78 151)"><ellipse fill="#EDEDF0" cx="25.2" cy="77.6" rx="21.9" ry="4.3"/><circle fill="#D7D7DB" cx="24.7" cy="37.4" r="6.9"/><path d="M30.2 80.7c-.6 0-1-.4-1.1-1l-4.6-39.3c-4.8 15.4-10.8 34.9-11 36.3 0 .6-.5 1.1-1.1 1.1-.6 0-1.1-.5-1.1-1.2 0-1.3 8.8-29.7 12.7-41.9.2-.5.7-.8 1.2-.8s.9.5 1 1l5.3 44.5c.1.6-.4 1.2-1 1.2-.2.1-.3.1-.3.1z" fill="#D7D7DB"/><path d="M35 75.4c-.5 0-1-.3-1.1-.8L23.8 35.3c-.2-.6.2-1.2.8-1.4.6-.2 1.2.2 1.4.8L36.1 74c.2.6-.2 1.2-.8 1.4H35zM38.9 5.7c0 .1 0 .2-.1.2l-4.6.9-2.8.6c-.1 0-.2 0-.2-.1l-1-5.3c0-.1 0-.2.1-.2L37.7.3c.1 0 .2 0 .
2.1l1 5.3z" fill="#D7D7DB"/><path d="M44.4 33.2l-37 7.3c-1 .2-1.9-.4-2.1-1.4L.1 13c-.2-1 .4-1.9 1.4-2.1l37-7.3c1-.2 1.9.4 2.1 1.4l5.2 26.1c.2 1-.4 1.9-1.4 2.1z" fill="#D7D7DB"/><path d="M39.5 9.7c0 .1 0 .1-.1.1L33.5 11c-.1 0-.1 0-.2-.1l-.6-3.2c0-.1 0-.1.1-.1l5.9-1.2c.1 0 .1 0 .2.1l.6 3.2z" fill="#F9F9FA"/><circle transform="rotate(-11.21 127.568 -5.075)" cx="3.292" cy="3.304" r="2.2" fill="#F9F9FA"/><circle transform="rotate(-11.21 54.056 -27.865)" cx="13.892" cy="14.489" r="11.7" fill="#F9F9FA"/><path d="M21.4 14.3c-4 .8-6.5 4.6-5.8 8.6.8 4 4.6 6.5 8.6 5.8 4-.8 6.5-4.6 5.8-8.6-.7-4-4.6-6.6-8.6-5.8z" fill="#D7D7DB"/><path d="M21.8 16.1c-2.9.6-4.8 3.4-4.3 6.4.6 2.9 3.4 4.8 6.4 4.3 2.9-.6 4.8-3.4 4.3-6.4-.6-3-3.5-4.9-6.4-4.3zm2.9 4.4c-.7.1-1.4-.3-1.6-1-.2-.7.3-1.4 1-1.6.7-.1 1.4.3 1.6 1 .2.7-.3 1.4-1 1.6z" fill="#F9F9FA"/></g><g><path d="M281 118c.4-.9 1.4-1.3 2.3-.9.2.1.4.2.5.4-.1-.2-.3-.3-.5-.4-.2-.1-.5-.2-.7-.2-.7 0-1.3.4-1.6 1.1l-.1.1.1-.1zM265.6 124.8c0 .1 0 .1.1.2h-.1.1c0-.1-.1-
.2-.1-.2zM277.6 116.2c.1-.9.9-1.7 1.8-1.6.4 0 .6.2.8.4-.2-.2-.4-.3-.8-.4h-.1c-.9 0-1.6.7-1.7 1.6 0 0 0 .5-.1 1.2.1-.7.1-1.1.1-1.2zM179.4 147.8c-.4-.1-.7-.3-1-.6.2.3.6.5 1 .6zM184.1 82.5c2.8-1.7 11.1.7 17.1 3.9 1.5.8 3.4 1.9 5.1 3.4 3-1.1 6.5-2.1 10.9-2.9 4.4-.8 8.2-1 11.4-.8 1.2-2 2.6-3.8 3.8-5.1 4.6-5.1 11.6-10.1 14.7-9.5 3.7.7 10.7 12.6 10.2 25.1l.1.1c.5-12.6-6.5-24.6-10.3-25.3-.2 0-.4-.1-.6-.1-3.5 0-9.9 4.8-14.2 9.6-1.2 1.3-2.6 3.1-3.8 5.1h-1.7c-2.8 0-5.9.2-9.5.9-4.3.8-7.9 1.8-10.8 2.9-1.8-1.4-3.7-2.6-5.2-3.4-4.6-2.5-10.6-4.5-14.4-4.5-1.2 0-2.1.2-2.8.6-3.3 2-5.8 15.5-1.1 27.1 0-.1.1-.1.1-.2-4.7-11.6-2.3-25 1-26.9zM272.8 116.3c-.5-.9-.1-2.1.8-2.5.9-.5 1.6.7 2.1 1.3.5.5.9.7 1.3 1.4-.4-.7-.8-.8-1.3-1.4-.4-.5-1-1.4-1.7-1.4-.1 0-.3 0-.4.1-.9.4-1.3 1.6-.8 2.5l1.4 2.9.6 1.3-.6-1.3-1.4-2.9zM266.8 122.7c.7-.3 1.2-.9 1.6-1.2.7-.5 2.4-.8 3.3-.6 1 .2 2 .4 2.8.8-.9-.4-1.8-.6-2.8-.8h-.5c-.9 0-2.2.3-2.8.7-.4.2-.9.8-1.6 1.1-.3.1-.6.3-.9.5.3-.2.6-.4.9-.5zM180.6 127.8c0 .3.1.6.1.9.1.6.2 1.2.4 1.7-
.1-.6-.3-1.1-.4-1.7 0-.4 0-.7-.1-.9zM183.5 110.6c0 .1-.1.1-.1.2-.1.2-.1.3-.2.5.1-.2.2-.5.3-.7zM206.3 174.4c-1.3 3.9-2.3 7.7-2.9 11.2.6-3.6 1.6-7.6 3-11.5-.1.2-.1.2-.1.3zM166.4 141.2c-.3-.4-.3-.7-.7-1.3.4.6.4.9.7 1.3zM168.8 133.7h-.2c.3 0 .6 0 .8.1-.1-.1-.4-.1-.6-.1zM171 135.2c.2-1 .6-1.3.9-2 .3-.7.6-2 1.7-1.9.5.1.9.4 1.2.8-.3-.4-.7-.7-1.2-.8h-.2c-.9 0-1.2 1.2-1.5 1.9-.4.7-.8.9-.9 2 0 .2-.1.4-.1.7 0-.3 0-.5.1-.7zM167.8 137.6c-.1-.5-.1-1.2-.2-1.8-.2-.9-.3-1.6.6-2 .1 0 .1 0 .2-.1h-.2c-.9.3-.8 1.1-.6 2 .1.7.1 1.3.2 1.9l-.1-.1c-.3-.4-.8-.6-1.3-.6h-.2c.5-.1 1.1.1 1.5.6l.1.1zM199.5 161.1l-.2.2c-.5.4-1.2.7-1.8.7-.8 0-1.6-.4-2.2-1-.1-.1-2.7-3.3-4.4-7.2-.6-1.5-1.2-3-1.7-4.4-.4.9-.8 1.7-1.4 2.4.1.3.1.6.1.9 0 .3.5 6.4 6.5 8.9 1.8.8 3.6 1.1 5.4 1.1 3.3 0 6-1.2 7.9-2.4-2.8.5-5.5.8-7.5.8h-.7zM171.2 146.5s.1 0 0 0c.1 0 0 0 0 0zM259.3 150.6c-1.4.6-3.2 1.1-5.1 1.5 1.9-.1 3.7-.5 5.4-1.3-.2-.1-.2-.2-.3-.2zM266.1 138.4c-.1-.3-.1-.6-.2-1-.2-.1-.4-.3-.6-.5 0 1.3-.1 2.6-.1 3.9-.1 2.4-.6 4.6-1 6.2 2.9-3.9 1
.9-8.4 1.9-8.6zM172.9 149.4c.1.3.3.5.5.7-.2-.2-.4-.5-.5-.7zM185 139.2l-.6.1.6-.1zM180.7 137.2c.5.1 1.2.6 1.9.6.5.1 1.2.1 1.6.7-.4-.6-1-.6-1.6-.7-.7-.1-1.4-.5-1.9-.6-.3-.1-.6-.1-.9-.1-.9 0-1.9.2-2.4.5-.6.3-1.1.6-1.6 1 .5-.4 1.1-.7 1.6-1 .8-.5 2.5-.7 3.3-.4zM165.3 137.3c.1-.1.1-.1.2-.1-.1 0-.2 0-.2.1-.6.5-.6 1.2-.1 1.9-.5-.7-.5-1.3.1-1.9zM154.9 192c0-.2.1-.3.2-.5.3-.2 4.6-3.8 12.5-6.1.1-.2.2-.3.4-.4.3-.1.6-.1.9 0 2.2-.6 4.7-1 7.5-1.3l.3-.3c.5-.3 1.1-.2 1.4.2.3 0 .7-.1 1-.1 2.2-.1 4.3 0 6.3.1.3-.2.6-.3.9-.3.1 0 .3.1.6.3 3 .2 5.6.7 7.8 1.2.4-.4 1-.4 1.4-.1 0 0 .3.2.6.6 2.7.7 4.5 1.4 5.5 1.9v-.1c-.9-.4-2.7-1.1-5.3-1.8-.4-.4-.7-.6-.7-.7-.2-.2-.5-.3-.8-.3-.3 0-.6.1-.9.4-2.1-.5-4.7-.9-7.6-1.1-.3-.3-.5-.4-.7-.4h-.2c-.3 0-.6.1-.9.3-1.2-.1-2.5-.1-3.8-.1H179c-.3 0-.6 0-.9.1-.2-.3-.6-.5-1-.5-.2 0-.4.1-.7.2-.2.1-.3.2-.4.4-2.6.2-5.1.7-7.3 1.2-.2-.1-.4-.2-.6-.2-.2 0-.3 0-.5.1s-.4.3-.5.5c-7.8 2.3-12.1 5.9-12.4 6.1.2.3.1.5.2.7-2.4 1.7-4.1 3.7-4.5 5.9-.1.5-.1 1.1-.1 1.6 0-.5 0-1 .1-1.6.5-2.2 2.2-4.2 4
.5-5.9zM246.5 220.3c.1-1.9.2-5.6.3-9.1-.1 3.4-.2 7.2-.3 9.1 0 1 0 1.8.2 2.3-.1-.6-.2-1.4-.2-2.3zM208.9 217.4c.2.5.4.9.6 1.4.4.9.8 1.6 1.2 2.2-.4-.6-.7-1.4-1.2-2.2-.2-.4-.4-.9-.6-1.4z" fill="#FFF"/><path d="M285.4 113.6c-.4-.2-.7-.3-1.1-.4-1.3-2.1-3.4-2.4-4.3-2.5h-.5c-.6 0-1.2.1-1.8.3-.8-.6-2-1.2-3.4-1.2-.8 0-1.6.2-2.4.6-.7.3-1.2.7-1.7 1.2-1.3-5.5-4.1-10.6-8.1-14.9.3-13.8-7.2-27.9-13.9-29.2-.5-.1-1-.1-1.5-.1-6 0-13.9 7-17.6 11.1-.8.9-1.9 2.2-2.9 3.6-3.1 0-6.3.4-9.6.9-3.3.6-6.4 1.3-9.3 2.3-1.4-1-2.8-1.8-3.8-2.3-4.3-2.3-11.2-5-16.5-5-2.1 0-3.8.4-5.1 1.2-5.8 3.5-8.1 19.3-3.1 32.2-2.3 5.4-3.1 11.2-2.5 16.8-.6-.3-1.2-.5-1.9-.6-.3-.1-.6-.1-.9-.1-1.4 0-3.1.5-4.5 2.4-.8 0-1.5.1-2.2.4-.8.3-2.7 1.3-3.3 3.6-.3.2-.6.4-.9.7-2.1 1.8-3 5.1-.3 8.4v.1c.2.4.5 1.1 1.1 1.9.1.1.3.4.6.7 1 1.2 1.8 2.1 2.3 2.7l.7.7.6.6c.4 1 .9 1.8 1.5 2.6.1.1.2.3.3.4.2.3.4.5.5.8 1.4 1.9 2.9 3.2 4.5 4.2 1.1 4.9 4.5 13.3 14.6 17.6 3.6 1.5 7.3 2.3 11.1 2.3h.9c-.5 1.6-.8 3.1-1.2 4.6-.1 0-.2-.1-.3-.1-.1-.1-.1-.1-.2-.1-1-.8-2.3-1
.3-3.6-1.3-.5 0-.9.1-1.4.2-1.8-.3-3.7-.6-5.6-.8-.4-.2-.9-.4-1.3-.5-.4-.1-.7-.1-1.1-.1-.6 0-1.2.1-1.8.3-1 0-1.9-.1-2.9-.1h-2.1c-.7-.3-1.4-.4-2.1-.4-1 0-2 .3-2.8.8-1.9.2-3.7.5-5.5 1h-.6c-.8 0-1.6.2-2.4.5-.4.2-.7.4-1 .6-7.9 2.5-12.4 6.2-12.9 6.6-.4.3-.8.7-1 1.2-2.8 2.3-4.5 4.9-5.1 7.7-1.3 6.3 3.3 12.9 12.1 17.4.2.4.5.9.8 1.2 1.1 1.3 2.7 2 4.3 2 .7 0 1.3-.1 1.9-.3 2.3.7 4.7 1.3 7.1 1.6l.1.1c1 .8 2.3 1.3 3.6 1.3 1.1 0 2.2-.3 3.2-.9.8 0 1.6-.1 2.4-.1 1.9-.2 3.7-.4 5.6-.8.1 0 .2.1.3.1.8.3 1.6.5 2.4.5 1.9 0 3.7-1 4.8-2.6 1.4-.5 2.7-1 4.1-1.5.6.2 1.3.3 1.9.3.9 0 1.8-.2 2.6-.6.7 2.3 1.5 4.3 2.4 6.2 2.8 5.5 4.9 8.5 8.3 8.5 1.3 0 2.6-.5 3.6-1.5 1.6-1.7 1.8-4 1.7-6.1 0-1.1-.1-2.8-.1-4.7 1.2.2 2.4.3 3.7.4 1.9.2 3.9.2 5.7.2 4.9 0 9.6-.5 13.8-1.5 0 1.6-.1 3-.1 4-.1 2.1.1 4.4 1.7 6.1.9 1 2.2 1.5 3.6 1.5 3.4 0 5.5-3 8.3-8.5 2.5-5 3.6-10.7 4.1-14.8 3-8.3.5-23.5-2.4-31.9-.7-2.1-1.5-4.2-2.2-6.2 6.1-.3 11.7-2.5 16.6-6.6 8.3-7.1 9.1-16.1 8.8-21.1 1.2-1.3 2.3-3.1 3-5.3l.3-.9c.1-.2.1-.3.2-.5.3-.9.5-1.9.7-2.
9l.5-.9.4-.8c.3-.7.8-1.8 1.5-3.2.1-.3.3-.6.3-.8.4-.9.5-1.7.5-2.1v-.1c1.5-4.3-.3-7.2-2.8-8.3z" fill="#F9F9FA"/><path d="M183.3 144.3c.3 1.5-.5 2.9-1.9 3.5-.4.2-.8.2-1.2.2h-.5c.5.1 1.1 0 1.6-.2 1.5-.6 2.3-2.1 2-3.5-.1-.7.1-1.3.4-1.8-.3.4-.5 1.1-.4 1.8zM164.1 212.7c-.2.2-.5.3-.7.3-.3 0-.6-.1-.8-.4-.3-.3-.3-.8-.2-1.2 0 0-.1 0-.1-.1-.2.4-.1 1 .2 1.3.2.3.6.4 1 .4.1.1.4 0 .6-.3.1.1.3-.1.6-.4h-.1c-.3.3-.5.4-.5.4zM176.9 215.2c-.2.3-.5.4-.9.4-.2 0-.5-.1-.7-.3-.2-.2-.3-.4-.4-.7h-.2c0 .3.2.6.4.8.2.2.5.3.8.3.5.1.9-.1 1-.5.1 0 .3-.1.4-.4h-.1c-.1.3-.2.4-.3.4zM205.9 205.9c.1 1.1.3 2.3.6 3.6-.2-1.3-.4-2.5-.6-3.6.1 0 0 0 0 0zM190.8 213.7c-.2.4-.6.7-1 .7-.2 0-.3 0-.5-.1-.3-.2-.6-.5-.6-.8h-.1c.1.4.3.7.7.9.2.1.3.1.5.1.5 0 .9-.3 1.1-.7 0-.1.2-.4.4-1h-.2c-.1.5-.2.9-.3.9zM201.6 210c-.2.4-.6.6-1 .6-.2 0-.3 0-.5-.1-.3-.2-.5-.5-.6-.9 0 0-.1 0-.1.1.1.4.3.7.6.9.2.1.4.1.6.1.5 0 .9-.2 1.1-.7 0-.1.4-.8.8-2-.1 0-.1.1-.2.1-.4 1.2-.7 1.8-.7 1.9zM271.1 131.8h-.3c-.9-.1-1.7-.6-2.3-1.3.5.7 1.3 1.2 2.3 1.3 1.7.1 3.2-1.1
3.4-2.9.1-.8-.2-1.7-.6-2.4.5.7.7 1.6.6 2.4-.1 1.7-1.5 2.9-3.1 2.9zM197.7 158.4c.1.2.2.3.2.3.2.2.2.6 0 .8-.1.1-.2.2-.4.2-.1 0-.3-.1-.4-.2 0 0-.4-.4-.8-1 .4.6.7.9.8 1 .1.1.3.2.5.2.1 0 .3 0 .4-.1.3-.2.3-.6.1-.9.6.1 1.4.2 2.3.2 3 0 7.6-.7 12-1.9l-.1-.1c-4.6 1.2-9 1.9-11.9 1.9-1.2-.1-2.1-.2-2.7-.4zM191.5 146.3c.5 1.6 1.1 3.4 1.8 5.2-.5-1.5-.9-3-1.2-4.7-.2-.1-.4-.3-.6-.5zM181.1 143.8h-1.5c-.2.4-.2.9-.1 1.4.2.4.5.6.8.6.1 0 .2 0 .3-.1.4-.2.6-.6.5-1v-.9zM244.6 151s0 .1-.1.1c6.9-.5 13.9-2.1 15.9-3.7-.1.3-.2.5-.2.5-.1.3.1.7.4.8h.2c.3 0 .5-.2.6-.4 0-.1.6-1.6 1-3.8-.5 2.1-1 3.6-1.1 3.7-.1.2-.3.4-.5.4h-.2c-.3-.1-.4-.4-.3-.7 0 0 .1-.4.3-1 0 0 0 .1-.1.1-1.3 1.7-8.3 3.5-15.9 4zM264.4 132.1c.1.2.2.5.3.7-.1-.2-.2-.4-.3-.7-.3-.6.1-1.8 0-2.5 0-.3-.1-.6-.1-.8 0 .3 0 .5.1.8.1.8-.2 1.9 0 2.5zM212.1 159.6c.3-.7.6-1.3.9-1.9-.3.6-.6 1.2-.9 1.9zM262.1 133.6c-.1.2-.2.4-.4.6.2 1.7.3 3.4.4 4.9.1-2 0-3.9 0-5.5z" fill="#FFF"/><path d="M271.1 129.6c.5 0 .9-.4 1-.8 0-.5-.2-1-.5-1.3l-1.5.5c.1.3.1.5.2.8 0 .4.3.8.8.8z"
fill="#FFF"/><path d="M196.3 184.9c-.4-.3-1-.3-1.4.1-2.2-.5-4.8-.9-7.8-1.2-.2-.2-.4-.3-.6-.3-.3-.1-.7 0-.9.3-1.9-.1-4-.1-6.3-.1-.4 0-.7 0-1 .1-.4-.4-1-.5-1.4-.2l-.3.3c-2.7.3-5.2.7-7.5 1.3-.3-.1-.6-.2-.9 0-.2.1-.3.2-.4.4-7.8 2.3-12.2 5.9-12.5 6.1-.1.1-.2.3-.2.5 0 .1 0 .2.1.3.1.1.3.2.4.2.1 0 .3 0 .4-.1.1 0 4.2-3.5 11.7-5.7.3.8 2.2 5.7.6 13.1-1.7 7.9-5.5 11.3-5.5 11.3-.1.1-.2.2-.3.4-.2.4-.1.9.2 1.2.2.3.5.4.8.4.3 0 .5-.1.7-.3l.4-.4c1.1-1.2 4.2-4.9 5.8-12.1 1.6-7.4 0-12.6-.6-14.1 2-.5 4.3-.9 6.7-1.2v.1c0 .1 3.5 5.6 2.9 15-.6 9.3-4.1 13.8-4.2 13.8-.2.3-.3.6-.2.9 0 .3.2.5.4.7.2.2.5.3.7.3.3 0 .6-.1.9-.4 0 0 .1-.2.3-.4.9-1.3 3.9-6.1 4.4-14.7.5-7.9-1.7-13.3-2.7-15.4h.4c2.1-.1 4 0 5.9.1.1.2.2.5.5.7.1.1.1.1.2.1.9.9 4.4 5 5 11.8.8 8.8-2 15.3-2.1 15.3-.1.2-.1.4-.1.6.1.4.3.7.6.8.1.1.3.1.5.1.4 0 .8-.2 1-.7 0-.1.2-.4.4-.9.8-2.2 2.6-8 1.9-15.5-.6-5.8-3-10.1-4.8-12.2 2.4.2 4.5.6 6.3 1 .1.2.2.4.4.6 0 0 4.1 3.3 5.5 9.6 1.7 7.6-.8 12.7-.8 12.8-.1.2-.1.4-.1.6 0 .4.2.7.6.9.2.1.3.1.5.1.4 0 .8-.2 1-.6 0-.1.4
-.7.7-1.8.7-2.3 1.6-6.7.3-12.5-.9-4-2.7-6.9-4.2-8.7 2.3.7 3.7 1.3 4.1 1.5 0-.5-.1-.9-.1-1.3-1-.4-2.8-1.2-5.5-1.9-.5-.5-.8-.7-.8-.7zM240.9 161.8c-2.2 1.7-5.8 3.7-11 4.4-5.7.8-10.2-.7-12.9-2.1-4.7 6.9-9.4 17.7-9.1 27.9.4 16.8 14.5 19.1 23.7 18.7 6-.3 11.7-2.4 15.5-6.7v-.1l.1-.1c2-2.3 3.4-5.1 4.1-8.6 1.9-10.3-2.7-20.6-6.9-28.5-1.1-1.9-2.3-3.6-3.5-4.9zM183.7 110.2c-.1.1-.1.2-.2.3.1 0 .2-.1.2-.3zM185.2 84.4c.3-.2.8-.3 1.5-.3 2.7 0 8.1 1.4 13.4 4.2 1.4.8 2.7 1.6 3.8 2.4-7.2 3.2-9.7 6.7-9.8 6.9-.2.3-.1.6.1.8.1.1.2.1.3.1.2 0 .3-.1.5-.2.1-.1 5.2-7.3 22.4-10.3 17.1-3 24.8 2.9 24.9 3 .2.2.6.2.8-.1.2-.2.2-.6-.1-.8-.2-.2-4-3.1-11.9-3.9.8-1.2 1.8-2.5 3-3.8 4.8-5.3 10.5-8.8 12.4-8.8h.2c2.1.4 8.4 10.1 8.4 21.3.7.5 1.4 1 2.2 1.6.5-12.5-6.4-24.3-10.2-25.1-3.2-.6-10.2 4.4-14.7 9.5-1.2 1.3-2.6 3.1-3.8 5.1-3.2-.1-7 .1-11.4.8-4.4.8-7.9 1.8-10.9 2.9-1.8-1.4-3.7-2.6-5.1-3.4-6-3.2-14.3-5.5-17.1-3.9-3.2 2-5.7 15.3-1.1 26.8.5-.8 1-1.6 1.5-2.2-3.7-10.4-1.1-21.5.7-22.6zM193.3 151.5c.1.2.2.4.3.7 1.2 2.9 3.4 5.5
4.1 6.3.6.2 1.5.3 2.6.3 2.9 0 7.3-.6 11.9-1.9-1.4-1.8-1.6-3.8-1.6-3.8v-.1c0-.1-.1-.3-.1-.4l-.1-1.2v-.4c-1.1.3-2.2.4-3.4.2l-2.5.4c-6.1 1.1-11.9-3-12.9-9l-.2-1.3h-.2c.2 1.8.5 3.8.9 5.6.3 1.6.8 3.1 1.2 4.6z" fill="#F9F9FA"/><path d="M196.3 124.7c.7-5 5.3-8.5 10.3-7.9l4.9.7c3.3.5 6 2.7 7.2 5.6 1.1-.8 2.4-1.4 3.8-1.6 1.4-.2 2.7-.2 4 .2.3-2.3 1.5-4.6 3.5-6.1l4-3c4-3.1 9.8-2.3 12.8 1.7l3.8 5 4.7-.8c.8-.1 1.6.4 1.8 1.2.1.7-.2 1.3-.8 1.6.8.6 1.4 1.7 1.7 3.3l1 5.8c1.1 6.1-3 11.9-9 12.9l-1.7.3c-1.1.4-2.3.6-3.5.6l-.5.1h-.3s0 .1.1.1l.1.1c0 .1.1.2.1.3l.2.5s.1.2.1.3l.1.4c0 .2.1.3.1.4l.1.6V148.4c0 .9-.2 1.7-.4 2.5 7.7-.5 14.6-2.3 16-3.9 0 0 0-.1.1-.1.5-1.5 1.3-4.6 1.4-7.3v-.6c0-1.6-.1-3.2-.4-4.9-.2-1.8-.6-3.6-1-5.4l-1.8.3-.5-3 1.4-.3c-.5-1.6-1.2-3.2-2.1-4.7 0-.2 0-.4-.1-.6-2.6-14.6-19.6-23.8-38-20.6-17.4 3.1-29.9 16.2-29 30l5.1-.9.7-4.2z" fill="#F9F9FA"/><path d="M210.5 150.9v-.1-.3h-.2l-3.2.6c1.1.1 2.3 0 3.4-.2zM245 144.3c1.2 0 2.3-.2 3.5-.6l-3.5.6zM229.5 159.8s.1 0 0 0z" fill="#D9EBFF"/><path d="
M43.7 146.5h-.1c-1.7.4-3.6.8-5.4 1h-.1c-.6.1-1.2.2-1.9.2-1 .1-1.9.1-2.9.1h-.9-.1c.9-1.3 3.9-6.1 4.4-14.7.5-7.9-1.7-13.3-2.7-15.4h.4c2.1-.1 4 0 5.9.1.1.2.2.5.5.7.1.1.1.1.2.1.9.9 4.4 5 5 11.8.8 8.8-2 15.3-2.1 15.3-.2.3-.2.5-.2.8zm-26.1-2.4s3.8-3.4 5.5-11.3c1.6-7.3-.2-12.3-.6-13.1-7.5 2.3-11.6 5.7-11.7 5.7-.1.1-.2.1-.4.1s-.3-.1-.4-.2c-.1-.1-.1-.2-.1-.3-2.4 1.7-4.1 3.7-4.5 5.9-.1.5-.1 1-.1 1.6v.1c0 .2 0 .4.1.6v.3c0 .2.1.4.1.6 0 .1.1.2.1.3.1.2.1.3.2.5.1.1.1.3.2.4.1.1.1.3.2.4l.3.6c.1.1.1.2.2.3 2 3 5.8 5.8 10.4 7.9 0 0 .1 0 .1.1.2-.3.3-.4.4-.5zm37-2.1s2.6-5.2.8-12.8c-1.4-6.3-5.4-9.6-5.5-9.6-.2-.2-.3-.4-.4-.6-1.8-.4-3.9-.8-6.3-1 1.8 2.2 4.3 6.4 4.8 12.2.7 7.5-1.1 13.4-1.9 15.5h.2c2.9-.9 5.6-1.9 8-3.1 0 0 .1 0 .1-.1.1-.1.1-.3.2-.5zm-24.4 4.8s3.6-4.5 4.2-13.8c.6-9.4-2.9-14.9-2.9-15v-.1c-2.4.2-4.7.6-6.7 1.2.6 1.5 2.2 6.7.6 14.1-1.6 7.2-4.7 10.9-5.8 12.1h.1c3.2 1.2 6.7 2 10.2 2.3h.2c-.2-.2-.1-.5.1-.8zm108.6-96.3c.3.4.3 1.1 0 1.9-.4 1.1-.2 1.4-.5 2-.3.7-1.3 3-1.7 3.8-.1.2-.7 1.2-1.3 2.5 0 .9-.2
1.8-.5 2.7-.1.2-.1.4-.2.6l-.3.9c-.7 1.9-1.8 4-3.6 4.9.5 2.6 1.6 12.4-6.9 19.6-5.1 4.3-10.5 5.6-15.1 5.6-1.4 0-2.8-.1-4-.3-1.2-2.5-2.8-4.8-2.9-4.9-.2-.2-.5-.3-.8-.1-.2.2-.3.5-.1.8 0 0 2.1 2.8 3.2 5.7 0 0 0 .1.1.1.1.2.1.4.2.6l.1.1c1.4 3.4 2.6 6.9 3.7 10.1 2.9 8.6 4.9 23.1 2.2 29.4-.4 3.7-1.4 9.2-3.7 13.9-2.2 4.3-3.5 6-4.3 6h-.2l-.1-.1-.1-.1s0-.1-.1-.1c0-.1-.1-.2-.1-.3-.2-.5-.2-1.3-.2-2.3.1-1.9.2-5.6.3-9.1 2.8-1.3 4.6-2.8 4.6-2.9.2-.2.2-.6 0-.8-.2-.2-.6-.2-.8 0 0 0-1.8 1.6-4.4 2.7-4.6 1.8-10.6 3-17.9 3-1.7 0-3.5-.1-5.4-.2-3.4-.3-6.3-.8-8.7-1.5v.2c-2.1-.9-3.8-2.3-3.8-2.4-.2-.2-.6-.2-.8 0-.2.2-.2.6 0 .8.1.1 2.1 1.9 4.6 2.7.1 3.4.2 7 .3 8.9.1 1.8-.2 3-.8 3-.1 0-.2 0-.3-.1-.1 0-.2-.1-.3-.2l-.1-.1-.3-.3-.1-.1c-.1-.1-.2-.3-.3-.4l-.2-.2c-.1-.1-.2-.3-.3-.5-.1-.1-.2-.2-.2-.4-.1-.2-.2-.3-.3-.5-.1-.2-.2-.3-.3-.5-.1-.1-.2-.3-.2-.4-.4-.6-.7-1.4-1.2-2.2-.2-.5-.4-.9-.6-1.4 0-.1 0-.1-.1-.1-.2-.4-.4-.9-.5-1.3 0-.1-.1-.2-.1-.2-.2-.5-.3-.9-.5-1.4 0-.1 0-.1-.1-.2-.1-.5-.3-.9-.4-1.4 0-.1 0-.1-.1-.2-.1-.5-.
2-.9-.4-1.4v-.1c-.1-.5-.2-1-.3-1.4v-.1c-.2-1.3-.4-2.5-.6-3.5-1 .7-2.2 1.4-3.5 2.1-.1 0-.1.1-.2.1.7-2.3 1.6-6.7.3-12.5-.9-4-2.7-6.9-4.2-8.7 2.3.7 3.7 1.3 4.1 1.5.2 3 .7 7.5 1.4 11.6 0 .3.3.5.5.5h.1c.3-.1.5-.3.5-.6-1-5.8-1.5-12.1-1.6-14.3.6-3.6 1.6-7.6 3-11.5 2.2-6.1 4.2-8.1 4.2-8.1.2-.2.2-.6 0-.8-.2-.2-.6-.2-.8 0-.1.1-1.7 1.7-3.6 6.3-1.9.5-4 .9-6.3.9-2.9 0-6-.6-9.3-2-10.2-4.4-12.1-14.1-12.4-16.7-2-.4-3.6-2-4.8-3.6-.2-.2-.3-.5-.5-.7-.1-.1-.3-.3-.4-.5-.2-.3-.5-.7-.7-1.1 0-.1-.1-.1-.1-.2-.2-.4-.3-.7-.5-1.1v-.1l-2-2c-.6-.6-2.2-2.6-2.7-3.1-.1-.1-.1-.1-.1-.2-.3-.4-.3-.7-.7-1.3-.1-.1-.1-.2-.2-.3-.1-.1-.2-.2-.2-.3-.5-.7-.6-1.4.1-1.9.1-.1.1-.1.2-.1l.1-.1c.1-.1.3-.1.5-.2h.1c.5-.1 1.1.1 1.5.6l.1.1c-.1-.5-.1-1.2-.2-1.8-.2-.9-.3-1.6.6-2 .1 0 .1 0 .2-.1h.2c.3 0 .6 0 .8.1 0 0 .1 0 .1.1.1 0 .2.1.2.1.1.1.2.2.3.2l.1.1c.1.1.2.3.2.4 0 0 .2.5.4 1.1 0-.3.1-.5.1-.7.2-1 .6-1.3.9-2 .3-.7.6-2 1.7-1.9.5.1.9.4 1.2.8.3.4.4.9.3 1.4l-.5 3.2-.4 2.3c-.5.9-1.2 2.1-1.7 3.4-.1.3.1.6.3.7h.2c.2 0 .4-.1.5-.4.7-1.9 1.7-3.5
2.2-4.2.5-.4 1.1-.7 1.6-1 .8-.4 2.5-.6 3.4-.4.5.1 1.2.6 1.9.6.5.1 1.2.1 1.6.7.1.2.2.4.2.8l-.7.1c-.8.1-1.4.9-1.2 1.8 0 .1.1.2.1.3-.2.1-.4.1-.7.1l-3.2-.1c-1.4.7-1.9 2.9-1.3 4.4.1.2.2.4.3.5 0 .1.1.1.1.1.1.1.1.2.2.3l.2.2c.1.1.1.1.2.1.3.3.7.4 1 .6.1 0 .3.1.4.1.5.1 1.1 0 1.6-.2 1.4-.6 2.2-2 1.9-3.5-.1-.7 0-1.3.4-1.9h.5l2.2-.4c.2.4.3 1.1.5 1.7.1.7.8 1.7.8 2.4-.2 1.9-1.2 3.9-2.5 5 .3.5.5 1 .5 1.6 0 .3.6 7.7 7.9 10.8 2.2 1 4.3 1.3 6.3 1.3 6.5 0 11.2-4.1 12.1-5 0-.1.1-.2.1-.3.3-.7.6-1.3.9-1.9.7.6 1.7 1.2 2.9 1.5 3.5 1 5.2.8 5.9.6.7.7 2.8 2.3 5.9 2.3.5 0 1.1-.1 1.7-.2 4.1-.8 6.3-3.7 6.8-4.5 1.1-.3 5.8-2 7.8-5.6l.9.3c.3.1 3.9 2 8.5 2 3.2 0 6.9-.9 10.4-3.8 6.1-5.2 4.4-12.6 4.3-12.6-.1-.6-.1-1.1 0-1.7-.9-.4-1.9-1.2-2.7-2.1-.1-.2-.3-.4-.4-.5-.1-.2-.2-.3-.3-.5 0 0 0-.1-.1-.1-.1-.2-.2-.4-.3-.7-.3-.7.1-1.8 0-2.5 0-.3-.1-.6-.1-.8-.4 1-.8 1.9-1.3 2.9-.1-1.3-.2-2.1-.2-2.1 0-.3-.3-.5-.6-.5s-.5.3-.5.6c0 0 .2 1.6.3 3.9-.1.2-.2.4-.4.6-.2-1.8-.6-3.6-1-5.4l4.9-.9c.5-.1.9-.4 1.1-.8.2.1.3.2.4.3.1.1.2.2.3.4 0 0
0 .1.1.1.1.1.2.3.2.4v.1c.1.2.1.4.1.6.1.6.3 1.1.6 1.5.5.7 1.3 1.2 2.3 1.3 1.7.1 3.2-1.1 3.4-2.9.1-.8-.2-1.7-.6-2.4-.5-.7-1.1-1.3-1.9-1.4l-3.1 1c-.2 0-.4.1-.7.1-.4 0-.8-.1-1.1-.2-.2-.5-.6-.9-1.1-1 0-.1-.1-.1-.1-.2v.2h-.5l-5.2.9c-.5-1.6-1.2-3.2-2.1-4.7 0-.2 0-.4-.1-.6-2.6-14.6-19.6-23.8-38-20.6-17.4 3.1-29.9 16.2-29 30h-.1c-.8.1-1.4.9-1.2 1.8.1.8.9 1.3 1.7 1.3-.5.9-.7 2-.4 3.6l.3 1.5-5.9 1c-.9-1.4-1.7-2.9-2.4-4.4-.1-.3-.2-.5-.3-.8-.1-.2-.1-.4-.2-.6-.1-.4-.3-.7-.4-1.1 0-.1-.1-.3-.1-.4-.1-.5-.3-1-.4-1.5-.1-.6-.3-1.1-.4-1.7-.1-.3-.1-.6-.1-.9 0-.3-.1-.7-.1-1 0-.4-.1-.7-.1-1.1v-.9-1.1-.9c0-.6.1-1.2.1-1.8 0-.3.1-.7.1-1 .1-.3.1-.7.2-1 .1-.3.1-.6.2-1 .1-.3.1-.7.2-1 .1-.4.2-.7.3-1.1.1-.3.2-.6.3-1 .2-.6.4-1.1.6-1.7.1-.3.2-.6.4-.9.1-.3.3-.7.4-1l.3-.6c.1-.1.1-.3.2-.4 2.7-4.5 5.9-7.4 6-7.4.2-.2.3-.6 0-.8-.2-.2-.6-.3-.8 0-.1.1-2.2 2-4.5 5.1-3.7-10.5-1.1-21.6.7-22.7.3-.2.8-.3 1.5-.3 2.7 0 8.1 1.4 13.4 4.2 1.4.8 2.7 1.6 3.8 2.4-7.2 3.2-9.7 6.7-9.8 6.9-.2.3-.1.6.1.8.1.1.2.1.3.1.2 0 .3-.1.5-.2.1-.1 5.2
-7.3 22.4-10.3 17.1-3 24.8 2.9 24.9 3 .2.2.6.2.8-.1.2-.2.2-.6-.1-.8-.2-.2-4-3.1-11.9-3.9.8-1.2 1.8-2.5 3-3.8 4.8-5.3 10.5-8.8 12.4-8.8h.2c2.1.4 8.4 10.1 8.4 21.3-2.6-1.7-4.9-2.6-5-2.7-.3-.1-.6 0-.7.3-.1.3 0 .6.3.7.1 0 5.2 2.1 9.1 6l.2.2c1 1.1 1.9 2.3 2.7 3.5 0 .1.1.1.1.2.4.6.7 1.2 1.1 1.7l.1.1c.7 1.3 1.3 2.6 1.8 4 0 .1.1.2.1.3.2.6.4 1.2.6 1.9 0 .1 0 .2.1.3.2.7.3 1.4.5 2.2l.3 2.4c.2 2.4.1 4.8-.3 7.1.3-.2.6-.4.9-.5.7-.3 1.2-.9 1.6-1.2.7-.5 2.4-.8 3.3-.6 1 .2 2 .4 2.8.8 1.8 1.5 3.5 3 3.7 3.4.1.2.3.3.5.3.1 0 .2 0 .2-.1.3-.1.4-.5.2-.7-.4-.8-3.1-3-4.4-4.2L129 52l-1.5-2.9c-.5-.9-.1-2.1.8-2.5.9-.5 1.6.7 2.1 1.3.5.5.9.7 1.3 1.4.1.1.1.2.2.3l.3.6c0-.7.1-1.1.1-1.2.1-.9.9-1.7 1.8-1.6.4 0 .6.2.8.4.3.3.3.8.4 1.4 0 .1 0 .3.1.4 0 .1 0 .2.1.3.1.4.2.7.2 1.1l.1-.1c.4-.9 1.4-1.3 2.3-.9.4.2.6.3.7.5zM99.3 99.7c-1.1-2-2.2-3.6-3.4-5-2.2 1.7-5.8 3.7-11 4.4-5.7.8-10.2-.7-12.9-2.1-4.7 6.9-9.4 17.7-9.1 27.9.4 16.8 14.5 19.1 23.7 18.7 6-.3 11.7-2.4 15.5-6.7v-.1l.1-.1c2-2.3 3.4-5.1 4.1-8.6 1.8-10.2-2.8-20.5-7-28.
4zM66.6 50.5l-4.9-.7c-5-.7-9.6 2.9-10.3 7.9l-.6 4.4 20.9-3.7c.6-.9 1.3-1.6 2.2-2.3-1.3-2.9-4-5.2-7.3-5.6zm22.5-5l-4 3c-2 1.5-3.2 3.7-3.5 6.1 1.1.3 2.1.8 3 1.4l21.2-3.8-3.8-5c-3.1-3.9-8.9-4.7-12.9-1.7zM66.6 85.3l-.1-1.1v-.3-.4l.1-.3c5.3-1.7 8.6-7 7.6-12.6l-.1-.3c.1 0 .2-.1.4-.1l1 5.5c.1.8.9 1.3 1.7 1.2.8-.1 1.3-.9 1.2-1.7l-1.3-7c2.4-1.3 5.4-1.4 7.9 0 .3.2.7.2 1 .2.1 0 .2-.1.3-.1l.1.3c1 5.6 5.9 9.4 11.4 9.2l.2.3c0 .1.1.1.1.2v.1c0 .1.1.2.1.2l.1.4c0 .1.1.2.1.3l.1.5c0 .1 0 .2.1.4v2.6c-.5 2.6-2.6 4.5-5.9 5.2h-.1H92.3c-.1 0-.3.1-.4.1-.5.1-1 .4-1.5.7-.5.3-.9.7-1.2 1.1-.4.4-.7.8-1.1 1.1-.3.4-.7.7-1.1 1l-.9.5-.2.1c-.1 0-.1.1-.2.1l-.2.1h-.1l-.2.1h-.1l-.3.1-.4.1H83c-.5 0-1-.1-1.4-.2-.5-.1-.9-.3-1.4-.5-.5-.2-.9-.5-1.4-.7-.5-.2-1-.5-1.5-.6-.5-.1-1.1-.2-1.7-.1H75.3h-.1-.1-.1c-3.4.6-6.1-.5-7.5-2.8l-.1-.1-.1-.3v-.1l-.1-.1s0-.1-.1-.1l-.1-.4c0-.1 0-.1-.1-.2v-.1-.1l-.2-1c0-.2 0-.3-.1-.4zm9.5-1c.2 1 1 2.3 2.2 2.9.3.2.6.2.9.1.4-.1.8-.3 1-.8.4-.7.1-1.6-.6-2-.3-.2-.6-.7-.7-.8-.2-.8-.9-1.3-1.7-1.2-.7.3-1.3
1-1.1 1.8zm-2.4-17.5l.3-.3-.1-.4c-.1-.8.4-1.6 1.2-1.7.6-.1 1.1.1 1.4.6 3-1.4 6.4-1.4 9.4 0l-.4-2.4c-.3-1.6-.1-2.8.4-3.6l-14.2 2.5c.8.6 1.3 1.7 1.6 3.3l.4 2zm4.1-11.2c-1.8.3-3.4 1.2-4.5 2.5l9.7-1.7c-1.6-.9-3.4-1.2-5.2-.8z" fill="url(#a)" opacity=".2" transform="translate(145 67)"/><path d="M228.8 160c0-.1 0 0 0 0z" fill="#59ACFF"/><path d="M223.3 154.2c.3.2.6.2.9.1.4-.1.8-.3 1-.8.4-.7.1-1.6-.6-2-.3-.2-.6-.7-.7-.8-.2-.8-.9-1.3-1.7-1.2-.8.1-1.3.9-1.2 1.7.2 1.1 1.1 2.4 2.3 3zM220.1 131.4c-.8.1-1.3.9-1.2 1.7l.1.4c.8-.6 1.6-1.2 2.5-1.6-.3-.4-.9-.6-1.4-.5zM222.3 143.8c.8-.1 1.3-.9 1.2-1.7l-1.3-7c-.8.4-1.6 1-2.2 1.8-.1.1-.3.2-.4.3l1 5.5c.1.7.9 1.2 1.7 1.1z" fill="#F9F9FA"/><path d="M265.6 125c.1 0 .1 0 0 0v-.2.2z" fill="#59ACFF"/><path d="M113.9 62.2l1.8-.3 4.9-.9c.5-.1.9-.4 1.1-.8.2.1.3.2.4.3.1.1.2.2.3.4 0 0 0 .1.1.1.1.1.2.3.2.4v.1c.1.2.1.4.1.6.1.6.3 1.1.6 1.5.5.7 1.3 1.2 2.3 1.3h.3c1.6 0 3-1.2 3.1-2.9.1-.8-.2-1.7-.6-2.4-.5-.7-1.1-1.3-1.9-1.4l-3.1 1c-.2 0-.4.1-.7.1-.4 0-.8-.1-1.1-.2-.2-.5-
.6-.9-1.1-1h-.6l-5.2.9-1.4.3.5 2.9zm12.6-1.7c.2.3.5.8.5 1.3s-.4.8-.9.8h-.1c-.4 0-.8-.4-.8-.8 0-.3-.1-.6-.2-.8l1.5-.5zM38.7 72.4c-.8.1-1.4.9-1.2 1.8 0 .1.1.2.1.3-.2.1-.4.1-.7.1l-3.2-.1c-1.4.7-1.9 2.9-1.3 4.4.1.2.2.4.3.5 0 .1.1.1.1.1.1.1.1.2.2.3l.2.2c.1.1.1.1.2.1.3.2.7.4 1 .6.1 0 .3.1.4.1h.5c.4 0 .8-.1 1.2-.2 1.4-.6 2.2-2 1.9-3.5-.1-.7 0-1.3.4-1.8h.5l2.2-.4c.2.4.3 1.1.5 1.7.1.7.8 1.7.8 2.4-.2 1.9-1.2 3.9-2.5 5 .3.5.5 1 .5 1.6 0 .3.6 7.7 7.9 10.8 2.2 1 4.3 1.3 6.3 1.3 6.5 0 11.2-4.1 12.1-5 0-.1.1-.2.1-.3.3-.7.6-1.3.9-2 .7.6 1.7 1.2 2.9 1.5 3.5 1 5.2.8 5.9.6.7.7 2.8 2.3 5.9 2.3.5 0 1.1-.1 1.7-.2 4.1-.8 6.3-3.7 6.8-4.5 1.1-.3 5.8-2 7.8-5.6l.9.3c.3.1 3.9 2 8.5 2 3.2 0 6.9-.9 10.4-3.8 6.1-5.2 4.4-12.6 4.3-12.6-.1-.6-.1-1.1 0-1.7-.9-.4-1.9-1.2-2.7-2.1-.1-.2-.3-.4-.4-.5-.1-.2-.2-.3-.3-.5 0 0 0-.1-.1-.1-.1-.2-.2-.5-.3-.7-.3-.7.1-1.8 0-2.5 0-.3-.1-.5-.1-.8-.4 1-.8 1.9-1.3 2.9-.1-1.3-.2-2.1-.2-2.1 0-.3-.3-.5-.6-.5s-.5.3-.5.6c0 0 .2 1.6.3 3.9.1 1.6.1 3.5 0 5.5v.6c-.1 2.7-1 5.8-1.4 7.3-.2.6-.3.9-
.3 1-.1.3.1.6.3.7h.2c.2 0 .4-.1.5-.4 0-.1.6-1.7 1.1-3.7-.4 2.1-1 3.7-1 3.8-.1.3-.3.4-.6.4h-.2c-.3-.1-.5-.5-.4-.8 0 0 .1-.2.2-.5-1.9 1.7-9 3.3-15.9 3.7 0 0 0-.1.1-.1.3-.8.4-1.6.4-2.5v-.4-.8-.1-.1l-.1-.6c0-.1-.1-.3-.1-.4l-.1-.4c0-.1-.1-.2-.1-.3l-.2-.5c0-.1-.1-.2-.1-.3l-.1-.1s0-.1-.1-.1h.3l.5-.1 3.5-.6 1.7-.3c6.1-1.1 10.1-6.9 9-12.9l-1-5.8c-.3-1.7-.9-2.7-1.7-3.3.5-.3.9-.9.8-1.6-.1-.8-.9-1.4-1.8-1.2l-4.7.8L84.5 56c-.9-.6-1.9-1.1-3-1.4-1.3-.3-2.6-.4-4-.2-1.4.3-2.7.8-3.8 1.6-.9.6-1.6 1.4-2.2 2.3L50.6 62l-5.1.9h-.1c-.8.1-1.4.9-1.2 1.8.1.8.9 1.3 1.7 1.3-.5.9-.7 2-.4 3.6l.3 1.5-5.9 1-.6.1-.6.2zm-3.1 6.3c-.1 0-.2.1-.3.1-.3 0-.7-.2-.8-.6-.2-.4-.1-1 .1-1.4h1.5c0 .3 0 .6.1.8 0 .5-.2.9-.6 1.1zm84.6-4.9c.1-1.3.1-2.6.1-3.9.2.2.4.3.6.5 0 .3.1.6.2 1 0 .2 1 4.7-1.9 8.6.4-1.6.8-3.8 1-6.2zm-5.9 9.8c.1.1.2.1.3.2-1.7.8-3.5 1.3-5.4 1.3 1.9-.5 3.7-1 5.1-1.5zm-59.4 12c-1.8 0-3.6-.4-5.4-1.1-6-2.5-6.5-8.7-6.5-8.9 0-.3-.1-.6-.1-.9.5-.7 1-1.5 1.4-2.4.5 1.4 1.1 3 1.7 4.4 1.7 4 4.3 7.1 4.4 7.2.6.7 1.4 1 2.2 1 .7 0
1.3-.2 1.8-.7l.2-.2h.7c2 0 4.7-.3 7.5-.8-1.9 1.2-4.7 2.4-7.9 2.4zm22.9-40c1.8-.3 3.6 0 5.2.8l-9.7 1.7c1.1-1.3 2.7-2.2 4.5-2.5zm8.1 3.3c-.5.9-.7 2-.4 3.6l.4 2.4c-3-1.4-6.5-1.4-9.4 0-.9.4-1.7.9-2.5 1.6l-.3.3-.4-2.1c-.3-1.6-.8-2.6-1.6-3.3l14.2-2.5zM66.6 83.8v-.4l.1-.3c5.3-1.7 8.6-7 7.6-12.6l-.1-.3c.1 0 .2-.1.4-.1.2-.1.3-.2.4-.3.6-.7 1.4-1.3 2.2-1.8 2.4-1.3 5.4-1.4 7.9 0 .3.2.7.2 1 .2.1 0 .2-.1.3-.1l.1.3c1 5.6 5.9 9.4 11.4 9.2l.2.3c0 .1.1.1.1.2v.1c0 .1.1.2.1.2l.1.4c0 .1.1.2.1.3l.1.5c0 .1 0 .2.1.4v2.6c-.5 2.6-2.6 4.5-5.9 5.2h-.1H92.4c-.1 0-.3.1-.4.1-.5.1-1 .4-1.5.7-.5.3-.9.7-1.2 1.1-.4.4-.7.8-1.1 1.1-.3.4-.7.7-1.1 1l-.9.5-.2.1c-.1 0-.1.1-.2.1l-.2.1h-.1l-.2.1h-.1l-.3.1-.4.1H83.1c-.5 0-1-.1-1.4-.2-.5-.1-.9-.3-1.4-.5-.5-.2-.9-.5-1.4-.7-.5-.2-1-.5-1.5-.6-.5-.1-1.1-.2-1.7-.1H75.4h-.1-.1-.1c-3.4.6-6.1-.5-7.5-2.8l-.1-.1-.1-.3v-.1l-.1-.1s0-.1-.1-.1l-.1-.4c0-.1 0-.1-.1-.2v-.1-.1l-.2-1c0-.1 0-.2-.1-.4l-.1-1.1v-.2zm-20.4-9.6h.2l.2 1.3c1.1 6.1 6.9 10.1 12.9 9l2.5-.4 3.2-.6h.2v.8l.1 1.2c0 .1 0 .3.1.
4v.1s.2 2 1.6 3.8c0 0 0 .1.1.1-4.5 1.2-9 1.9-12 1.9-.9 0-1.7-.1-2.3-.2.2.3.2.7-.1.9-.1.1-.3.1-.4.1-.2 0-.4-.1-.5-.2 0 0-.3-.4-.8-1 .5.6.8.9.8 1 .1.1.3.2.4.2.1 0 .3-.1.4-.2.2-.2.2-.6 0-.8 0 0-.1-.1-.2-.3-.7-.8-2.9-3.4-4.1-6.3-.1-.2-.2-.4-.3-.7-.7-1.8-1.3-3.6-1.8-5.2-.8-2.4-1.2-4.3-1.2-4.3-.1-.3-.4-.5-.7-.4-.3.1-.5.4-.4.7 0 0 .3 1.1.7 2.6-1-1-2-2-2.9-3l4.3-.5zm93-26.2c-.5-.2-1-.3-1.6-.3-.6-1.8-1.8-2.3-2.9-2.3h-.3c-.8 0-1.6.3-2.3.7-.6-.7-1.5-1.7-3-1.7-.5 0-1 .1-1.4.3-2 1-2.9 3.5-1.9 5.5l.7 1.3h-.2c-.8 0-1.8.1-2.7.4 0-1.9-.1-3.9-.4-5.8-1.1-6-4-11.7-8.5-16.3.7-13.5-6.9-26.8-12.1-27.9-.3-.1-.7-.1-1.1-.1-4.9 0-12.2 6.2-15.9 10.3-.9 1-2.2 2.6-3.4 4.4h-.5c-3.1 0-6.5.3-9.9.9-3.6.6-7 1.5-10 2.6-1.7-1.2-3.3-2.2-4.5-2.8-4.4-2.4-10.9-4.7-15.5-4.7-1.7 0-3 .3-4 .9-4.5 2.7-7.1 17.8-1.8 30.3-2.7 5.9-3.5 12.2-2.5 18.3.4 2 .9 3.9 1.7 5.8h-.4c-.8 0-1.9.1-2.8.4l.2-1.5c.4-2.2-1.1-4.4-3.4-4.7h-.5c-2 0-2.9 1.7-3.3 2.6-.4-.1-.8-.2-1.2-.2-.5 0-1 .1-1.4.3-1 .4-2.1 1.2-2.1 3.1-.6.2-1.1.4-1.5.8-1.2 1.1-1.9 3-.1
5.3.2.2.2.4.3.6.1.3.3.8.8 1.3.1.1.3.4.6.7.9 1.1 1.8 2.1 2.2 2.5l.6.6 1 1c.4 1 .8 1.8 1.4 2.5.1.2.2.3.4.5.2.3.3.5.5.8 1.5 1.9 3 3.3 4.6 4 .8 4.2 3.6 12.8 13.5 17.1 3.3 1.4 6.8 2.1 10.2 2.1 1.3 0 2.7-.1 4-.3-1.2 3.7-2.1 7.1-2.6 10-.9-.3-1.9-.7-3.1-1-.3-.2-.4-.4-.5-.4-.6-.5-1.4-.8-2.2-.8-.4 0-.9.1-1.3.2-2.1-.4-4.2-.7-6.4-.9-.4-.2-.7-.4-1.1-.5-.2 0-.4-.1-.7-.1-.5 0-1 .1-1.4.3-1.1-.1-2.2-.1-3.3-.1h-2.6c-.5-.3-1.1-.4-1.6-.4-.7 0-1.3.2-1.8.5-.1 0-.1.1-.2.1-2.1.2-4.2.6-6.2 1.1-.2 0-.4-.1-.7-.1-.5 0-1 .1-1.4.3-.3.1-.6.3-.9.6-7.7 2.4-12.1 5.9-12.5 6.3-.3.3-.6.6-.7.9-2.6 2.1-4.2 4.3-4.7 6.7-1.1 5.5 3.4 11.3 11.7 15.4.1.5.4 1 .7 1.4.7.8 1.6 1.2 2.6 1.2.6 0 1.2-.2 1.8-.5 2.7.9 5.5 1.5 8.3 1.9.1.2.3.3.4.4.6.5 1.4.8 2.2.8.9 0 1.7-.3 2.4-.9 1 0 2-.1 2.9-.1 2.1-.2 4.1-.5 6.2-1 .2.2.5.3.7.5.5.2.9.3 1.4.3 1.4 0 2.6-.8 3.2-2.1 0 0 0-.1.1-.1 1.9-.6 3.8-1.3 5.6-2.1.1.1.2.1.3.2.5.3 1.1.4 1.6.4 1.3 0 2.5-.7 3.1-1.9 0-.1.3-.6.6-1.5.6 3.2 1.6 6.9 3.3 10.2 2.7 5.4 4.3 7.3 6.3 7.3.7 0 1.4-.3 2-.8.8-.9 1.2-2.2
1.1-4.5 0-1.6-.1-4.5-.2-7.4 1.9.4 3.9.7 6.2.9 1.9.1 3.7.2 5.6.2 5.9 0 11.4-.8 16.1-2.2-.1 2.8-.2 5.5-.2 7-.1 2.3.3 3.6 1.1 4.5.5.5 1.2.8 2 .8 2 0 3.6-1.8 6.3-7.3 2.4-4.8 3.4-10.4 3.9-14.3 2.9-7.6.4-22.8-2.3-30.7-1.1-3.3-2.2-6.3-3.3-9.1.6 0 1.2.1 1.8.1 6.2 0 11.8-2.1 16.6-6.1 8.2-6.9 8.4-16.1 7.9-20.3 1.3-1.2 2.4-2.9 3.3-5.2l.3-.9c.1-.2.2-.4.2-.5.3-.9.5-1.8.6-2.8l.9-1.8.2-.3c.3-.6.8-1.7 1.4-3.1.1-.3.3-.6.3-.8.3-.6.3-1.1.4-1.5 0-.2 0-.4.2-.6 1.2-2.7 0-4.4-1.5-5.1zm-.5 4.3c-.4 1.1-.2 1.4-.5 2-.3.7-1.3 3-1.7 3.8-.1.2-.7 1.2-1.3 2.5 0 .9-.2 1.8-.5 2.7-.1.2-.1.4-.2.6l-.3.9c-.7 1.9-1.8 4-3.6 4.9.5 2.6 1.6 12.4-6.9 19.6-5.1 4.3-10.5 5.6-15.1 5.6-1.4 0-2.8-.1-4-.3-1.2-2.5-2.8-4.8-2.9-4.9-.2-.2-.5-.3-.8-.1-.2.2-.3.5-.1.8 0 0 2.1 2.8 3.2 5.7 0 0 0 .1.1.1.1.2.1.4.2.6l.1.1c1.4 3.4 2.6 6.9 3.7 10.1 2.9 8.6 4.9 23.1 2.2 29.4-.4 3.7-1.4 9.2-3.7 13.9-2.2 4.3-3.5 6-4.3 6h-.2l-.1-.1-.1-.1s0-.1-.1-.1c0-.1-.1-.2-.1-.3-.2-.5-.2-1.3-.2-2.3.1-1.9.2-5.6.3-9.1 2.8-1.3 4.6-2.8 4.6-2.9.2-.2.2-.6 0-.8-.2-.2-.6-
.2-.8 0 0 0-1.8 1.6-4.4 2.7-4.6 1.8-10.6 3-17.9 3-1.7 0-3.5-.1-5.4-.2-3.4-.3-6.3-.8-8.7-1.5v.2c-2.1-.9-3.8-2.3-3.8-2.4-.2-.2-.6-.2-.8 0-.2.2-.2.6 0 .8.1.1 2.1 1.9 4.6 2.7.1 3.4.2 7 .3 8.9.1 1.8-.2 3-.8 3-.1 0-.2 0-.3-.1-.1 0-.2-.1-.3-.2l-.1-.1-.3-.3-.1-.1c-.1-.1-.2-.3-.3-.4l-.2-.2c-.1-.1-.2-.3-.3-.5-.1-.1-.2-.2-.2-.4-.1-.2-.2-.3-.3-.5-.1-.2-.2-.3-.3-.5-.1-.1-.2-.3-.2-.4-.4-.7-.8-1.4-1.2-2.2-.2-.4-.4-.9-.6-1.4 0-.1 0-.1-.1-.1-.2-.4-.4-.9-.5-1.3 0-.1-.1-.2-.1-.2-.2-.5-.3-.9-.5-1.4 0-.1 0-.1-.1-.2-.1-.5-.3-.9-.4-1.4 0-.1 0-.1-.1-.2-.1-.5-.2-.9-.4-1.4v-.1c-.1-.5-.2-1-.3-1.4v-.1c-.2-1.3-.4-2.5-.6-3.6-1 .7-2.2 1.4-3.5 2.1-.4 1.2-.7 1.9-.8 2-.2.4-.7.7-1.1.7-.2 0-.4 0-.6-.1-.4-.2-.6-.5-.6-.9-2.4 1.1-5 2.2-8 3.1-.2.6-.4 1-.4 1-.2.5-.7.7-1.1.7-.2 0-.3 0-.5-.1-.4-.2-.6-.5-.7-.9-1.7.4-3.6.8-5.4 1h-.1c-.6.1-1.2.2-1.9.2-1 .1-1.9.1-2.9.1h-.9c-.2.3-.3.4-.3.5-.2.3-.6.5-1 .5-.3 0-.6-.1-.8-.3-.3-.2-.4-.5-.4-.8-3.5-.3-7-1.1-10.2-2.3l-.5.5c-.2.2-.5.3-.8.3-.4 0-.7-.1-1-.4-.3-.4-.4-.9-.2-1.3-4.6-2.1-8.4-4
.9-10.4-7.9-.1-.1-.1-.2-.2-.3l-.3-.6c-.1-.1-.1-.3-.2-.4-.1-.1-.1-.3-.2-.4-.1-.2-.1-.3-.2-.5 0-.1-.1-.2-.1-.3-.1-.2-.1-.4-.1-.6v-.3c0-.2-.1-.4-.1-.6v-.1c0-.5 0-1.1.1-1.6.4-2.2 2.1-4.1 4.4-5.8 0-.2 0-.4.2-.6.3-.2 4.6-3.8 12.4-6.1.1-.2.3-.4.5-.5.2-.1.3-.1.5-.1s.4.1.6.2c2.2-.6 4.6-1 7.3-1.2.1-.2.2-.3.4-.4.2-.1.4-.2.7-.2.4 0 .7.2 1 .5.3 0 .6 0 .9-.1h2.3c1.3 0 2.6 0 3.8.1.2-.2.5-.3.9-.3h.2c.1 0 .4.2.7.4 2.9.2 5.4.6 7.6 1.1.2-.2.6-.4.9-.4.3 0 .5.1.8.3l.7.7c2.6.7 4.3 1.4 5.3 1.8v.1c0 .4.1.8.1 1.3.2 3 .7 7.5 1.4 11.6 0 .3.3.5.5.5h.1c.3-.1.5-.3.5-.6-1-5.8-1.5-12.1-1.6-14.3.5-3.5 1.6-7.4 2.9-11.2 0-.1.1-.2.1-.3 2.2-6.1 4.2-8.1 4.2-8.1.2-.2.2-.6 0-.8-.2-.2-.6-.2-.8 0-.1.1-1.7 1.7-3.6 6.3-1.9.5-4 .9-6.3.9-2.9 0-6-.6-9.3-2-10.2-4.4-12.1-14.1-12.4-16.7-2-.4-3.6-2-4.8-3.6-.2-.2-.3-.5-.5-.7-.1-.1-.3-.3-.4-.5-.2-.3-.5-.7-.7-1.1 0-.1-.1-.1-.1-.2-.2-.4-.3-.7-.5-1.1v-.1l-2-2c-.6-.6-2.2-2.6-2.7-3.1-.1-.1-.1-.1-.1-.2-.3-.4-.3-.7-.7-1.3-.1-.1-.1-.2-.2-.3-.1-.1-.2-.2-.2-.3-.5-.8-.6-1.4 0-2 .1-.1.1-.1.2-.1l.
1-.1c.1-.1.3-.1.5-.2H21.6c.5 0 1 .2 1.3.6l.1.1c-.1-.5-.1-1.2-.2-1.8-.2-.9-.3-1.6.6-2H24c.2 0 .4.1.7.1 0 0 .1 0 .1.1.1 0 .2.1.2.1.1.1.2.2.3.2l.1.1c.1.1.2.3.2.4 0 0 .2.5.4 1.1 0-.3.1-.5.1-.7.2-1 .6-1.3.9-2 .3-.7.6-1.9 1.5-1.9h.2c.5.1.9.4 1.2.8.3.4.4.9.3 1.4l-.5 3.2-.4 2.3c-.5.9-1.2 2.1-1.7 3.4-.1.3.1.6.3.7h.2c.2 0 .4-.1.5-.4.7-1.9 1.7-3.5 2.2-4.2.5-.3 1-.7 1.6-1 .6-.3 1.6-.5 2.4-.5.3 0 .7 0 .9.1.5.1 1.2.6 1.9.6.5.1 1.2.1 1.6.7.1.2.2.4.2.8l.6-.1c-.9-1.4-1.7-2.9-2.4-4.4-.1-.3-.2-.5-.3-.8-.1-.2-.1-.4-.2-.6-.1-.4-.3-.7-.4-1.1 0-.1-.1-.3-.1-.4-.1-.5-.3-1-.4-1.5-.1-.6-.3-1.1-.4-1.7-.1-.3-.1-.6-.1-.9 0-.3-.1-.7-.1-1 0-.4-.1-.7-.1-1.1v-.9V57v-.9c0-.6.1-1.2.1-1.8 0-.3.1-.7.1-1 .1-.3.1-.7.2-1 .1-.3.1-.6.2-1 .1-.3.1-.7.2-1 .1-.4.2-.7.3-1.1.1-.3.2-.6.3-1 .2-.6.4-1.1.6-1.7.1-.3.2-.6.4-.9.1-.3.3-.7.4-1 .1-.2.1-.3.2-.5 0-.1.1-.1.1-.2.1-.1.1-.2.2-.3 2.7-4.5 5.9-7.4 6-7.4.2-.2.3-.6 0-.8-.2-.2-.6-.3-.8 0-.1.1-2.2 2-4.5 5.1-.5.7-1 1.4-1.5 2.2 0 .1-.1.1-.1.2-4.7-11.6-2.2-25.2 1.1-27.1.7-.4 1.6-.6 2.8-.6
3.8 0 9.8 2 14.4 4.5 1.5.8 3.4 2 5.2 3.4 2.9-1.1 6.5-2.1 10.8-2.9 3.6-.6 6.7-.9 9.5-.9h1.7c1.2-2 2.6-3.8 3.8-5.1 4.3-4.8 10.7-9.6 14.2-9.6.2 0 .4 0 .6.1 3.8.8 10.8 12.8 10.3 25.3l-.1-.1c-.7-.6-1.5-1.1-2.2-1.6-2.6-1.7-4.9-2.6-5-2.7-.3-.1-.6 0-.7.3-.1.3 0 .6.3.7.1 0 5.2 2.1 9.1 6l.2.2c1 1.1 1.9 2.3 2.7 3.5 0 .1.1.1.1.2.4.6.7 1.2 1.1 1.7l.1.1c.7 1.3 1.3 2.6 1.8 4 0 .1.1.2.1.3.2.6.4 1.2.6 1.9 0 .1 0 .2.1.3.2.7.3 1.4.5 2.2l.3 2.4c.2 2.4.1 4.8-.3 7.1.3-.2.6-.4.9-.5.7-.3 1.2-.9 1.6-1.2.6-.4 1.9-.7 2.8-.7h.5c1 .2 2 .4 2.8.8 1.8 1.5 3.5 3 3.7 3.4.1.2.3.3.5.3.1 0 .2 0 .2-.1.3-.1.4-.5.2-.7-.4-.8-3.1-3-4.4-4.2l-.6-1.3-1.5-2.9c-.5-.9-.1-2.1.8-2.5.1-.1.3-.1.4-.1.7 0 1.3.9 1.7 1.4.5.5.9.7 1.3 1.4.1.1.1.2.2.3l.3.6c0-.7.1-1.1.1-1.2.1-.9.8-1.6 1.7-1.6h.1c.4 0 .6.2.8.4.3.3.3.8.4 1.4 0 .1 0 .3.1.4 0 .1 0 .2.1.3.1.4.2.7.2 1.1l.1-.1c.3-.6.9-1 1.6-1 .2 0 .5 0 .7.2.2.1.4.2.5.4.3.1.3.7-.1 1.5z" fill="url(#b)" transform="translate(145 67)"/></g></g></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/figure_screenshots.svg b/browser/extensions/onboarding/content/img/figure_screenshots.svg
deleted file mode 100644
index f4930d09f7af..000000000000
--- a/browser/extensions/onboarding/content/img/figure_screenshots.svg
+++ /dev/null
@@ -1,191 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="281" height="233">
- <defs>
- <linearGradient id="a" x1="-26.7072552%" x2="121.200691%" y1="-8.21456664%" y2="115.364749%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="b" x1="-171.534367%" x2="377.694136%" y1="-258.916232%" y2="507.082022%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="c" x1="-275.615152%" x2="393.814483%" y1="-214.880097%" y2="329.931438%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="d" x1="-71.2230562%" x2="141.268437%" y1="-46.5567621%" y2="122.213199%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="e" x1="-912.187374%" x2="706.872366%" y1="-223.131903%" y2="247.7375%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="f" x1="-636.509606%" x2="265.115932%" y1="-364.308744%" y2="178.753736%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="g" x1="-96.7324958%" x2="214.858961%" y1="-489.128132%" y2="600.29142%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="h" x1="-370.226425%" x2="176.655533%" y1="-420.236682%" y2="206.08556%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="i" x1="-1573.85207%" x2="2621.18334%" y1="-918.807829%" y2="1582.542%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="j" x1="-1977.10979%" x2="2217.92561%" y1="-1158.35597%" y2="1342.99386%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="k" x1="-635.169191%" x2="1018.69953%" y1="-1184.44408%" y2="1785.60576%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="l" x1="-278.76866%" x2="377.256589%" y1="-697.981967%" y2="835.635246%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="m" x1="-553.131633%" x2="647.619338%" y1="-1374.34047%" y2="1418.49315%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="n" x1="-450.59361%" x2="546.286439%" y1="-895.950857%" y2="958.91224%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="o" x1="-511.211278%" x2="295.07392%" y1="-745.273546%" y2="396.265912%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="p" x1="-871.182847%" x2="303.781403%" y1="-595.928571%" y2="241.5435%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="q" x1="-450.336951%" x2="307.764971%" y1="-505.416691%" y2="315.448433%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="r" x1="-2519.79056%" x2="1944.50093%" y1="-1090.70814%" y2="890.815528%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="s" x1="-134.127826%" x2="165.330874%" y1="-297.102666%" y2="260.202663%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="t" x1="-1132.52358%" x2="304.180944%" y1="-1559.01765%" y2="393.843988%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="u" x1="-1884.94918%" x2="1592.74001%" y1="-342.289711%" y2="381.222953%">
- <stop stop-color="#E6FCFF" offset="0%"/>
- <stop stop-color="#B5F2FF" offset="100%"/>
- </linearGradient>
- <linearGradient id="v" x1="-109.932792%" x2="195.629347%" y1="-425.144051%" y2="431.622036%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="w" x1="-813.648281%" x2="368.736119%" y1="-1076.38789%" y2="459.249729%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="x" x1="-1092.12785%" x2="635.82518%" y1="-4587.46665%" y2="2425.66052%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="y" x1="-415.250984%" x2="1490.35841%" y1="-442.448072%" y2="1582.67684%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="z" x1="-167.167389%" x2="492.546376%" y1="-2085.55413%" y2="4392.09342%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="A" x1="-2989.85248%" x2="1926.86535%" y1="-1363.11821%" y2="921.90878%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- <linearGradient id="B" x1="-2586.45105%" x2="2652.41027%" y1="-792.93501%" y2="883.790987%">
- <stop stop-color="#00C8D7" offset="0%"/>
- <stop stop-color="#008EA4" offset="100%"/>
- </linearGradient>
- </defs>
- <g fill="none" fill-rule="evenodd">
- <g fill="#D7D7DB" fill-rule="nonzero">
- <path d="M204.3 76.7h-77c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h77c.6 0 1.1.5 1.1 1.1 0 .6-.4 1.1-1.1 1.1zM193.9 71h-13.4c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.2.6-.6.6zM176.4 81.7H163c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.2.6-.6.6zm-22.2 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-7.8 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-11.2 0h-13.4c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-22.2 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-7.8 0H104c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.2.6-.5.6zm-11.2 0H80.6c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6H94c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-22.3 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-7.8 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6z"/>
- </g>
- <g fill-rule="nonzero">
- <path fill="#F9F9FA" d="M152.3 47.8h23.8s-7.4-16.6 8.3-18.8c14.1-1.9 19.6 12.5 19.6 12.5s1.7-8.3 10-6.7c8.3 1.6 14.3 14.8 14.3 14.8H249"/>
- <path fill="#D7D7DB" d="M249.5 45.8H245c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h4.5c.3 0 .6.2.6.6-.1.4-.3.6-.6.6zm-14.5 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-5.6 0h-.6c-.2 0-.4-.1-.5-.3-.1-.2-.6-1.1-1.3-2.3-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2.6.9 1 1.7 1.2 2.1h.3c.3 0 .6.2.6.6 0 .4-.4.5-.7.5zm-52.9-.7H175c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h.6c-.1-.3-.2-.6-.4-1-.1-.3.1-.6.4-.7.3-.1.6.1.7.4.3 1 .6 1.7.6 1.7.1.2.1.4 0 .5-.1.1-.3.3-.4.3zm-10.4 0h-13.4c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.4c.3 0 .6.2.6.6-.1.4-.3.6-.6.6zm8.7-6.1c-.3 0-.5-.2-.6-.5 0-.4-.1-.8-.1-1.1 0-.3.2-.6.5-.6s.6.2.6.5c0 .4.1.7.1 1.1.1.3-.1.6-.5.6.1 0 .1 0 0 0zm29.2-1.1c-.2 0-.4-.1-.5-.3-.1-.3-.3-.6-.5-1-.1-.3 0-.6.2-.8.3-.1.6 0 .8.2.2.4.4.7.5 1 .1.3 0 .6-.3.7-.1.2-.2.2-.2.2zm17.9-1.4c-.1 0-.3-.1-.4-.2-2.4-2.3-4.8-3.7-7.2-4.1-1.6-.3-3.1-.2-4.3.2-.3.1-.6-.1-.7-.4-.1-.3.1-.6.4-.7 1.4-.5 3.1-.6 4.9-.2 2.6.5 5.2 2 7.7 4.4.2.2.2.6 0 .8-.1.1-.2.2-.4.2zM201 33.2c-.2 0-.3-.1-.4-.2-.7-.9-1.4-1.7-2.2-2
.4-.2-.2-.2-.6 0-.8.2-.2.6-.2.8 0 .8.7 1.6 1.6 2.3 2.5.2.2.2.6-.1.8-.2 0-.3.1-.4.1zm-22.8-4.3c-.2 0-.3-.1-.4-.2-.2-.2-.2-.6.1-.8 1.7-1.4 4.1-2.3 6.9-2.7 2.2-.3 4.3-.2 6.3.2.3.1.5.4.4.7-.1.3-.4.5-.7.4-1.9-.4-3.9-.5-5.9-.2-2.7.4-4.8 1.2-6.4 2.4-.1.2-.2.2-.3.2z"/>
- <path fill="#F9F9FA" d="M250.2 50.1h-97.9c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h97.9c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1z"/>
- </g>
- <g fill-rule="nonzero">
- <path fill="#F9F9FA" d="M49.3 29.4h13.2s-4.1-9.2 4.6-10.4c7.8-1.1 10.9 7 10.9 7s.9-4.6 5.6-3.8c4.6.9 8 8.3 8 8.3h11.5"/>
- <path fill="#D7D7DB" d="M62.9 27.9H49.7c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h12.8s.1-.1.2-.1c.3-.1.6 0 .7.3l.1.1c.1.2.1.4 0 .5-.2.3-.4.4-.6.4zm36.6-.1h-3.3c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .3-.3.6-.6.6zm-20.9-3.6h-.2c-.3-.1-.5-.4-.4-.7.3-.9 1.5-4 4.9-4 .4 0 .8 0 1.2.1 1.8.3 3.6 1.5 5.4 3.4.2.2.2.6 0 .8-.2.2-.6.2-.8 0-1.6-1.7-3.2-2.7-4.8-3-.4-.1-.7-.1-1-.1-2.6 0-3.5 2.2-3.8 3.2-.1.1-.3.3-.5.3zm-15.2-4.9c-.1 0-.3-.1-.4-.2-.2-.2-.2-.6 0-.8.8-.8 1.8-1.4 3.1-1.7.3-.1.6.1.7.4.1.3-.1.6-.4.7-1.1.3-2 .8-2.6 1.4-.1.2-.3.2-.4.2zm8.4-1.5h-.2c-.3-.1-.7-.2-1-.3-.3-.1-.5-.3-.4-.7.1-.3.4-.5.7-.4.4.1.8.2 1.1.3.3.1.5.4.4.7-.2.3-.4.4-.6.4z"/>
- <path fill="#F9F9FA" d="M104 31.6H49.6c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1H104c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1z"/>
- </g>
- <g fill-rule="nonzero">
- <path fill="#FFF" d="M19.6 169.1c-2.8 0-5-2.2-5-4.8V46c0-3 2.4-5.4 5.4-5.4h127c3 0 5.4 2.4 5.4 5.4v118.3c0 2.6-2.3 4.8-5 4.8H19.6z"/>
- <path fill="#D7D7DB" d="M146.9 41.8c2.3 0 4.2 1.9 4.2 4.2v118.3c0 2-1.8 3.7-3.9 3.7H19.6c-2.2 0-3.9-1.6-3.9-3.7V46c0-2.3 1.9-4.2 4.2-4.2h127zm0-2.2h-127c-3.6 0-6.5 2.9-6.5 6.5v118.3c0 3.3 2.8 5.9 6.2 5.9h127.6c3.4 0 6.2-2.7 6.2-5.9V46c0-3.5-2.9-6.4-6.5-6.4z"/>
- </g>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M145.8 62.9V161c0 1-.1 1.2-.1 1.2s-.2.1-1.2.1h-122c-1 0-1.2-.1-1.2-.1s-.1-.2-.1-1.2V62.9h124.6zm1.1-1.2H20v99.2c0 2 .4 2.5 2.5 2.5h122c2 0 2.5-.4 2.5-2.5V61.7h-.1z"/>
- <g fill="#D7D7DB" fill-rule="nonzero">
- <circle cx="3.8" cy="3.7" r="2.9" transform="translate(23 48)"/>
- <circle cx="3" cy="3.7" r="2.9" transform="translate(33 48)"/>
- <path d="M115.3 54.9H51.5c-1.7 0-3.1-1.4-3.1-3.1v-.3c0-1.7 1.4-3.1 3.1-3.1h63.8c1.7 0 3.1 1.4 3.1 3.1v.3c0 1.8-1.4 3.1-3.1 3.1z"/>
- <g>
- <circle cx="3.8" cy="3.7" r="2.9" transform="translate(127 48)"/>
- <circle cx="3.1" cy="3.7" r="2.9" transform="translate(137 48)"/>
- </g>
- </g>
- <g transform="translate(149 84)">
- <ellipse cx="42.7" cy="142" fill="#EDEDF0" fill-rule="nonzero" rx="42.5" ry="6.5"/>
- <path fill="#F9F9FA" fill-rule="nonzero" d="M121.2 99.6c-1.3-3.1-4.3-5.2-7.7-5.2-.7 0-1.4.1-2.1.3-.8 0-3.1-.3-7.2-2-1.7-.7-4.8-3.9-8.4-10.5 5.2-19.9 5.5-36.8.7-50.3-.4-1-.9-2.1-1.5-3.2l-.3-1.4 2-1.7c1.6-1.4 2.3-3.5 1.7-5.6-.3-1.2-1-2.2-2-2.9 0-.3 0-.6-.1-.9-.4-2.3-2.2-4.1-4.5-4.4-.4-.1-10.6-1.7-17.1-1.7h-.4l-1.7-2.8C70 3.1 65.5.6 60.5.6c-2.6 0-5.2.7-7.5 2.1-2.6 1.6-4.5 3.9-5.7 6.7-6 .7-12.1 2.3-18.2 4.7l-3.4-1.4c-1.7-.7-3.5-1.1-5.4-1.1-5.8 0-10.9 3.5-13.1 8.8-2.7 6.6-.1 14 5.8 17.5-1.1 5.9-1.5 12.4-1 19.6.6 9-2.2 13.5-5.1 18.2-4.4 7.1-9.4 15.1 0 33.8 0 2.2.1 4.2.2 5.8 1.3 11.8 4.6 17.7 10 17.7.9 0 1.9-.2 2.7-.6 2.2-1.1 3.3-2.6 5-9.9 9.3 3.1 21.2 5.8 30.9 6.9-1.7 7.6-1.5 9.4 0 11.4 1.2 1.5 3 2.4 5 2.4 4.1 0 8.8-4.1 14-12.1 1.3-2.1 2.8-5 4.4-8.5 1.4-2.4 5.5-9.7 10-20.9 2.8 2.9 5.6 5 8.6 6.2 5.2 2.1 9.8 3.2 13.5 3.2 2.5 0 4.2-.5 5.1-.9 4.6-1.5 6.6-6.4 4.9-10.6z"/>
- <path d="M115.2 101.4c-.4-.9-1.5-1.4-2.4-1-.2.1-.6.1-1.2.1-1.4 0-4.6-.3-9.8-2.4-5.5-2.2-10.3-10.6-12.7-15.5-.1-.2-.1-.5-.1-.8 5.4-19.5 5.9-35.8 1.4-48.4-.3-.8-.7-1.8-1.3-2.7-.1-.1-.1-.2-.1-.3L87.7 25c-.1-.4 0-.8.4-1.1l2.6-2.2-5.8-.9c-.5-.1-.9-.4-.9-.9s.2-.9.6-1.2l3-1.6c-3.5-.5-8.9-1.1-12.7-1.1-1.1 0-2 .1-2.6.2l-.4.1c-.4.1-.9-.1-1.1-.5l-3.4-5.5C66 8 63.5 6.7 60.9 6.7c-1.4 0-2.8.4-4.1 1.2-2.2 1.4-3.5 3.7-3.6 6.3 0 .6-.5 1-1.1 1.1-7.2.4-14.7 2.2-22.2 5.4-.3.1-.6.1-.9 0l-5.4-2.2c-.9-.4-1.9-.6-2.9-.6-3.1 0-5.9 1.9-7.1 4.8-1.6 3.9.3 8.4 4.2 10l2.3.9c.5.2.8.8.6 1.3-1.8 6.2-2.4 13.6-1.8 21.9.7 11.1-2.9 16.9-6.1 22.1-4.3 6.9-7.7 12.3.9 28.6.1.2.1.4.1.5-.1 2.6 0 4.7.2 6.3.8 7.8 2.6 11.1 3.4 11.8.4-.8 1.2-3.3 2.9-11.3.1-.3.3-.6.6-.8.2-.1.3-.1.5-.1.1 0 .3 0 .4.1 10.8 4.5 29.6 8.7 41.2 9.1.3 0 .7.2.9.4.2.3.3.6.2.9-2.1 8.3-2.5 11-2.5 11.9 1.1-.3 4.2-2.7 8.3-9.1 1.2-1.9 2.5-4.5 4-7.9 0 0 0-.1.1-.1 3.3-5.6 8.7-16.6 13-29.4.1-.4.5-.7.9-.8.4 0 .9.2 1.1.5 3.7 6.2 7.8 10.4 11.7 12 5.5 2.2 9.1 2.7
11.1 2.7 1.6 0 2.4-.3 2.7-.4.6-.4 1-1.5.7-2.4z"/>
- <path fill="url(#a)" fill-rule="nonzero" d="M114.6 98c-.8-2.1-2.9-3.4-5.1-3.4-.6 0-1.1.1-1.7.3-.7 0-3.4 0-8.7-2.2-3-1.2-6.8-6-10.3-12.8 5.4-19.8 5.7-36.5 1-49.7-.3-1-.8-2-1.4-3l-.9-3.4 3.3-2.8c.8-.7 1.1-1.7.8-2.7-.3-1-1.1-1.7-2.1-1.9l-.7-.1c.5-.6.8-1.4.6-2.2-.2-1.1-1-2-2.1-2.1-.1 0-10.3-1.6-16.7-1.6-.7 0-1.3 0-1.9.1l-2.6-4.2C64 2.9 60.4.9 56.4.9c-2.1 0-4.2.6-6 1.7-2.5 1.6-4.3 4.1-5 6.9-6.6.6-13.5 2.3-20.3 5.1l-4.4-1.8c-1.4-.6-2.8-.8-4.3-.8-4.7 0-8.8 2.8-10.6 7.1-2.4 5.8.4 12.5 6.2 14.9l.2.1c-1.4 6.1-1.9 13.2-1.4 20.9.7 9.9-2.5 15-5.6 19.9-4.3 6.9-8.7 14 .4 31.7 0 2.4 0 4.5.2 6.2.6 5.7 2.4 15.2 7.2 15.2.5 0 1-.1 1.5-.4 1.3-.6 2.1-1.5 4.2-11.1 10.3 3.8 25.5 7.2 36.4 8.1-2.6 10.4-2 11.1-1.2 12.2.7.9 1.7 1.4 2.8 1.4 4.1 0 9-6.8 11.6-10.8 1.3-2 2.7-4.8 4.2-8.3C75.5 114 80 104.9 84 94c3.4 4.5 6.9 7.6 10.6 9.1 4.9 2 9.1 3 12.5 3 2 0 3.3-.4 4.1-.7 3.2-1.4 4.5-4.6 3.4-7.4zm-4.4 3.8c-.3.1-1.1.4-2.7.4-2 0-5.6-.5-11.1-2.7-3.9-1.6-8-5.7-11.7-12-.2-.4-.6-.6-1.1-.5-.4 0-.8.3-.9.8-4.3 12.8-9.
7 23.9-13 29.4 0 0 0 .1-.1.1-1.5 3.4-2.8 6.1-4 7.9-4.1 6.4-7.1 8.8-8.3 9.1 0-.9.4-3.6 2.5-11.9.1-.3 0-.7-.2-.9-.2-.3-.5-.4-.9-.4-11.6-.4-30.4-4.6-41.2-9.1-.1-.1-.3-.1-.4-.1-.2 0-.4 0-.5.1-.3.2-.5.4-.6.8-1.7 8.1-2.5 10.6-2.9 11.3-.8-.7-2.6-4-3.4-11.8-.2-1.7-.2-3.8-.2-6.3 0-.2 0-.4-.1-.5-8.5-16.3-5.2-21.7-.9-28.6 3.2-5.1 6.8-11 6.1-22.1-.5-8.3.1-15.7 1.8-21.9.2-.5-.1-1.1-.6-1.3l-2.3-.9c-3.9-1.6-5.8-6.1-4.2-10 1.2-2.9 4-4.8 7.1-4.8 1 0 2 .2 2.9.6l5.4 2.2c.3.1.6.1.9 0 7.5-3.2 15-5 22.2-5.4.6 0 1-.5 1.1-1.1.1-2.6 1.5-4.9 3.6-6.3 1.2-.8 2.6-1.2 4.1-1.2 2.7 0 5.1 1.4 6.5 3.6l3.4 5.5c.2.4.7.6 1.1.5l.4-.1c.7-.1 1.6-.2 2.6-.2 3.8 0 9.2.6 12.7 1.1l-3 1.6c-.4.2-.7.7-.6 1.2.1.5.5.8.9.9l5.8.9-2.6 2.2c-.3.3-.5.7-.4 1.1l1.3 5.4c0 .1.1.2.1.3.6 1 1 1.9 1.3 2.7 4.5 12.7 4 29-1.4 48.4-.1.3 0 .5.1.8 2.4 4.8 7.1 13.2 12.7 15.5 5.2 2.1 8.4 2.4 9.8 2.4.6 0 1 0 1.2-.1.9-.4 2 .1 2.4 1 .6.9.2 2-.7 2.4z" transform="translate(4 2)"/>
- <path fill="url(#b)" fill-rule="nonzero" d="M36.6 40.6c-1.1 0-2.2-.2-3.3-.7l-16.2-6.6c-4.5-1.8-6.7-7-4.8-11.5 1.8-4.5 7-6.7 11.5-4.8L40 23.6c4.5 1.8 6.7 7 4.8 11.5-1.4 3.4-4.7 5.5-8.2 5.5z"/>
- <path fill="url(#c)" fill-rule="nonzero" d="M70.8 39.3c-2.9 0-5.8-1.5-7.5-4.2L53.1 18.6c-2.6-4.1-1.3-9.6 2.8-12.1C60 3.9 65.5 5.2 68 9.3l10.2 16.5c2.6 4.1 1.3 9.6-2.8 12.1-1.4 1-3 1.4-4.6 1.4z"/>
- <path fill="url(#d)" fill-rule="nonzero" d="M28.6 19.4c-2.2.9-12.8 10.5-11.1 37.1 1.7 26.2-21.6 21.8-3.8 53.4 3.9 6.9 50.2 17.7 58.6 12.7 2.5-1.5 31.6-54.6 19.1-89.8-4.1-11.5-28.5-28-62.8-13.4z"/>
- <path fill="url(#e)" fill-rule="nonzero" d="M14.3 87.5s-2.6 17.8-1.7 26.6c1 8.8 3.3 13.7 5.1 12.8 1.7-.8 6.2-26.8 6.2-26.8l-9.6-12.6z"/>
- <path fill="url(#f)" fill-rule="nonzero" d="M80.7 103s-5.5 17.1-10.3 24.6c-4.8 7.5-9.1 10.8-10.2 9.3-1.2-1.5 6.2-26.8 6.2-26.8l14.3-7.1z"/>
- <path fill="url(#g)" fill-rule="nonzero" d="M33.5 19c7.8-4 28.9-2.7 38.4-4.1C77 14.1 91 16.3 91 16.3l-6 3.2 8.2 1.2-4.5 3.8 1.8 7.3-1.3-.7-46.3-12.8-9.4.7z"/>
- <path fill="url(#h)" fill-rule="nonzero" d="M111.4 105.1c-2.3 0-6-.6-11.5-2.8-10-4-16.7-20.9-17.4-22.9-.6-1.5.2-3.2 1.7-3.8 1.5-.6 3.2.2 3.8 1.7 1.7 4.5 7.7 16.9 14.1 19.5 7.1 2.9 10.2 2.3 10.2 2.3 1.5-.6 3.2.1 3.8 1.6.6 1.5-.1 3.2-1.6 3.8-.4.3-1.4.6-3.1.6z"/>
- <path fill="#FFF" fill-rule="nonzero" d="M35.4 29.8c-8.3 5.5-3.2 72.6 2.7 79.8 9.5 11.8 31.7 9.3 34.6 3 1.1-2.3 26-48.2 14.3-79.8-3-8-22.5-22.3-51.6-3z"/>
- <path fill="url(#i)" fill-rule="nonzero" d="M50.3 43.8c.9.2 1.4 1.1 1.2 1.9l-.8 3.5c-.2.9-1.1 1.4-1.9 1.2-.9-.2-1.4-1.1-1.2-1.9l.8-3.5c.2-.9 1.1-1.4 1.9-1.2z"/>
- <path fill="url(#j)" fill-rule="nonzero" d="M81.4 44.8c.9.2 1.4 1.1 1.2 1.9l-.8 3.5c-.2.9-1.1 1.4-1.9 1.2-.9-.2-1.4-1.1-1.2-1.9l.8-3.5c.2-.9 1-1.4 1.9-1.2z"/>
- <path fill="url(#k)" fill-rule="nonzero" d="M48.9 57.6c-.5 0-1-.1-1.5-.2-3.5-.8-4.7-3.9-4.7-4.1-.3-.8.1-1.6.9-1.9.8-.3 1.6.1 1.9.9 0 .1.7 1.8 2.6 2.2 1.9.5 3.3-.8 3.3-.8.6-.6 1.5-.5 2.1 0 .6.6.5 1.5 0 2.1-.2.1-2 1.8-4.6 1.8z"/>
- <path fill="url(#l)" fill-rule="nonzero" d="M56.6 69.2c-.8 0-1.4-.6-1.5-1.3-.1-.8.5-1.5 1.3-1.6 8.9-.7 17.1-2.5 18-3.8 1-1.7 1.2-4 1.2-4.1 0-.8.7-1.4 1.4-1.4.8 0 1.4.5 1.5 1.3.1 1.3.6 3.4 1.2 4.1 1.1 1.3 2.3 1.2 2.3 1.2.8 0 1.5.6 1.6 1.4.1.8-.6 1.5-1.4 1.6-1 .1-3.2-.3-4.8-2.3-.1-.2-.3-.4-.4-.6-.1.1-.1.2-.2.3-2 3.3-14.8 4.7-20.3 5.2h.1z"/>
- <g fill-rule="nonzero">
- <path fill="url(#m)" d="M2.4 4.3C1.3 5 7.7 8.2 8.6 8.2c1.3 0 7.8-2.8 7.6-5C16 2.1 6.8 1.3 2.4 4.3z" transform="translate(70 52)"/>
- <path fill="url(#n)" d="M8.6 9.7C7.5 9.7 1.5 7 .9 5c-.2-.8.1-1.5.7-2C5.8.2 13.9.3 16.3 1.4c1 .4 1.2 1.1 1.3 1.6.1.9-.2 1.7-1 2.6-1.8 2.1-6.4 4.1-8 4.1zm-3.9-5c1.3.8 3.5 1.9 4.1 2 .9-.1 4.3-1.7 5.5-2.8-2-.4-6.5-.5-9.6.8z" transform="translate(70 52)"/>
- </g>
- <g fill-rule="nonzero">
- <path fill="#C8C8CC" d="M115 92.8l-7.2.1-.5-40.7c0-3.3 2.5-6.1 5.7-6.3.3 0 .5.2.5.4l1.5 46.5z"/>
- <path fill="#E1E1E6" d="M130.1 53.3c.2-.2.5-.1.7.1 1.9 2.7 1.4 6.4-1.1 8.5l-31.3 26-4.6-5.5 36.3-29.1z"/>
- <path fill="url(#o)" d="M.7 10c-.4 2.6.2 5.2 1.9 7.1.8 1 1.8 1.7 2.9 2.3 3.5 1.6 7.8 1 11-1.7.2-.2.5-.4.7-.6l10.1-8.4c.4-.4.7-.9.8-1.4.1-.6-.1-1.1-.5-1.5l-2.9-3.4c-.2-.2-.4-.4-.7-.6-.2-.1-.5-.2-.7-.2-.6-.1-1.1.1-1.5.5l-2.9 2.4c-.1-.2-.2-.3-.4-.5-.8-1-1.8-1.7-2.9-2.3-3.5-1.6-7.8-1-11 1.7C2.5 5.1 1.2 7.5.7 10zm6.6-3.4c1.9-1.6 4.5-2.1 6.5-1.1.6.3 1.1.7 1.5 1.1 1.4 1.6 1.3 4.1.1 6.1-.5.7-1.1 1.4-2 2.1-1.9 1.3-4.2 1.5-5.9.7-.6-.3-1.1-.7-1.5-1.1-.8-1-1.2-2.4-.9-3.8 0-1.5.9-2.9 2.2-4z" transform="translate(77 75)"/>
- <path fill="url(#p)" d="M0 2.5l.2 13.2v.9c.1 4.1 2.3 7.8 5.7 9.4 1.2.6 2.5.9 3.8.8 5.1-.1 9.3-4.7 9.2-10.4-.1-4.1-2.3-7.8-5.7-9.4-1.2-.6-2.5-.9-3.8-.8h-.6V2.4c0-.8-.5-1.5-1.2-1.9C7.3.4 7 .3 6.7.3L2.2.4C1.6.4 1.1.6.7 1 .2 1.4 0 2 0 2.5zm11.3 8.3c1.9.9 3.2 3.1 3.3 5.6 0 3.4-2.2 6.1-5 6.2-.7 0-1.3-.1-1.9-.4-1.8-.8-3-2.7-3.2-4.9v-.1c0-1.2.1-2.1.3-2.9.7-2.2 2.5-3.9 4.7-3.9.5 0 1.2.1 1.8.4z" transform="translate(107 83)"/>
- <path fill="#C8C8CC" d="M111.3 70.6c1.3.1 2.2 1.3 2.1 2.5-.1 1.3-1.3 2.2-2.5 2.1-1.3-.1-2.2-1.3-2.1-2.5.1-1.2 1.2-2.2 2.5-2.1z"/>
- </g>
- <path fill="url(#q)" fill-rule="nonzero" d="M1.4 2.1L.3 5.7c-1 3.1.7 6.4 3.8 7.4 3.1 1 6.4-.7 7.4-3.8L14.4.1l-13 2z" transform="translate(57 67)"/>
- <path fill="url(#r)" fill-rule="nonzero" d="M63.3 74.7h-.2c-.4-.1-.6-.5-.5-.9l2.2-6.8c.1-.4.5-.6.9-.5.4.1.6.5.5.9L64 74.2c-.1.3-.4.5-.7.5z"/>
- <path fill="url(#s)" fill-rule="nonzero" d="M58.7 98.1c-17.5 0-33-27.8-33.6-29-.8-1.4-.3-3.2 1.2-4 1.4-.8 3.2-.3 4 1.2 4.2 7.6 17.5 27 29.4 25.9 15.2-1.4 22.4-6.9 22.4-7 1.3-1 3.1-.8 4.1.5 1 1.3.8 3.1-.4 4.1-.3.3-8.5 6.7-25.6 8.2-.5.1-1 .1-1.5.1z"/>
- <path fill="url(#t)" fill-rule="nonzero" d="M112.5 97.8s-8 3.2-8.1 5.9c-.1 2.7 8.2 6 11.8.7 3.6-5.2-2.3-7.2-3.7-6.6z"/>
- <path fill="url(#u)" fill-rule="nonzero" d="M30.5 65.3s.7 5.9 4.4 9.2c3.7 3.3-4.8 8.1-4.4 15.4.4 7.4 0-24.6 0-24.6z"/>
- <path fill="url(#v)" fill-rule="nonzero" d="M58.8 98.9h-1.1C44 98.5 32 81 31.5 80.2c-.2-.3-.1-.8.2-1 .3-.2.8-.1 1 .2.1.2 12.1 17.7 25 18 12.8.3 25.3-6.2 27.1-7.7.5-.4.9-2.6.2-3.7-.7-1-2.4-.3-3.6.5-.3.2-.8.1-1-.2-.2-.3-.1-.8.2-1 3.4-2.1 4.9-.9 5.6-.1 1.2 1.6.8 4.7-.4 5.7-1.2 1-13.4 8-27 8z"/>
- <path fill="url(#w)" fill-rule="nonzero" d="M110.8 108.3c-1.3 0-2.8-.3-4.4-1.3-1.9-1-2.8-2.2-2.7-3.6.2-2.7 4.7-4.5 5.2-4.7.4-.1.8 0 1 .4.1.4 0 .8-.4 1-1.6.6-4.2 2.1-4.3 3.5-.1.9 1 1.7 1.9 2.2 2.2 1.2 4.3 1.4 6.1.6 2.1-1 3.1-2.8 3.2-3.2.1-.6.5-2.4-.5-3.5-.7-.8-2.1-1.1-4.1-.9-.4 0-.8-.3-.8-.7 0-.4.3-.8.7-.8 2.5-.2 4.3.2 5.3 1.4 1.5 1.6 1 4 .8 4.7-.2.9-1.6 3.2-4 4.3-.8.3-1.8.6-3 .6z"/>
- <path fill="url(#x)" fill-rule="nonzero" d="M61.1 125.5c-.4 0-.7-.3-.7-.7 0-.4.3-.7.7-.7 3.2 0 8.1-1 8.2-1 .4-.1.8.2.9.6.1.4-.2.8-.6.9-.2-.1-5.1.9-8.5.9z"/>
- <path fill="url(#y)" fill-rule="nonzero" d="M23 25.4h-.2c-.4-.1-.6-.5-.5-.9.2-.7 2.4-5 7.8-7.4.4-.2.8 0 1 .4.2.4 0 .8-.4 1-4.7 2-6.7 5.8-6.9 6.4-.2.3-.5.5-.8.5z"/>
- <path fill="url(#z)" fill-rule="nonzero" d="M68.5 14.8c-8.9 0-18.2-1.2-18.3-1.2-.4-.1-.7-.4-.6-.8.1-.4.4-.7.8-.6.1 0 14.1 1.8 24.1 1 .4 0 .8.3.8.7 0 .4-.3.8-.7.8-2 0-4 .1-6.1.1z"/>
- <path fill="url(#A)" fill-rule="nonzero" d="M88.8 89h-.2c-.4-.1-.6-.5-.5-.9l2-6c.1-.4.5-.6.9-.5.4.1.6.5.5.9l-2 6c-.1.3-.4.5-.7.5z"/>
- <path fill="url(#B)" fill-rule="nonzero" d="M21 119.1h-.1c-.4-.1-.7-.5-.6-.9l1.7-8.6c.1-.4.5-.7.9-.6.4.1.7.5.6.9l-1.7 8.6c-.2.4-.5.6-.8.6z"/>
- </g>
- <path fill="#D7D7DB" fill-rule="nonzero" d="M70.8 82.4c-3.7 0-6.6 3-6.6 6.6h6.6v-6.6zm20 0h-6.6V89h6.6v-6.6zm13.3 0V89h6.6c0-3.6-3-6.6-6.6-6.6zm-23.3 0h-6.6V89h6.6v-6.6zm19.9 0h-6.6V89h6.6v-6.6zm3.4 16.6h6.6v-6.6h-6.6V99zm0 20c3.7 0 6.6-3 6.6-6.6h-6.6v6.6zm0-10h6.6v-6.6h-6.6v6.6zm-1.5-7.2c-2.1-3-6.2-3.7-9.3-1.6l-12.7 9.4-6.5-4.6c0-.3.1-.6.1-1 0-2.7-1.3-5.1-3.3-6.6v-5h-6.6v3.5c-3.8.8-6.6 4.1-6.6 8.1 0 4.6 3.7 8.3 8.3 8.3 1.8 0 3.5-.6 4.8-1.6l4.1 2.9-4.6 3.3c-1.3-.8-2.7-1.2-4.3-1.2-4.6 0-8.3 3.7-8.3 8.3 0 4.6 3.7 8.3 8.3 8.3 4.6 0 8.3-3.7 8.3-8.3 0-.6-.1-1.1-.2-1.6l28.5-20.6zm-36.7 6.4c-2.3 0-4.2-1.9-4.2-4.2 0-2.3 1.9-4.2 4.2-4.2 2.3 0 4.2 1.9 4.2 4.2-.1 2.3-1.9 4.2-4.2 4.2zm0 19.9c-2.3 0-4.2-1.9-4.2-4.2 0-2.3 1.9-4.2 4.2-4.2 2.3 0 4.2 1.9 4.2 4.2-.1 2.4-1.9 4.2-4.2 4.2zm17.9-8l10 7.6c3 2.1 7.2 1.4 9.3-1.6L89.6 116l-5.8 4.1z"/>
- <g fill="#D7D7DB" fill-rule="nonzero">
- <path d="M17.5 26.8l-.1-.1.1.1zM266.5 1.5v4.4c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5V3h-2.9c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h4.4c.8 0 1.5.7 1.5 1.5zM266.5 14.4v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17V40c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.6 1.5 1.4zm0 17.1V57c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17V74c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17V91c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17.1v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17.1v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.6 1.5 1.5zm0 17v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5
1.5zM266.5 184.8v4.4c0 .8-.7 1.5-1.5 1.5h-4.4c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h2.9v-2.9c0-.8.7-1.5 1.5-1.5s1.5.6 1.5 1.5zM253.3 189.2c0 .8-.7 1.5-1.5 1.5H243c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.6 0c0 .8-.7 1.5-1.5 1.5H208c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.4.7 1.4 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.6 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.6 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8
c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5H94c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.6 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5H59c.8 0 1.4.7 1.4 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zM7.8 189.2c0 .8-.7 1.5-1.5 1.5H2c-.8 0-1.5-.7-1.5-1.5v-4.4c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5v2.9h2.9c.8 0 1.4.7 1.4 1.5zM3.4 14.4v8.5c0 .8-.7 1.5-1.5 1.5S.4 23.7.4 22.9v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17V40c0 .8-.7 1.5-1.5 1.5S.4 40.8.4 40v-8.5c0-.8.7-1.5 1.5-1.5s1.5.6 1.5 1.4zm0 17.1V57c0 .8-.7 1.5-1.5 1.5S.4 57.8.4 57v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17V74c0 .8-.7 1.5-1.5 1.5S.4 74.8.4 74v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17V91c0 .8-.7 1.5-1.5 1.5S.4 91.8.4 91v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17.1v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7
-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17.1v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.6 1.5 1.5zm0 17v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zm0 17v8.5c0 .8-.7 1.5-1.5 1.5s-1.5-.7-1.5-1.5v-8.5c0-.8.7-1.5 1.5-1.5s1.5.7 1.5 1.5zM7.8 1.5c0 .8-.7 1.5-1.5 1.5H3.4v2.9c0 .8-.7 1.5-1.5 1.5S.4 6.7.4 5.9V1.5C.4.7 1.1 0 1.9 0h4.4c.9 0 1.5.7 1.5 1.5zM253.3 1.5c0 .8-.7 1.5-1.5 1.5H243c-.8 0-1.5-.7-1.5-1.5S242.2 0 243 0h8.8c.8 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.6 0c0 .8-.7 1.5-1.5 1.5H208c-.8 0-1.5-.7-1.5-1.5S207.2 0 208 0h8.8c.8 0 1.4.7 1.4 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.6 0c0 .8-.7 1.5-1.5 1.5h-8.8c-
.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5S137 0 137.8 0h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.8 0 1.5.7 1.5 1.5zm-17.6 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5S84.4 0 85.2 0H94c.9 0 1.5.7 1.5 1.5zM78 1.5c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5S66.9 0 67.7 0h8.8c.8 0 1.5.7 1.5 1.5zm-17.6 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5S49.3 0 50.1 0H59c.8 0 1.4.7 1.4 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5S31.8 0 32.6 0h8.8c.9 0 1.5.7 1.5 1.5zm-17.5 0c0 .8-.7 1.5-1.5 1.5h-8.8c-.8 0-1.5-.7-1.5-1.5S14.3 0 15.1 0h8.8c.8 0 1.5.7 1.5 1.5z"/>
- </g>
- <path d="M-18-32h352v303H-18z"/>
- </g>
-</svg>
diff --git a/browser/extensions/onboarding/content/img/figure_singlesearch.svg b/browser/extensions/onboarding/content/img/figure_singlesearch.svg
deleted file mode 100644
index 9be029397ccf..000000000000
--- a/browser/extensions/onboarding/content/img/figure_singlesearch.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="303" height="253" viewBox="0 0 303 253" xmlns="http://www.w3.org/2000/svg"><title>search</title><defs><linearGradient x1="-18.632%" y1="-397.383%" x2="117.795%" y2="492.152%" id="a"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-312.046%" y1="-3945.649%" x2="293.266%" y2="2768.992%" id="b"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-291.258%" y1="-362.215%" x2="267.9%" y2="331.228%" id="c"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-145.39%" y1="-145.464%" x2="148.231%" y2="148.054%" id="d"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-760.952%" y1="-957.112%" x2="540.851%" y2="637.214%" id="e"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></
linearGradient></defs><g fill="none" fill-rule="evenodd"><path d="M-18-9h352v303H-18z"/><g fill-rule="nonzero"><g fill="#D7D7DB"><path d="M262.3 209.3H138.8c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h123.5c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1zM245.6 203.7h-31c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h31c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zM217.5 214.1h-13.4c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-22.3 0h-3.3c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-7.8 0h-1.1c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-11.1 0h-13.4c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.4c.3 0 .6.2.6.6-.1.4-.3.6-.6.6zm-22.4 0h-3.3c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.2.6-.6.6zm-7.8 0H145c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-11.1 0h-13.4c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6H135c.3 0 .6.2.6.6-.1.4-.3.6-.6.6zm-22.3 0h-3.3c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6-.1.4-.3.6-.6.6zm-7.8 0h-1.1c-.3 0-.6-.2-.6
-.6 0-.3.2-.6.6-.6h1.1c.3 0 .6.2.6.6-.1.4-.3.6-.6.6zm-11.2 0H80.3c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-22.3 0H68c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.2.6-.5.6zm-7.8 0h-1.1c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h1.1c.3 0 .6.2.6.6-.1.4-.3.6-.6.6zm-11.2 0H39c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6z"/></g><path d="M6.3 148.8c-2.8 0-5.1-2.3-5.1-5.1v-27.2c0-2.8 2.3-5.1 5.1-5.1h245.8c2.8 0 5.1 2.3 5.1 5.1v27.2c0 2.8-2.3 5.1-5.1 5.1H6.3z" fill="#FFF"/><path d="M252.1 2.4c2.2 0 4 1.8 4 4v27.2c0 2.2-1.8 4-4 4H6.3c-2.2 0-4-1.8-4-4V6.4c0-2.2 1.8-4 4-4h245.8zm0-2.2H6.3C2.9.2.1 3 .1 6.4v27.2c0 3.4 2.8 6.2 6.2 6.2h245.8c3.4 0 6.2-2.8 6.2-6.2V6.4c.1-3.4-2.7-6.2-6.2-6.2z" fill="url(#a)" transform="translate(0 110)"/><path d="M157 23.5h24.1s-7.5-16.9 8.5-19c14.3-1.9 19.9 12.7 19.9 12.7s1.7-8.5 10.2-6.8c8.4 1.6 14.6 15.1 14.6 15.1h21" fill="#F9F9FA"/><path d="M255.6 21.4h-6.2c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h6.2c.3 0 .6.2.6.6 0 .
4-.3.6-.6.6zm-16.2 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-57.9-.6h-1.8c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h1c-.1-.2-.2-.4-.3-.7-.1-.3.1-.6.3-.7.3-.1.6.1.7.3.3.9.5 1.4.5 1.4.1.2.1.4 0 .5 0 .3-.2.4-.4.4zm-10.7 0h-13.4c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.4c.3 0 .6.2.6.6-.1.3-.3.6-.6.6zm63.4-.1c-.2 0-.4-.1-.5-.3-.4-.6-.9-1.6-1.7-2.8-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2.8 1.2 1.4 2.2 1.8 2.9.2.3.1.6-.2.8h-.4zM179.9 15c-.3 0-.5-.2-.6-.5-.1-.4-.1-.8-.1-1.1 0-.3.2-.6.5-.6s.6.2.6.5c0 .4.1.7.1 1.1.1.2-.1.5-.5.6.1 0 0 0 0 0zm29.1-2.5c-.2 0-.4-.1-.5-.3-.2-.3-.3-.6-.5-1-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2.2.4.4.7.6 1 .1.3 0 .6-.2.8-.3.1-.3.1-.4.1zm17.7-1.4c-.1 0-.3 0-.4-.1-2.1-1.8-4.3-3-6.3-3.4-2-.4-3.8-.2-5.3.6-.3.1-.6 0-.8-.2-.1-.3 0-.6.2-.8 1.7-.9 3.8-1.1 6.1-.7 2.3.4 4.6 1.6 6.9 3.6.2.2.3.6.1.8-.2.1-.4.2-.5.2zm-20.9-3.2c-.2 0-.3-.1-.4-.2-.7-.8-1.5-1.6-2.3-2.3-.2-.2-.3-.6-.1-.8.2-.2.5-.3.8-.1.9.7 1.7 1.5 2.4 2.4.2.2.2.6-.1.8 0 .2-.2.2-.3.2zm-23-3.2c-.2 0-.3-.1-.4-.2-.2-.
2-.2-.6 0-.8 1.8-1.6 4.3-2.7 7.5-3.1 1.9-.3 3.8-.2 5.7.1.3.1.5.3.5.6-.1.3-.3.5-.6.5-1.7-.3-3.5-.3-5.3-.1-2.9.4-5.3 1.3-6.9 2.8-.2.1-.4.2-.5.2z" fill="#D7D7DB"/><path d="M256.3 25.7H157c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h99.4c.6 0 1.1.5 1.1 1.1 0 .6-.6 1.1-1.2 1.1zM4 46.5h13.4s-4.2-9.4 4.7-10.6C30 34.8 33.2 43 33.2 43s.9-4.7 5.7-3.8c4.7.9 8.1 8.4 8.1 8.4h11.7" fill="#F9F9FA"/><path d="M17.8 45H4.5c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.7.6zm41.3-.1h-.5c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h.5c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-5 0h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-20.4-3.4c-.2 0-.4-.2-.5-.4L33 41c-.1-.3 0-.6.2-.7.5-1.6 2-3.8 4.9-3.8.4 0 .8 0 1.3.1 1.7.3 3.3 1.3 5 2.9.2.2.2.6 0 .8-.2.2-.6.2-.8 0-1.5-1.4-3-2.3-4.4-2.6-.4-.1-.7-.1-1-.1-3.2 0-3.9 3.3-4 3.5-.1.2-.3.4-.5.4zm-15.6-4.9c-.1 0-.3 0-.4-.1-.2-.2-.3-.6-.1-.8.7-.9 1.8-1.5 3.1-1.9.3-.1.6.1.7.4.1.3-.1.6-.4.7-1.1.3-1.9.9-2.5 1.6 0 0-.2.1-.4.1zm8.3-1.9h-.1c-.3-.1-.7-.2-1-.2-.3
0-.5-.3-.5-.6s.3-.5.6-.5c.4.1.8.1 1.2.2.3.1.5.4.4.7-.1.2-.3.4-.6.4z" fill="#D7D7DB"/><path d="M59.5 48.8H4.3c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h55.3c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.2 1.1z" fill="#F9F9FA"/><g><path d="M210 92.1v-9.5c0-2-1.6-3.6-3.6-3.6H38.3c-2 0-3.6 1.6-3.6 3.6v9.5c0 2 1.6 3.6 3.6 3.6h168.1c2 0 3.6-1.6 3.6-3.6zm0-34.8v-9.5c0-2-1.6-3.6-3.6-3.6H38.3c-2 0-3.6 1.6-3.6 3.6v9.5c0 2 1.6 3.6 3.6 3.6h168.1c2 0 3.6-1.6 3.6-3.6zm0 121.3v-9.5c0-2-1.6-3.6-3.6-3.6H38.3c-2 0-3.6 1.6-3.6 3.6v9.5c0 2 1.6 3.6 3.6 3.6h168.1c2 0 3.6-1.6 3.6-3.6z" fill="#FFF"/><path d="M206 44.2c2.2 0 4 1.8 4 4v8.7c0 2.2-1.8 4-4 4H38.8c-2.2 0-4-1.8-4-4v-8.7c0-2.2 1.8-4 4-4H206zm0 34.8c2.2 0 4 1.8 4 4v8.7c0 2.2-1.8 4-4 4H38.8c-2.2 0-4-1.8-4-4V83c0-2.2 1.8-4 4-4H206zm0 86.5c2.2 0 4 1.8 4 4v8.7c0 2.2-1.8 4-4 4H38.8c-2.2 0-4-1.8-4-4v-8.7c0-2.2 1.8-4 4-4H206zm0-123.6H38.8c-3.4 0-6.2 2.8-6.2 6.2v8.7c0 3.4 2.8 6.2 6.2 6.2H206c3.4 0 6.2-2.8 6.2-6.2v-8.7c0-3.4-2.8-6.2-6.2-6.2zm0 34.8H38.8c-3.4 0-6.2 2.8-6.
2 6.2v8.7c0 3.4 2.8 6.2 6.2 6.2H206c3.4 0 6.2-2.8 6.2-6.2V83c0-3.5-2.8-6.3-6.2-6.3zm0 86.6H38.8c-3.4 0-6.2 2.8-6.2 6.2v8.7c0 3.4 2.8 6.2 6.2 6.2H206c3.4 0 6.2-2.8 6.2-6.2v-8.7c0-3.4-2.8-6.2-6.2-6.2z" fill="#D7D7DB"/></g><path d="M300.8 176.6l-.1-.1-4.7-4.3c-.2-1.2-.8-2.3-1.7-3.1l-17.4-16c-.9-.8-2-1.3-3.2-1.4l-8.3-7.6c-1-1-2.2-1.7-3.5-2.1 10.8-18 8.1-41.3-6.9-56.4-8.7-8.7-20.3-13.5-32.6-13.5s-23.9 4.8-32.6 13.5c-18 18-18 47.3 0 65.2 8.7 8.7 20.3 13.5 32.6 13.5 8.3 0 16.6-2.3 23.7-6.6.4 1.3 1.2 2.6 2.2 3.6l7.6 8.3c.1 1.2.6 2.3 1.4 3.2l16 17.4c.8.9 1.9 1.5 3.1 1.7l4.2 4.6.1.1c1.5 1.5 3.4 2.3 5.7 2.3 3.6 0 7.8-2 11.2-5.4 5.7-5.8 7.1-13 3.2-16.9z" fill="#F9F9FA"/><g><path d="M224.1 88.7c-10.7 0-20.3 5.1-26.3 13h52.6c-6.1-7.9-15.6-13-26.3-13z" fill="#F9F9FA"/><path d="M248.9 152.7c.5-1.5 1.4-3.1 3.1-4.8 1.6-1.6 3.2-2.6 4.8-3.1l-2.5-2.5c12-15.9 10.8-38.6-3.7-53.1-7.9-7.9-18.3-11.9-28.7-11.9-10.4 0-20.8 4-28.7 11.9-15.8 15.8-15.8 41.5 0 57.4 7.9 7.9 18.3 11.9 28.7 11.9 8.6 0 17.2-2.7 24.4-8
.2l2.6 2.4zm-27-1.8c-11.8 0-22.1-6.2-28-15.4.1.1.1.3.2.4-1-1.6-1.9-3.3-2.7-5.1v-.1c-.2-.4-.4-.9-.5-1.3l-.6-1.8v-.1c-.9-3-1.4-6.2-1.4-9.6 0-3.8.7-7.5 1.8-10.9.6-1.8 1.4-3.6 2.4-5.3h.2c5.7-10 16.4-16.7 28.8-16.7 12.3 0 23.1 6.7 28.7 16.7h.1c.9 1.7 1.7 3.4 2.4 5.3 1.2 3.4 1.8 7 1.8 10.9-.1 18.2-14.9 33-33.2 33z" fill="#CCEDF0"/><path d="M253.2 107h-58.7c-2.2 4.4-3.5 9.5-3.5 14.8 0 4.9 1.1 9.6 3 13.7 5.9 9.3 16.2 15.4 28 15.4 18.3 0 33.1-14.8 33.1-33.1-.1-3.8-.7-7.4-1.9-10.8zM190.8 107h-.1c-1.2 3.4-1.8 7-1.8 10.9 0 3.3.5 6.5 1.4 9.6-.9-3-1.3-6.1-1.3-9.3-.1-4 .6-7.8 1.8-11.2zM190.9 129.3l-.6-1.8.6 1.8z" fill="#FFF"/><path d="M71.3 26.7H18.7c-1.3 1.6-2.4 3.4-3.3 5.3h58.7c-.6-1.8-1.4-3.6-2.4-5.3h-.1c.4.7.8 1.5 1.2 2.2-.4-.7-.9-1.5-1.5-2.2z" fill="url(#b)" transform="translate(179 75)"/><path d="M193.3 101.7h-.2c-.9 1.7-1.7 3.4-2.4 5.3h.1c.7-1.9 1.5-3.6 2.5-5.3z" fill="#E9E9EE"/><path d="M15.5 32c.9-1.9 2-3.6 3.3-5.3 6-7.9 15.6-13 26.3-13 10.7 0 20.2 5.1 26.3 13 .5.7 1.1 1.5 1.6 2.2-.4-.8-.
7-1.5-1.2-2.2C66.1 16.7 55.4 10 43.1 10S20 16.7 14.3 26.7c-1 1.7-1.8 3.4-2.4 5.3-1.2 3.5-1.9 7.2-1.9 11.1 0 3.2.5 6.4 1.3 9.3v.1l.6 1.8c.2.5.3.9.5 1.3v.1c.7 1.8 1.6 3.5 2.7 5.1-.1-.1-.1-.3-.2-.4-1.9-4.2-3-8.8-3-13.7.1-5.3 1.4-10.3 3.6-14.7z" fill="url(#c)" opacity=".4" transform="translate(179 75)"/><path d="M119.1 103.6l-5.7-5.2c0-.2.1-.3.1-.5 0-.6-.3-1.2-.7-1.6l-17.4-16c-.4-.4-1-.6-1.5-.6-.2 0-.4 0-.7.1l-9.4-8.6c-.8-.8-1.8-1.3-3-1.5l-2.5-2.5c11.6-16.8 9.5-39.9-5-54.5C65.2 4.6 54.5.2 43 .2S20.8 4.7 12.7 12.7C-4 29.4-4 56.5 12.7 73.2c8.1 8.1 18.8 12.5 30.2 12.5 8.6 0 17.1-2.7 24.2-7.5l2.6 2.6c.2 1.2.8 2.2 1.6 3l8.6 9.4c-.2.7-.1 1.6.5 2.2l16 17.4c.4.4 1 .7 1.6.7.2 0 .3 0 .5-.1l5.2 5.7c.8.8 2 1.3 3.3 1.3 2.7 0 6.1-1.7 8.8-4.5 4.4-4.5 5.8-9.8 3.3-12.3zM14.3 71.5C-1.5 55.7-1.5 30 14.3 14.1 22.2 6.2 32.6 2.2 43 2.2c10.4 0 20.8 4 28.7 11.9 14.5 14.5 15.7 37.2 3.7 53.1l2.5 2.5c-1.6.5-3.2 1.5-4.8 3.1-1.7 1.7-2.7 3.3-3.1 4.8l-2.5-2.5c-7.2 5.5-15.8 8.2-24.4 8.2-10.5.1-20.9-3.9-28.8-11.8zm96.9
26.3L98 111.1 82 93.7l11.8-11.8 17.4 15.9z" fill="url(#d)" transform="translate(179 75)"/><path fill="#CCEDF0" d="M277 186.1l13.2-13.3-17.4-15.9-11.8 11.8"/></g><ellipse fill="#EDEDF0" cx="242.1" cy="246.7" rx="57.2" ry="5.8"/><g><path d="M21.3 33.9c-.6 0-1.3-.2-1.8-.6L7.1 23.2c-1.3-.9-2.4-2-3.2-3.2C1 15.5 1.6 9.5 5.4 5.8c2.1-2.1 5-3.3 8-3.3s5.8 1.1 7.9 3.2c2.1-2 4.9-3.2 7.9-3.2 3.3 0 6.5 1.5 8.7 4 3.2 3.8 3.5 9.4.8 13.5-.8 1.3-1.9 2.3-3.2 3.2l-12.3 10c-.6.5-1.2.7-1.9.7z" fill="url(#e)" transform="translate(201 113)"/><path d="M214.4 117c2.5 0 5 1 6.9 2.9.3.3.6.4 1 .4s.7-.1 1-.4c1.9-1.9 4.4-2.8 6.9-2.8 2.7 0 5.5 1.2 7.5 3.5 2.8 3.3 3 8.1.7 11.7-.8 1.1-1.7 2-2.7 2.7l-12.4 10.1c-.2.2-.5.3-.8.3-.3 0-.5-.1-.8-.3L209.2 135c-1.1-.7-2.1-1.6-2.8-2.8-2.5-3.8-2-9 1.3-12.2 1.7-2 4.2-3 6.7-3zm0-3.1c-3.4 0-6.7 1.3-9.1 3.8-4.3 4.3-5 11.1-1.7 16.2.9 1.4 2.2 2.7 3.6 3.7l12.4 10c.8.6 1.8 1 2.8 1 1 0 2-.3 2.7-1l12.3-10.1c1.4-1 2.6-2.1 3.5-3.5 3.1-4.7 2.8-11.1-.9-15.4-2.5-2.9-6.1-4.6-9.9-4.6-2.9 0-5.
6.9-7.9 2.7-2.2-1.9-4.9-2.8-7.8-2.8z" fill="#FFF"/><path d="M208.6 128.1h-.1c-.9-.1-1.6-.9-1.5-1.8.3-3.2 2.5-5.8 5.7-6.5.9-.2 1.8.4 1.9 1.2.2.9-.4 1.8-1.2 1.9-1.7.4-3 1.8-3.1 3.6-.2 1-.9 1.6-1.7 1.6z" fill="#F9F9FA"/></g></g></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/figure_sync.svg b/browser/extensions/onboarding/content/img/figure_sync.svg
deleted file mode 100644
index 74562d37236d..000000000000
--- a/browser/extensions/onboarding/content/img/figure_sync.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="279" height="212" viewBox="0 0 279 212" xmlns="http://www.w3.org/2000/svg"><title>sync</title><defs><linearGradient x1="-424.525%" y1="-219.797%" x2="201.215%" y2="136.157%" id="a"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1416.558%" y1="-1417.275%" x2="631.855%" y2="631.14%" id="b"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1909.4%" y1="-1924.057%" x2="675.504%" y2="691.989%" id="c"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1453.558%" y1="-828.355%" x2="354.762%" y2="235.706%" id="d"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-608.073%" y1="-599.552%" x2="1804.502%" y2="1813.024%" id="e"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"
/></linearGradient><linearGradient x1="-55.527%" y1="-25.138%" x2="334.297%" y2="252.524%" id="f"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-359.418%" y1="-359.43%" x2="1512.409%" y2="1512.397%" id="g"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-393.876%" y1="-203.242%" x2="1247.254%" y2="755.651%" id="h"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-772.819%" y1="-773.412%" x2="1098.573%" y2="1098.414%" id="i"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-1129.33%" y1="-1133.526%" x2="1256.735%" y2="1279.05%" id="j"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-78.929%" y1="-156.663%" x2="182.03%" y2="261.703%" id
="k"><stop stop-color="#CCFBFF" offset="0%"/><stop stop-color="#C9E4FF" offset="100%"/></linearGradient><linearGradient x1="-2.965%" y1="-86.281%" x2="110.352%" y2="213.059%" id="l"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-833.673%" y1="-459.972%" x2="807.063%" y2="498.921%" id="m"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient><linearGradient x1="-17.606%" y1="-93.916%" x2="104.414%" y2="177.35%" id="n"><stop stop-color="#00C8D7" offset="0%"/><stop stop-color="#0A84FF" offset="100%"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><path d="M-37-28h352v268H-37z"/><g fill-rule="nonzero"><g><path d="M23 23.1h23.9S39.4 6.4 55.3 4.2c14.2-1.9 19.8 12.6 19.8 12.6s1.7-8.4 10.1-6.8c8.3 1.6 14.5 15 14.5 15h20.8" fill="#F9F9FA"/><path d="M121 21.1h-5.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h5.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-15.4 0h-1.1c-.3 0-.6-.2-.6-.6 0-.4
.2-.6.6-.6h1.1c.3 0 .6.2.6.6 0 .4-.2.6-.6.6zm-5.5-.1c-.2 0-.4-.1-.5-.3-.2-.3-.7-1.4-1.7-2.9-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2 1 1.5 1.6 2.6 1.7 2.9.1.3 0 .6-.2.8-.1.1-.2.1-.3.1zm-52.7-.6h-1.6c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h.8c-.1-.2-.2-.5-.3-.9-.1-.3.1-.6.4-.7.3-.1.6.1.7.4.3 1 .6 1.6.6 1.6.1.2.1.4 0 .5-.3.2-.5.3-.6.3zm-10.6 0H23.4c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h13.4c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm8.9-5.9c-.3 0-.5-.2-.6-.5 0-.4-.1-.8-.1-1.1 0-.3.2-.6.5-.6s.6.2.6.5c0 .4.1.7.1 1.1.1.2-.1.5-.5.6.1-.1.1 0 0 0zm29.2-1.8c-.2 0-.4-.1-.5-.3-.1-.3-.3-.6-.5-1-.2-.3-.1-.6.2-.8.3-.2.6-.1.8.2.2.4.4.7.5 1 .1.3 0 .6-.2.8-.2.1-.2.1-.3.1zm17.8-1.4c-.1 0-.3 0-.4-.1-2.3-2.1-4.6-3.4-6.8-3.8-.7-.1-1.4-.2-2-.2-1 0-2 .2-2.8.5-.3.1-.6 0-.7-.3-.1-.3 0-.6.3-.7 1-.4 2.1-.6 3.3-.6.7 0 1.4.1 2.2.2 2.4.5 4.9 1.8 7.3 4 .2.2.2.6 0 .8-.1.1-.2.2-.4.2zM71.8 8c-.2 0-.3-.1-.4-.2-.7-.9-1.5-1.6-2.3-2.3-.2-.2-.3-.6-.1-.8.2-.2.6-.3.8-.1.8.7 1.6 1.6 2.4 2.5.2.2.2.6-.1.8-.1.1-.2.1-.3.1zM48.9 4.2c-.2 0-.3-.1-.4-.2-.2-.2-.2-.6.
1-.8C50.4 1.7 52.8.8 55.8.3c2.1-.3 4.1-.2 6 .1.3.1.5.4.4.7-.1.3-.3.5-.7.4-1.8-.4-3.7-.4-5.6-.1-2.8.4-5 1.3-6.6 2.6-.2.2-.3.2-.4.2z" fill="#D7D7DB"/><path d="M121.6 25.3H23c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h98.6c.6 0 1.1.5 1.1 1.1 0 .6-.4 1.1-1.1 1.1zM222.4 31.5h13.3s-4.2-9.3 4.7-10.5c7.9-1.1 11 7 11 7s.9-4.7 5.6-3.8c4.6.9 8 8.3 8 8.3h11.6" fill="#F9F9FA"/><path d="M236.1 30h-13.3c-.3 0-.6-.2-.6-.6 0-.3.2-.6.6-.6h13.3v.5l.5-.2c.1.2.1.4 0 .6-.2.2-.3.3-.5.3zm36.5-.2h-3.3c-.3 0-.6-.2-.6-.6 0-.4.2-.6.6-.6h3.3c.3 0 .6.2.6.6 0 .4-.3.6-.6.6zm-20.8-3.3h-.1c-.3-.1-.5-.4-.4-.7.1-.4 1.1-4.3 5-4.3.4 0 .8 0 1.2.1 1.7.3 3.5 1.4 5.2 3.1.2.2.2.6 0 .8-.2.2-.6.2-.8 0-1.6-1.6-3.1-2.5-4.6-2.8-.4-.1-.7-.1-1-.1-3 0-3.8 2.8-3.9 3.4-.1.3-.4.5-.6.5zm-15.3-5.1c-.1 0-.3 0-.4-.1-.2-.2-.2-.6 0-.8.8-.8 1.8-1.5 3.1-1.8.3-.1.6.1.7.4.1.3-.1.6-.4.7-1.1.3-2 .8-2.6 1.5-.1.1-.3.1-.4.1zm8.3-1.6h-.2c-.3-.1-.7-.2-1-.2-.3-.1-.5-.3-.5-.6.1-.3.3-.5.6-.5l1.2.3c.3.1.5.4.4.7 0 .1-.2.3-.5.3z" fill="#D7D7DB"/><path d="M277.5
33.7h-54.9c-.6 0-1.1-.5-1.1-1.1 0-.6.5-1.1 1.1-1.1h54.9c.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1z" fill="#F9F9FA"/><ellipse fill="#EDEDF0" cx="144.1" cy="206.4" rx="59.7" ry="5.2"/><path d="M187.8 21.6h.1c.7 0 1.3-.5 1.3-1.2.1-1.5 1.2-2.7 2.6-3 .7-.2 1.2-.9 1-1.6-.2-.7-.9-1.2-1.6-1-2.6.6-4.5 2.8-4.7 5.4 0 .7.6 1.4 1.3 1.4z" fill="#F9F9FA"/><ellipse fill="#EDEDF0" cx="248.8" cy="206.4" rx="25.7" ry="4.5"/><ellipse fill="#EDEDF0" cx="35.7" cy="206.4" rx="35" ry="4.5"/></g><path d="M173 63.2c-.1-.3-.5-.5-.9-.4-.9.4-1.8.7-2.7 1.1-.2.1-.3.3-.4.5h2.7c.3-.1.6-.3.9-.4.4-.1.6-.5.4-.8zM231.7 155.7c.1.1.3.2.5.2s.3-.1.5-.2c.2-.2.4-.5.7-.7h-1.8c-.1.2-.1.5.1.7zM149.2 63.7c.3-.2.3-.7.1-.9-.2-.3-.7-.3-.9-.1-.3.3-.7.6-1 .8-.3.2-.3.6-.1.9h1.1c.2-.2.5-.4.8-.7zM65.2 62.8c-.2.1-.3.1-.5.2.5 0 .9.1 1.3.2-.1-.4-.5-.5-.8-.4zM129.2 63.9c.1.1.3.2.4.2.2 0 .4-.1.5-.2.2-.3.2-.7-.1-.9-.3-.3-.7-.6-1-.8-.3-.2-.7-.2-.9.1-.2.3-.2.7.1.9.3.1.6.4 1 .7zM42.3 62.8c-.2-.3-.7-.3-.9-.1l-.3.3h1.4c-.1-.1-.1-.2-.2-.2z" fill="#F3
F3F7"/><path d="M196.2 171.5c0 .4-.3.7-.6.7-1 .1-2 .1-2.9.1h-.1c-3.9 0-7.9-.4-11.7-1.2-.4-.1-.6-.4-.5-.8.1-.4.4-.6.8-.5 3.7.8 7.6 1.2 11.4 1.2 1 0 2 0 2.9-.1.4-.1.7.2.7.6zm10.5-109.3c3.7 1 7.4 2.4 10.8 4.1.1 0 .2.1.3.1.2 0 .5-.1.6-.4.2-.3 0-.7-.3-.9-3.5-1.8-7.2-3.2-11.1-4.2-.4-.1-.7.1-.8.5 0 .3.2.7.5.8zm-11.3-3.1c-4.9-.2-9.9.2-14.7 1.2-.4.1-.6.4-.5.8.1.3.3.5.7.5h.1c4.7-1 9.6-1.4 14.4-1.2.4 0 .7-.3.7-.6-.1-.4-.3-.7-.7-.7zm-25.5 108.4c.3 0 .5-.1.6-.4.2-.3 0-.7-.3-.9-.6-.3-1.1-.5-1.7-.8h-2.9c1.3.7 2.7 1.4 4.1 2 0 0 .1.1.2.1zM223.3 68c-.3-.2-.7-.1-.9.2-.2.3-.1.7.2.9.8.5 1.6 1.1 2.4 1.6.1.1.3.1.4.1.2 0 .4-.1.5-.3.2-.3.1-.7-.2-.9-.8-.5-1.6-1-2.4-1.6zm-.6 94c-3.2 2.1-6.7 3.9-10.3 5.3-.3.1-.5.5-.4.9.1.3.4.4.6.4h.2c3.7-1.4 7.2-3.2 10.5-5.4.3-.2.4-.6.2-.9 0-.4-.5-.5-.8-.3zm-15.8 7c-.9.2-1.9.5-2.8.7-.4.1-.6.4-.5.8.1.3.3.5.7.5h.1c1-.2 1.9-.4 2.9-.7.4-.1.6-.5.5-.8-.1-.3-.5-.6-.9-.5zM192.6 54.7c16.8 0 32 6.8 43.1 17.9h3.7C227.7 60 211.1 52 192.6 52c-14.1 0-27.1 4.6-37.7 12.4h4.7c9.6-6.1 20.9-9.7
33-9.7zm0 121.8c-13.1 0-25.2-4.1-35.1-11.2H153c10.9 8.7 24.6 13.9 39.6 13.9 20.2 0 38.3-9.5 49.9-24.3H239c-11.1 13.2-27.8 21.6-46.4 21.6zm11.8 5.8c-5 .9-10.2 1.2-15.2.9-.3 0-.7.3-.7.6 0 .4.3.7.6.7 1.2.1 2.3.1 3.5.1 4 0 8.1-.4 12-1 .4-.1.6-.4.5-.8 0-.4-.3-.6-.7-.5zm-25.4-.4c-1.2-.3-2.5-.5-3.7-.9-.4-.1-.7.1-.8.5-.1.4.1.7.5.8 1.3.3 2.5.6 3.8.9h.1c.3 0 .6-.2.7-.5 0-.3-.2-.7-.6-.8zm37.7-3c-.4.2-.8.3-1.2.4-.3.1-.5.5-.4.9.1.3.4.4.6.4h.2c.4-.1.8-.3 1.2-.5.3-.1.5-.5.4-.9-.1-.3-.5-.5-.8-.3zm19.4-115c.1.1.3.2.4.2.2 0 .4-.1.5-.2.2-.3.2-.7-.1-.9-.3-.3-.7-.6-1-.8-.3-.2-.7-.2-.9.1-.2.3-.2.7.1.9.4.1.7.4 1 .7zm-65.7 115.7c-.4-.1-.8-.3-1.2-.4-.3-.1-.7 0-.9.4-.1.3 0 .7.4.9.4.2.8.3 1.2.4h.2c.3 0 .5-.2.6-.5.3-.3.1-.7-.3-.8zm54.4-4.4c-1.1.6-2.3 1.2-3.4 1.7-.3.2-.5.6-.3.9.1.2.4.4.6.4.1 0 .2 0 .3-.1 1.2-.6 2.3-1.1 3.5-1.8.3-.2.4-.6.3-.9-.3-.3-.7-.4-1-.2zm19.6-16.1c-3.3 3.9-7 7.4-11.1 10.5-.3.2-.4.6-.1.9.1.2.3.3.5.3.1 0 .3 0 .4-.1 4.1-3.1 7.9-6.7 11.3-10.7.2-.3.2-.7-.1-.9-.2-.3-.6-.3-.9 0zm.9-88c-.2-.3-.7-.
3-.9-.1-.3.2-.3.7-.1.9.2.2.3.4.5.6h1.7c-.4-.4-.8-.9-1.2-1.4zm-87-13.9c.1 0 .2 0 .3-.1 4.4-2.6 9.1-4.6 14-6.1.4-.1.6-.5.4-.8-.1-.4-.5-.6-.8-.4-5 1.5-9.8 3.6-14.3 6.3-.3.2-.4.6-.2.9.1.1.3.2.6.2zm45.8-8.2c5 .9 10 2.3 14.7 4.3.1 0 .2.1.3.1.3 0 .5-.2.6-.4.1-.3 0-.7-.4-.9-4.8-2-9.8-3.5-15-4.4-.4-.1-.7.2-.8.5 0 .3.3.7.6.8zm23.8 8.9c1.1.7 2.2 1.4 3.2 2.1.1.1.3.1.4.1.2 0 .4-.1.6-.3.2-.3.1-.7-.2-.9-1.1-.7-2.2-1.5-3.3-2.1-.3-.2-.7-.1-.9.2-.2.3-.1.7.2.9zM191.4 48h1.3c.4 0 .6-.3.6-.7 0-.4-.4-.7-.7-.7h-1.2c-.4 0-.7.3-.7.7 0 .4.3.7.7.7zm-45.8 118.2c3.8 3.5 8 6.7 12.5 9.3.1.1.2.1.3.1.2 0 .5-.1.6-.3.2-.3.1-.7-.2-.9-4.3-2.5-8.4-5.5-12.1-8.9h-1.2c-.1.1-.1.5.1.7zm36.8-117.5c.1 0 .1 0 0 0 1.3-.2 2.6-.3 3.9-.5.4 0 .6-.4.6-.7 0-.4-.4-.6-.7-.6-1.3.1-2.6.3-3.9.5-.4.1-.6.4-.6.8.1.3.4.5.7.5zM97.3 171h.1c1-.2 1.9-.4 2.9-.7.4-.1.6-.5.5-.8-.1-.4-.5-.6-.8-.5-.9.2-1.9.5-2.8.7-.4.1-.6.4-.5.8 0 .3.3.5.6.5zm2-109.6c-.1.4.1.7.5.8 2.3.6 4.5 1.4 6.7 2.3h3.3c-3.1-1.5-6.4-2.7-9.7-3.6-.4-.1-.7.1-.8.5zm-25.6-1.1c-.4.1-.6.4-
.5.8.1.3.3.5.7.5h.1c4.7-1 9.6-1.4 14.4-1.2.4 0 .7-.3.7-.6 0-.4-.3-.7-.6-.7-5-.3-10 .1-14.8 1.2zm-.3 110c-.1.4.2.7.5.8 3.8.8 7.8 1.2 11.7 1.2h.1c1 0 2 0 2.9-.1.4 0 .7-.3.6-.7 0-.4-.3-.7-.7-.6-1 0-1.9.1-2.9.1-3.9 0-7.7-.4-11.4-1.2-.4-.2-.7.1-.8.5zm31.7-2.2c.1.3.4.4.6.4h.2c2.3-.9 4.6-2 6.7-3.1h-2.9c-1.4.7-2.8 1.3-4.3 1.9-.3.1-.5.5-.3.8zm-42.2-.6c.3 0 .5-.1.6-.4.2-.3 0-.7-.3-.9-1.8-.8-3.6-1.7-5.3-2.7h-2.6c2.3 1.5 4.8 2.8 7.3 3.9.1 0 .2.1.3.1zM85.6 54.7c12.1 0 23.4 3.6 32.9 9.7h4.7C112.7 56.6 99.7 52 85.6 52 72.4 52 60.1 56 50 62.9h5.1c9-5.2 19.4-8.2 30.5-8.2zm0 121.8c-14.2 0-27.2-4.9-37.6-13.1h-4.2c11.2 9.8 25.8 15.7 41.8 15.7 15 0 28.7-5.2 39.6-13.9h-4.5c-9.9 7.2-22 11.3-35.1 11.3zm32.2-1.3c-1.1.6-2.3 1.2-3.4 1.7-.3.2-.5.6-.3.9.1.2.4.4.6.4.1 0 .2 0 .3-.1 1.2-.6 2.3-1.1 3.5-1.8.3-.2.4-.6.3-.9-.3-.3-.7-.4-1-.2zm3.1-117.3c1.1.7 2.2 1.4 3.2 2.1.1.1.3.1.4.1.2 0 .4-.1.6-.3.2-.3.1-.7-.2-.9-1.1-.7-2.2-1.5-3.3-2.1-.3-.2-.7-.1-.9.2-.2.3-.1.7.2.9zM97.4 182.3c-5 .9-10.2 1.2-15.2.9-.4 0-.7.3-.7.6 0
.4.3.7.6.7 1.2.1 2.3.1 3.5.1 4 0 8.1-.4 12-1 .4-.1.6-.4.5-.8 0-.4-.3-.6-.7-.5zm-34-2.7c-.4-.1-.8-.3-1.2-.4-.3-.1-.7 0-.9.4-.1.3 0 .7.4.9.4.2.8.3 1.2.4h.2c.3 0 .5-.2.6-.5.3-.3.1-.7-.3-.8zm8.7 2.3c-1.2-.3-2.5-.5-3.7-.9-.4-.1-.7.1-.8.5-.1.4.1.7.5.8 1.3.3 2.5.6 3.8.9h.1c.3 0 .6-.2.7-.5 0-.3-.3-.7-.6-.8zm54.3-12.3c-.3.2-.4.6-.1.9.1.2.3.3.5.3.1 0 .3 0 .4-.1 2.2-1.7 4.3-3.4 6.2-5.3h-2c-1.6 1.5-3.3 2.9-5 4.2zm-16.7 9.3c-.4.2-.8.3-1.2.4-.3.1-.5.5-.4.9.1.3.4.4.6.4h.2c.4-.1.8-.3 1.2-.5.3-.1.5-.5.4-.9-.1-.3-.5-.5-.8-.3zM97.1 49c5 .9 10 2.3 14.7 4.3.1 0 .2.1.3.1.3 0 .5-.2.6-.4.1-.3 0-.7-.4-.9-4.8-2-9.8-3.5-15-4.4-.4-.1-.7.2-.8.5 0 .3.3.7.6.8zm-12.7-1h1.3c.4 0 .6-.3.6-.7 0-.4-.4-.7-.7-.7h-1.2c-.4 0-.7.3-.7.7.1.4.4.7.7.7zm-33.1 9.2c.1 0 .2 0 .3-.1 4.4-2.6 9.1-4.6 14-6.1.4-.1.6-.5.4-.8-.1-.4-.5-.6-.8-.4-5 1.5-9.8 3.6-14.3 6.3-.3.2-.4.6-.2.9.1.1.3.2.6.2zm.6 117.1c-4.4-2.5-8.6-5.6-12.3-9.1-.3-.3-.7-.2-1 0-.3.3-.2.7 0 1 3.8 3.5 8 6.7 12.5 9.3.1.1.2.1.3.1.2 0 .5-.1.6-.3.3-.4.2-.8-.1-1zM75.4 48.7c.1 0
.1 0 0 0 1.3-.2 2.6-.3 3.9-.5.4 0 .6-.4.6-.7 0-.4-.4-.6-.7-.6-1.3.1-2.6.3-3.9.5-.4.1-.6.4-.6.8.1.3.4.5.7.5z" fill="#D7D7DB"/><path d="M261.6 34.4h-30.1c-1.3 0-2.3 1-2.3 2.3v56.4c0 1.3 1 2.3 2.3 2.3h30.1c1.3 0 2.3-1 2.3-2.3V36.7c0-1.2-1-2.3-2.3-2.3zm-15.5 4.9c4.2 0 7.7 3.5 7.7 7.7s-3.5 7.7-7.7 7.7-7.7-3.5-7.7-7.7 3.5-7.7 7.7-7.7zm-7.5 23.1c.1-.4.5-.8 1-.9l3.7-.7 2.1-4.1.8-.1c.5 0 .9.3 1.1.7l1.7 3.5 4.4.8.3.7c.1.4 0 .9-.3 1.3l-2.6 2.8.7 4.7-.6.5c-.4.3-.9.3-1.3.1l-3.3-1.7-4 2.1-.7-.4c-.4-.3-.6-.7-.5-1.2l.6-3.9-3.1-3.4v-.8zm8.2 17.3c0-.7.5-1.2 1.2-1.2h1.3c-.8-.9-1.9-1.4-3.2-1.4-2 0-3.8 1.4-4.3 3.3-.1.5-.6.9-1.1.9h-.3c-.6-.2-1-.8-.9-1.4.8-3 3.4-5.1 6.6-5.1 1.6 0 3.2.6 4.4 1.7V76c0-.7.5-1.2 1.2-1.2s1.2.5 1.2 1.2v3.7c0 .7-.5 1.2-1.2 1.2H248c-.7 0-1.2-.5-1.2-1.2zm-.7 8.7c-1.6 0-3.2-.6-4.4-1.7v.5c0 .7-.5 1.2-1.2 1.2s-1.2-.5-1.2-1.2v-3.7c0-.7.5-1.2 1.2-1.2h3.7c.7 0 1.2.5 1.2 1.2s-.5 1.2-1.2 1.2h-1.3c.8.9 1.9 1.4 3.2 1.4 2 0 3.8-1.4 4.3-3.3.2-.6.8-1 1.4-.9.6.2 1 .8.9 1.4-.8 3-3.5 5.1-6.6 5.1z"
fill="url(#a)" transform="translate(1 46)"/><path d="M246.1 52.4c2.9 0 5.3-2.4 5.3-5.3s-2.4-5.3-5.3-5.3-5.3 2.4-5.3 5.3 2.4 5.3 5.3 5.3zm-1.1-8.6c0-.4.3-.7.7-.7.4 0 .7.3.7.7v3.1h3.1c.4 0 .7.3.7.7 0 .4-.3.7-.7.7h-3.7c-.4 0-.7-.3-.7-.7v-3.8h-.1z" fill="url(#b)" transform="translate(1 46)"/><path fill="url(#c)" d="M243.6 68.7l2.5-1.3 2.6 1.3-.5-3 2.1-2.2-2.9-.5-1.3-2.6-1.3 2.6-2.9.5 2.1 2.2" transform="translate(1 46)"/><path d="M240.9 70.5c-.1.5.1.9.5 1.2l.7.4 4-2.1 3.3 1.7c.4.2.9.2 1.3-.1l.6-.5-.7-4.7 2.6-2.8c.3-.3.4-.8.3-1.3l-.3-.7-4.4-.8-1.7-3.5c-.2-.4-.7-.7-1.1-.7l-.8.1-2.1 4.1-3.7.7c-.5.1-.8.4-1 .9l-.2.8 3.1 3.4-.4 3.9zm3.9-7.5l1.3-2.6 1.3 2.6 2.9.5-2.1 2.2.4 3-2.5-1.3-2.5 1.3.4-3-2.1-2.2 2.9-.5z" fill="url(#d)" transform="translate(1 46)"/><path fill="url(#e)" d="M35 60.4l-1.4 2.8-3.1.6 2.2 2.4-.4 3.2 2.7-1.5 2.7 1.5-.4-3.2 2.2-2.4-3.1-.6" transform="translate(1 46)"/><path d="M10.2 103.3h50.7c1.4 0 2.5-1.1 2.5-2.5V27.6c0-1.4-1.1-2.5-2.5-2.5H10.2c-1.4 0-2.5 1.1-2.5 2.5v73.2c.1
1.4 1.2 2.5 2.5 2.5zm32.1-14.5c-.8 3.3-3.8 5.7-7.3 5.7-1.8 0-3.5-.7-4.8-1.8v.4c0 .7-.6 1.3-1.3 1.3-.7 0-1.3-.6-1.3-1.3V89c0-.7.6-1.3 1.3-1.3H33c.7 0 1.3.6 1.3 1.3 0 .7-.6 1.3-1.3 1.3h-1.3c.9.9 2.1 1.4 3.4 1.4 2.2 0 4.1-1.5 4.6-3.6.2-.7.9-1.2 1.6-1 .7.2 1.1 1 1 1.7zm.2-3.9c0 .7-.6 1.3-1.3 1.3h-4.1c-.7 0-1.3-.6-1.3-1.3 0-.7.6-1.3 1.3-1.3h1.3c-.9-.9-2.1-1.4-3.4-1.4-2.2 0-4.1 1.5-4.6 3.6-.2.6-.7 1-1.3 1h-.3c-.7-.2-1.2-.9-1-1.6.8-3.3 3.8-5.7 7.3-5.7 1.8 0 3.5.7 4.8 1.8v-.4c0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3v4zm.5-21L40.1 67l.7 5.1-.7.6c-.4.3-1 .4-1.5.1L35 71l-4.4 2.3-.8-.5c-.4-.3-.7-.8-.6-1.4l.6-4.3-3.4-3.7.2-.9c.2-.5.6-.9 1.1-1l4-.7 2.3-4.6.9-.1c.6 0 1 .3 1.3.8l1.9 3.8 4.8.9.3.8c.3.6.2 1.2-.2 1.5zm-8-30.2c4.7 0 8.5 3.8 8.5 8.5s-3.8 8.5-8.5 8.5-8.5-3.8-8.5-8.5 3.8-8.5 8.5-8.5z" fill="url(#f)" transform="translate(1 46)"/><path d="M29.2 42.2c0 3.2 2.6 5.8 5.8 5.8 3.2 0 5.8-2.6 5.8-5.8 0-3.2-2.6-5.8-5.8-5.8-3.2 0-5.8 2.6-5.8 5.8zm4.6-3.6c0-.4.3-.7.7-.7.4 0 .7.3.7.7V42h3.4c.4 0 .7.3.7.7 0
.4-.3.7-.7.7h-4.1c-.4 0-.7-.3-.7-.7v-4.1z" fill="url(#g)" transform="translate(1 46)"/><path d="M43 61.7l-4.8-.9-1.9-3.8c-.2-.5-.7-.8-1.3-.8l-.9.1-2.3 4.6-4 .7c-.5.1-1 .5-1.1 1l-.2.9 3.4 3.7-.6 4.3c-.1.5.1 1.1.6 1.4l.8.5L35 71l3.6 1.9c.5.3 1.1.2 1.5-.1l.7-.6-.7-5.1L43 64c.4-.4.5-.9.3-1.4l-.3-.9zm-5.7 4.5l.4 3.2L35 68l-2.7 1.4.4-3.2-2.2-2.4 3.1-.6 1.4-2.8 1.4 2.8 3.1.6-2.2 2.4z" fill="url(#h)" transform="translate(1 46)"/><path d="M119.4 59.6c3.2 0 5.8-2.6 5.8-5.8 0-3.2-2.6-5.8-5.8-5.8-3.2 0-5.8 2.6-5.8 5.8-.1 3.1 2.6 5.8 5.8 5.8zm-1.2-9.5c0-.4.3-.7.7-.7.4 0 .7.3.7.7v3.4h3.4c.4 0 .7.3.7.7 0 .4-.3.7-.7.7h-4.1c-.4 0-.7-.3-.7-.7v-4.1z" fill="url(#i)" transform="translate(1 46)"/><path fill="url(#j)" d="M143.4 52.3l-1.3-2.8-1.4 2.8-3.2.6 2.3 2.4-.5 3.2 2.8-1.4 2.7 1.4-.5-3.2 2.3-2.4" transform="translate(1 46)"/><path d="M102.8 81.1h77.6c1.6 0 2.8-1.3 2.8-2.8V32c0-1.6-1.3-2.8-2.8-2.8h-77.6c-1.6 0-2.8 1.3-2.8 2.8v46.3c-.1 1.6 1.2 2.8 2.8 2.8zm44.4-24.9l.7 5.1-.7.6c-.4.3-1 .4-1.5.1l-3.6-1
.9-4.4 2.3-.8-.5c-.4-.3-.7-.8-.6-1.4l.6-4.3-3.4-3.7.2-.9c.2-.5.6-.9 1.1-1l4-.7 2.3-4.6.9-.1c.5 0 1 .3 1.3.8l1.9 3.8 4.8.9.3.8c.2.5 0 1.1-.3 1.4l-2.8 3.3zm10.3-4.3c.8-3.3 3.8-5.7 7.3-5.7 1.8 0 3.5.7 4.8 1.8v-.4c0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3v4.1c0 .7-.6 1.3-1.3 1.3h-4.1c-.7 0-1.3-.6-1.3-1.3 0-.7.6-1.3 1.3-1.3h1.3c-.9-.9-2.1-1.4-3.4-1.4-2.2 0-4.1 1.5-4.6 3.6-.2.6-.7 1-1.3 1h-.3c-.8-.2-1.2-1-1-1.7zm-.3 3.9c0-.7.6-1.3 1.3-1.3h4.1c.7 0 1.3.6 1.3 1.3 0 .7-.6 1.3-1.3 1.3h-1.3c.9.9 2.1 1.4 3.4 1.4 2.2 0 4.1-1.5 4.6-3.6.2-.7.9-1.2 1.6-1 .7.2 1.2.9 1 1.6-.8 3.3-3.8 5.7-7.3 5.7-1.8 0-3.5-.7-4.8-1.8v.4c0 .7-.6 1.3-1.3 1.3-.7 0-1.3-.6-1.3-1.3v-4zm-37.8-10.6c4.7 0 8.5 3.8 8.5 8.5s-3.8 8.5-8.5 8.5-8.5-3.8-8.5-8.5c-.1-4.7 3.8-8.5 8.5-8.5z" fill="url(#k)" transform="translate(1 46)"/><path d="M264.7 75.3h-34.4c-2.6 0-4.6 2.1-4.6 4.6v67.7c0 2.6 2.1 4.6 4.6 4.6h34.4c2.6 0 4.6-2.1 4.6-4.6V79.9c.1-2.5-2-4.6-4.6-4.6zm-11.8 71.1c0 1.2-.9 2.1-2.1 2.1h-6.7c-1.2 0-2.1-.9-2.1-2.1v-.1c0-1.2.9-2.1 2.1-2.1
h6.7c1.2.1 2.1 1 2.1 2.2zm12-7.3c0 1.3-1 2.3-2.3 2.3h-30.1c-1.3 0-2.3-1-2.3-2.3V82.7c0-1.3 1-2.3 2.3-2.3h30.1c1.3 0 2.3 1 2.3 2.3v56.4zM9 160.8h55.2c2.7 0 4.9-2.2 4.9-4.9V70.6c0-2.7-2.2-4.9-4.9-4.9H9c-2.7 0-4.9 2.2-4.9 4.9v85.3c-.1 2.7 2.1 4.9 4.9 4.9zm19.4-5.3v-1.7c0-1 .8-1.8 1.8-1.8H43c1 0 1.8.8 1.8 1.8v1.7c0 1-.8 1.8-1.8 1.8H30.2c-1 0-1.8-.9-1.8-1.8zM8.8 73.6c0-1.4 1.1-2.5 2.5-2.5H62c1.4 0 2.5 1.1 2.5 2.5v73.2c0 1.4-1.1 2.5-2.5 2.5H11.2c-1.4 0-2.5-1.1-2.5-2.5V73.6h.1zm92.4 57.9h82.7c2.6 0 4.8-2.1 4.8-4.8V71.9c0-2.6-2.1-4.8-4.8-4.8h-82.7c-2.6 0-4.8 2.1-4.8 4.8v54.8c0 2.7 2.2 4.8 4.8 4.8zM141 71c0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6zm-40.1 7c0-1.6 1.3-2.8 2.8-2.8h77.6c1.6 0 2.8 1.3 2.8 2.8v46.3c0 1.6-1.3 2.8-2.8 2.8h-77.6c-1.6 0-2.8-1.3-2.8-2.8V78zm94.8 84.7c1.6 0 3-1.2 3-2.6v-1.4c0-.3-.1-.7-.2-1l-9.9-21.7c-.5-1-1.5-1.7-2.8-1.7H98.7c-1.2 0-2.4.7-2.8 1.7l-9.3 21.7c-.1.3-.2.6-.2.9v1.4c0 1.5 1.3 2.6 3 2.6h106.3v.1zm-11.4-20.2l.5 1.5c.1.4-.5.9-1.2
.9h-5c-.4 0-.8-.2-.8-.4-.1-.6-.2-.9-.5-1.5-.2-.4.4-.9 1.1-.9h5c.4 0 .8.1.9.4zm-7.4-5.3h4.7c.4 0 .7.2.8.4.1.6.2.9.4 1.5.1.4-.4.8-1 .8h-4.6c-.4 0-.8-.2-.9-.4l-.5-1.5c-.2-.4.4-.8 1.1-.8zm-4.3 5.3c.1.6.2.9.3 1.5.1.4-.6.9-1.3.9h-5.1c-.5 0-.8-.2-.9-.5-.2-.6-.2-.9-.4-1.5-.1-.4.5-.9 1.3-.9h5.3c.4.1.8.3.8.5zm-7.1-5.3h5c.4 0 .8.2.8.4.1.6.2.9.3 1.5.1.4-.5.8-1.2.8h-4.9c-.4 0-.8-.2-.8-.4-.2-.6-.2-.9-.4-1.5-.1-.4.5-.8 1.2-.8zm-5.8 5.5c.1.6.1.9.2 1.6.1.4-.5.8-1.2.8h-5.3c-.5 0-.9-.2-1-.5-.1-.6-.2-.9-.3-1.6-.1-.4.5-.8 1.2-.8h5.5c.4-.1.8.1.9.5zm-6.8-5.5h5.2c.5 0 .9.2.9.5.1.6.1.9.2 1.5.1.4-.5.8-1.1.8H153c-.5 0-.9-.2-.9-.5-.1-.6-.2-.9-.3-1.5-.1-.4.5-.8 1.1-.8zm-13.4.6c.1-.3.5-.5 1.1-.5h4.7c.5 0 1 .2 1 .5.1.6.1.9.2 1.5.1.4-.4.7-1.1.7h-5.3c-.6 0-1.1-.3-1-.7.2-.6.2-.9.4-1.5zm-.4 5c.1-.3.5-.6 1.1-.6h5c.6 0 1 .2 1.1.6.1.6.2.9.3 1.6.1.4-.5.8-1.1.8H140c-.7 0-1.2-.4-1.1-.8 0-.6.1-1 .2-1.6zm-11.4-5.5h5.2c.7 0 1.2.4 1.1.8l-.5 1.5c-.1.3-.5.5-1 .5h-5.1c-.6 0-1.2-.4-1.1-.8.1-.6.2-.9.3-1.5.2-.3.6-.5 1.1-.5zm-2 5.5c.
1-.3.5-.5 1-.5h5.5c.7 0 1.3.4 1.1.8-.2.6-.3 1-.4 1.6-.1.3-.5.5-1 .5h-5.3c-.7 0-1.3-.4-1.2-.8.1-.6.2-.9.3-1.6zm-17.7.4c-.3.6-.4 1-.5 1.6-.1.3-.4.5-.8.5h-5c-.7 0-1.3-.4-1.2-.9.2-.6.3-1 .5-1.6.1-.3.5-.5.9-.5h5c.7 0 1.2.5 1.1.9zm1.2-3.5c-.1.3-.5.4-.9.4h-4.6c-.6 0-1.1-.4-.9-.8l.5-1.5c.1-.3.4-.4.8-.4h4.7c.7 0 1.2.4 1.1.8-.3.6-.5.9-.7 1.5zm10.5 5.1c-.1.3-.4.5-.9.5h-5.1c-.7 0-1.3-.4-1.2-.9.1-.6.2-1 .4-1.6.1-.3.4-.5.9-.5h5.3c.7 0 1.3.4 1.2.9-.3.6-.4 1-.6 1.6zm1.1-5.1c-.1.3-.4.4-.9.4H115c-.7 0-1.2-.4-1.1-.8.2-.6.3-.9.4-1.5.1-.3.4-.4.9-.4h5c.7 0 1.2.4 1.1.8l-.5 1.5zm3.1 14.6c.4-2.3.6-3.5 1.1-5.9 0-.3.4-.6.9-.6 13.6-.1 20.5-.2 34.1-.3.5 0 .9.2.9.6.3 2.4.5 3.6.6 6.1 0 .4-.6.8-1.2.8h-35.4c-.6.1-1.1-.3-1-.7z" fill="#FFF"/><path d="M263.7 26.6h-.2v-1.3c0-.6-.5-1.2-1.2-1.2h-6.5c-.6 0-1.2.5-1.2 1.2v1.3h-25.4c-4 0-7.3 3.3-7.3 7.3v67.7c0 4 3.3 7.3 7.3 7.3h34.4c4 0 7.3-3.3 7.3-7.3V33.9c.1-4-3.1-7.3-7.2-7.3zm4.7 75c0 2.6-2.1 4.6-4.6 4.6h-34.4c-2.6 0-4.6-2.1-4.6-4.6V33.9c0-2.6 2.1-4.6 4.6-4.6h34.4c2.6 0 4
.6 2.1 4.6 4.6v67.7zm-16.5-1.2c0 1.2-.9 2.2-2.1 2.2h-6.7c-1.2 0-2.1-.9-2.1-2.1v-.1c0-1.2.9-2.1 2.1-2.1h6.7c1.2 0 2.1.9 2.1 2.1zM54.3 117.5h8.8c4.2 0 7.6-3.4 7.6-7.6V24.6c0-3.6-2.4-6.5-5.7-7.4-.4-.1-.9-.2-1.3-.2H8C3.8 17 .4 20.4.4 24.6v85.3c0 4.2 3.4 7.6 7.6 7.6h46.3zM3 24.6c0-2.7 2.2-4.9 4.9-4.9h55.2c2.7 0 4.9 2.2 4.9 4.9v85.3c0 2.7-2.2 4.9-4.9 4.9H8c-2.7 0-4.9-2.2-4.9-4.9V24.6H3zm26.2 86.7c-1 0-1.8-.8-1.8-1.8v-1.7c0-1 .8-1.8 1.8-1.8H42c1 0 1.8.8 1.8 1.8v1.7c0 1-.8 1.8-1.8 1.8H29.2zm135.3 8.1H194.6c3.1 0 5.7-2.4 5.7-5.3v-1.4c0-.7-.2-1.4-.5-2.1l-9.9-21.7c-.5-1-1.2-1.8-2.2-2.4 1.6-1.4 2.6-3.4 2.6-5.6V26.1c0-4.1-3.4-7.5-7.5-7.5h-82.5c-4.1 0-7.5 3.4-7.5 7.5v54.8c0 2.1.9 4.1 2.3 5.4-1.2.6-2.1 1.5-2.6 2.7l-9.3 21.7c-.3.6-.4 1.3-.4 2v1.4c0 2.9 2.5 5.3 5.7 5.3h76zm-76-2.7c-1.6 0-3-1.2-3-2.6v-1.4c0-.3.1-.6.2-.9L95 90.1c.4-1 1.5-1.7 2.8-1.7h87.1c1.2 0 2.3.7 2.8 1.7l9.9 21.7c.1.3.2.6.2 1v1.4c0 1.5-1.3 2.6-3 2.6H88.5v-.1zm6.9-35.9V26c0-2.6 2.1-4.8 4.8-4.8h82.7c2.6 0 4.8 2.1 4.8 4.8v54.8c0 2.6-2
.1 4.8-4.8 4.8h-82.7c-2.6-.1-4.8-2.2-4.8-4.8zm27.5 27.5c.4-2.3.6-3.5 1.1-5.9 0-.3.4-.6.9-.6 13.6-.1 20.5-.2 34.1-.3.5 0 .9.2.9.6.3 2.4.5 3.6.6 6.1 0 .4-.6.8-1.2.8h-35.4c-.6.1-1.1-.3-1-.7zm-3.8-11.1c-.2.6-.3 1-.5 1.6-.1.3-.4.5-.9.5h-5.1c-.7 0-1.3-.4-1.2-.9.1-.6.2-1 .4-1.6.1-.3.4-.5.9-.5h5.3c.7 0 1.3.5 1.1.9zm5.3 1.2c.1-.6.2-1 .3-1.6.1-.3.5-.5 1-.5h5.5c.7 0 1.3.4 1.1.8-.2.6-.3 1-.4 1.6-.1.3-.5.5-1 .5h-5.3c-.7 0-1.2-.4-1.2-.8zm33.3-2.3c.5 0 .9.2 1 .5.1.6.1.9.2 1.6.1.4-.5.8-1.2.8h-5.3c-.5 0-.9-.2-1-.5-.1-.6-.2-.9-.3-1.6-.1-.4.5-.8 1.2-.8h5.4zm-19.9 2.3c.1-.6.2-.9.3-1.6.1-.3.5-.6 1.1-.6h5c.6 0 1 .2 1.1.6.1.6.2.9.3 1.6.1.4-.5.8-1.1.8H139c-.8-.1-1.3-.4-1.2-.8zm27.7-2.3h5.3c.5 0 .8.2.9.5.1.6.2.9.3 1.5.1.4-.6.9-1.3.9h-5.1c-.5 0-.8-.2-.9-.5-.2-.6-.2-.9-.4-1.5-.2-.5.5-.9 1.2-.9zm-45.1-3.9l-.5 1.5c-.1.3-.4.4-.9.4h-4.9c-.7 0-1.2-.4-1.1-.8.2-.6.3-.9.4-1.5.1-.3.4-.4.9-.4h5c.7 0 1.2.4 1.1.8zm6.3-.9h5.2c.7 0 1.2.4 1.1.8l-.5 1.5c-.1.3-.5.5-1 .5h-5.1c-.6 0-1.2-.4-1.1-.8.1-.6.2-.9.3-1.5.2-.3.6-.5 1.1-.
5zm24.4 2.2c-.1-.6-.2-.9-.3-1.5-.1-.4.5-.8 1.1-.8h5.2c.5 0 .9.2.9.5.1.6.1.9.2 1.5.1.4-.5.8-1.1.8H152c-.4 0-.8-.2-.9-.5zm-13-.2c.1-.6.2-.9.4-1.5.1-.3.5-.5 1.1-.5h4.7c.5 0 1 .2 1 .5.1.6.1.9.2 1.5.1.4-.4.7-1.1.7h-5.3c-.6 0-1.1-.3-1-.7zm25.6.2c-.2-.6-.2-.9-.4-1.5-.1-.4.5-.8 1.2-.8h5c.4 0 .8.2.8.4.1.6.2.9.3 1.5.1.4-.5.8-1.2.8h-4.9c-.4 0-.7-.1-.8-.4zM107 97.2c-.3.6-.4 1-.5 1.6-.1.3-.4.5-.8.5h-5c-.7 0-1.3-.4-1.2-.9.2-.6.3-1 .5-1.6.1-.3.5-.5.9-.5h5c.7 0 1.2.5 1.1.9zm1.8-5c-.2.6-.3.9-.6 1.5-.1.3-.5.4-.9.4h-4.6c-.6 0-1.1-.4-.9-.8l.5-1.5c.1-.3.4-.4.8-.4h4.7c.6 0 1.1.4 1 .8zm68.5 3.9h5c.4 0 .8.2.9.5l.5 1.5c.1.4-.5.9-1.2.9h-5c-.4 0-.8-.2-.8-.4-.1-.6-.2-.9-.5-1.5-.1-.6.4-1 1.1-1zm-2.1-2.6l-.5-1.5c-.1-.4.5-.8 1.2-.8h4.7c.4 0 .7.2.8.4.1.6.2.9.4 1.5.1.4-.4.8-1 .8h-4.6c-.5 0-.9-.2-1-.4zm-33.6-66.9c-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6-.1.9-.8 1.6-1.6 1.6z" fill="url(#l)" transform="translate(1 46)"/><path d="M150.4 51.6l-.3-.8-4.8-.9-1.9-3.8c-.2-.5-.7-.8-1.3-.8l-.9.1-2.3 4.6-4 .7c
-.5.1-1 .5-1.1 1l-.2.9 3.4 3.7-.6 4.3c-.1.5.2 1.1.6 1.4l.8.5 4.4-2.3 3.6 1.9c.5.3 1.1.2 1.5-.1l.7-.6-.7-5.1 2.9-3.1c.3-.5.4-1.1.2-1.6zm-6.1 3.7l.4 3.2-2.7-1.4-2.7 1.4.4-3.2-2.2-2.4 3.1-.6 1.4-2.8 1.4 2.8 3.1.6-2.2 2.4z" fill="url(#m)" transform="translate(1 46)"/><path d="M238.4 47c0 4.2 3.5 7.7 7.7 7.7s7.7-3.5 7.7-7.7-3.5-7.7-7.7-7.7-7.7 3.5-7.7 7.7zm7.7-5.3c2.9 0 5.3 2.4 5.3 5.3s-2.4 5.3-5.3 5.3-5.3-2.4-5.3-5.3 2.4-5.3 5.3-5.3zm-1.1 5.8v-3.7c0-.4.3-.7.7-.7.4 0 .7.3.7.7v3.1h3.1c.4 0 .7.3.7.7 0 .4-.3.7-.7.7h-3.7c-.5-.1-.8-.4-.8-.8zm3 33.4c-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2h1.3c-.8-.9-1.9-1.4-3.2-1.4-2 0-3.8 1.4-4.3 3.3-.1.5-.6.9-1.1.9h-.3c-.6-.2-1-.8-.9-1.4.8-3 3.4-5.1 6.6-5.1 1.6 0 3.2.6 4.4 1.7V76c0-.7.5-1.2 1.2-1.2s1.2.5 1.2 1.2v3.7c0 .7-.5 1.2-1.2 1.2H248zm-1.9 7.5c-1.6 0-3.2-.6-4.4-1.7v.5c0 .7-.5 1.2-1.2 1.2s-1.2-.5-1.2-1.2v-3.7c0-.7.5-1.2 1.2-1.2h3.7c.7 0 1.2.5 1.2 1.2s-.5 1.2-1.2 1.2h-1.3c.8.9 1.9 1.4 3.2 1.4 2 0 3.8-1.4 4.3-3.3.2-.6.8-1 1.4-.9.6.2 1 .8.9 1.4-.8 3-3.5 5.1-6.
6 5.1zM35 50.7c4.7 0 8.5-3.8 8.5-8.5s-3.8-8.5-8.5-8.5-8.5 3.8-8.5 8.5 3.8 8.5 8.5 8.5zm0-14.3c3.2 0 5.8 2.6 5.8 5.8 0 3.2-2.6 5.8-5.8 5.8-3.2 0-5.8-2.6-5.8-5.8 0-3.2 2.6-5.8 5.8-5.8zm-1.2 6.3v-4.1c0-.4.3-.7.7-.7.4 0 .7.3.7.7V42h3.4c.4 0 .7.3.7.7 0 .4-.3.7-.7.7h-4.1c-.4 0-.7-.3-.7-.7zm8.7 38.1v4.1c0 .7-.6 1.3-1.3 1.3h-4.1c-.7 0-1.3-.6-1.3-1.3 0-.7.6-1.3 1.3-1.3h1.3c-.9-.9-2.1-1.4-3.4-1.4-2.2 0-4.1 1.5-4.6 3.6-.2.6-.7 1-1.3 1h-.3c-.7-.2-1.2-.9-1-1.6.8-3.3 3.8-5.7 7.3-5.7 1.8 0 3.5.7 4.8 1.8v-.4c0-.7.6-1.3 1.3-1.3.7-.1 1.3.5 1.3 1.2zm-.2 8c-.8 3.3-3.8 5.7-7.3 5.7-1.8 0-3.5-.7-4.8-1.8v.4c0 .7-.6 1.3-1.3 1.3-.7 0-1.3-.6-1.3-1.3V89c0-.7.6-1.3 1.3-1.3H33c.7 0 1.3.6 1.3 1.3 0 .7-.6 1.3-1.3 1.3h-1.3c.9.9 2.1 1.4 3.4 1.4 2.2 0 4.1-1.5 4.6-3.6.2-.7.9-1.2 1.6-1 .7.2 1.1 1 1 1.7zm77.1-26.5c4.7 0 8.5-3.8 8.5-8.5s-3.8-8.5-8.5-8.5-8.5 3.8-8.5 8.5c-.1 4.6 3.8 8.5 8.5 8.5zm0-14.4c3.2 0 5.8 2.6 5.8 5.8 0 3.2-2.6 5.8-5.8 5.8-3.2 0-5.8-2.6-5.8-5.8-.1-3.2 2.6-5.8 5.8-5.8zm-1.2 6.3v-4.1c0-.4.3-.7.7-.7.4 0
.7.3.7.7v3.4h3.4c.4 0 .7.3.7.7 0 .4-.3.7-.7.7h-4.1c-.4 0-.7-.3-.7-.7zm39 5.7v-4.1c0-.7.6-1.3 1.3-1.3h4.1c.7 0 1.3.6 1.3 1.3 0 .7-.6 1.3-1.3 1.3h-1.3c.9.9 2.1 1.4 3.4 1.4 2.2 0 4.1-1.5 4.6-3.6.2-.7.9-1.2 1.6-1 .7.2 1.2.9 1 1.6-.8 3.3-3.8 5.7-7.3 5.7-1.8 0-3.5-.7-4.8-1.8v.4c0 .7-.6 1.3-1.3 1.3-.7.1-1.3-.5-1.3-1.2zm.3-8c.8-3.3 3.8-5.7 7.3-5.7 1.8 0 3.5.7 4.8 1.8v-.4c0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3v4.1c0 .7-.6 1.3-1.3 1.3h-4.1c-.7 0-1.3-.6-1.3-1.3 0-.7.6-1.3 1.3-1.3h1.3c-.9-.9-2.1-1.4-3.4-1.4-2.2 0-4.1 1.5-4.6 3.6-.2.6-.7 1-1.3 1h-.3c-.8-.2-1.2-1-1-1.7z" fill="url(#n)" transform="translate(1 46)"/></g></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/figure_tor-circuit-display.png b/browser/extensions/onboarding/content/img/figure_tor-circuit-display.png
new file mode 100644
index 000000000000..ea6ecb7f82a3
Binary files /dev/null and b/browser/extensions/onboarding/content/img/figure_tor-circuit-display.png differ
diff --git a/browser/extensions/onboarding/content/img/figure_tor-expect-differences.png b/browser/extensions/onboarding/content/img/figure_tor-expect-differences.png
new file mode 100644
index 000000000000..36970bd711a8
Binary files /dev/null and b/browser/extensions/onboarding/content/img/figure_tor-expect-differences.png differ
diff --git a/browser/extensions/onboarding/content/img/figure_tor-network.png b/browser/extensions/onboarding/content/img/figure_tor-network.png
new file mode 100644
index 000000000000..fe0fa9408daa
Binary files /dev/null and b/browser/extensions/onboarding/content/img/figure_tor-network.png differ
diff --git a/browser/extensions/onboarding/content/img/figure_tor-onion-services.png b/browser/extensions/onboarding/content/img/figure_tor-onion-services.png
new file mode 100644
index 000000000000..018345e4b3a0
Binary files /dev/null and b/browser/extensions/onboarding/content/img/figure_tor-onion-services.png differ
diff --git a/browser/extensions/onboarding/content/img/figure_tor-privacy.png b/browser/extensions/onboarding/content/img/figure_tor-privacy.png
new file mode 100644
index 000000000000..38201ca5c878
Binary files /dev/null and b/browser/extensions/onboarding/content/img/figure_tor-privacy.png differ
diff --git a/browser/extensions/onboarding/content/img/figure_tor-security.png b/browser/extensions/onboarding/content/img/figure_tor-security.png
new file mode 100644
index 000000000000..6eb7e5a9995c
Binary files /dev/null and b/browser/extensions/onboarding/content/img/figure_tor-security.png differ
diff --git a/browser/extensions/onboarding/content/img/figure_tor-welcome.png b/browser/extensions/onboarding/content/img/figure_tor-welcome.png
new file mode 100644
index 000000000000..1bf27c5b9311
Binary files /dev/null and b/browser/extensions/onboarding/content/img/figure_tor-welcome.png differ
diff --git a/browser/extensions/onboarding/content/img/icons_addons.svg b/browser/extensions/onboarding/content/img/icons_addons.svg
deleted file mode 100644
index 6b27dea39252..000000000000
--- a/browser/extensions/onboarding/content/img/icons_addons.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="8 8 16 16"><title>Icons / Extension</title><g fill="none"><path d="M0 0h16v16H0z"/><path d="M22.5 16c-1 0-1 1-1.7 1-.5 0-.8-.3-.8-.7V13c0-.6-.4-1-1-1h-3.2c-.5 0-.8-.3-.8-.7 0-.8 1-.8 1-1.8 0-.9-.9-1.5-2-1.5s-2 .6-2 1.5c0 1 1 1 1 1.8 0 .4-.3.7-.7.7H9c-.6 0-1 .4-1 1v2.3c0 .4.3.7.8.7.7 0 .7-1 1.7-1 .9 0 1.5.9 1.5 2s-.6 2-1.5 2c-1 0-1-1-1.7-1-.5 0-.8.3-.8.8V23c0 .6.4 1 1 1h3.3c.4 0 .7-.3.7-.7 0-.8-1-.8-1-1.8 0-.9.9-1.5 2-1.5s2 .6 2 1.5c0 1-1 1-1 1.8 0 .4.3.7.8.7H19c.6 0 1-.4 1-1v-3.2c0-.5.3-.8.8-.8.7 0 .7 1 1.7 1 .9 0 1.5-.9 1.5-2s-.6-2-1.5-2z" fill="#3E3D40"/></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/icons_customize.svg b/browser/extensions/onboarding/content/img/icons_customize.svg
deleted file mode 100644
index ae0a9409fa5c..000000000000
--- a/browser/extensions/onboarding/content/img/icons_customize.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><title>Glyph / Customize</title><g id="Symbols" fill="none" fill-rule="evenodd"><g id="Glyph-/-Customize" fill-rule="nonzero" fill="#3E3D40"><path d="M4 10c-.886.002-1.665.59-1.91 1.44 0 .01-.015.015-.018.025-.362 1.135-.705 2.11-1.76 2.573l-.022.012-.024.012c-.162.086-.265.254-.266.438 0 .276.224.5.5.5 1.74.12 3.46-.414 4.825-1.5.006-.006.007-.013.013-.02.62-.55.832-1.428.534-2.202C5.575 10.504 4.83 9.995 4 10zM15.693.307c-.365-.363-.95-.383-1.338-.046l-8.03 7c-.206.18-.327.435-.336.707-.01.27.093.535.285.727l1.032 1.03c.184.185.433.288.693.288h.033c.272-.01.527-.13.706-.335l7-8.03c.338-.39.318-.975-.047-1.34z" id="Shape"/></g></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/icons_default.svg b/browser/extensions/onboarding/content/img/icons_default.svg
deleted file mode 100644
index 235f7d65b685..000000000000
--- a/browser/extensions/onboarding/content/img/icons_default.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><title>default-browser-16</title><path fill="context-fill" d="M8,6s0-4,3.5-4S15,5,15,6c0,4.5-7,9-7,9Z"/><path fill="context-fill" d="M8,6S8,2,4.5,2,1,5,1,6c0,4.5,7,9,7,9L9,9Z"/></svg>
diff --git a/browser/extensions/onboarding/content/img/icons_library.svg b/browser/extensions/onboarding/content/img/icons_library.svg
deleted file mode 100644
index 064c2e619486..000000000000
--- a/browser/extensions/onboarding/content/img/icons_library.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg width="92px" height="92px" viewBox="0 0 92 92" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Tip / Icon / Library</title><desc>Created with Sketch.</desc><defs></defs><g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="Tip-/-Icon-/-Library" fill-rule="nonzero" fill="#0C0C0D"><g id="Icon-/-Library-/-Web"><path d="M28.7405828,17.2350375 C25.5662458,17.2350375 22.9929371,19.8060508 22.9929371,22.9775563 L22.9929371,80.402744 C22.9929371,83.5742496 25.5662458,86.1452628 28.7405828,86.1452628 C31.9149199,86.1452628 34.4882285,83.5742496 34.4882285,80.402744 L34.4882285,22.9775563 C34.4882285,19.8060508 31.9149199,17.2350375 28.7405828,17.2350375 Z M45.98352,11.4925188 C42.8091829,11.4925188 40.2358743,14.063532 40.2358743,17.2350375 L40.2358743,80.402744 C40.2358743,83.5742496 42.8091829,86.1452628 45.98352,86.1452628 C49.157857,86.1452628 51.7311657,83.574249
6 51.7311657,80.402744 L51.7311657,17.2350375 C51.7311657,14.063532 49.157857,11.4925188 45.98352,11.4925188 Z M91.6140792,78.4388026 L68.6234964,15.2710961 C67.9500245,13.3049026 66.2658683,11.8556604 64.2198302,11.4816739 C62.1737921,11.1076875 60.0851643,11.8673187 58.7585671,13.4679283 C57.4319699,15.0685378 57.0744241,17.2603443 57.8236701,19.198979 L80.814253,82.3666855 C81.4877249,84.332879 83.1718811,85.7821212 85.2179192,86.1561076 C87.2639573,86.5300941 89.3525851,85.7704629 90.6791823,84.1698533 C92.0057794,82.5692438 92.3633253,80.3774372 91.6140792,78.4388026 L91.6140792,78.4388026 Z M11.4976457,5.75 C8.32330864,5.75 5.75,8.32101323 5.75,11.4925188 L5.75,80.402744 C5.75,83.5742496 8.32330864,86.1452628 11.4976457,86.1452628 C14.6719828,86.1452628 17.2452914,83.5742496 17.2452914,80.402744 L17.2452914,11.4925188 C17.2452914,8.32101323 14.6719828,5.75 11.4976457,5.75 Z" id="Shape"></path></g></g></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/icons_no-icon.png b/browser/extensions/onboarding/content/img/icons_no-icon.png
new file mode 100644
index 000000000000..21aae225793b
Binary files /dev/null and b/browser/extensions/onboarding/content/img/icons_no-icon.png differ
diff --git a/browser/extensions/onboarding/content/img/icons_performance.svg b/browser/extensions/onboarding/content/img/icons_performance.svg
deleted file mode 100644
index ad23ba27400c..000000000000
--- a/browser/extensions/onboarding/content/img/icons_performance.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill="context-fill" d="M8 1a8.009 8.009 0 0 0-8 8 7.917 7.917 0 0 0 .78 3.43 1 1 0 1 0 1.8-.86A5.943 5.943 0 0 1 2 9a6 6 0 1 1 11.414 2.571 1 1 0 1 0 1.807.858A7.988 7.988 0 0 0 8 1z"/><path fill="context-fill" d="M11.769 7.078a.5.5 0 0 0-.69.153L8.616 11.1a2 2 0 1 0 .5 3.558 2.011 2.011 0 0 0 .54-.54 1.954 1.954 0 0 0-.2-2.479l2.463-3.871a.5.5 0 0 0-.15-.69z"/></svg>
diff --git a/browser/extensions/onboarding/content/img/icons_private.svg b/browser/extensions/onboarding/content/img/icons_private.svg
deleted file mode 100755
index 7d4d2c416801..000000000000
--- a/browser/extensions/onboarding/content/img/icons_private.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="8 8 16 16"><title>Icons / Private Browsing</title><g fill="none"><path d="M0 0h32v32H0z"/><path d="M20.4 20c-1.7 0-2.8-2-4.4-2-1.6 0-2.8 2-4.4 2-2 0-3.5-2-3.5-5.3-.1-2 .6-2.7 3.2-2.7s3.4 1.1 4.7 1.1c1.3 0 2.1-1.1 4.7-1.1s3.3.7 3.2 2.7c0 3.3-1.5 5.3-3.5 5.3zm-7.8-5.4c-1.6 0-2.3 1-2.3 1.2 0 .3 1.1.9 2.1.9 1.1 0 2.3-.4 2.3-.7-.2-1-1.1-1.6-2.1-1.4zm6.8 0c-1-.2-1.9.4-2.1 1.4 0 .3 1.2.7 2.3.7 1 0 2.1-.6 2.1-.9 0-.2-.7-1.2-2.3-1.2z" fill="#3E3D40"/></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/icons_screenshots.svg b/browser/extensions/onboarding/content/img/icons_screenshots.svg
deleted file mode 100644
index 8d219dce78b5..000000000000
--- a/browser/extensions/onboarding/content/img/icons_screenshots.svg
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><svg width="92px" height="92px" viewBox="0 0 92 92" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>Tip / Icon / Screenshots</title><desc>Created with Sketch.</desc><defs></defs><g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="Tip-/-Icon-/-Screenshots" fill-rule="nonzero" fill="#0C0C0D"><g id="Icon-/-Screenshot-/-Web"><path d="M23.0526905,5.75 C16.7062659,5.75 11.5614723,10.8982866 11.5614723,17.2490201 L23.0526905,17.2490201 L23.0526905,5.75 Z M57.5263453,5.75 L46.035127,5.75 L46.035127,17.2490201 L57.5263453,17.2490201 L57.5263453,5.75 Z M80.5087818,5.75 L80.5087818,17.2490201 L92,17.2490201 C92,10.8982866 86.8552063,5.75 80.5087818,5.75 Z M40.2895179,5.75 L28.7982997,5.75 L28.7982997,17.2490201 L40.2895179,17.2490201 L40.2895179,5.75 Z M74.7631726,5.75 L63.2719544,5.75 L63.2719544,17.2490201 L74.7631726,17.2490201 L74.7631726,5.75 Z M80.5087818,34.4975502
L92,34.4975502 L92,22.9985301 L80.5087818,22.9985301 L80.5087818,34.4975502 Z M80.5087818,68.9946104 C86.8552063,68.9946104 92,63.8463237 92,57.4955903 L80.5087818,57.4955903 L80.5087818,68.9946104 Z M80.5087818,51.7460803 L92,51.7460803 L92,40.2470602 L80.5087818,40.2470602 L80.5087818,51.7460803 Z M77.9749681,39.286892 C74.3364854,34.0846734 67.1729138,32.8182928 61.9734467,36.4581331 L39.9390357,52.734996 L28.631677,44.8006721 C28.7205927,44.2448747 28.7762328,43.6842562 28.7982997,43.1218152 C28.7892628,38.6172543 26.6604054,34.3800822 23.0526905,31.6860398 L23.0526905,22.9985301 L11.5614723,22.9985301 L11.5614723,29.0355156 C5.79583786,30.1835386 1.31120668,34.7313256 0.240775953,40.5156383 C-0.829654779,46.2999509 1.73019662,52.1531434 6.70268981,55.2910372 C11.675183,58.4289309 18.0565494,58.2180974 22.811375,54.7588235 L29.9474215,59.7551477 L21.9035687,65.4011666 C16.3310302,62.0167647 9.17796578,62.8225007 4.49677041,67.3619045 C-0.184424965,71.9013083 -1.21401,79.0303725
1.99130168,84.710299 C5.19661336,90.3902255 11.8290284,93.1895755 18.1311131,91.5224455 C24.4331979,89.8553154 28.8167193,84.1418505 28.7982997,77.6188754 C28.7959008,76.6687877 28.699673,75.721263 28.5110192,74.7901165 L77.9749681,39.286892 Z M14.4342769,50.3087028 C10.4677615,50.3087028 7.25226545,47.0910236 7.25226545,43.1218152 C7.25226545,39.1526068 10.4677615,35.9349277 14.4342769,35.9349277 C18.4007922,35.9349277 21.6162883,39.1526068 21.6162883,43.1218152 C21.6162883,47.0910236 18.4007922,50.3087028 14.4342769,50.3087028 Z M14.4342769,84.805763 C10.4677615,84.805763 7.25226545,81.5880838 7.25226545,77.6188754 C7.25226545,73.649667 10.4677615,70.4319879 14.4342769,70.4319879 C18.4007922,70.4319879 21.6162883,73.649667 21.6162883,77.6188754 C21.6162883,81.5880838 18.4007922,84.805763 14.4342769,84.805763 Z M45.4605661,70.8402031 L62.7950688,84.0640762 C67.9945359,87.7039165 75.1581075,86.4375358 78.7965902,81.2353172 L55.457926,63.8200513 L45.4605661,70.8402031 Z" id="Shape"><
/path></g></g></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/icons_singlesearch.svg b/browser/extensions/onboarding/content/img/icons_singlesearch.svg
deleted file mode 100644
index 3e06a3852288..000000000000
--- a/browser/extensions/onboarding/content/img/icons_singlesearch.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="8 8 16 16 "><title>Icons / Search</title><g fill="none"><path d="M0 0h32v32H0z"/><path d="M23.7 22.3l-4.8-4.8c1.8-2.5 1.4-6.1-1-8.1s-5.9-1.9-8.1.4c-2.3 2.2-2.4 5.7-.4 8.1 2 2.4 5.6 2.8 8.1 1l4.8 4.8c.4.4 1 .4 1.4 0 .4-.4.4-1 0-1.4zM14 18c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4c0 1.1-.4 2.1-1.1 2.9-.8.7-1.8 1.1-2.9 1.1z" fill="#3E3D40"/></g></svg>
\ No newline at end of file
diff --git a/browser/extensions/onboarding/content/img/icons_sync.svg b/browser/extensions/onboarding/content/img/icons_sync.svg
deleted file mode 100644
index 286422275aa7..000000000000
--- a/browser/extensions/onboarding/content/img/icons_sync.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="8 8 16 16"><title> Icons / Sync</title><desc> Created with Sketch.</desc><g fill="none"><rect width="32" height="32"/><path d="M22 9C21.4 9 21 9.4 21 10L21 11.1C19.2 9.3 16.6 8.6 14.2 9.2 11.7 9.9 9.8 11.8 9.2 14.3 9.1 14.7 9.2 15 9.5 15.3 9.8 15.5 10.1 15.6 10.5 15.5 10.8 15.4 11.1 15.1 11.2 14.8 11.7 12.6 13.7 11 16 11 17.6 11 19 11.7 20 13L18 13C17.4 13 17 13.4 17 14 17 14.6 17.4 15 18 15L22 15C22.6 15 23 14.6 23 14L23 10C23 9.4 22.6 9 22 9ZM22 16.5C21.8 16.4 21.5 16.5 21.3 16.6 21.1 16.7 20.9 17 20.8 17.2 20.3 19.4 18.3 21 16 21 14.4 21 13 20.3 12 19L14 19C14.6 19 15 18.6 15 18 15 17.4 14.6 17 14 17L10 17C9.4 17 9 17.4 9 18L9 22C9 22.6 9.4 23 10 23 10.6 23 11 22.6 11 22L11 20.9C12.8 22.7 15.4 23.4 17.8 22.8 20.3 22.1 22.2 20.2 22.8 17.7 22.9 17.2 22.6 16.6 22 16.5Z" fill="#3E3D40"/></g></svg>
diff --git a/browser/extensions/onboarding/content/img/icons_tour-complete.png b/browser/extensions/onboarding/content/img/icons_tour-complete.png
new file mode 100644
index 000000000000..80b76a9bc682
Binary files /dev/null and b/browser/extensions/onboarding/content/img/icons_tour-complete.png differ
diff --git a/browser/extensions/onboarding/content/img/tor-watermark.png b/browser/extensions/onboarding/content/img/tor-watermark.png
new file mode 100644
index 000000000000..e366c242b22a
Binary files /dev/null and b/browser/extensions/onboarding/content/img/tor-watermark.png differ
diff --git a/browser/extensions/onboarding/content/img/watermark.svg b/browser/extensions/onboarding/content/img/watermark.svg
deleted file mode 100644
index cc3d425ede0b..000000000000
--- a/browser/extensions/onboarding/content/img/watermark.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><title>newtab-firefox-gry</title><path d="M31.359,14.615h0c-.044-.289-.088-.459-.088-.459s-.113.131-.3.378A10.77,10.77,0,0,0,30.6,12.5a13.846,13.846,0,0,0-.937-2.411,10.048,10.048,0,0,0-.856-1.468q-.176-.263-.359-.51c-.57-.931-1.224-1.5-1.981-2.576a7.806,7.806,0,0,1-.991-2.685A10.844,10.844,0,0,0,25,4.607c-.777-.784-1.453-1.341-1.861-1.721C21.126,1.006,21.36.031,21.36.031h0S17.6,4.228,19.229,8.6a8.4,8.4,0,0,0,2.8,3.733c1.576,1.3,3.273,2.323,4.168,4.937a8.377,8.377,0,0,0-3.144-3.317,7.573,7.573,0,0,1,.6,3,7.124,7.124,0,0,1-8.711,6.94,6.561,6.561,0,0,1-1.765-.6,7.183,7.183,0,0,1-2.115-1.955l-.01-.017.126.046a6.5,6.5,0,0,0,.9.241,5.628,5.628,0,0,0,3.583-.423c1.126-.625,1.808-1.088,2.361-.905l.01,0c.54.172.966-.352.58-.9a2.94,2.94,0,0,0-2.848-1.112c-1.127.164-2.16.965-3.637.189a3.129,3.129,0,0,1-.277-.163c-.1-.057.317.087.22.022a7.33,7.33,0,0,1-.928-.554c-.022-.018.223.07.2.052a3.581,3.581,0,0,1-.968-.979
,1.741,1.741,0,0,1-.066-1.554,1.371,1.371,0,0,1,.6-.564c.191.094.309.165.309.165s-.087-.16-.134-.244c.017-.006.032,0,.049-.011.167.072.537.26.732.375a1.016,1.016,0,0,1,.335.3s.067-.033.017-.173a.9.9,0,0,0-.346-.424l.016,0a2.94,2.94,0,0,1,.426.265,2.079,2.079,0,0,0,.17-.9,1.178,1.178,0,0,0-.069-.5c-.053-.1.03-.14.123-.035a.976.976,0,0,0-.079-.238v-.008h0s.053-.069.077-.094a1.43,1.43,0,0,1,.216-.176,9.973,9.973,0,0,1,1.465-.747c.414-.181.757-.319.827-.359a2.3,2.3,0,0,0,.293-.225,1.968,1.968,0,0,0,.66-1.14,1.6,1.6,0,0,0,.017-.178v-.05l0-.03v0l0-.012v0l0-.013h0c-.06-.225-.448-.394-2.476-.584a1.773,1.773,0,0,1-1.45-1.36l0,.009c-.029.074-.055.149-.081.225.026-.075.052-.15.081-.225l0-.016a5.138,5.138,0,0,1,1.986-2.466c.052-.042-.208.011-.156-.032a5.156,5.156,0,0,1,.53-.224c.091-.038-.39-.222-.815-.177a2.2,2.2,0,0,0-.756.178c.1-.086.4-.2.329-.2a4.865,4.865,0,0,0-1.542.583.314.314,0,0,1,.03-.14,2.4,2.4,0,0,0-.964.744,1.275,1.275,0,0,0,.01-.174,2.876,2.876,0,0,0-.473.444l-.009.007a6.285,6.285
,0,0,0-3.517-.3l-.01-.009.012,0a2.943,2.943,0,0,1-.625-.7L6.1,5.852,6.081,5.83c-.077-.114-.156-.243-.237-.387-.058-.1-.117-.217-.176-.338,0-.008-.009-.011-.013-.012-.024,0-.041.111-.061.082l0-.006a4.308,4.308,0,0,1-.283-1.687l-.016.008a1.884,1.884,0,0,0-.714.934c-.061.137-.1.212-.14.287,0,.006,0-.01,0-.035.009-.069.039-.211.032-.2s-.012.019-.019.029a1.733,1.733,0,0,0-.251.372,2.355,2.355,0,0,0-.15.382c-.006.021,0-.018,0-.064s.009-.128,0-.111l-.022.043a9.5,9.5,0,0,0-.8,3.035A3.022,3.022,0,0,0,3.2,8.7v.016a6.628,6.628,0,0,0-.817,1.1,15.606,15.606,0,0,0-1.727,4.23,10.351,10.351,0,0,1,.925-1.621,15,15,0,0,0-1.045,5.5,14.233,14.233,0,0,1,.45-1.629A13.807,13.807,0,0,0,2.234,22.76a15.037,15.037,0,0,0,5.951,6.748h0a13.016,13.016,0,0,0,3.468,1.662c.162.059.326.117.494.173-.053-.021-.1-.044-.153-.067a15.7,15.7,0,0,0,4.5.662c5.394,0,7.175-2.054,7.339-2.259h0a2.73,2.73,0,0,0,.637-.856h0q.156-.064.315-.137l.067-.03.121-.057a11.312,11.312,0,0,0,2.277-1.426,5.5,5.5,0,0,0,2.123-3.1h0a1.938,1.938,0,
0,0,.029-1.428q.083-.131.171-.28a12.706,12.706,0,0,0,1.907-6.181v-.006c0-.059,0-.118,0-.177A7.731,7.731,0,0,0,31.359,14.615Z" fill="#d7d7db"/></svg>
diff --git a/browser/extensions/onboarding/content/onboarding-tour-agent.js b/browser/extensions/onboarding/content/onboarding-tour-agent.js
index d60a41b2c9f5..af93f7220730 100644
--- a/browser/extensions/onboarding/content/onboarding-tour-agent.js
+++ b/browser/extensions/onboarding/content/onboarding-tour-agent.js
@@ -18,6 +18,15 @@ let onCanSetDefaultBrowserInBackground = () => {
let onClick = evt => {
switch (evt.target.id) {
+ case "onboarding-tour-tor-circuit-display-button":
+ // TODO: open circuit display onboarding
+ break;
+ case "onboarding-tour-tor-security-button":
+ Mozilla.UITour.torBrowserOpenSecuritySettings();
+ break;
+#if 0
+// Firefox onboarding actions. To reduce conflicts when rebasing against
+// newer Firefox code, we use the preprocessor to omit this code block.
case "onboarding-tour-addons-button":
Mozilla.UITour.showHighlight("addons");
break;
@@ -60,6 +69,7 @@ let onClick = evt => {
case "onboarding-tour-sync-connect-device-button":
Mozilla.UITour.showConnectAnotherDevice();
break;
+#endif
}
let classList = evt.target.classList;
// On keyboard navigation the target would be .onboarding-tour-item.
diff --git a/browser/extensions/onboarding/content/onboarding.css b/browser/extensions/onboarding/content/onboarding.css
index 0fae40d778c2..a7fb2b405b55 100644
--- a/browser/extensions/onboarding/content/onboarding.css
+++ b/browser/extensions/onboarding/content/onboarding.css
@@ -14,8 +14,8 @@
/* Ensuring we can put the overlay over elements using
z-index on original page */
z-index: 20999;
- color: #4d4d4d;
- background: rgb(245, 245, 247, 0.9); /* #f7f7f5, 0.9 opacity */
+ color: #4a4a4a;
+ background: rgba(0,0,0,0);
display: none;
}
@@ -56,7 +56,7 @@
margin-top: -1px;
margin-inline-start: -13px;
border: 2px solid #f2f2f2;
- background: #0A84FF;
+ background: #420c5d;
padding: 0;
width: 10px;
height: 10px;
@@ -70,7 +70,7 @@
#onboarding-overlay-button:hover::after,
#onboarding-overlay-button.onboarding-speech-bubble::after {
- background: #0060df;
+ background: rgba(255,255,255,0.2);
font-size: 13px;
text-align: center;
color: #fff;
@@ -78,7 +78,7 @@
font-weight: 400;
content: attr(aria-label);
border: 1px solid transparent;
- border-radius: 2px;
+ border-radius: 58px;
padding: 10px 16px;
width: auto;
height: auto;
@@ -119,19 +119,12 @@
width: 16px;
height: 16px;
border: none;
- background: none;
+ background: url("img/close.png") center no-repeat;
padding: 0;
}
-.onboarding-close-btn::before {
- content: url("chrome://global/skin/icons/close.svg");
- -moz-context-properties: fill, fill-opacity;
- fill-opacity: 0;
- fill: currentColor;
-}
-
-.onboarding-close-btn:-moz-any(:hover, :active, :focus, :-moz-focusring)::before {
- fill-opacity: 0.1;
+.onboarding-close-btn:-moz-any(:hover, :active, :focus, :-moz-focusring) {
+ background-color: rgba(0, 0, 0, 0.1);
}
#onboarding-overlay.onboarding-opened > #onboarding-overlay-dialog {
@@ -213,7 +206,7 @@
font-size: 16px;
cursor: pointer;
max-height: 54px;
- --onboarding-tour-item-active-color: #0A84FF;
+ --onboarding-tour-item-active-color: #420c5d;
}
#onboarding-tour-list .onboarding-tour-item:dir(rtl) {
@@ -221,7 +214,7 @@
}
#onboarding-tour-list .onboarding-tour-item.onboarding-complete::before {
- content: url("img/icons_tour-complete.svg");
+ content: url("img/icons_tour-complete.png");
position: relative;
offset-inline-start: 3px;
top: -10px;
@@ -257,6 +250,7 @@
#onboarding-tour-list .onboarding-tour-item.onboarding-active,
#onboarding-tour-list .onboarding-tour-item-container:hover .onboarding-tour-item {
+ font-weight: bold;
color: var(--onboarding-tour-item-active-color);
/* With 1px transparent outline, could see a border in the high-constrast mode */
outline: 1px solid transparent;
@@ -330,6 +324,7 @@
margin-top: 16px;
font-weight: 300;
line-height: 44px;
+ color: #420c5d;
}
.onboarding-tour-content {
@@ -340,8 +335,8 @@
}
.onboarding-tour-content > img {
- width: 352px;
- margin: 0;
+ width: 300px;
+ margin: 20px;
}
/* These illustrations need to be stuck on the right side to the border. Thus we
@@ -364,7 +359,7 @@
}
.onboarding-tour-action-button {
- background: #0060df;
+ background: #4d0c5d;
/* With 1px transparent border, could see a border in the high-constrast mode */
border: 1px solid transparent;
border-radius: 2px;
@@ -394,12 +389,12 @@
}
.onboarding-tour-action-button:hover:not([disabled]) {
- background: #003eaa;
+ background: #410a4e;
cursor: pointer;
}
.onboarding-tour-action-button:active:not([disabled]) {
- background: #002275;
+ background: #34083f;
}
.onboarding-tour-action-button:disabled {
@@ -452,6 +447,12 @@
mask-image: url("img/icons_screenshots.svg");
}
+a#onboarding-tour-tor-expect-differences-button,
+a#onboarding-tour-tor-expect-differences-button:hover,
+a#onboarding-tour-tor-expect-differences-button:visited,
+a#onboarding-tour-tor-onion-services-button,
+a#onboarding-tour-tor-onion-services-button:hover,
+a#onboarding-tour-tor-onion-services-button:visited,
a#onboarding-tour-screenshots-button,
a#onboarding-tour-screenshots-button:hover,
a#onboarding-tour-screenshots-button:visited {
@@ -459,6 +460,12 @@ a#onboarding-tour-screenshots-button:visited {
text-decoration: none;
}
+/* The Tor Browswer tour items do not have icons, so we use a transparent PNG. */
+.onboarding-tour-item::after,
+#onboarding-notification-bar[data-target-tour-id] #onboarding-notification-tour-title::before {
+ mask-image: url("img/icons_no-icon.png");
+}
+
/* Tour Notifications */
#onboarding-notification-bar {
--onboarding-notification-bar-background-color: rgba(255, 255, 255, 0.97);
diff --git a/browser/extensions/onboarding/content/onboarding.js b/browser/extensions/onboarding/content/onboarding.js
index 8bb24dac889c..0cfc763e4f5e 100644
--- a/browser/extensions/onboarding/content/onboarding.js
+++ b/browser/extensions/onboarding/content/onboarding.js
@@ -11,6 +11,9 @@ ChromeUtils.import("resource://gre/modules/Services.jsm");
const ONBOARDING_CSS_URL = "resource://onboarding/onboarding.css";
const ABOUT_HOME_URL = "about:home";
const ABOUT_NEWTAB_URL = "about:newtab";
+const ABOUT_TOR_URL = "about:tor";
+const TORBUTTON_BUNDLE_URI = "chrome://torbutton/locale/browserOnboarding.properties";
+const TORBROWSER_WELCOME_TOUR_NAME_KEY = "onboarding.tour-tor-welcome";
const BUNDLE_URI = "chrome://onboarding/locale/onboarding.properties";
const UITOUR_JS_URI = "resource://onboarding/lib/UITour-lib.js";
const TOUR_AGENT_JS_URI = "resource://onboarding/onboarding-tour-agent.js";
@@ -21,7 +24,7 @@ const PROMPT_COUNT_PREF = "browser.onboarding.notification.prompt-count";
const NOTIFICATION_FINISHED_PREF = "browser.onboarding.notification.finished";
const ONBOARDING_DIALOG_ID = "onboarding-overlay-dialog";
const ONBOARDING_MIN_WIDTH_PX = 960;
-const SPEECH_BUBBLE_MIN_WIDTH_PX = 1130;
+const SPEECH_BUBBLE_MIN_WIDTH_PX = 960;
const SPEECH_BUBBLE_NEWTOUR_STRING_ID = "onboarding.overlay-icon-tooltip2";
const SPEECH_BUBBLE_UPDATETOUR_STRING_ID = "onboarding.overlay-icon-tooltip-updated2";
const ICON_STATE_WATERMARK = "watermark";
@@ -103,6 +106,131 @@ function createOnboardingTourButton(div, buttonId, l10nId, buttonElementTagName
* getPage() {},
* },
**/
+// Tor Browser tours:
+var onboardingTourset = {
+ "welcome": {
+ id: "onboarding-tour-tor-welcome",
+ tourNameId: TORBROWSER_WELCOME_TOUR_NAME_KEY,
+ instantComplete: true,
+ getPage(win) {
+ let div = win.document.createElement("div");
+
+ createOnboardingTourDescription(div,
+ "onboarding.tour-tor-welcome.title", "onboarding.tour-tor-welcome.description");
+ createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-welcome.png");
+ createOnboardingTourButton(div,
+ "onboarding-tour-tor-welcome-button", "onboarding.tour-tor-welcome.button");
+
+ return div;
+ },
+ },
+ "privacy": {
+ id: "onboarding-tour-tor-privacy",
+ tourNameId: "onboarding.tour-tor-privacy",
+ instantComplete: true,
+ getPage(win) {
+ let div = win.document.createElement("div");
+
+ createOnboardingTourDescription(div,
+ "onboarding.tour-tor-privacy.title", "onboarding.tour-tor-privacy.description");
+ createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-privacy.png");
+ createOnboardingTourButton(div,
+ "onboarding-tour-tor-privacy-button", "onboarding.tour-tor-privacy.button");
+
+ return div;
+ },
+ },
+ "tor-network": {
+ id: "onboarding-tour-tor-network",
+ tourNameId: "onboarding.tour-tor-network",
+ instantComplete: true,
+ getPage(win) {
+ let div = win.document.createElement("div");
+
+ createOnboardingTourDescription(div,
+ "onboarding.tour-tor-network.title", "onboarding.tour-tor-network.description");
+ createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-network.png");
+ createOnboardingTourButton(div,
+ "onboarding-tour-tor-network-button", "onboarding.tour-tor-network.button");
+
+ return div;
+ },
+ },
+ "circuit-display": {
+ id: "onboarding-tour-tor-circuit-display",
+ tourNameId: "onboarding.tour-tor-circuit-display",
+ instantComplete: true,
+ getPage(win) {
+ let div = win.document.createElement("div");
+
+ createOnboardingTourDescription(div,
+ "onboarding.tour-tor-circuit-display.title", "onboarding.tour-tor-circuit-display.description");
+ createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-circuit-display.png");
+/* TODO: Circuit display onboarding will be implemented in bug 26962.
+ createOnboardingTourButton(div,
+ "onboarding-tour-tor-circuit-display-button", "onboarding.tour-tor-circuit-display.button");
+*/
+
+ return div;
+ },
+ },
+ "security": {
+ id: "onboarding-tour-tor-security",
+ tourNameId: "onboarding.tour-tor-security",
+ getPage(win) {
+ let div = win.document.createElement("div");
+
+ createOnboardingTourDescription(div,
+ "onboarding.tour-tor-security.title", "onboarding.tour-tor-security.description");
+ createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-security.png");
+ createOnboardingTourButton(div,
+ "onboarding-tour-tor-security-button", "onboarding.tour-tor-security.button");
+
+ return div;
+ },
+ },
+ "expect-differences": {
+ id: "onboarding-tour-tor-expect-differences",
+ tourNameId: "onboarding.tour-tor-expect-differences",
+ getPage(win) {
+ let div = win.document.createElement("div");
+
+ createOnboardingTourDescription(div,
+ "onboarding.tour-tor-expect-differences.title", "onboarding.tour-tor-expect-differences.description");
+ createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-expect-differences.png");
+ let button = createOnboardingTourButton(div,
+ "onboarding-tour-tor-expect-differences-button",
+ "onboarding.tour-tor-expect-differences.button", "a");
+ let anchor = button.querySelector("a");
+ anchor.setAttribute("href", "https://support.torproject.org/#faq");
+ anchor.setAttribute("target", "_blank");
+
+ return div;
+ },
+ },
+ "onion-services": {
+ id: "onboarding-tour-tor-onion-services",
+ tourNameId: "onboarding.tour-tor-onion-services",
+ getPage(win) {
+ let div = win.document.createElement("div");
+
+ createOnboardingTourDescription(div,
+ "onboarding.tour-tor-onion-services.title", "onboarding.tour-tor-onion-services.description");
+ createOnboardingTourContent(div, "resource://onboarding/img/figure_tor-onion-services.png");
+ let button = createOnboardingTourButton(div,
+ "onboarding-tour-tor-onion-services-button",
+ "onboarding.tour-tor-onion-services.button", "a");
+ let anchor = button.querySelector("a");
+ anchor.setAttribute("href", "https://www.nytimes3xbfgragh.onion/");
+ anchor.setAttribute("target", "_blank");
+
+ return div;
+ },
+ },
+};
+#if 0
+// Firefox tours. To reduce conflicts when rebasing against newer Firefox
+// code, we use the preprocessor to omit this code block.
var onboardingTourset = {
"private": {
id: "onboarding-tour-private-browsing",
@@ -415,6 +543,7 @@ var onboardingTourset = {
},
},
};
+#endif
/**
* @param {String} action the action to ask the chrome to do
@@ -471,7 +600,10 @@ class Onboarding {
// We want to create and append elements after CSS is loaded so
// no flash of style changes and no additional reflow.
await this._loadCSS();
- this._bundle = Services.strings.createBundle(BUNDLE_URI);
+ this._bundle = new _TorOnboardingStringBundle();
+ if (!this._bundle.inited) {
+ return;
+ }
this._loadJS(UITOUR_JS_URI);
@@ -521,7 +653,13 @@ class Onboarding {
}
this._initUI();
- if (this._isFirstSession && this._windowWidth >= SPEECH_BUBBLE_MIN_WIDTH_PX) {
+ // For Tor Browser, show the "Let's get started" speech bubble until each
+ // tour item has been completed.
+ let isTourComplete = (ICON_STATE_WATERMARK ==
+ Services.prefs.getStringPref("browser.onboarding.state",
+ ICON_STATE_DEFAULT));
+ if ((!isTourComplete || this._isFirstSession) &&
+ this._windowWidth >= SPEECH_BUBBLE_MIN_WIDTH_PX) {
this._overlayIcon.classList.add("onboarding-speech-bubble");
} else {
this._overlayIcon.classList.remove("onboarding-speech-bubble");
@@ -554,7 +692,8 @@ class Onboarding {
this._onIconStateChange(Services.prefs.getStringPref("browser.onboarding.state", ICON_STATE_DEFAULT));
// Doing tour notification takes some effort. Let's do it on idle.
- this._window.requestIdleCallback(() => this.showNotification());
+// For now, onboarding notifications are disabled in Tor Browser.
+// this._window.requestIdleCallback(() => this.showNotification());
}
_getTourIDList() {
@@ -696,6 +835,7 @@ class Onboarding {
({ id, classList } = target.firstChild);
}
+ let handledTourActionClick = false;
switch (id) {
case "onboarding-overlay-button":
telemetry({
@@ -764,6 +904,18 @@ class Onboarding {
this.gotoPage(tourId);
this._removeTourFromNotificationQueue(tourId);
break;
+ case "onboarding-tour-tor-welcome-button":
+ this.gotoPage("onboarding-tour-tor-privacy");
+ handledTourActionClick = true;
+ break;
+ case "onboarding-tour-tor-privacy-button":
+ this.gotoPage("onboarding-tour-tor-network");
+ handledTourActionClick = true;
+ break;
+ case "onboarding-tour-tor-network-button":
+ this.gotoPage("onboarding-tour-tor-circuit-display");
+ handledTourActionClick = true;
+ break;
}
if (classList.contains("onboarding-tour-item")) {
telemetry({
@@ -777,7 +929,8 @@ class Onboarding {
// Keep focus (not visible) on current item for potential keyboard
// navigation.
target.focus();
- } else if (classList.contains("onboarding-tour-action-button")) {
+ } else if (!handledTourActionClick &&
+ classList.contains("onboarding-tour-action-button")) {
let activeTourId = this._activeTourId;
this.setToursCompleted([ activeTourId ]);
telemetry({
@@ -1419,7 +1572,8 @@ class Onboarding {
let header = this._window.document.createElement("header");
header.id = "onboarding-header";
- header.textContent = this._bundle.GetStringFromName("onboarding.overlay-title2");
+// In Tor Browser, we do not want header text.
+// header.textContent = this._bundle.GetStringFromName("onboarding.overlay-title2");
this._dialog.appendChild(header);
let nav = this._window.document.createElement("nav");
@@ -1488,7 +1642,7 @@ class Onboarding {
watermarkImg.id = "onboarding-overlay-button-watermark-icon";
watermarkImg.setAttribute("role", "presentation");
watermarkImg.src = Services.prefs.getStringPref("browser.onboarding.watermark-icon-src",
- "resource://onboarding/img/watermark.svg");
+ "resource://onboarding/img/tor-watermark.png");
button.appendChild(watermarkImg);
return button;
}
@@ -1577,6 +1731,48 @@ class Onboarding {
}
}
+// _TorOnboardingStringBundle implements the subset of the nsIStringBundle
+// that is used by the code in this file. It checks first for strings inside
+// Torbutton's browserOnboarding.properties file and secondarily in Firefox's
+// onboarding.properties file.
+class _TorOnboardingStringBundle {
+ constructor() {
+ this._mFirefoxBundle = Services.strings.createBundle(BUNDLE_URI);
+ this._mTorButtonBundle = Services.strings.createBundle(TORBUTTON_BUNDLE_URI);
+
+ // If the Tor Browser onboarding strings which ship inside Torbutton are
+ // not available, fail initialization so that no tours are shown.
+ try {
+ let result = this._mTorButtonBundle.GetStringFromName(
+ TORBROWSER_WELCOME_TOUR_NAME_KEY);
+ this.inited = true;
+ } catch (e) {}
+ }
+
+ GetStringFromName(aName) {
+ let result;
+ try {
+ result = this._mTorButtonBundle.GetStringFromName(aName);
+ } catch (e) {
+ result = this._mFirefoxBundle.GetStringFromName(aName);
+ }
+ return result;
+ }
+
+ formatStringFromName(aName, aParams, aLength) {
+ let result;
+ try {
+ result = this._mTorButtonBundle.formatStringFromName(aName, aParams,
+ aLength);
+ } catch (e) {
+ result = this._mFirefoxBundle.formatStringFromName(aName, aParams,
+ aLength);
+ }
+ return result;
+ }
+}
+
+
// Load onboarding module only when we enable it.
if (Services.prefs.getBoolPref("browser.onboarding.enabled", false)) {
addEventListener("load", function onLoad(evt) {
@@ -1586,7 +1782,8 @@ if (Services.prefs.getBoolPref("browser.onboarding.enabled", false)) {
let window = evt.target.defaultView;
let location = window.location.href;
- if (location == ABOUT_NEWTAB_URL || location == ABOUT_HOME_URL) {
+ if (location == ABOUT_NEWTAB_URL || location == ABOUT_HOME_URL ||
+ location == ABOUT_TOR_URL) {
// We just want to run tests as quickly as possible
// so in the automation test, we don't do `requestIdleCallback`.
if (Cu.isInAutomation) {
diff --git a/browser/extensions/onboarding/jar.mn b/browser/extensions/onboarding/jar.mn
index 1e08dec5b04a..f7fb13d033ce 100644
--- a/browser/extensions/onboarding/jar.mn
+++ b/browser/extensions/onboarding/jar.mn
@@ -6,9 +6,12 @@
# resource://onboarding/ is referenced in about:home and about:newtab,
# so make it content-accessible.
% resource onboarding %content/ contentaccessible=yes
- content/ (content/*)
+ content/ (content/*.css)
+ content/img/ (content/img/*)
+* content/onboarding-tour-agent.js (content/onboarding-tour-agent.js)
+* content/onboarding.js (content/onboarding.js)
# Package UITour-lib.js in here rather than under
# /browser/components/uitour to avoid "unreferenced files" error when
# Onboarding extension is not built.
content/lib/UITour-lib.js (/browser/components/uitour/UITour-lib.js)
- content/modules/ (*.jsm)
+ content/modules/OnboardingTourType.jsm (OnboardingTourType.jsm)
diff --git a/browser/extensions/onboarding/moz.build b/browser/extensions/onboarding/moz.build
index 4952e1f4c2e2..4f9c372d66de 100644
--- a/browser/extensions/onboarding/moz.build
+++ b/browser/extensions/onboarding/moz.build
@@ -13,11 +13,8 @@ DEFINES['MOZ_APP_MAXVERSION'] = CONFIG['MOZ_APP_MAXVERSION']
DIRS += ['locales']
FINAL_TARGET_PP_FILES.features['onboarding(a)mozilla.org'] += [
- 'install.rdf.in'
-]
-
-FINAL_TARGET_FILES.features['onboarding(a)mozilla.org'] += [
'bootstrap.js',
+ 'install.rdf.in'
]
BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] squash! Bug 21431: Clean-up system extensions shipped in Firefox 52
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit 1c7d5ff5c2982f6ba67e2e7cf80398b147c7182e
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Aug 1 11:38:10 2018 -0400
squash! Bug 21431: Clean-up system extensions shipped in Firefox 52
Ship the onboarding system extension.
---
browser/app/Makefile.in | 2 +-
browser/extensions/moz.build | 1 +
browser/installer/package-manifest.in | 3 +--
browser/locales/Makefile.in | 1 +
browser/locales/jar.mn | 4 ++--
5 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in
index d3ff94f2aa13..c2dc3ace199d 100644
--- a/browser/app/Makefile.in
+++ b/browser/app/Makefile.in
@@ -109,4 +109,4 @@ endif
.PHONY: features
tools features::
- $(PYTHON) -c 'import os, json; listing = {"system": sorted(os.listdir("$(DIST)/bin/browser/features")) if os.path.exists("$(DIST)/bin/browser/features") else []}; print json.dumps(listing)' > $(DIST)/bin/browser/chrome/browser/content/browser/built_in_addons.json
+ $(PYTHON) -c 'import os, json; listing = {"system": sorted(os.listdir("$(DIST)/bin/browser/features"))}; print json.dumps(listing)' > $(DIST)/bin/browser/chrome/browser/content/browser/built_in_addons.json
diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
index 003619df13e3..a23ecc6bf5fa 100644
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
@@ -5,5 +5,6 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DIRS += [
+ 'onboarding',
'pdfjs',
]
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
index d71a76cf608a..7c89a4f70b95 100644
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -605,8 +605,7 @@
@RESPATH@/browser/chrome/icons/default/default64.png
@RESPATH@/browser/chrome/icons/default/default128.png
#endif
-; In Tor Browser, the browser/features directory is missing (no system extensions).
-;@RESPATH@/browser/features/*
+@RESPATH@/browser/features/*
; [Webide Files]
@RESPATH@/browser/chrome/webide@JAREXT@
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
index 5989e231b322..e67b2b08a795 100644
--- a/browser/locales/Makefile.in
+++ b/browser/locales/Makefile.in
@@ -74,6 +74,7 @@ libs-%:
@$(MAKE) -C ../../toolkit/locales libs-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
+ @$(MAKE) -C ../extensions/onboarding/locales AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) -C ../../devtools/shim/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) -B searchplugins AB_CD=$* XPI_NAME=locale-$*
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
index 560aa8f098b3..5472a9c946b0 100644
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -113,6 +113,6 @@
#ifdef XPI_NAME
# Bug 1240628, restructure how l10n repacks work with feature addons
# This is hacky, but ensures the chrome.manifest chain is complete
-#[.] chrome.jar:
-#% manifest features/chrome.manifest
+[.] chrome.jar:
+% manifest features/chrome.manifest
#endif
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 27082: enable a limited UITour
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit 99042436bbdae4d849902ddf49bb5e89311a5121
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Aug 8 11:34:40 2018 -0400
Bug 27082: enable a limited UITour
Disallow access to UITour functionality from all pages other than
about:home, about:newtab, and about:tor.
Implement a whitelist mechanism for page actions.
---
browser/app/permissions | 6 +-----
browser/components/uitour/UITour.jsm | 13 ++++++++++---
browser/components/uitour/content-UITour.js | 25 ++-----------------------
3 files changed, 13 insertions(+), 31 deletions(-)
diff --git a/browser/app/permissions b/browser/app/permissions
index bda2a9f4e1db..b4b166c755ae 100644
--- a/browser/app/permissions
+++ b/browser/app/permissions
@@ -7,13 +7,9 @@
# See nsPermissionManager.cpp for more...
# UITour
-origin uitour 1 https://www.mozilla.org
-origin uitour 1 https://screenshots.firefox.com
-origin uitour 1 https://support.mozilla.org
-origin uitour 1 https://addons.mozilla.org
-origin uitour 1 https://discovery.addons.mozilla.org
origin uitour 1 about:home
origin uitour 1 about:newtab
+origin uitour 1 about:tor
# XPInstall
origin install 1 https://addons.mozilla.org
diff --git a/browser/components/uitour/UITour.jsm b/browser/components/uitour/UITour.jsm
index 136bd6db78b7..fcce372db422 100644
--- a/browser/components/uitour/UITour.jsm
+++ b/browser/components/uitour/UITour.jsm
@@ -41,6 +41,10 @@ ChromeUtils.defineModuleGetter(this, "UpdateUtils",
const PREF_LOG_LEVEL = "browser.uitour.loglevel";
const PREF_SEENPAGEIDS = "browser.uitour.seenPageIDs";
+const TOR_BROWSER_PAGE_ACTIONS_ALLOWED = new Set([
+ // Add page actions used by Tor Browser's new user/feature onboarding here.
+]);
+
const BACKGROUND_PAGE_ACTIONS_ALLOWED = new Set([
"forceShowReaderIcon",
"getConfiguration",
@@ -376,6 +380,11 @@ var UITour = {
return false;
}
+ if (!TOR_BROWSER_PAGE_ACTIONS_ALLOWED.has(action)) {
+ log.warn("Ignoring disallowed action:", action);
+ return false;
+ }
+
switch (action) {
case "registerPageID": {
if (typeof data.pageID != "string") {
@@ -930,9 +939,7 @@ var UITour = {
// This function is copied to UITourListener.
isSafeScheme(aURI) {
- let allowedSchemes = new Set(["https", "about"]);
- if (!Services.prefs.getBoolPref("browser.uitour.requireSecure"))
- allowedSchemes.add("http");
+ let allowedSchemes = new Set(["about"]);
if (!allowedSchemes.has(aURI.scheme)) {
log.error("Unsafe scheme:", aURI.scheme);
diff --git a/browser/components/uitour/content-UITour.js b/browser/components/uitour/content-UITour.js
index 100aa4dc2255..be51b8383d6b 100644
--- a/browser/components/uitour/content-UITour.js
+++ b/browser/components/uitour/content-UITour.js
@@ -26,30 +26,9 @@ var UITourListener = {
});
},
- isTestingOrigin(aURI) {
- if (Services.prefs.getPrefType(PREF_TEST_WHITELIST) != Services.prefs.PREF_STRING) {
- return false;
- }
-
- // Add any testing origins (comma-seperated) to the whitelist for the session.
- for (let origin of Services.prefs.getCharPref(PREF_TEST_WHITELIST).split(",")) {
- try {
- let testingURI = Services.io.newURI(origin);
- if (aURI.prePath == testingURI.prePath) {
- return true;
- }
- } catch (ex) {
- Cu.reportError(ex);
- }
- }
- return false;
- },
-
// This function is copied from UITour.jsm.
isSafeScheme(aURI) {
- let allowedSchemes = new Set(["https", "about"]);
- if (!Services.prefs.getBoolPref("browser.uitour.requireSecure"))
- allowedSchemes.add("http");
+ let allowedSchemes = new Set(["about"]);
if (!allowedSchemes.has(aURI.scheme))
return false;
@@ -73,7 +52,7 @@ var UITourListener = {
if (permission == Services.perms.ALLOW_ACTION)
return true;
- return this.isTestingOrigin(uri);
+ return false;
},
receiveMessage(aMessage) {
1
0
commit 3b3161cb9f1e96eaaa303a405df4a88a2be62a55
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Wed Aug 15 10:06:09 2018 -0400
Bug 26961: New user onboarding
Add strings for use by new user onboarding.
Add "TorOpenSecuritySettings" observer.
---
src/chrome/content/torbutton.js | 10 +++++-
src/chrome/locale/en/browserOnboarding.properties | 38 +++++++++++++++++++++++
trans_tools/import-translations.sh | 1 +
3 files changed, 48 insertions(+), 1 deletion(-)
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 8e62a5ab..134f10da 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -12,7 +12,7 @@ let { showDialog } = Cu.import("resource://torbutton/modules/utils.js", {});
let { getLocale, unescapeTorString } = Cu.import("resource://torbutton/modules/utils.js", {});
let SecurityPrefs = Cu.import("resource://torbutton/modules/security-prefs.js", {});
let NoScriptControl = Cu.import("resource://torbutton/modules/noscript-control.js", {});
-let { bindPrefAndInit } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { bindPrefAndInit, observe } = Cu.import("resource://torbutton/modules/utils.js", {});
Cu.importGlobalProperties(["XMLHttpRequest"]);
@@ -1920,6 +1920,8 @@ function torbutton_is_windowed(wind) {
return true;
}
+let stopOpenSecuritySettingsObserver;
+
// Bug 1506 P3: This is needed pretty much only for the version check
// and the window resizing. See comments for individual functions for
// details
@@ -1953,6 +1955,11 @@ function torbutton_new_window(event)
Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
}
+ // Register the TorOpenSecuritySettings observer, which is used by
+ // UITour to open the security slider dialog.
+ stopOpenSecuritySettingsObserver = observe("TorOpenSecuritySettings",
+ torbutton_open_prefs_dialog);
+
// Check the version on every new window. We're already pinging check in these cases.
torbutton_do_async_versioncheck();
@@ -1964,6 +1971,7 @@ function torbutton_new_window(event)
function torbutton_close_window(event) {
torbutton_window_pref_observer.unregister();
torbutton_tor_check_observer.unregister();
+ stopOpenSecuritySettingsObserver();
window.removeEventListener("sizemodechange", m_tb_resize_handler,
false);
diff --git a/src/chrome/locale/en/browserOnboarding.properties b/src/chrome/locale/en/browserOnboarding.properties
new file mode 100644
index 00000000..362eefea
--- /dev/null
+++ b/src/chrome/locale/en/browserOnboarding.properties
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, The Tor Project, Inc.
+# See LICENSE for licensing information.
+# vim: set sw=2 sts=2 ts=8 et:
+
+onboarding.tour-tor-welcome=Welcome
+onboarding.tour-tor-welcome.title=You’re ready.
+onboarding.tour-tor-welcome.description=Tor Browser offers the highest standard of privacy and security while browsing the web. You are now protected against tracking, surveillance and censorship. Learn how we are doing it by following this quick onboarding.
+onboarding.tour-tor-welcome.button=Start Now
+
+onboarding.tour-tor-privacy=Privacy
+onboarding.tour-tor-privacy.title=Snub trackers and snoopers.
+onboarding.tour-tor-privacy.description=Tor Browser will isolate all traffic for each domain you visit. That means trackers and advertisers can’t follow you. And any information storage such as isolated cookies or browser history is deleted after your session. We make all these modifications to ensure your privacy and security protections in the browser. Click ‘Tor Network’ to learn how we protect you on the network level.
+onboarding.tour-tor-privacy.button=Go to Tor Network
+
+onboarding.tour-tor-network=Tor Network
+onboarding.tour-tor-network.title=Travel a decentralized network.
+onboarding.tour-tor-network.description=Tor Browser will connect you to the Tor Network. Our network protects you more than a VPN because it is not centralized. Tor is a network of servers, we call them relays, run by thousands of volunteers all around the world. This way, there’s no one point of failure and no centralized entity you need to trust in order to enjoy the internet. For each domain you open we create a circuit for you, click on ‘Circuit Display’ to learn how they work.
+onboarding.tour-tor-network.button=Go to Circuit Display
+
+onboarding.tour-tor-circuit-display=Circuit Display
+onboarding.tour-tor-circuit-display.title=See your path.
+onboarding.tour-tor-circuit-display.description=For each domain you visit your traffic is relayed and encrypted in a circuit across three relays around the world. This way no website knows where you are connecting from, because they will only see the connection coming from the last relay. If you would like a new circuit you can just request one by clicking ‘New Circuit for this Site’ on our Circuit Display. Click below to see how it works.
+onboarding.tour-tor-circuit-display.button=Explore
+
+onboarding.tour-tor-security=Security
+onboarding.tour-tor-security.title=Choose your experience.
+onboarding.tour-tor-security.description=Your privacy will always be taken care of by Tor Browser and the Tor network by default. Besides that we also provide you with different settings for when you would like to bump up your browser security while accessing sites. Our Security Settings will allow you to block things that could be used by bad agents to attack your computer. Click below to see the different options and what they do.
+onboarding.tour-tor-security.button=Review Settings
+
+onboarding.tour-tor-expect-differences=Experience Tips
+onboarding.tour-tor-expect-differences.title=Experience Tips
+onboarding.tour-tor-expect-differences.description=With all the security and privacy features provided by the Tor Browser and the Tor Network, your experience while browsing the internet will be a little bit different. You will notice things will run a bit slower since your connection is going through three relays around the world. Sometimes sites will ask you to prove you are a human not a robot and depending on your security options, some things might not work or load. Our goal is to always provide the best experience for our users while not lowering the bar on how to provide real privacy to our users.
+onboarding.tour-tor-expect-differences.button=See FAQs
+
+onboarding.tour-tor-onion-services=Onion Services
+onboarding.tour-tor-onion-services.title=Onion Services
+onboarding.tour-tor-onion-services.description=Finally we would like to introduce you to Onion services. For ultimate privacy and security, sites ending in .onion are configured using the Tor network. Onion services provide extra protections to publishers and visitors, including added safeguards against censorship. The same way our Browser allows you to browse the web anonymously our onion services allow people to provide content and services anonymously. You will notice a little onion icon in the URL bar when accessing these services. Click below to see the NYTimes onion services and how they work.
+onboarding.tour-tor-onion-services.button=Visit an Onion
diff --git a/trans_tools/import-translations.sh b/trans_tools/import-translations.sh
index 2f0be994..342188d0 100755
--- a/trans_tools/import-translations.sh
+++ b/trans_tools/import-translations.sh
@@ -20,6 +20,7 @@ FILEMAP=( "aboutDialog.dtd:torbutton-aboutdialogdtd"
"aboutTBUpdate.dtd:torbutton-abouttbupdatedtd"
"brand.dtd:torbutton-branddtd"
"brand.properties:torbutton-brandproperties"
+ "browserOnboarding.properties:torbutton-browseronboardingproperties"
"torbutton.dtd:torbutton-torbuttondtd"
"torbutton.properties:torbutton-torbuttonproperties"
)
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] squash! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit 36724cc11e94d0dc3094c94f046d76fb5ce44a2b
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Tue Jul 31 07:04:43 2018 -0700
squash! TB4: Tor Browser's Firefox preference overrides.
Bug 14952: Enable http/2 and AltSvc
In Firefox, SPDY/HTTP2 now uses Origin Attributes for
isolation of connections, push streams, origin frames, etc.
That means we get first-party isolation provided
"privacy.firstparty.isolate" is true. So in this patch, we
stop overriding "network.http.spdy.enabled" and
"network.http.spdy.enabled.http2".
Alternate Services also use Origin Attributes for isolation.
So we stop overriding
"network.http.altsvc.enabled" and "network.http.altsvc.oe"
as well.
(All 4 of the abovementioned "network.http.*" prefs adopt
Firefox 60ESR's default value of true.)
However, we want to disable HTTP/2 push for now, so we
set "network.http.spdy.allow-push" to false.
"network.http.spdy.enabled.http2draft" was removed in Bug 1132357.
"network.http.sped.enabled.v2" was removed in Bug 912550.
"network.http.sped.enabled.v3" was removed in Bug 1097944.
"network.http.sped.enabled.v3-1" was removed in Bug 1248197.
---
browser/app/profile/000-tor-browser.js | 9 +--------
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index d0fdbe1040b4..e87b38dcb775 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -174,15 +174,8 @@ pref("browser.cache.frecency_experiment", -1);
// Third party stuff
pref("privacy.firstparty.isolate", true); // Always enforce first party isolation
pref("network.cookie.cookieBehavior", 1);
-pref("network.http.spdy.enabled", false); // Stores state and may have keepalive issues (both fixable)
-pref("network.http.spdy.enabled.v2", false); // Seems redundant, but just in case
-pref("network.http.spdy.enabled.v3", false); // Seems redundant, but just in case
-pref("network.http.spdy.enabled.v3-1", false); // Seems redundant, but just in case
-pref("network.http.spdy.enabled.http2", false); // Temporarily disabled pending implementation review
-pref("network.http.spdy.enabled.http2draft", false); // Temporarily disabled pending implementation review
+pref("network.http.spdy.allow-push", false); // Disabled for now. See https://bugs.torproject.org/27127
pref("network.predictor.enabled", false); // Temporarily disabled. See https://bugs.torproject.org/16633
-pref("network.http.altsvc.enabled", false); // Temporarily disabled. See https://bugs.torproject.org/16673
-pref("network.http.altsvc.oe", false); // Temporarily disabled. See https://bugs.torproject.org/16673
// Proxy and proxy security
pref("network.proxy.socks", "127.0.0.1");
1
0
commit b9b87bcb3105e7aafb42f162b4bb1e8fc7dc54ba
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Mon Aug 13 09:55:40 2018 -0700
Bug 26189: Remove content-policy.js
Our old patch for Bug 8725 was upstreamed in
https://bugzilla.mozilla.org/show_bug.cgi?id=863246
---
src/components/content-policy.js | 174 --------------------------------
src/components/startup-observer.js | 7 +-
src/defaults/preferences/preferences.js | 2 +-
3 files changed, 3 insertions(+), 180 deletions(-)
diff --git a/src/components/content-policy.js b/src/components/content-policy.js
deleted file mode 100644
index db72efea..00000000
--- a/src/components/content-policy.js
+++ /dev/null
@@ -1,174 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this file,
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/*
- * Based on ResourceFilter: A direct workaround for https://bugzil.la/863246
- * https://notabug.org/desktopd/no-resource-uri-leak/src/master/src/resource-f…
- */
-
-const Cc = Components.classes, Ci = Components.interfaces, Cu = Components.utils;
-
-// Import XPCOMUtils object.
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-let { bindPrefAndInit } =
- Cu.import("resource://torbutton/modules/utils.js", {});
-
-function ContentPolicy() {
- this.uriFingerprinting = null;
- let that = this;
- bindPrefAndInit("extensions.torbutton.resource_and_chrome_uri_fingerprinting",
- function (enabled) {
- that.uriFingerprinting = enabled;
- });
-
- // Register as an nsIContentPolicy filter.
- let registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
- registrar.registerFactory(this.classID, this.classDescription,
- this.contractID, this);
-
- let catMan = Cc["@mozilla.org/categorymanager;1"]
- .getService(Ci.nsICategoryManager);
- catMan.addCategoryEntry("content-policy", this.contractID, this.contractID,
- false, true);
-}
-
-ContentPolicy.prototype = {
- classDescription: "ContentPolicy",
- classID: Components.ID("{4c03be7d-492f-990e-f0da-f3689e564898}"),
- contractID: "@torproject.org/content-policy;1",
-
- uriWhitelist: {
- // Video playback.
- "chrome://global/content/TopLevelVideoDocument.js": Ci.nsIContentPolicy.TYPE_SCRIPT,
- "resource://gre/res/TopLevelVideoDocument.css": Ci.nsIContentPolicy.TYPE_STYLESHEET,
- "chrome://global/content/bindings/videocontrols.xml": Ci.nsIContentPolicy.TYPE_XBL,
- "chrome://global/content/bindings/scale.xml": Ci.nsIContentPolicy.TYPE_XBL,
- "chrome://global/content/bindings/progressmeter.xml": Ci.nsIContentPolicy.TYPE_XBL,
- "chrome://global/content/bindings/button.xml": Ci.nsIContentPolicy.TYPE_XBL,
- "chrome://global/content/bindings/general.xml": Ci.nsIContentPolicy.TYPE_XBL,
- "chrome://global/content/bindings/text.xml": Ci.nsIContentPolicy.TYPE_XBL,
-
- // Image display.
- "resource://gre/res/ImageDocument.css": Ci.nsIContentPolicy.TYPE_STYLESHEET,
- "resource://gre/res/TopLevelImageDocument.css": Ci.nsIContentPolicy.TYPE_STYLESHEET,
-
- // Scrollbars, text box resizer, and content keyboard shortcuts.
- "chrome://global/content/bindings/scrollbar.xml": Ci.nsIContentPolicy.TYPE_XBL,
- "chrome://global/content/bindings/resizer.xml": Ci.nsIContentPolicy.TYPE_XBL,
- "chrome://global/content/platformHTMLBindings.xml": Ci.nsIContentPolicy.TYPE_XBL,
-
- // Directory listing.
- "chrome://global/skin/dirListing/dirListing.css": Ci.nsIContentPolicy.TYPE_STYLESHEET,
- },
-
- uriRegexWhitelist: [
- // Video playback: whitelist png and svg images under chrome://global/skin/media
- { regex: /^chrome:\/\/global\/skin\/media\/.+\.(png|svg)$/,
- type: Ci.nsIContentPolicy.TYPE_IMAGE },
-
- // Video playback and image display: whitelist css files under chrome://global/skin/media
- { regex: /^chrome:\/\/global\/skin\/media\/.+\.css$/,
- type: Ci.nsIContentPolicy.TYPE_STYLESHEET },
- ],
-
- // nsISupports
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentPolicy, Ci.nsIFactory,
- Ci.nsISupportsWeakReference]),
-
- // nsIFactory
- createInstance: function(outer, iid)
- {
- if (outer)
- throw Cr.NS_ERROR_NO_AGGREGATION;
- return this.QueryInterface(iid);
- },
-
- // nsIContentPolicy
- shouldLoad: function(aContentType, aContentLocation, aRequestOrigin, aContext, aMimeTypeGuess, aExtra) {
-
- // Accept if the user does not care, no content URI is available or scheme
- // is not resource/chrome.
- if (this.uriFingerprinting || !aContentLocation ||
- !(aContentLocation.schemeIs('resource') ||
- aContentLocation.schemeIs('chrome'))) {
- return Ci.nsIContentPolicy.ACCEPT;
- }
-
- // Accept if no origin URI or if origin scheme is
- // chrome/resource/about/view-source.
- if (!aRequestOrigin || aRequestOrigin.schemeIs('resource') ||
- aRequestOrigin.schemeIs('chrome') ||
- aRequestOrigin.schemeIs('about') ||
- aRequestOrigin.schemeIs('view-source'))
- return Ci.nsIContentPolicy.ACCEPT;
-
- // Accept if resource directly loaded into a tab.
- if (Ci.nsIContentPolicy.TYPE_DOCUMENT === aContentType)
- return Ci.nsIContentPolicy.ACCEPT;
-
- // There's certain things that break horribly if they aren't allowed to
- // access URIs with proscribed schemes, with `aContentOrigin` basically
- // set to arbibrary URIs.
- //
- // XXX: Feature gate this behind the security slider or something, I don't
- // give a fuck.
- if (aContentLocation.spec in this.uriWhitelist)
- if (this.uriWhitelist[aContentLocation.spec] == aContentType)
- return Ci.nsIContentPolicy.ACCEPT;
-
- for (let wlObj of this.uriRegexWhitelist) {
- if ((wlObj.type == aContentType) && wlObj.regex.test(aContentLocation.spec))
- return Ci.nsIContentPolicy.ACCEPT;
- }
-
- return Ci.nsIContentPolicy.REJECT_REQUEST;
- },
-
- shouldProcess: function(aContentType, aContentLocation, aRequestOrigin, aContext, aMimeType, aExtra) {
- return Ci.nsIContentPolicy.ACCEPT;
- },
-};
-
-// Install a HTTP response handler to check for redirects to URLs with schemes
-// that should be internal to the browser. There's various safeguards and
-// checks that cause the body to be unavailable, but the `onLoad()` behavior
-// is inconsistent, which results in leaking information about the specific
-// user agent instance (eg: what addons are installed).
-var requestObserver = {
- ioService: Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService),
- observerService: Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService),
-
- start: function() {
- this.observerService.addObserver(this, "http-on-examine-response", false);
- },
-
- observe: function(aSubject, aTopic, aData) {
- let aChannel = aSubject.QueryInterface(Ci.nsIHttpChannel);
- let aStatus = aChannel.responseStatus;
-
- // If this is a redirect...
- //
- // Note: `304 Not Modifed` isn't a redirect, so there is no Location header to check
- // in that case.
- if (aStatus >= 300 && aStatus < 400 && aStatus != 304) {
- let location = aChannel.getResponseHeader("Location");
- let aUri = this.ioService.newURI(location, null, null);
-
- // And it's redirecting into the browser or addon's internal URLs...
- if (aUri.schemeIs("resource") || aUri.schemeIs("chrome") || aUri.schemeIs("about")) {
- // Cancel the request.
- aSubject.cancel(Components.results.NS_BINDING_ABORTED);
- }
- }
- },
-};
-
-// Create a content policy object; initialization is done in the contructor.
-var cp = new ContentPolicy();
-
-// In the chrome process, register the request observer to handle redirects.
-if (Services.appinfo.processType == Services.appinfo.PROCESS_TYPE_DEFAULT) {
- requestObserver.start();
-}
diff --git a/src/components/startup-observer.js b/src/components/startup-observer.js
index 144d600a..cd9e7d2c 100644
--- a/src/components/startup-observer.js
+++ b/src/components/startup-observer.js
@@ -62,13 +62,10 @@ function StartupObserver() {
this.logger.log(4, "Early proxy change failed. Will try again at profile load. Error: "+e);
}
- // Arrange for our nsIContentPolicy filter and about:tor handler to be
- // loaded in the default (chrome) process as well as in each content
- // process.
+ // Arrange for our about:tor handler to be loaded in the default (chrome)
+ // process as well as in each content process.
let ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"]
.getService(Ci.nsIProcessScriptLoader);
- ppmm.loadProcessScript("resource://torbutton/components/content-policy.js",
- true);
ppmm.loadProcessScript("resource://torbutton/components/aboutTor.js",
true);
}
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index 43401ad0..428e70bc 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -34,7 +34,7 @@ pref("extensions.torbutton.startup_state", 2); // 0=non-tor, 1=tor, 2=last
pref("extensions.torbutton.tor_memory_jar",false);
pref("extensions.torbutton.nontor_memory_jar",false);
pref("extensions.torbutton.launch_warning",true);
-pref("extensions.torbutton.resource_and_chrome_uri_fingerprinting",false);
+
// Opt out of Firefox addon pings:
// https://developer.mozilla.org/en/Addons/Working_with_AMO
pref("extensions.torbutton(a)torproject.org.getAddons.cache.enabled", false);
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 26826 - Disable tab queue and delete SYSTEM_ALERT_WINDOW permission
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit de2e1fbe5b024957ed469063bf38b8b274b4f4ba
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Aug 3 21:29:47 2018 +0000
Bug 26826 - Disable tab queue and delete SYSTEM_ALERT_WINDOW permission
---
mobile/android/app/src/main/res/xml/preferences_general.xml | 1 +
mobile/android/app/src/main/res/xml/preferences_general_tablet.xml | 1 +
mobile/android/base/FennecManifest_permissions.xml.in | 3 ---
3 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/mobile/android/app/src/main/res/xml/preferences_general.xml b/mobile/android/app/src/main/res/xml/preferences_general.xml
index f148ae61b169..ef739db0c3d8 100644
--- a/mobile/android/app/src/main/res/xml/preferences_general.xml
+++ b/mobile/android/app/src/main/res/xml/preferences_general.xml
@@ -31,6 +31,7 @@
<SwitchPreference android:key="android.not_a_preference.tab_queue"
android:title="@string/pref_tab_queue_title"
android:summary="@string/pref_tab_queue_summary"
+ android:selectable="false"
android:defaultValue="false" />
<SwitchPreference android:key="android.not_a_preference.compact_tabs"
diff --git a/mobile/android/app/src/main/res/xml/preferences_general_tablet.xml b/mobile/android/app/src/main/res/xml/preferences_general_tablet.xml
index f05be98277fc..72d4e024b55f 100644
--- a/mobile/android/app/src/main/res/xml/preferences_general_tablet.xml
+++ b/mobile/android/app/src/main/res/xml/preferences_general_tablet.xml
@@ -37,6 +37,7 @@
<SwitchPreference android:key="android.not_a_preference.tab_queue"
android:title="@string/pref_tab_queue_title"
android:summary="@string/pref_tab_queue_summary"
+ android:selectable="false"
android:defaultValue="false" />
</PreferenceScreen>
diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in
index 1b7b2d5475ec..f7bfe475bece 100644
--- a/mobile/android/base/FennecManifest_permissions.xml.in
+++ b/mobile/android/base/FennecManifest_permissions.xml.in
@@ -46,9 +46,6 @@
#endif
<uses-feature android:name="android.hardware.touchscreen"/>
- <!-- Tab Queue -->
- <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
-
#ifdef MOZ_ANDROID_BEAM
<!-- Android Beam support -->
<uses-permission android:name="android.permission.NFC"/>
1
0

[tor-browser-build/master] Bug 12968: enable HEASLR in Windows x86_64 builds
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit f7247cca852ce5f9cce092ca82cb92efbbba611d
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Tue May 29 13:42:09 2018 +0200
Bug 12968: enable HEASLR in Windows x86_64 builds
We still need the other half of the fix for actually providing higher
entropy (see bug 12968, comment:17ff. for discussion).
---
rbm.conf | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/rbm.conf b/rbm.conf
index ff36e6c..cd6dc08 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -204,6 +204,8 @@ targets:
container:
arch: amd64
faketime_path: /usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1
+ # HEASLR is 64 bit only (see bug 12968)
+ flag_HEASLR: '-Wl,--high-entropy-va'
windows-i686:
arch: i686
var:
@@ -226,7 +228,7 @@ targets:
suite: jessie
configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]"'
CFLAGS: '-fstack-protector-strong -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security [% c("var/flag_mwindows") %]'
- LDFLAGS: '-Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -lssp -L$gcclibs [% c("var/flag_mwindows") %]'
+ LDFLAGS: '-Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -lssp -L$gcclibs [% c("var/flag_HEASLR") %] [% c("var/flag_mwindows") %]'
flag_mwindows: '-mwindows'
compiler: mingw-w64
deps:
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25906 - Imply false both Adjust and Leanplum configure options
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit ccb635fc7b7c02c4431adfbe67bff2f73e491157
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Aug 3 18:32:46 2018 +0000
Bug 25906 - Imply false both Adjust and Leanplum configure options
These configure options should be false already, because we set
|--without-google-play-services| in .mozconfig-android. But, this
is another layer of certainty.
---
mobile/android/torbrowser.configure | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/mobile/android/torbrowser.configure b/mobile/android/torbrowser.configure
index ac30fde888a6..8f3462982dc7 100644
--- a/mobile/android/torbrowser.configure
+++ b/mobile/android/torbrowser.configure
@@ -44,3 +44,8 @@ imply_option('MOZ_SERVICES_HEALTHREPORT', False)
imply_option('MOZ_ANDROID_NETWORK_STATE', False);
imply_option('MOZ_ANDROID_LOCATION', False);
+
+# Exclude Leanplum MMA (marketing automation and user behavior)
+imply_option('MOZ_ANDROID_MMA', False);
+# Exclude Adjust (installation tracking)
+imply_option('MOZ_INSTALL_TRACKING', False);
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 27016 - Create proxy connection during image download
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit dda3c7d44a12cc2d9ff5e071605c8f36670ac956
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Thu Aug 2 21:49:05 2018 +0000
Bug 27016 - Create proxy connection during image download
Picasso, the image retrieval library used by Fennec, ignores the network
proxy configuration. We override the openConnection() method and create
the connection using the configured proxy.
---
.../java/org/mozilla/gecko/home/ImageLoader.java | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/mobile/android/base/java/org/mozilla/gecko/home/ImageLoader.java b/mobile/android/base/java/org/mozilla/gecko/home/ImageLoader.java
index 2bbd82a8df77..cbbe7babbba4 100644
--- a/mobile/android/base/java/org/mozilla/gecko/home/ImageLoader.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/ImageLoader.java
@@ -15,9 +15,14 @@ import com.squareup.picasso.Picasso;
import com.squareup.picasso.Downloader.Response;
import com.squareup.picasso.UrlConnectionDownloader;
+import org.mozilla.gecko.util.ProxySelector;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.EnumSet;
import java.util.Set;
@@ -84,6 +89,23 @@ public class ImageLoader {
this.distribution = distribution;
}
+ @Override
+ protected HttpURLConnection openConnection(Uri path) throws IOException {
+ try {
+ // This is annoying, but |path| is an android.net.Uri and
+ // openConnectionWithProxy() accepts a java.net.URI
+ return (HttpURLConnection)ProxySelector.openConnectionWithProxy(
+ new URI(
+ path.getScheme(), path.getHost(), path.getPath(),
+ path.getEncodedFragment()));
+ } catch (URISyntaxException ex) {
+ // And android.net.Uri is more lenient than java.net.URI.
+ // Uri does not catch syntax errors which URI may catch.
+ // We'll re-throw this as an IOException
+ throw new IOException(ex.getMessage());
+ }
+ }
+
private Density getDensity(float factor) {
final DisplayMetrics dm = context.getResources().getDisplayMetrics();
final float densityDpi = dm.densityDpi * factor;
1
0

[tor-browser-build/master] Bug 27129: Add locales ca, ga, id, is, nb
by gk@torproject.org 15 Aug '18
by gk@torproject.org 15 Aug '18
15 Aug '18
commit ad4233157674808d5d8557ada5ce97a145d8a3e5
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Mon Aug 13 15:13:25 2018 -0700
Bug 27129: Add locales ca, ga, id, is, nb
---
rbm.conf | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/rbm.conf b/rbm.conf
index 8cfa5e2..ff36e6c 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -52,15 +52,20 @@ var:
locale_ja: ja
locales:
- ar
+ - ca
- da
- de
- es-ES
- fa
- fr
+ - ga-IE
- he
+ - id
+ - is
- it
- '[% c("var/locale_ja") %]'
- ko
+ - nb-NO
- nl
- pl
- pt-BR
1
0

15 Aug '18
commit 0fb1ea7e8ec9b118c1aa08f92fef7cb7b47cb4ea
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Mon Aug 13 14:54:36 2018 -0700
Bug 27129: Add locales ca, ga, id, is, nb
---
src/chrome/content/network-settings.js | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index 0e18b29..aaa91ac 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -305,16 +305,21 @@ function populateLocaleList(aLangPackAddons)
"en-US" : "English",
"ar" : "\u0627\u0644\u0639\u0631\u0628\u064a\u0629",
"bn-BD" : "\u09ac\u09be\u0982\u09b2\u09be",
+ "ca" : "català",
"da" : "Dansk",
"de" : "Deutsch",
"es-ES" : "Espa\u00f1ol",
"fa" : "\u0641\u0627\u0631\u0633\u06cc",
"fr" : "Fran\u00e7ais",
+ "ga" : "Gaeilge (Irish)",
"he" : "\u05e2\u05d1\u05e8\u05d9\u05ea",
+ "id" : "bahasa Indonesia",
+ "is" : "\u0355slenska",
"it" : "Italiano",
"ja" : "\u65e5\u672c\u8a9e",
"ko" : "\ud55c\uad6d\uc5b4",
"nl" : "Nederlands",
+ "nb" : "Norsk bokmå\u0345l",
"pl" : "Polski",
"pt-PT" : "Portugu\u00eas (Europeu)",
"ru" : "\u0420\u0443\u0441\u0441\u043a\u0438\u0439",
1
0

15 Aug '18
commit 859160f4d23a2706c4cad689c5379a33b0070ef5
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Mon Aug 13 14:35:33 2018 -0700
Bug 27129: Add locales ca, ga, id, is, nb
---
trans_tools/import-translations.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/trans_tools/import-translations.sh b/trans_tools/import-translations.sh
index 736d62ff..2f0be994 100755
--- a/trans_tools/import-translations.sh
+++ b/trans_tools/import-translations.sh
@@ -2,7 +2,7 @@
# This var comes from the TBB locale list.
# XXX: Find some way to keep this, tor-launcher, and Tor Browser in sync
-BUNDLE_LOCALES="ar bn-BD da de es fa fr he it ja ko nl pl pt-BR ru sv tr vi zh-CN zh-TW"
+BUNDLE_LOCALES="ar bn-BD ca da de es fa fr ga he id is it ja ko nb nl pl pt-BR ru sv tr vi zh-CN zh-TW"
# XXX: Basque (eu) by request in #10687.
# This is not used for official builds, but should remain
1
0

14 Aug '18
commit 985bcbf8323c159b18345fbfc010a7277d54559f
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Fri Jul 27 12:23:36 2018 -0400
Bug 26960: implement new about:tor start page
Implement new design from UX team.
Remove "update needed" notification (will be addressed by bug 25694).
---
src/chrome/content/aboutTor/aboutTor-content.js | 222 +--------------
src/chrome/content/aboutTor/aboutTor.xhtml | 212 +++++++++-----
src/chrome/content/torbutton.js | 63 +----
src/chrome/locale/en/aboutTor.dtd | 42 +--
src/chrome/locale/en/aboutTor.properties | 8 +-
src/chrome/skin/aboutTor.css | 353 ++++++++++--------------
src/chrome/skin/forwardArrow.png | Bin 0 -> 258 bytes
src/chrome/skin/onionArrow-extension.png | Bin 1798 -> 0 bytes
src/chrome/skin/onionArrow-leftBend.png | Bin 2080 -> 0 bytes
src/chrome/skin/onionArrow-rightBend.png | Bin 2077 -> 0 bytes
src/chrome/skin/onionArrow-short.png | Bin 1913 -> 0 bytes
src/chrome/skin/search.png | Bin 934 -> 0 bytes
src/chrome/skin/searchLogo.png | Bin 0 -> 1912 bytes
src/chrome/skin/tor-off.png | Bin 5835 -> 0 bytes
src/chrome/skin/tor-on.png | Bin 17945 -> 0 bytes
src/defaults/preferences/preferences.js | 1 -
16 files changed, 318 insertions(+), 583 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index 1a8d5cfa..c2e26c8c 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -12,8 +12,6 @@
* the code in torbutton.js:
* AboutTor:Loaded page loaded content -> chrome
* AboutTor:ChromeData privileged data chrome -> content
- * AboutTor:GetToolbarData request toolbar info content -> chrome
- * AboutTor:ToolbarData toolbar info chrome -> content
*/
var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
@@ -24,7 +22,8 @@ let { bindPrefAndInit } = Cu.import("resource://torbutton/modules/utils.js", {})
var AboutTorListener = {
- kAboutTorMessages: [ "AboutTor:ChromeData", "AboutTor:ToolbarData" ],
+ kAboutTorLoadedMessage: "AboutTor:Loaded",
+ kAboutTorChromeDataMessage: "AboutTor:ChromeData",
get isAboutTor() {
return content.document.documentURI.toLowerCase() == "about:tor";
@@ -45,9 +44,6 @@ var AboutTorListener = {
case "pagehide":
this.onPageHide();
break;
- case "resize":
- sendAsyncMessage("AboutTor:GetToolbarData");
- break;
}
},
@@ -56,12 +52,9 @@ var AboutTorListener = {
return;
switch (aMessage.name) {
- case "AboutTor:ChromeData":
+ case this.kAboutTorChromeDataMessage:
this.onChromeDataUpdate(aMessage.data);
break;
- case "AboutTor:ToolbarData":
- this.onToolbarDataUpdate(aMessage.data);
- break;
}
},
@@ -74,70 +67,42 @@ var AboutTorListener = {
});
// Add message and event listeners.
- this.kAboutTorMessages.forEach(aMsg => addMessageListener(aMsg, this));
- addMessageListener("AboutTor:ChromeData", this);
+ addMessageListener(this.kAboutTorChromeDataMessage, this);
addEventListener("pagehide", this, false);
addEventListener("resize", this, false);
- sendAsyncMessage("AboutTor:Loaded");
+ sendAsyncMessage(this.kAboutTorLoadedMessage);
},
onPageHide: function() {
removeEventListener("resize", this, false);
removeEventListener("pagehide", this, false);
- this.kAboutTorMessages.forEach(aMsg => removeMessageListener(aMsg, this));
+ removeMessageListener(this.kAboutTorChromeDataMessage, this);
},
onChromeDataUpdate: function(aData) {
let body = content.document.body;
- // Update status: tor on/off, update needed, Tor Browser manual shown.
+ // Update status: tor on/off, Tor Browser manual shown.
if (aData.torOn)
body.setAttribute("toron", "yes");
else
body.removeAttribute("toron");
- if (aData.updateNeeded)
- body.setAttribute("torNeedsUpdate", "yes");
- else
- body.removeAttribute("torNeedsUpdate");
-
if (aData.showManual)
body.setAttribute("showmanual", "yes");
else
body.removeAttribute("showmanual");
- // Setting body.initialized="yes" displays the body, which must be done
- // at this point because our remaining initialization depends on elements
- // being visible so that their size and position are accurate.
+ // Setting body.initialized="yes" displays the body.
body.setAttribute("initialized", "yes");
-
- let containerName = "torstatus-" + (aData.torOn ? "on" : "off") +
- "-container";
- this.adjustFontSizes(containerName);
-
- this.onToolbarDataUpdate(aData);
- },
-
- onToolbarDataUpdate: function(aData) {
- this.adjustArrow(aData.toolbarButtonXPos);
},
onLocaleChange: function(aLocale) {
- this.insertPropertyStrings();
-
// Set Tor Browser manual link.
content.document.getElementById("manualLink").href =
"https://tb-manual.torproject.org/" + aLocale;
- // Insert "Test Tor Network Settings" url.
- let elem = content.document.getElementById("testTorSettings");
- if (elem) {
- let url = Services.prefs.getCharPref(
- "extensions.torbutton.test_url_interactive");
- elem.href = url.replace(/__LANG__/g, aLocale.replace(/-/g, '_'));
- }
-
// Display the Tor Browser product name and version.
try {
const kBrandBundle = "chrome://branding/locale/brand.properties";
@@ -153,177 +118,6 @@ var AboutTorListener = {
elem.appendChild(content.document.createTextNode(productName + '\n'
+ tbbVersion));
} catch (e) {}
- },
-
- insertPropertyStrings: function() {
- try {
- let kPropertiesURL = "chrome://torbutton/locale/aboutTor.properties";
-
- let stringBundle = Services.strings.createBundle(kPropertiesURL);
- let s1 = stringBundle.GetStringFromName("aboutTor.searchDDG.privacy.link");
- let s2 = stringBundle.GetStringFromName("aboutTor.searchDDG.search.link");
- let result = stringBundle.formatStringFromName(
- "aboutTor.searchDDG.privacy", [s1, s2], 2);
- if (result) {
- let elem = content.document.getElementById("searchProviderInfo");
- if (elem)
- elem.innerHTML = result;
- }
- } catch(e) {}
- },
-
- // Ensure that text in top area does not overlap the tor on/off (onion) image.
- // This is done by reducing the font sizes as necessary.
- adjustFontSizes: function(aContainerName)
- {
- let imgElem = content.document.getElementById("torstatus-image");
- let containerElem = content.document.getElementById(aContainerName);
- if (!imgElem || !containerElem)
- return;
-
- try
- {
- let imgRect = imgElem.getBoundingClientRect();
-
- for (let textElem = containerElem.firstChild; textElem;
- textElem = textElem.nextSibling)
- {
- if ((textElem.nodeType != textElem.ELEMENT_NODE) ||
- (textElem.nodeName.toLowerCase() == "br"))
- {
- continue;
- }
-
- let textRect = textElem.getBoundingClientRect();
- if (0 == textRect.width)
- continue;
-
- // Reduce font to 90% of previous size, repeating the process up to 7
- // times. This allows for a maximum reduction to just less than 50% of
- // the original size.
- let maxTries = 7;
- while ((textRect.left < imgRect.right) && (--maxTries >= 0))
- {
- let style = content.document.defaultView
- .getComputedStyle(textElem, null);
- let fontSize = parseFloat(style.getPropertyValue("font-size"));
- textElem.style.fontSize = (fontSize * 0.9) + "px";
- textRect = textElem.getBoundingClientRect();
- }
- }
-
- } catch (e) {}
- },
-
- adjustArrow: function(aToolbarButtonXPos)
- {
- let win = content;
- let doc = content.document;
- let textElem = doc.getElementById("updatePrompt");
- let arrowHeadDiv = doc.getElementById("toolbarIconArrowHead");
- let vertExtDiv = doc.getElementById("toolbarIconArrowVertExtension");
- let bendDiv = doc.getElementById("toolbarIconArrowBend");
- let horzExtDiv = doc.getElementById("toolbarIconArrowHorzExtension");
- if (!textElem || !arrowHeadDiv || !vertExtDiv || !bendDiv || !horzExtDiv)
- return;
-
- let arrowTailElems = [ vertExtDiv, bendDiv, horzExtDiv ];
- if (!aToolbarButtonXPos || isNaN(aToolbarButtonXPos) ||
- (aToolbarButtonXPos < 0))
- {
- arrowHeadDiv.style.display = "none";
- for (let elem of arrowTailElems)
- elem.style.display = "none";
- return;
- }
-
- const kArrowMargin = 6; // Horizontal margin between line and text.
- const kArrowHeadExtraWidth = 9; // Horizontal margin to the line.
- const kArrowLineThickness = 11;
- const kBendWidth = 22;
- const kBendHeight = 22;
-
- try {
- // Compensate for any content zoom that may be in effect on about:tor.
- // Because window.devicePixelRatio always returns 1.0 for non-Chrome
- // windows (see bug 13875), we use screenPixelsPerCSSPixel for the
- // content window.
- let pixRatio = content.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDOMWindowUtils)
- .screenPixelsPerCSSPixel;
- let tbXpos = Math.round(aToolbarButtonXPos / pixRatio);
-
- arrowHeadDiv.style.display = "block"; // Must be visible to get offsetWidth.
- let arrowHalfWidth = Math.round(arrowHeadDiv.offsetWidth / 2);
- let leftAnchor = textElem.offsetLeft - kArrowMargin
- - kBendWidth + Math.round(kArrowLineThickness / 2);
- let rightAnchor = textElem.offsetLeft + textElem.offsetWidth
- + kArrowMargin + arrowHalfWidth;
-
- let isArrowOnLeft = (tbXpos < leftAnchor);
- let isArrowOnRight = (tbXpos > rightAnchor) &&
- (tbXpos < (win.innerWidth - arrowHalfWidth));
- let isArrowInMiddle = (tbXpos >= leftAnchor) && (tbXpos <= rightAnchor);
-
- if (isArrowOnLeft || isArrowOnRight || isArrowInMiddle)
- {
- // Position the arrow head.
- let arrowHeadLeft = tbXpos - arrowHalfWidth;
- arrowHeadDiv.style.left = arrowHeadLeft + "px";
- if (isArrowOnLeft || isArrowOnRight)
- {
- let horzExtBottom = textElem.offsetTop +
- Math.round((textElem.offsetHeight + kArrowLineThickness) / 2);
-
- // Position the vertical (extended) line.
- let arrowHeadBottom = arrowHeadDiv.offsetTop +
- arrowHeadDiv.offsetHeight;
- vertExtDiv.style.top = arrowHeadBottom + "px";
- vertExtDiv.style.left = (arrowHeadLeft + kArrowHeadExtraWidth) + "px";
- let ht = horzExtBottom - kBendHeight - arrowHeadBottom;
- vertExtDiv.style.height = ht + "px";
-
- // Position the bend (elbow).
- bendDiv.style.top = (horzExtBottom - kBendHeight) + "px";
- let bendDivLeft;
- if (isArrowOnLeft)
- {
- bendDiv.setAttribute("pos", "left");
- bendDivLeft = arrowHeadLeft + kArrowHeadExtraWidth;
- }
- else if (isArrowOnRight)
- {
- bendDiv.setAttribute("pos", "right");
- bendDivLeft = arrowHeadLeft + kArrowHeadExtraWidth
- + kArrowLineThickness - kBendWidth;
- }
- bendDiv.style.left = bendDivLeft + "px";
-
- // Position the horizontal (extended) line.
- horzExtDiv.style.top = (horzExtBottom - kArrowLineThickness) + "px";
- let horzExtLeft, w;
- if (isArrowOnLeft)
- {
- horzExtLeft = bendDivLeft + kBendWidth;
- w = (textElem.offsetLeft - horzExtLeft - kArrowMargin);
- }
- else
- {
- horzExtLeft = rightAnchor - arrowHalfWidth;
- w = tbXpos - arrowHalfWidth - horzExtLeft;
- }
- horzExtDiv.style.left = horzExtLeft + "px";
- horzExtDiv.style.width = w + "px";
- }
- }
-
- let headDisplay = (isArrowOnLeft || isArrowInMiddle || isArrowOnRight)
- ? "block" : "none";
- arrowHeadDiv.style.display = headDisplay;
- let tailDisplay = (isArrowOnLeft || isArrowOnRight) ? "block" : "none";
- for (let elem of arrowTailElems)
- elem.style.display = tailDisplay;
- } catch (e) {}
}
};
diff --git a/src/chrome/content/aboutTor/aboutTor.xhtml b/src/chrome/content/aboutTor/aboutTor.xhtml
index 5cb2a605..c2bbcb25 100644
--- a/src/chrome/content/aboutTor/aboutTor.xhtml
+++ b/src/chrome/content/aboutTor/aboutTor.xhtml
@@ -31,87 +31,173 @@ window.addEventListener("pageshow", function() {
</script>
</head>
<body dir="&locale.dir;">
- <div class="hideIfTorIsUpToDate">
- <div id="toolbarIconArrowHead" class="arrow"/>
- <div id="toolbarIconArrowVertExtension" class="arrow"/>
- <div id="toolbarIconArrowBend" class="arrow"/>
- <div id="toolbarIconArrowHorzExtension" class="arrow"/>
- </div>
<div class="torcontent-container">
<div id="torstatus-version"/>
<div id="torstatus" class="top">
- <div id="torstatus-image"/>
<div id="torstatus-on-container" class="hideIfTorOff torstatus-container">
- <h1>&aboutTor.success.label;</h1>
- <br/>
- <h3 class="hideIfTBBNeedsUpdate">&aboutTor.success3.label;</h3>
+ <div class="heading1">&aboutTor.ready.label;</div>
<br/>
- <div style="margin-top: 20px;">
- <a id="testTorSettings" href="about:blank">&aboutTor.check.label;</a>
- </div>
+ <div class="heading2">&aboutTor.ready2.label;</div>
</div>
<div id="torstatus-off-container" class="hideIfTorOn torstatus-container">
- <h1>&aboutTor.failure.label;</h1>
+ <div class="heading1">&aboutTor.failure.label;</div>
<br/>
- <h2>&aboutTor.failure2.label;</h2>
- </div>
- </div>
- <div class="top">
- <div class="hideIfTorIsUpToDate">
- <h1 class="hideIfTorOff">&aboutTor.outOfDateTorOn.label;</h1>
- <h1 class="hideIfTorOn">&aboutTor.outOfDateTorOff.label;</h1>
- <div>
- <h3 id="updatePrompt">&aboutTor.outOfDate2.label;</h3>
- </div>
+ <div class="heading2">&aboutTor.failure2.label;</div>
</div>
</div>
<div class="searchbox hideIfTorOff"> <!-- begin form based search -->
<form action="&aboutTor.searchDDGPost.link;" method="post">
- <div id="sxw">
- <div id="sbutton">
- <input name="b" id="sb" value="" title="&aboutTor.search.label;"
- alt="&aboutTor.search.label;" type="submit"/>
+ <div class="searchwrapper">
+ <label class="searchlabel" for="search-text"> </label>
+ <input name="q" id="search-text" placeholder="&aboutTor.search.label;"
+ autocomplete="off" type="text"/>
+ <input name="b" id="search-button" value=""
+ title="&aboutTor.search.label;"
+ alt="&aboutTor.search.label;" type="submit"/>
</div>
- <input name="q" autocomplete="off" id="sx" type="text"/>
- </div>
- <h4 id="searchProviderInfo" />
</form>
</div>
- <div class="hideIfTorOn" style="height:100px"/>
-
- <div id="middle" class="hideIfTorOff">
- <div class="bubble">
- <h1>&aboutTor.whatnextQuestion.label;</h1>
- <p>&aboutTor.whatnextAnswer.label;</p>
- <ul>
- <li>
- <a href="&aboutTor.whatnext.link;">
- &aboutTor.whatnext.label;
- </a>
- </li>
- <li class="showForManual">
- <a id="manualLink">
- &aboutTor.torbrowser_user_manual.label; »
- </a>
- </li>
- </ul>
- </div>
- <div class="bubble">
- <h1>&aboutTor.helpInfo1.label;</h1>
- <p>&aboutTor.helpInfo2.label;</p>
- <ul>
- <li><a href="&aboutTor.helpInfo3.link;">&aboutTor.helpInfo3.label;</a></li>
- <li><a href="&aboutTor.helpInfo4.link;">&aboutTor.helpInfo4.label;</a></li>
- <li><a href="&aboutTor.helpInfo5.link;">&aboutTor.helpInfo5.label;</a></li>
- </ul>
- </div>
- </div> <!-- middle -->
-
<div id="bottom">
- <p>&aboutTor.footer.label;
- <a href="&aboutTor.learnMore.link;">&aboutTor.learnMore.label;</a></p>
+ <p class="showForManual moreInfoLink">&aboutTor.torbrowser_user_manual_questions.label;
+ <a id="manualLink">&aboutTor.torbrowser_user_manual_link.label;</a></p>
+ <p>&aboutTor.tor_mission.label;
+ <a href="&aboutTor.getInvolved.link;">&aboutTor.getInvolved.label;</a></p>
+ </div>
+ </div>
+
+<!--
+ - The abstract onion pattern begins here. There are two
+ - "onion-pattern-row" elements, each containing 14 circles. The width
+ - of "onion-pattern-row" is fixed at a value that is wide enough so the
+ - circles are not distorted by the flex-based layout. The parent
+ - "onion-pattern-container" element has overflow: hidden and is designed
+ - to expand to the width of the page, until it reaches a maximum width
+ - that can accommodate all 14 circles. Since the rows are wider than
+ - most browser windows, typically the two rows of onions will fill the
+ - bottom of the page. On really wide pages, the onions are centered at
+ - the bottom of the page.
+ -->
+ <div class="onion-pattern-container">
+ <div class="onion-pattern-row">
+ <div class="circle solid"></div>
+
+ <div class="circle border"></div>
+
+ <div class="circle border">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle">
+ <div class="half solid"></div>
+ <div class="half dotted"></div>
+ </div>
+
+ <div class="circle dotted"></div>
+
+ <div class="circle dotted">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle dashed"></div>
+
+ <div class="circle dashed">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+
+ <div class="circle bold"></div>
+
+ <div class="circle solid"></div>
+
+ <div class="circle dotted">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle border">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle">
+ <div class="half solid"></div>
+ <div class="half solid"></div>
+ </div>
+
+ <div class="circle dashed">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+ </div>
+
+ <div class="onion-pattern-row onion-pattern-offset-row">
+ <div class="circle dashed">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+
+ <div class="circle bold"></div>
+
+ <div class="circle solid"></div>
+
+ <div class="circle dotted">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle border">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle">
+ <div class="half solid"></div>
+ <div class="half solid"></div>
+ </div>
+
+ <div class="circle dashed">
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ <div class="inner dashed"></div>
+ </div>
+
+ <div class="circle solid"></div>
+
+ <div class="circle border"></div>
+
+ <div class="circle border">
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ <div class="inner border"></div>
+ </div>
+
+ <div class="circle">
+ <div class="half solid"></div>
+ <div class="half dotted"></div>
+ </div>
+
+ <div class="circle dotted"></div>
+
+ <div class="circle dotted">
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ <div class="inner dotted"></div>
+ </div>
+
+ <div class="circle dashed"></div>
</div>
</div>
</body>
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index d0195b46..8e62a5ab 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -338,10 +338,9 @@ function torbutton_init() {
}
}
- // Add about:tor IPC message listeners.
- let aboutTorMessages = [ "AboutTor:Loaded", "AboutTor:GetToolbarData" ];
- aboutTorMessages.forEach(aMsg => window.messageManager.addMessageListener(
- aMsg, torbutton_abouttor_message_handler));
+ // Add about:tor IPC message listener.
+ window.messageManager.addMessageListener("AboutTor:Loaded",
+ torbutton_abouttor_message_handler);
// XXX: Get rid of the cached asmjs (or IndexedDB) files on disk in case we
// don't allow things saved to disk. This is an ad-hoc fix to work around
@@ -369,11 +368,6 @@ function torbutton_init() {
torbutton_log(1, "registering Tor check observer");
torbutton_tor_check_observer.register();
- // Detect toolbar customization and update arrow on about:tor pages.
- window.addEventListener("aftercustomization", function() {
- torbutton_abouttor_message_handler.updateAllOpenPages();
- }, false);
-
//setting up context menu
//var contextMenu = document.getElementById("contentAreaContextMenu");
//if (contextMenu)
@@ -425,10 +419,6 @@ var torbutton_abouttor_message_handler = {
aMessage.target.messageManager.sendAsyncMessage("AboutTor:ChromeData",
this.chromeData);
break;
- case "AboutTor:GetToolbarData":
- aMessage.target.messageManager.sendAsyncMessage("AboutTor:ToolbarData",
- this.toolbarData);
- break;
}
},
@@ -441,23 +431,12 @@ var torbutton_abouttor_message_handler = {
// The chrome data contains all of the data needed by the about:tor
// content process that is only available here (in the chrome process).
// It is sent to the content process when an about:tor window is opened
- // and in response to events such as the browser noticing that an update
- // is available.
+ // and in response to events such as the browser noticing that Tor is
+ // not working.
get chromeData() {
return {
torOn: torbutton_tor_check_ok(),
- updateNeeded: torbutton_update_is_needed(),
- showManual: torbutton_show_torbrowser_manual(),
- toolbarButtonXPos: torbutton_get_toolbarbutton_xpos()
- };
- },
-
- // The toolbar data only contains the x coordinate of Torbutton's toolbar
- // item; it is sent back to the content process as the about:tor window
- // is resized.
- get toolbarData() {
- return {
- toolbarButtonXPos: torbutton_get_toolbarbutton_xpos()
+ showManual: torbutton_show_torbrowser_manual()
};
}
};
@@ -593,9 +572,6 @@ function torbutton_notify_if_update_needed() {
var btn = torbutton_get_toolbutton();
setOrClearAttribute(btn, "tbUpdateNeeded", updateNeeded);
- // Update all open about:tor pages.
- torbutton_abouttor_message_handler.updateAllOpenPages();
-
// Make the "check for update" menu item bold if an update is needed.
var item = document.getElementById("torbutton-checkForUpdate");
setOrClearAttribute(item, "tbUpdateNeeded", updateNeeded);
@@ -621,33 +597,6 @@ function torbutton_check_for_update() {
prompter.checkForUpdates();
}
-// Determine X position of Torbutton toolbar item. The value returned
-// accounts for retina but not content zoom.
-// undefined is returned if the value cannot be determined (e.g., if the
-// toolbar item is not on the toolbar).
-function torbutton_get_toolbarbutton_xpos() {
- try {
- let tbXpos = -1;
- let tbItem = torbutton_get_toolbutton();
- if (tbItem) {
- let tbItemRect = tbItem.getBoundingClientRect();
- let contentElem = document.getElementById("tabbrowser-initialBrowser");
- let contentRect = contentElem.getBoundingClientRect();
- if (tbItemRect.top < contentRect.top) {
- tbXpos = tbItemRect.left + (tbItemRect.width / 2.0) - contentRect.left;
- }
- }
-
- if (tbXpos >= 0) {
- // Convert to device-independent units, compensating for retina display.
- tbXpos *= window.devicePixelRatio;
- return tbXpos;
- }
- } catch(e) {}
-
- return undefined;
-}
-
function torbutton_show_sec_slider_notification() {
// Show the notification about the new security slider.
if (m_tb_prefs.
diff --git a/src/chrome/locale/en/aboutTor.dtd b/src/chrome/locale/en/aboutTor.dtd
index 676878e2..3eecc0bc 100644
--- a/src/chrome/locale/en/aboutTor.dtd
+++ b/src/chrome/locale/en/aboutTor.dtd
@@ -1,45 +1,25 @@
<!--
- - Copyright (c) 2015, The Tor Project, Inc.
+ - Copyright (c) 2018, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
<!ENTITY aboutTor.title "About Tor">
-<!ENTITY aboutTor.outOfDateTorOn.label "WARNING: this browser is out of date.">
-<!ENTITY aboutTor.outOfDateTorOff.label "ALSO, this browser is out of date.">
-<!ENTITY aboutTor.outOfDate2.label "Click on the onion and then choose Check for Tor Browser Update.">
-
-<!ENTITY aboutTor.check.label "Test Tor Network Settings">
-
-<!ENTITY aboutTor.success.label "Welcome to Tor Browser">
-<!ENTITY aboutTor.success2.label "Connected to the Tor network.">
-<!ENTITY aboutTor.success3.label "You are now free to browse the Internet anonymously.">
+<!ENTITY aboutTor.ready.label "Explore. Privately.">
+<!ENTITY aboutTor.ready2.label "You’re ready for the world’s most private browsing experience.">
<!ENTITY aboutTor.failure.label "Something Went Wrong!">
<!ENTITY aboutTor.failure2.label "Tor is not working in this browser.">
-<!ENTITY aboutTor.search.label "Search">
+<!ENTITY aboutTor.search.label "Search with DuckDuckGo">
<!ENTITY aboutTor.searchDDGPost.link "https://duckduckgo.com">
-<!ENTITY aboutTor.torInfo1.label "Additional Info:">
-<!ENTITY aboutTor.torInfo2.label "Country & IP Address:">
-<!ENTITY aboutTor.torInfo3.label "Exit Node:">
-<!ENTITY aboutTor.torInfo4.label "This server does not log any information about visitors.">
-<!ENTITY aboutTor.whatnextQuestion.label "What Next?">
-<!ENTITY aboutTor.whatnextAnswer.label "Tor is NOT all you need to browse anonymously! You may need to change some of your browsing habits to ensure your identity stays safe.">
-<!ENTITY aboutTor.whatnext.label "Tips On Staying Anonymous »">
-<!ENTITY aboutTor.whatnext.link "https://www.torproject.org/download/download.html.en#warning">
+<!ENTITY aboutTor.torbrowser_user_manual_questions.label "Questions?">
+<!ENTITY aboutTor.torbrowser_user_manual_link.label "Check our Tor Browser Manual »">
+<!-- The next two entities are used within the browser's Help menu. -->
<!ENTITY aboutTor.torbrowser_user_manual.accesskey "M">
-<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser User Manual">
-<!ENTITY aboutTor.helpInfo1.label "You Can Help!">
-<!ENTITY aboutTor.helpInfo2.label "There are many ways you can help make the Tor Network faster and stronger:">
-<!ENTITY aboutTor.helpInfo3.label "Run a Tor Relay Node »">
-<!ENTITY aboutTor.helpInfo3.link "https://www.torproject.org/docs/tor-doc-relay.html.en">
-<!ENTITY aboutTor.helpInfo4.label "Volunteer Your Services »">
-<!ENTITY aboutTor.helpInfo4.link "https://www.torproject.org/getinvolved/volunteer.html.en">
-<!ENTITY aboutTor.helpInfo5.label "Make a Donation »">
-<!ENTITY aboutTor.helpInfo5.link "https://www.torproject.org/donate/donate.html.en">
+<!ENTITY aboutTor.torbrowser_user_manual.label "Tor Browser Manual">
-<!ENTITY aboutTor.footer.label "The Tor Project is a US 501(c)(3) non-profit dedicated to the research, development, and education of online anonymity and privacy.">
-<!ENTITY aboutTor.learnMore.label "Learn more about The Tor Project »">
-<!ENTITY aboutTor.learnMore.link "https://www.torproject.org/about/overview.html.en">
+<!ENTITY aboutTor.tor_mission.label "The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.">
+<!ENTITY aboutTor.getInvolved.label "Get Involved »">
+<!ENTITY aboutTor.getInvolved.link "https://www.torproject.org/getinvolved/volunteer.html.en">
diff --git a/src/chrome/locale/en/aboutTor.properties b/src/chrome/locale/en/aboutTor.properties
index d0d3a64b..375c0da1 100644
--- a/src/chrome/locale/en/aboutTor.properties
+++ b/src/chrome/locale/en/aboutTor.properties
@@ -1,13 +1,7 @@
-# Copyright (c) 2014, The Tor Project, Inc.
+# Copyright (c) 2018, The Tor Project, Inc.
# See LICENSE for licensing information.
# vim: set sw=2 sts=2 ts=8 et:
-aboutTor.searchDDG.privacy=Search <a href="%1$S">securely</a> with <a href="%2$S">DuckDuckGo</a>.
-# The following string is a link which replaces %1$S above.
-aboutTor.searchDDG.privacy.link=https://duckduckgo.com/privacy.html
-# The following string is a link which replaces %2$S above.
-aboutTor.searchDDG.search.link=https://duckduckgo.com/
-
aboutTor.donationBanner.donate=Donate Now!
aboutTor.donationBanner.slogan=Tor: Powering Digital Resistance
diff --git a/src/chrome/skin/aboutTor.css b/src/chrome/skin/aboutTor.css
index 62c9256c..02a81744 100644
--- a/src/chrome/skin/aboutTor.css
+++ b/src/chrome/skin/aboutTor.css
@@ -5,6 +5,12 @@
* vim: set sw=2 sts=2 ts=8 et syntax=css:
*/
+:root {
+ --abouttor-text-color: white;
+ --abouttor-bg-toron-color: #420C5D;
+ --abouttor-bg-toroff-color: #A4000F;
+}
+
* {
padding: 0px;
margin: 0px;
@@ -15,21 +21,15 @@ body {
height: 100%;
margin: 0px auto;
padding: 0px 0px;
- font-size: 62.5%;
- font-family: "Liberation Sans", Arial, Helvetica, sans-serif;
- font-weight: normal;
- color: #4d4d4d;
- background-color: #FFFFFF;
+ font-family: Helvetica, Arial, sans-serif;
+ color: var(--abouttor-text-color);
+ background-color: var(--abouttor-bg-toroff-color);
background-attachment: fixed;
background-size: 100% 100%;
}
-body {
- background-image: linear-gradient(to bottom, #ffffff, #ffffff 10%, #dddddd 50%, #dddddd);
-}
-
body[toron] {
- background-image: linear-gradient(to bottom, #ffffff, #ffffff 10%, #d5ffd5 50%, #d5ffd5);
+ background-color: var(--abouttor-bg-toron-color);
}
/* Hide the entire document by default to avoid showing the incorrect
@@ -42,88 +42,44 @@ body:not([initialized]) {
}
.torcontent-container {
- margin: 40px 20px;
+ margin: 40px 20px 28px 20px;
display: flex;
flex-direction: column;
}
+@media only screen and (min-width: 900px) {
+ .torcontent-container {
+ margin: 40px auto 28px auto;
+ max-width: 1000px;
+ min-width: 1000px;
+ }
+}
+
#torstatus-version {
position: absolute;
top: 6px;
right: 6px;
height: 30px;
width: 200px;
- font-size: 1.4em;
+ font-size: 15px;
white-space: pre-wrap;
text-align: right;
}
-body[toron] #torstatus-image {
- background-image: url('chrome://torbutton/skin/tor-on.png');
-}
-
-#torstatus-image {
- display: none;
- position: absolute;
- left: 85px;
- height: 128px;
- width: 128px;
- background-image: url('chrome://torbutton/skin/tor-off.png');
- background-repeat: no-repeat;
- background-position: center;
- z-index: -1;
-}
-
-.arrow {
- display: none;
- position: absolute;
- z-index: -1;
-}
-
-#toolbarIconArrowHead {
- top: 4px;
- width: 30px;
- height: 36px;
- background-image: url('chrome://torbutton/skin/onionArrow-short.png');
-}
-
-#toolbarIconArrowVertExtension, #toolbarIconArrowHorzExtension {
- width: 11px;
- height: 11px;
- background-image: url('chrome://torbutton/skin/onionArrow-extension.png');
-}
-
-#toolbarIconArrowBend {
- width: 22px;
- height: 22px;
- background-image: url('chrome://torbutton/skin/onionArrow-leftBend.png');
-}
-
-#toolbarIconArrowBend[pos="right"] {
- background-image: url('chrome://torbutton/skin/onionArrow-rightBend.png');
-}
-
a {
- color: #008000;
- text-decoration: none;
-}
-
-a:hover {
- color: #00A000;
- text-decoration: underline;
-}
-
-#testTorSettings {
- font-size: 1.6em;
- text-decoration: underline;
- margin-bottom: 5px;
+ color: var(--abouttor-text-color);
}
#torstatus {
- position: relative; /* needed for torstatus-image positioning */
+ margin-top: 135px;
display: flex;
justify-content: center;
- min-height: 148px;
+ vertical-align: bottom;
+ min-height: 92px;
+}
+
+#torstatus > div {
+ align-self: flex-end; /* align text to bottom of container */
}
.top {
@@ -134,206 +90,183 @@ a:hover {
text-align: center;
}
-body[toron][torNeedsUpdate] .hideIfTBBNeedsUpdate,
-body:not([torNeedsUpdate]) .hideIfTorIsUpToDate {
- display: none;
-}
-
body[toron] .hideIfTorOn,
body:not([toron]) .hideIfTorOff {
display: none;
}
-body[toron] .top h1 {
- color: #600060;
-}
-
body:not([showmanual]) .showForManual {
display: none;
}
-div.hideIfTorIsUpToDate {
- display: flex;
- flex-direction: column;
-}
-
-div.hideIfTorIsUpToDate,
-body .top div.hideIfTorIsUpToDate h1 {
- color: black;
- text-align: center;
-}
-
-/* Use inline-block for text-oriented elements whose widths need to measured. */
-.torstatus-container *,
-.top div.hideIfTorIsUpToDate h3 {
- display: inline-block;
+.torstatus-container * {
text-align: center;
}
-.top div.hideIfTorOff h1 {
+.top div.hideIfTorOff .heading1 {
margin-top: 20px;
}
-.top h1 {
- font-size: 4.00em;
- font-weight: bold;
+.top .heading1 {
+ font-size: 50px;
+ font-weight: 300;
margin-bottom: 5px;
}
-.top h2 {
- font-size: 2.934em;
+.top .heading2 {
+ font-size: 15px;
margin-bottom: 20px;
- font-weight: normal;
}
-.top h3 {
- font-size: 1.8em;
- font-weight: normal;
- color: #3B503C;
+#bottom {
+ margin-top: 170px;
}
-#middle {
- display: flex;
- flex-flow: row wrap;
- font-size: 1.6em;
- justify-content: space-evenly;
- margin-top: 40px;
+#bottom p {
+ font-size: 10px;
+ text-align: start;
+ margin: auto;
+ padding-bottom: 20px;
}
-.bubble {
- width: 242px;
- padding: 20px 30px;
- color: #3B503C;
- background-color: #FFFFFF;
- border: none;
- border-radius: 16px;
- margin-bottom: 40px;
- text-align: start;
- vertical-align: top;
+@media only screen and (min-width: 900px) {
+ #bottom p {
+ margin: 0px 135px 0px 135px;
+ }
}
-#middle h1 {
- font-size: 1.2em;
- margin-bottom: 10px;
+#bottom p:last-child {
+ padding-bottom: 0px;
}
-#middle ul {
- padding: 5px 0 0 22px;
+#bottom p.moreInfoLink {
+ font-size: 15px;
}
-#middle ul:dir(rtl) {
- padding: 5px 22px 0 0;
+.searchbox form {
+ width: 500px;
+ margin: 39px auto 0px auto;
+ text-align: left;
}
-#middle li {
- padding-top: 2px;
+@media only screen and (max-width: 540px) {
+ .searchbox form {
+ width: auto;
+ }
}
-#bottom {
- padding-bottom: 40px;
+.searchwrapper {
+ display: flex;
+ height: 46px;
+ border: 1px solid black;
+ border-radius: 8px;
+ background-color: white;
}
-#bottom p {
- font-size: 1.6em;
- text-align: start;
- margin: auto;
+.searchlabel {
+ height: auto;
+ width: 50px;
+ display: inline-block;
+ background: url('chrome://torbutton/skin/searchLogo.png') no-repeat center center;
+ background-size: 30px 30px;
}
-#bottom a {
- color: #800080;
- text-decoration: underline;
+#search-button {
+ height: auto;
+ width: 36px;
+ border: 0;
+ background: url('chrome://torbutton/skin/forwardArrow.png') no-repeat center center;
+ background-size: 16px 14px;
+ cursor: pointer;
}
-#bottom a:hover {
- color: #A000A0;
- text-decoration: none;
+#search-button:hover {
+ background-color: rgba(12, 12, 13, 0.1); /* same as Firefox's about:home */
}
-#bottom h4 {
- margin-top: 50px;
- line-height: 1em;
- font-size: 1em;
- font-weight: normal;
- text-align: center;
+/* #search-text is the search input field */
+#search-text {
+ flex: 1;
+ border: none;
+ padding: 4px 2px 5px 2px;
+ margin: 0;
+ font-size: 15px;
}
-#bottom p.lang {
- max-width: 620px;
- margin: 10px auto;
- font-size: 1em;
- font-weight: normal;
- text-align: center;
+.onion-pattern-container {
+ margin: 0px auto;
+ width: 100%;
+ max-width: 1624px; /* room for 14 of the widest circles */
+ overflow: hidden;
}
-.searchbox form {
- width: 396px;
- margin: 35px auto 1px auto;
- text-align: left;
+.onion-pattern-row {
+ width: 1624px;
+ display: flex;
+ flex-direction: row;
+ position: relative;
}
-.searchbox h4 {
- padding-top: 5px;
- font-size: 12px;
- font-weight: normal;
- text-align: center;
+.onion-pattern-offset-row {
+ left: -40px;
}
-#sbutton {
- display: block;
- float: right;
- width: 33px;
+/* With borders, circles range in size from 100 x 100px to 116 x 116px. */
+.circle {
+ opacity: 0.2;
+ position: relative;
+ width: 100px;
+ height: 100px;
+ border-radius: 50%;
}
-#sbutton input {
- height: 34px;
- width: 33px;
- border: 0;
- background: url('chrome://torbutton/skin/search.png') no-repeat top left;
- cursor: pointer;
+.inner {
+ position: absolute;
}
-/* #sxw is the container div for the search field and button */
-#sxw {
- border: none;
+.inner:nth-child(1){
+ transform: translate(calc(12.5% - 2px),calc(12.5% - 2px));
+ width: calc(100% * 0.75);
+ height: calc(100% * 0.75);
+ border-radius: 50%;
}
-/* #sx is the search input (text) field */
-#sx {
- border-color: lightgray;
- border-style: solid;
- border-width: 1px 0px 1px 1px;
- width: 350px;
- min-height: 23px;
- padding: 4px 6px 5px 6px;
- margin: 0;
- outline: none;
- color: #222;
- font-size: 18px;
+.inner:nth-child(2){
+ transform: translate(calc(40% - 2px),calc(40% - 2px));
+ width: calc(100% * 0.5);
+ height: calc(100% * 0.5);
+ border-radius: 50%;
}
-@media only screen and (min-width : 820px) {
-.torcontent-container {
- margin: auto;
- margin-top: 40px;
- max-width: 920px;
- min-width: 920px;
- }
+.inner:nth-child(3){
+ transform: translate(calc(108% - 2px),calc(108% - 2px));
+ width: calc(100% * 0.25);
+ height: calc(100% * 0.25);
+ border-radius: 50%;
+}
- #torstatus-image {
- display: block;
- }
+.solid {
+ background-color: #fff;
+}
- #bottom p {
- margin: 10px 125px 0px 125px;
- }
+.border {
+ border: 4px solid #fff;
}
-@media only screen and (max-width : 436px) {
- .searchbox form {
- width: auto;
- }
+.dashed {
+ border: 4px dashed #fff;
+}
- #sx {
- width: calc(100% - 46px);
- }
+.dotted {
+ border: 4px dotted #fff;
+}
+
+.bold {
+ border: 8px solid #fff;
+}
+
+.half {
+ width: 100px;
+ height: 50px;
+ border-radius: 50px 50px 0 0;
}
diff --git a/src/chrome/skin/forwardArrow.png b/src/chrome/skin/forwardArrow.png
new file mode 100644
index 00000000..ceea950f
Binary files /dev/null and b/src/chrome/skin/forwardArrow.png differ
diff --git a/src/chrome/skin/onionArrow-extension.png b/src/chrome/skin/onionArrow-extension.png
deleted file mode 100644
index 55ff2084..00000000
Binary files a/src/chrome/skin/onionArrow-extension.png and /dev/null differ
diff --git a/src/chrome/skin/onionArrow-leftBend.png b/src/chrome/skin/onionArrow-leftBend.png
deleted file mode 100644
index 9d1bb456..00000000
Binary files a/src/chrome/skin/onionArrow-leftBend.png and /dev/null differ
diff --git a/src/chrome/skin/onionArrow-rightBend.png b/src/chrome/skin/onionArrow-rightBend.png
deleted file mode 100644
index 6b60342d..00000000
Binary files a/src/chrome/skin/onionArrow-rightBend.png and /dev/null differ
diff --git a/src/chrome/skin/onionArrow-short.png b/src/chrome/skin/onionArrow-short.png
deleted file mode 100644
index 23e5a20e..00000000
Binary files a/src/chrome/skin/onionArrow-short.png and /dev/null differ
diff --git a/src/chrome/skin/search.png b/src/chrome/skin/search.png
deleted file mode 100644
index 698a77df..00000000
Binary files a/src/chrome/skin/search.png and /dev/null differ
diff --git a/src/chrome/skin/searchLogo.png b/src/chrome/skin/searchLogo.png
new file mode 100644
index 00000000..98ae319e
Binary files /dev/null and b/src/chrome/skin/searchLogo.png differ
diff --git a/src/chrome/skin/tor-off.png b/src/chrome/skin/tor-off.png
deleted file mode 100644
index a4509ba5..00000000
Binary files a/src/chrome/skin/tor-off.png and /dev/null differ
diff --git a/src/chrome/skin/tor-on.png b/src/chrome/skin/tor-on.png
deleted file mode 100644
index 186fcf15..00000000
Binary files a/src/chrome/skin/tor-on.png and /dev/null differ
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index ab9b4bf4..43401ad0 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -10,7 +10,6 @@ pref("extensions.torbutton.updateNeeded", false);
// Tor check and proxy prefs
pref("extensions.torbutton.test_enabled",true);
pref("extensions.torbutton.test_url","https://check.torproject.org/?TorButton=true");
-pref("extensions.torbutton.test_url_interactive", "https://check.torproject.org/?lang=__LANG__");
pref("extensions.torbutton.local_tor_check",true);
pref("extensions.torbutton.versioncheck_url","https://www.torproject.org/projects/torbrowser/RecommendedTBBVersions");
pref("extensions.torbutton.versioncheck_enabled",true);
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 26514 - intermittent updater failures on Win64 (Error 19)
by gk@torproject.org 14 Aug '18
by gk@torproject.org 14 Aug '18
14 Aug '18
commit c2720b2274e51eb76b91e5f6a5f2a82bdfaf8013
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Mon Aug 13 12:13:40 2018 -0400
Bug 26514 - intermittent updater failures on Win64 (Error 19)
Avoid MinGW's _ftelli64() and _fseeki64() implementations because they
are unreliable.
---
modules/libmar/src/mar_private.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/modules/libmar/src/mar_private.h b/modules/libmar/src/mar_private.h
index e0c263271ed0..358026fbcf50 100644
--- a/modules/libmar/src/mar_private.h
+++ b/modules/libmar/src/mar_private.h
@@ -55,8 +55,15 @@ MOZ_STATIC_ASSERT(sizeof(BLOCKSIZE) < \
instead of the NSPR equivalents. */
#ifdef XP_WIN
#include <winsock2.h>
+#ifdef __MINGW32__
+/* Avoid MinGW's _ftelli64() and _fseeki64() implementations because they
+ * are unreliable. See bug #26514. */
+#define ftello ftello64
+#define fseeko fseeko64
+#else
#define ftello _ftelli64
#define fseeko _fseeki64
+#endif
#else
#define _FILE_OFFSET_BITS 64
#include <netinet/in.h>
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1470156 - Part 1: Adding a test case for reassuring mozilla::OriginAttributes::CreateSuffix won't be crashed with invalid characters in firstParty domain. r=baku, mixedpuppy
by gk@torproject.org 13 Aug '18
by gk@torproject.org 13 Aug '18
13 Aug '18
commit 82446eff1db658db8dae23443deac036b164b769
Author: Tim Huang <tihuang(a)mozilla.com>
Date: Tue Jul 3 13:48:18 2018 +0000
Bug 1470156 - Part 1: Adding a test case for reassuring mozilla::OriginAttributes::CreateSuffix won't be crashed with invalid characters in firstParty domain. r=baku,mixedpuppy
Differential Revision: https://phabricator.services.mozilla.com/D1845
--HG--
extra : moz-landing-system : lando
---
.../mochitest/test_ext_cookies_first_party.html | 37 ++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/toolkit/components/extensions/test/mochitest/test_ext_cookies_first_party.html b/toolkit/components/extensions/test/mochitest/test_ext_cookies_first_party.html
index 64785c45e440..b214148824bd 100644
--- a/toolkit/components/extensions/test/mochitest/test_ext_cookies_first_party.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_cookies_first_party.html
@@ -10,6 +10,8 @@
async function background() {
const url = "http://ext-cookie-first-party.mochi.test/";
const firstPartyDomain = "ext-cookie-first-party.mochi.test";
+ // A first party domain with invalid characters for the file system, which just happens to be a IPv6 address.
+ const firstPartyDomainInvalidChars = "[2606:4700:4700::1111]";
const expectedError = "First-Party Isolation is enabled, but the required 'firstPartyDomain' attribute was not set.";
const assertExpectedCookies = (expected, cookies, message) => {
@@ -154,6 +156,38 @@ async function background() {
browser.test.sendMessage("test_fpi_enabled");
};
+ // Test FPI with a first party domain with invalid characters for
+ // the file system.
+ const test_fpi_with_invalid_characters = async () => {
+ let cookie;
+
+ // Test setting a cookie with a first party domain with invalid characters
+ // for the file system.
+ cookie = await browser.cookies.set({url, name: "foo5", value: "bar5",
+ firstPartyDomain: firstPartyDomainInvalidChars});
+ assertExpectedCookies([
+ {name: "foo5", value: "bar5", firstPartyDomain: firstPartyDomainInvalidChars},
+ ], [cookie], "set: FPI on, w/ firstPartyDomain with invalid characters, FP cookie");
+
+ // Test getting a cookie with a first party domain with invalid characters
+ // for the file system.
+ cookie = await browser.cookies.get({url, name: "foo5",
+ firstPartyDomain: firstPartyDomainInvalidChars});
+ assertExpectedCookies([
+ {name: "foo5", value: "bar5", firstPartyDomain: firstPartyDomainInvalidChars},
+ ], [cookie], "get: FPI on, w/ firstPartyDomain with invalid characters, FP cookie");
+
+ // Test removing a cookie with a first party domain with invalid characters
+ // for the file system.
+ cookie = await browser.cookies.remove({url, name: "foo5",
+ firstPartyDomain: firstPartyDomainInvalidChars});
+ assertExpectedCookies([
+ {url, name: "foo5", firstPartyDomain: firstPartyDomainInvalidChars},
+ ], [cookie], "remove: FPI on, w/ firstPartyDomain with invalid characters, FP cookie");
+
+ browser.test.sendMessage("test_fpi_with_invalid_characters");
+ };
+
// Test when FPI is disabled again, accessing FP cookies set when FPI is enabled.
const test_fpd_cookies_on_fpi_disabled = async () => {
let cookie, cookies;
@@ -179,6 +213,7 @@ async function background() {
switch (message) {
case "test_fpi_disabled": return test_fpi_disabled();
case "test_fpi_enabled": return test_fpi_enabled();
+ case "test_fpi_with_invalid_characters": return test_fpi_with_invalid_characters();
case "test_fpd_cookies_on_fpi_disabled": return test_fpd_cookies_on_fpi_disabled();
default: return browser.test.notifyFail("unknown-message");
}
@@ -210,6 +245,8 @@ add_task(async () => {
await enableFirstPartyIsolation();
extension.sendMessage("test_fpi_enabled");
await extension.awaitMessage("test_fpi_enabled");
+ extension.sendMessage("test_fpi_with_invalid_characters");
+ await extension.awaitMessage("test_fpi_with_invalid_characters");
await disableFirstPartyIsolation();
extension.sendMessage("test_fpd_cookies_on_fpi_disabled");
await extension.awaitMessage("test_fpd_cookies_on_fpi_disabled");
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1470156 - Part 2: Fixing the crashing problem when using an invalid character in a firstPartyDomain. r=baku
by gk@torproject.org 13 Aug '18
by gk@torproject.org 13 Aug '18
13 Aug '18
commit 7d9decc785bdc42443ee9835e0244f082d6911fb
Author: Tim Huang <tihuang(a)mozilla.com>
Date: Tue Jul 3 13:47:45 2018 +0000
Bug 1470156 - Part 2: Fixing the crashing problem when using an invalid character in a firstPartyDomain. r=baku
This patch adds a sanitization of firstPartyDomain when calling the
OriginAttributes::CreateSuffix() and remove the release assert there.
The cookies API for the web extension can use a arbitrary string for the
firstPartyDomain. So, we should sanitize the firstPartyDomain before
we creating a suffix. The release assert is not required anymore since
the firstPartyDomain is sanitized
Depends on D1845.
Differential Revision: https://phabricator.services.mozilla.com/D1856
--HG--
extra : moz-landing-system : lando
---
caps/OriginAttributes.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/caps/OriginAttributes.cpp b/caps/OriginAttributes.cpp
index ea3d7e507f3f..21092e46fb74 100644
--- a/caps/OriginAttributes.cpp
+++ b/caps/OriginAttributes.cpp
@@ -151,8 +151,10 @@ OriginAttributes::CreateSuffix(nsACString& aStr) const
}
if (!mFirstPartyDomain.IsEmpty()) {
- MOZ_RELEASE_ASSERT(mFirstPartyDomain.FindCharInSet(dom::quota::QuotaManager::kReplaceChars) == kNotFound);
- params.Set(NS_LITERAL_STRING("firstPartyDomain"), mFirstPartyDomain);
+ nsAutoString sanitizedFirstPartyDomain(mFirstPartyDomain);
+ sanitizedFirstPartyDomain.ReplaceChar(dom::quota::QuotaManager::kReplaceChars, '+');
+
+ params.Set(NS_LITERAL_STRING("firstPartyDomain"), sanitizedFirstPartyDomain);
}
aStr.Truncate();
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1473247 - Part 2: Add a test case for making sure that IP addresses can work properly for the firstPartyDomain. r=arthuredelstein, baku
by gk@torproject.org 13 Aug '18
by gk@torproject.org 13 Aug '18
13 Aug '18
commit a75945d96b2d8903a86ac1c9016a8d300028b79f
Author: Tim Huang <tihuang(a)mozilla.com>
Date: Fri Jul 13 19:55:02 2018 +0000
Bug 1473247 - Part 2: Add a test case for making sure that IP addresses can work properly for the firstPartyDomain. r=arthuredelstein,baku
Differential Revision: https://phabricator.services.mozilla.com/D1978
--HG--
extra : moz-landing-system : lando
---
.../test/browser/browser_firstPartyIsolation.js | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/browser/components/originattributes/test/browser/browser_firstPartyIsolation.js b/browser/components/originattributes/test/browser/browser_firstPartyIsolation.js
index 560de8c8f572..06bc21255a94 100644
--- a/browser/components/originattributes/test/browser/browser_firstPartyIsolation.js
+++ b/browser/components/originattributes/test/browser/browser_firstPartyIsolation.js
@@ -278,3 +278,22 @@ add_task(async function window_open_form_test() {
gBrowser.removeTab(tab);
await BrowserTestUtils.closeWindow(win);
});
+
+/**
+ * A test for using an IP address as the first party domain.
+ */
+add_task(async function ip_address_test() {
+ const ipAddr = "127.0.0.1";
+ const ipHost = `http://${ipAddr}/browser/browser/components/originattributes/test/browser/`;
+
+ let tab = BrowserTestUtils.addTab(gBrowser, ipHost + "test_firstParty.html");
+ await BrowserTestUtils.browserLoaded(tab.linkedBrowser, true);
+
+ await ContentTask.spawn(tab.linkedBrowser, { firstPartyDomain: ipAddr }, async function(attrs) {
+ info("document principal: " + content.document.nodePrincipal.origin);
+ Assert.equal(content.document.nodePrincipal.originAttributes.firstPartyDomain,
+ attrs.firstPartyDomain, "The firstPartyDomain should be set properly for the IP address");
+ });
+
+ gBrowser.removeTab(tab);
+});
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1473247 - Part 1: Fixing the issue that the IP addresses won't be set for first party domains. r=arthuredelstein, baku
by gk@torproject.org 13 Aug '18
by gk@torproject.org 13 Aug '18
13 Aug '18
commit a8a7f63745d822670462bde4c8db8cbb2ccc397c
Author: Tim Huang <tihuang(a)mozilla.com>
Date: Fri Jul 13 19:53:15 2018 +0000
Bug 1473247 - Part 1: Fixing the issue that the IP addresses won't be set for first party domains. r=arthuredelstein,baku
Right now, the firstPartyDomain won't be set when using IP addresses as
first party domains. It is because of that the TLD service won't accept
IP addresses as valid hosts. The patch fixes this problem by detecting
that if the host is a IP address. If it is, we will still set the
firstPartyDoamin with the IP address.
Differential Revision: https://phabricator.services.mozilla.com/D1977
--HG--
extra : moz-landing-system : lando
---
caps/OriginAttributes.cpp | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/caps/OriginAttributes.cpp b/caps/OriginAttributes.cpp
index 3d9c3f9bda78..ea3d7e507f3f 100644
--- a/caps/OriginAttributes.cpp
+++ b/caps/OriginAttributes.cpp
@@ -11,6 +11,7 @@
#include "nsIEffectiveTLDService.h"
#include "nsIURI.h"
#include "nsIURIWithPrincipal.h"
+#include "nsURLHelper.h"
namespace mozilla {
@@ -58,6 +59,28 @@ OriginAttributes::SetFirstPartyDomain(const bool aIsTopLevelDocument,
return;
}
+ if (rv == NS_ERROR_HOST_IS_IP_ADDRESS) {
+ // If the host is an IPv4/IPv6 address, we still accept it as a
+ // valid firstPartyDomain.
+ nsAutoCString ipAddr;
+ rv = aURI->GetHost(ipAddr);
+ NS_ENSURE_SUCCESS_VOID(rv);
+
+ if (net_IsValidIPv6Addr(ipAddr.BeginReading(), ipAddr.Length())) {
+ // According to RFC2732, the host of an IPv6 address should be an
+ // IPv6reference. The GetHost() of nsIURI will only return the IPv6
+ // address. So, we need to convert it back to IPv6reference here.
+ mFirstPartyDomain.Truncate();
+ mFirstPartyDomain.AssignLiteral("[");
+ mFirstPartyDomain.Append(NS_ConvertUTF8toUTF16(ipAddr));
+ mFirstPartyDomain.AppendLiteral("]");
+ } else {
+ mFirstPartyDomain = NS_ConvertUTF8toUTF16(ipAddr);
+ }
+
+ return;
+ }
+
nsAutoCString scheme;
rv = aURI->GetScheme(scheme);
NS_ENSURE_SUCCESS_VOID(rv);
1
0

13 Aug '18
commit e9b4af29d8acf595bd0da4253336db0783ad5b24
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Aug 13 13:18:25 2018 +0000
Bug 26655: Adjust color and size of onion button
Icon design by Antonela Debiasi.
---
src/chrome/skin/torbutton-update-needed.svg | 16 +++++++++-------
src/chrome/skin/torbutton.svg | 10 +++++-----
2 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/src/chrome/skin/torbutton-update-needed.svg b/src/chrome/skin/torbutton-update-needed.svg
index 73f819ec..12bcca31 100644
--- a/src/chrome/skin/torbutton-update-needed.svg
+++ b/src/chrome/skin/torbutton-update-needed.svg
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <g id="Icon---Tor---Update" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g id="Tor-Button-Icon" transform="translate(2.000000, 1.000000)" fill="#0C0C0D">
- <path d="M8.27206791,6.27905236 C7.88283063,6.53485117 6.37928571,7.48491742 6.38222311,7.48303971 C5.92467564,7.77552366 5.55774616,8.01739321 5.22956304,8.24495813 C4.62774003,8.66226724 4.1902024,9.01032507 3.90524298,9.30237927 C2.34845165,10.8521114 1.86583368,12.1863028 2.03292037,14.2840468 C2.17744778,16.6290092 3.98280543,18.7226974 6.62789966,19.5725823 C7.66430091,19.8978216 8.64783036,20 10.3045058,20 C12.4566798,20 14.4305353,19.426444 15.7257727,18.390024 C17.1602235,17.2499732 18,15.5258216 18,13.7581121 C18,11.9676824 17.2065463,10.2463814 15.7919239,9.00433992 C15.0624549,8.37501782 14.1112169,7.77509114 12.728283,7.03810567 C11.4758566,6.39901667 10.3718516,5.26209475 9.95586156,3.83344263 C9.74417905,4.87665258 9.16812751,5.7299448 8.27206791,6.27905236 Z M17.1048177,7.49557522 C18.9563878,9.1179941 20,11.3893805 20,13.7581121 C20,16.1268437 18.889058,18.4306785 16.9701581,19.9557522 C15.1859178,21.3834808 12.6947145,22 10.3045058,22 C8.8232498,22 7.47
665339,21.9351032 6.02906225,21.480826 C2.69623613,20.4100295 0.238697687,17.6843658 0.0367082257,14.4070796 C-0.165281236,11.8761062 0.440687149,9.92920354 2.49424667,7.88495575 C3.53785889,6.81415929 5.69241315,5.58112094 7.1736692,4.60766962 C7.91429722,4.15339233 8.68859016,2.79056047 7.20733411,0.227138643 L7.5103183,0 L11.9204215,1.75221239 C11.3144532,3.63421829 13.0650285,4.96460177 13.637332,5.25663717 C14.9165986,5.9380531 16.1285353,6.6519174 17.1048177,7.49557522 Z" id="Border" fill-rule="nonzero"></path>
- <path d="M10,5.80000019 C10.3632315,6.90320629 11.2333653,7.78038283 12.2159038,8.28105702 C13.3397544,8.87914153 14.1127842,9.36599897 14.7055922,9.87671162 C15.8551945,10.8846633 16.5,12.2815477 16.5,13.7345319 C16.5,15.1690781 15.81755,16.5682758 14.6518339,17.4934592 C13.5992506,18.3345433 11.9951837,18.8000002 10.2462051,18.8000002 C10.1620472,18.8000002 10.0800269,18.7996762 10,18.7990042 L10,5.80000019 Z" id="Half-Content"></path>
+<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <g id="Icon---Tor-Update---Grey" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="Tor-Button-Icon" fill="#0C0C0D" fill-opacity="0.8">
+ <path d="M7.06561268,5.02241519 C6.77772045,5.2116121 5.67952408,5.90554501 5.6853992,5.90178938 C5.35790364,6.11113858 5.09635335,6.28354515 4.86413018,6.44457064 C4.45268439,6.72987059 4.15887546,6.96359333 3.97499388,7.15193679 C2.95731966,8.16499644 2.66333288,8.97771922 2.77290903,10.3548433 C2.86347409,11.8242645 4.01769529,13.1628244 5.73360996,13.7141752 C6.42393225,13.9308094 7.08993386,14 8.24418607,14 C9.69409954,14 11.010192,13.6175745 11.8475477,12.9475461 C12.7611494,12.2214478 13.2954545,11.1244618 13.2954545,10.0058997 C13.2954545,8.86286776 12.7876949,7.76058164 11.8769727,6.9600938 C11.3838667,6.53505399 10.722397,6.11798563 9.75901067,5.60447735 C9.08955454,5.26286683 8.4719792,4.75203246 8.02479915,4.11379651 C7.77978416,4.4739196 7.45874047,4.78154253 7.06561268,5.02241519 Z M13.1898674,5.45132743 C14.5364638,6.63126844 15.2954545,8.28318584 15.2954545,10.0058997 C15.2954545,11.7286136 14.4874967,13.4041298 13.0919331,14.5132743 C11.7943039,15.551622
4 9.98251962,16 8.24418607,16 C7.16690894,16 6.1875661,15.9528024 5.13477254,15.6224189 C2.71089901,14.8436578 0.923598318,12.8613569 0.776696891,10.4778761 C0.629795465,8.63716814 1.07049974,7.22123894 2.56399758,5.73451327 C3.32298828,4.95575221 4.88993683,4.05899705 5.96721396,3.35103245 C6.50585253,3.02064897 7.06897466,2.02949853 5.99169753,0.16519174 L6.21204967,0 L9.41939748,1.27433628 C8.97869321,2.64306785 10.2518389,3.61061947 10.6680596,3.82300885 C11.5984353,4.31858407 12.4798439,4.83775811 13.1898674,5.45132743 Z" id="Border" fill-rule="nonzero"></path>
+ <path d="M8.27272727,5 C8.49625435,5.67889606 9.03172133,6.21869701 9.63636041,6.5268042 C10.3279607,6.89485621 10.8036714,7.19446079 11.1684763,7.5087455 C11.8759239,8.12902347 12.2727273,8.98864463 12.2727273,9.88278877 C12.2727273,10.7655864 11.852758,11.6266312 11.1353943,12.1959748 C10.4876507,12.713565 9.5005326,13 8.42423809,13 C8.37244863,13 8.32197458,12.9998006 8.27272727,12.9993871 L8.27272727,5 Z" id="Half-Content"></path>
+ </g>
+ <g id="!" transform="translate(0.000000, 6.100000)">
+ <polygon id="Triangle-Copy" fill="#414141" points="5 0.714285714 9.28571429 9.28571429 0.714285714 9.28571429"></polygon>
+ <path d="M9.78067261,7.86561722 C10.0020131,8.30856238 9.97819173,8.83453755 9.71771774,9.25566142 C9.45724375,9.6767853 8.9972698,9.93299087 8.50210118,9.93276007 L1.42710118,9.93276007 C0.932880889,9.93225088 0.474029854,9.67633171 0.213899592,9.2561101 C-0.0462306709,8.83588849 -0.0706843715,8.31106384 0.149244037,7.86847436 L3.68710118,0.789902932 C3.92904842,0.305811394 4.42377158,0 4.96495832,0 C5.50614506,0 6.00086822,0.305811394 6.24281547,0.789902932 L9.78067261,7.86561722 Z M4.25067261,2.78990293 L4.25067261,5.64704579 C4.25067261,6.0415349 4.57046922,6.3613315 4.96495832,6.3613315 C5.35944743,6.3613315 5.67924404,6.0415349 5.67924404,5.64704579 L5.67924404,2.78990293 C5.67924404,2.39541382 5.35944743,2.07561722 4.96495832,2.07561722 C4.57046922,2.07561722 4.25067261,2.39541382 4.25067261,2.78990293 Z M4.96495832,8.68276007 C5.45806971,8.68276007 5.85781547,8.28301432 5.85781547,7.78990293 C5.85781547,7.29679155 5.45806971,6.89704579 4.96495832,6.89704579 C4.47
184694,6.89704579 4.07210118,7.29679155 4.07210118,7.78990293 C4.07210118,8.28301432 4.47184694,8.68276007 4.96495832,8.68276007 Z" id="Shape-Copy" fill="#FFE900" fill-rule="nonzero"></path>
</g>
- <polygon id="Triangle" fill="#0C0C0D" points="7 11 13 23 1 23"></polygon>
- <path d="M13.6929417,21.0118641 C14.0028183,21.6319873 13.9694684,22.3683526 13.6048048,22.957926 C13.2401412,23.5474994 12.5961777,23.9061872 11.9029417,23.9058641 L1.99794165,23.9058641 C1.30603325,23.9051512 0.663641796,23.5468644 0.299459428,22.9585541 C-0.0647229393,22.3702439 -0.0989581202,21.6354894 0.208941651,21.0158641 L5.16194165,11.1058641 C5.50066779,10.428136 6.19328022,10 6.95094165,10 C7.70860308,10 8.40121551,10.428136 8.73994165,11.1058641 L13.6929417,21.0118641 Z M5.95094165,13.9058641 L5.95094165,17.9058641 C5.95094165,18.4581489 6.3986569,18.9058641 6.95094165,18.9058641 C7.5032264,18.9058641 7.95094165,18.4581489 7.95094165,17.9058641 L7.95094165,13.9058641 C7.95094165,13.3535794 7.5032264,12.9058641 6.95094165,12.9058641 C6.3986569,12.9058641 5.95094165,13.3535794 5.95094165,13.9058641 Z M6.95094165,22.1558641 C7.64129759,22.1558641 8.20094165,21.59622 8.20094165,20.9058641 C8.20094165,20.2155082 7.64129759,19.6558641 6.95094165,19.6558641 C6.26058571,
19.6558641 5.70094165,20.2155082 5.70094165,20.9058641 C5.70094165,21.59622 6.26058571,22.1558641 6.95094165,22.1558641 Z" id="Shape" fill="#FFE900" fill-rule="nonzero"></path>
</g>
</svg>
diff --git a/src/chrome/skin/torbutton.svg b/src/chrome/skin/torbutton.svg
index 518e981d..11892c6f 100644
--- a/src/chrome/skin/torbutton.svg
+++ b/src/chrome/skin/torbutton.svg
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <g id="Icon---Tor-" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g id="Tor-Button-Icon" transform="translate(2.000000, 1.000000)" fill="#0C0C0D">
- <path d="M8.27206791,6.27905236 C7.88283063,6.53485117 6.37928571,7.48491742 6.38222311,7.48303971 C5.92467564,7.77552366 5.55774616,8.01739321 5.22956304,8.24495813 C4.62774003,8.66226724 4.1902024,9.01032507 3.90524298,9.30237927 C2.34845165,10.8521114 1.86583368,12.1863028 2.03292037,14.2840468 C2.17744778,16.6290092 3.98280543,18.7226974 6.62789966,19.5725823 C7.66430091,19.8978216 8.64783036,20 10.3045058,20 C12.4566798,20 14.4305353,19.426444 15.7257727,18.390024 C17.1602235,17.2499732 18,15.5258216 18,13.7581121 C18,11.9676824 17.2065463,10.2463814 15.7919239,9.00433992 C15.0624549,8.37501782 14.1112169,7.77509114 12.728283,7.03810567 C11.4758566,6.39901667 10.3718516,5.26209475 9.95586156,3.83344263 C9.74417905,4.87665258 9.16812751,5.7299448 8.27206791,6.27905236 Z M17.1048177,7.49557522 C18.9563878,9.1179941 20,11.3893805 20,13.7581121 C20,16.1268437 18.889058,18.4306785 16.9701581,19.9557522 C15.1859178,21.3834808 12.6947145,22 10.3045058,22 C8.8232498,22 7.47
665339,21.9351032 6.02906225,21.480826 C2.69623613,20.4100295 0.238697687,17.6843658 0.0367082257,14.4070796 C-0.165281236,11.8761062 0.440687149,9.92920354 2.49424667,7.88495575 C3.53785889,6.81415929 5.69241315,5.58112094 7.1736692,4.60766962 C7.91429722,4.15339233 8.68859016,2.79056047 7.20733411,0.227138643 L7.5103183,0 L11.9204215,1.75221239 C11.3144532,3.63421829 13.0650285,4.96460177 13.637332,5.25663717 C14.9165986,5.9380531 16.1285353,6.6519174 17.1048177,7.49557522 Z" id="Border" fill-rule="nonzero"></path>
- <path d="M10,5.80000019 C10.3632315,6.90320629 11.2333653,7.78038283 12.2159038,8.28105702 C13.3397544,8.87914153 14.1127842,9.36599897 14.7055922,9.87671162 C15.8551945,10.8846633 16.5,12.2815477 16.5,13.7345319 C16.5,15.1690781 15.81755,16.5682758 14.6518339,17.4934592 C13.5992506,18.3345433 11.9951837,18.8000002 10.2462051,18.8000002 C10.1620472,18.8000002 10.0800269,18.7996762 10,18.7990042 L10,5.80000019 Z" id="Half-Content"></path>
+<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <g id="Icon---Tor---Grey" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" fill-opacity="0.8">
+ <g id="Tor-Button-Icon" fill="#0C0C0D">
+ <path d="M7.06561268,5.02241519 C6.77772045,5.2116121 5.67952408,5.90554501 5.6853992,5.90178938 C5.35790364,6.11113858 5.09635335,6.28354515 4.86413018,6.44457064 C4.45268439,6.72987059 4.15887546,6.96359333 3.97499388,7.15193679 C2.95731966,8.16499644 2.66333288,8.97771922 2.77290903,10.3548433 C2.86347409,11.8242645 4.01769529,13.1628244 5.73360996,13.7141752 C6.42393225,13.9308094 7.08993386,14 8.24418607,14 C9.69409954,14 11.010192,13.6175745 11.8475477,12.9475461 C12.7611494,12.2214478 13.2954545,11.1244618 13.2954545,10.0058997 C13.2954545,8.86286776 12.7876949,7.76058164 11.8769727,6.9600938 C11.3838667,6.53505399 10.722397,6.11798563 9.75901067,5.60447735 C9.08955454,5.26286683 8.4719792,4.75203246 8.02479915,4.11379651 C7.77978416,4.4739196 7.45874047,4.78154253 7.06561268,5.02241519 Z M13.1898674,5.45132743 C14.5364638,6.63126844 15.2954545,8.28318584 15.2954545,10.0058997 C15.2954545,11.7286136 14.4874967,13.4041298 13.0919331,14.5132743 C11.7943039,15.551622
4 9.98251962,16 8.24418607,16 C7.16690894,16 6.1875661,15.9528024 5.13477254,15.6224189 C2.71089901,14.8436578 0.923598318,12.8613569 0.776696891,10.4778761 C0.629795465,8.63716814 1.07049974,7.22123894 2.56399758,5.73451327 C3.32298828,4.95575221 4.88993683,4.05899705 5.96721396,3.35103245 C6.50585253,3.02064897 7.06897466,2.02949853 5.99169753,0.16519174 L6.21204967,0 L9.41939748,1.27433628 C8.97869321,2.64306785 10.2518389,3.61061947 10.6680596,3.82300885 C11.5984353,4.31858407 12.4798439,4.83775811 13.1898674,5.45132743 Z" id="Border" fill-rule="nonzero"></path>
+ <path d="M8.27272727,5 C8.49625435,5.67889606 9.03172133,6.21869701 9.63636041,6.5268042 C10.3279607,6.89485621 10.8036714,7.19446079 11.1684763,7.5087455 C11.8759239,8.12902347 12.2727273,8.98864463 12.2727273,9.88278877 C12.2727273,10.7655864 11.852758,11.6266312 11.1353943,12.1959748 C10.4876507,12.713565 9.5005326,13 8.42423809,13 C8.37244863,13 8.32197458,12.9998006 8.27272727,12.9993871 L8.27272727,5 Z" id="Half-Content"></path>
</g>
</g>
</svg>
1
0

[tor-browser-build/master] Bug 27101: fix tor build issue with rust enabled
by gk@torproject.org 13 Aug '18
by gk@torproject.org 13 Aug '18
13 Aug '18
commit 3ba2bd456ac69f81ffbf5f0baa403ad005aeff34
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Mon Aug 13 15:12:07 2018 +0200
Bug 27101: fix tor build issue with rust enabled
Fix build issue introduced by the fix for #25485.
---
projects/tor/build | 2 ++
1 file changed, 2 insertions(+)
diff --git a/projects/tor/build b/projects/tor/build
index 89a5418..c8f63bc 100644
--- a/projects/tor/build
+++ b/projects/tor/build
@@ -57,6 +57,8 @@ openssldir=/var/tmp/dist/openssl
chmod 700 "$distdir"/Tor/libstdc++/*.so*
# This is needed to make RPATH unavailable. See bug 9150.
export LD_LIBRARY_PATH="$distdir/Tor/"
+ # Add libstdc++ to LD_LIBRARY_PATH to avoid rust link issue (bug 27101)
+ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$distdir/Tor/libstdc++/"
[% END %]
[% IF c("var/osx") %]
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] squash! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 13 Aug '18
by gk@torproject.org 13 Aug '18
13 Aug '18
commit 975b6f238bf21fc0e567f7622871a3f55722913d
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Wed Aug 1 09:44:12 2018 -0700
squash! TB4: Tor Browser's Firefox preference overrides.
Bug 17252: Enable session identifiers with FPI
Session tickets and session identifiers were isolated
by OriginAttributes, so we can re-enable them by
allowing the default value (true) of
"security.ssl.disable_session_identifiers".
The pref "security.enable_tls_session_tickets" is obsolete
(removed in https://bugzilla.mozilla.org/917049)
---
browser/app/profile/000-tor-browser.js | 2 --
1 file changed, 2 deletions(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index 57d04f36bc3d..d0fdbe1040b4 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -174,7 +174,6 @@ pref("browser.cache.frecency_experiment", -1);
// Third party stuff
pref("privacy.firstparty.isolate", true); // Always enforce first party isolation
pref("network.cookie.cookieBehavior", 1);
-pref("security.enable_tls_session_tickets", false);
pref("network.http.spdy.enabled", false); // Stores state and may have keepalive issues (both fixable)
pref("network.http.spdy.enabled.v2", false); // Seems redundant, but just in case
pref("network.http.spdy.enabled.v3", false); // Seems redundant, but just in case
@@ -270,7 +269,6 @@ pref("network.http.pipelining.reschedule-timeout", 15000);
pref("network.http.pipelining.read-timeout", 60000);
// Hacked pref: Now means "Attempt to pipeline at least this many requests together"
pref("network.http.pipelining.max-optimistic-requests", 3);
-pref("security.ssl.disable_session_identifiers", true);
pref("network.manage-offline-status", false);
// No need to leak things to Mozilla, see bug 21790
pref("network.captive-portal-service.enabled", false);
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] fixup! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 13 Aug '18
by gk@torproject.org 13 Aug '18
13 Aug '18
commit 49b80d55c275d4a59484b8e955d9d4eeac2d8d44
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Aug 1 07:59:54 2018 +0000
fixup! TB4: Tor Browser's Firefox preference overrides.
Fixes bug 26409. We rely on the fix for Mozilla's bug 1039069 for
providing a spoofed Accept-Language header/JS locale if the user wants
to.
---
browser/app/profile/000-tor-browser.js | 4 ----
1 file changed, 4 deletions(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index 1ab4dd39a13c..57d04f36bc3d 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -147,10 +147,6 @@ pref("browser.zoom.siteSpecific", false);
pref("intl.charset.default", "windows-1252");
pref("browser.link.open_newwindow.restriction", 0); // Bug 9881: Open popups in new tabs (to avoid fullscreen popups)
pref("dom.gamepad.enabled", false); // bugs.torproject.org/13023
-pref("javascript.use_us_english_locale", true);
-// pref("intl.accept_languages", "en-us, en"); // Set by Torbutton
-// pref("intl.accept_charsets", "iso-8859-1,*,utf-8"); // Set by Torbutton
-// pref("intl.charsetmenu.browser.cache", "UTF-8"); // Set by Torbutton
// Disable video statistics fingerprinting vector (bug 15757)
pref("media.video_stats.enabled", false);
// Set video VP9 to 0 for everyone (bug 22548)
1
0

13 Aug '18
commit e950aeac23670983bedd84c6526bb9a865450a25
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Aug 1 08:04:21 2018 +0000
Bug 26409: Remove spoofed locale implementation
In bug 1039069 Mozilla implemented the option of spoofing the locale in
the Accept-Language header/JS locale if users with localized builds want
that for better fingerprinting protection. That makes our workaround in
Torbutton obsolete and we can remove it. Otherwise users start to get
the respective language prompt twice, which is quite annoying.
---
src/chrome/content/torbutton.js | 109 +-----------------------------
src/chrome/locale/en/torbutton.properties | 1 -
src/defaults/preferences/preferences.js | 2 -
3 files changed, 1 insertion(+), 111 deletions(-)
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 18895927..d0195b46 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -12,7 +12,7 @@ let { showDialog } = Cu.import("resource://torbutton/modules/utils.js", {});
let { getLocale, unescapeTorString } = Cu.import("resource://torbutton/modules/utils.js", {});
let SecurityPrefs = Cu.import("resource://torbutton/modules/security-prefs.js", {});
let NoScriptControl = Cu.import("resource://torbutton/modules/noscript-control.js", {});
-let { bindPrefAndInit, observe } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { bindPrefAndInit } = Cu.import("resource://torbutton/modules/utils.js", {});
Cu.importGlobalProperties(["XMLHttpRequest"]);
@@ -170,7 +170,6 @@ var torbutton_unique_pref_observer =
torbutton_use_nontor_proxy();
break;
case "privacy.resistFingerprinting":
- case "extensions.torbutton.spoof_english":
torbutton_update_fingerprinting_prefs();
break;
case "privacy.firstparty.isolate":
@@ -463,36 +462,6 @@ var torbutton_abouttor_message_handler = {
}
};
-function torbutton_should_prompt_for_language_preference() {
- return torbutton_get_general_useragent_locale().substring(0, 2) != "en" &&
- !m_tb_prefs.getBoolPref("extensions.torbutton.prompted_language");
-}
-
-
-// Bug 1506 P3: This code asks the user once if they want to spoof their
-// language to English.
-//
-// Asks the user whether Torbutton should make "English requests", and updates
-// the extensions.torbutton.spoof_english preference accordingly.
-function torbutton_prompt_for_language_preference() {
- var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Ci.nsIPromptService);
-
- // Display two buttons, both with string titles.
- var flags = prompts.STD_YES_NO_BUTTONS;
-
- var message = torbutton_get_property_string("torbutton.popup.prompted_language");
-
- m_tb_prefs.setBoolPref("extensions.torbutton.prompted_language", true);
- // Display modal prompt, anchored to this window.
- var response = prompts.confirmEx(window, "", message, flags,
- null, null, null, null, {value: false});
-
- // Update preferences to reflect their response and to prevent the prompt from
- // being displayed again.
- m_tb_prefs.setBoolPref("extensions.torbutton.spoof_english", response == 0);
-}
-
function torbutton_confirm_plugins() {
var any_plugins_enabled = false;
var PH=Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
@@ -1641,23 +1610,6 @@ function torbutton_update_disk_prefs() {
function torbutton_update_fingerprinting_prefs() {
var mode = m_tb_prefs.getBoolPref("privacy.resistFingerprinting");
- if (m_tb_tbb) {
- if (mode) {
- // Governed also by the spoof_english dialog..
- if (m_tb_prefs.getBoolPref("extensions.torbutton.spoof_english")) {
- m_tb_prefs.setCharPref("intl.accept_languages", "en-US, en");
- m_tb_prefs.setBoolPref("javascript.use_us_english_locale", true);
- } else {
- if(m_tb_prefs.prefHasUserValue("intl.accept_languages"))
- m_tb_prefs.clearUserPref("intl.accept_languages");
- m_tb_prefs.setBoolPref("javascript.use_us_english_locale", false);
- }
- } else {
- if(m_tb_prefs.prefHasUserValue("intl.accept_languages"))
- m_tb_prefs.clearUserPref("intl.accept_languages");
- }
- }
-
m_tb_prefs.setBoolPref("webgl.min_capability_mode", mode);
m_tb_prefs.setBoolPref("webgl.disable-extensions", mode);
m_tb_prefs.setBoolPref("dom.network.enabled", !mode);
@@ -2019,8 +1971,6 @@ function torbutton_is_windowed(wind) {
return true;
}
-let stopLanguagePromptObserver;
-
// Bug 1506 P3: This is needed pretty much only for the version check
// and the window resizing. See comments for individual functions for
// details
@@ -2054,15 +2004,6 @@ function torbutton_new_window(event)
Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
}
- // If the default language is not English and we have not already asked,
- // add an http-on-modify-request observer that will show a "request English
- // language web pages?" prompt the first time a content http or https page
- // is opened.
- if (torbutton_should_prompt_for_language_preference()) {
- stopLanguagePromptObserver = observe("http-on-modify-request",
- torbutton_http_connection_observed);
- }
-
// Check the version on every new window. We're already pinging check in these cases.
torbutton_do_async_versioncheck();
@@ -2238,54 +2179,6 @@ var torbutton_resizelistener =
onSecurityChange: function() {}
};
-function torbutton_http_connection_observed(aRequest, aData) {
- // If we are loading an HTTP page from content, show the
- // "request English language web pages?" prompt.
- try {
- let httpChannel = aRequest.QueryInterface(Ci.nsIHttpChannel);
- if (!aRequest.URI.schemeIs("http") && !aRequest.URI.schemeIs("https")) {
- return;
- }
- if (!httpChannel) return;
- let notificationCallbacks = httpChannel.notificationCallbacks;
- if (!notificationCallbacks) return;
- let loadContext = notificationCallbacks.getInterface(Ci.nsILoadContext);
- if (!loadContext) return;
- if (!loadContext.isContent) return;
- // The above QI did not throw, the scheme is http[s], and we know the
- // load context is content, so we must have a true HTTP request from content.
- // Stop the observer and display the prompt if another window has
- // not already done so.
- stopLanguagePromptObserver();
-
- if (torbutton_should_prompt_for_language_preference()) {
- if (torbutton_is_homepage_url(aRequest.URI)) {
- // If the homepage is being loaded, display the prompt after a
- // delay to avoid a problem where a blank prompt is displayed.
- // In this case, the homepage will be loaded using the current
- // spoof English setting, which is OK.
- setTimeout(function() {
- if (torbutton_should_prompt_for_language_preference())
- torbutton_prompt_for_language_preference();
- }, 2000);
- } else {
- // No delay is needed. Display the prompt and fix up the
- // Accept-Language header before allowing the load to continue.
- torbutton_prompt_for_language_preference();
-
- // The Accept-Language header for this request was set when the
- // channel was created. Reset it to match the value that will be
- // used for future requests.
- let val = torbutton_get_current_accept_language_value(aRequest.URI);
- if (val)
- httpChannel.setRequestHeader("Accept-Language", val, false);
- }
- }
- } catch (e) {
- torbutton_log(3, e.message);
- }
-}
-
// aURI should be an http or https nsIURI object.
function torbutton_get_current_accept_language_value(aURI)
{
diff --git a/src/chrome/locale/en/torbutton.properties b/src/chrome/locale/en/torbutton.properties
index d77af1ee..53573df0 100644
--- a/src/chrome/locale/en/torbutton.properties
+++ b/src/chrome/locale/en/torbutton.properties
@@ -21,7 +21,6 @@ torbutton.popup.external.suggest = To be safe, you should only open downloaded f
torbutton.popup.launch = Download file
torbutton.popup.cancel = Cancel
torbutton.popup.dontask = Automatically download files from now on
-torbutton.popup.prompted_language = To give you more privacy, Torbutton can request the English language version of web pages. This may cause web pages that you prefer to read in your native language to display in English instead.\n\nWould you like to request English language web pages for better privacy?
torbutton.popup.no_newnym = Torbutton cannot safely give you a new identity. It does not have access to the Tor Control Port.\n\nAre you running Tor Browser Bundle?
torbutton.title.prompt_torbrowser = Important Torbutton Information
torbutton.popup.prompt_torbrowser = Torbutton works differently now: you can't turn it off any more.\n\nWe made this change because it isn't safe to use Torbutton in a browser that's also used for non-Tor browsing. There were too many bugs there that we couldn't fix any other way.\n\nIf you want to keep using Firefox normally, you should uninstall Torbutton and download Tor Browser Bundle. The privacy properties of Tor Browser are also superior to those of normal Firefox, even when Firefox is used with Torbutton.\n\nTo remove Torbutton, go to Tools->Addons->Extensions and then click the Remove button next to Torbutton.
diff --git a/src/defaults/preferences/preferences.js b/src/defaults/preferences/preferences.js
index 5cfb0eb3..ab9b4bf4 100644
--- a/src/defaults/preferences/preferences.js
+++ b/src/defaults/preferences/preferences.js
@@ -19,7 +19,6 @@ pref("extensions.torbutton.use_nontor_proxy",false);
// State prefs:
pref("extensions.torbutton.startup",false);
pref("extensions.torbutton.inserted_button",false);
-pref("extensions.torbutton.prompted_language",false);
// TODO: This is just part of a stopgap until #14429 gets properly implemented.
// See #7255 for details. We display the warning three times to make sure the
@@ -29,7 +28,6 @@ pref("extensions.torbutton.maximize_warnings_remaining", 3);
// Security prefs:
pref("extensions.torbutton.cookie_protections",true);
pref("extensions.torbutton.cookie_auto_protect",false);
-pref("extensions.torbutton.spoof_english",true);
pref("extensions.torbutton.clear_http_auth",true);
pref("extensions.torbutton.close_newnym",true);
pref("extensions.torbutton.resize_new_windows",true);
1
0

08 Aug '18
commit 3788a45e3dc53d310a52b4262d1ceb7615a12e50
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Aug 8 12:17:43 2018 +0200
Fix typo in README.MAKEFILE
---
README.MAKEFILE | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.MAKEFILE b/README.MAKEFILE
index 8094651..7fd05e9 100644
--- a/README.MAKEFILE
+++ b/README.MAKEFILE
@@ -47,7 +47,7 @@ testbuild
---------
Build a Tor Browser test build. To make the build faster, only the en-US
locale is created, without mar files. By default it is based on the
-alpha channel, but you can change that by editing rbm.conf.local.
+alpha channel, but you can change that by editing rbm.local.conf.
The resulting build can be found in directory testbuild.
{release,alpha,nightly,testbuild}-linux-x86_64-debug
1
0

[tor-browser-build/master] Bug 25485: Fix libstdc++.so.6 compatibility for Tor Browser
by boklm@torproject.org 08 Aug '18
by boklm@torproject.org 08 Aug '18
08 Aug '18
commit 6a89049c0d1200302a59f74e71151466ddae5582
Author: Sukhbir Singh <sukhbir(a)torproject.org>
Date: Tue Aug 7 10:08:30 2018 -0400
Bug 25485: Fix libstdc++.so.6 compatibility for Tor Browser
We ship our version of libstdc++.so.6 for backward compatibility of Tor
Browser on older systems like Ubuntu 16.04. However, a newer version of
the library may be installed on the user's system and we should detect
and use that. This commit adds support for detecting the library using a
C++ program that uses the latest ABI; if the program executes, we should
use the system library, and if not (for the older systems), we add our
libstdc++.so.6 to LD_LIBRARY_PATH.
---
projects/firefox/abicheck.cc | 35 ++++++++++++++++++++++
projects/firefox/build | 4 +++
projects/firefox/config | 2 ++
.../tor-browser/RelativeLink/start-tor-browser | 7 +++++
projects/tor/build | 4 ++-
5 files changed, 51 insertions(+), 1 deletion(-)
diff --git a/projects/firefox/abicheck.cc b/projects/firefox/abicheck.cc
new file mode 100644
index 0000000..cbecafa
--- /dev/null
+++ b/projects/firefox/abicheck.cc
@@ -0,0 +1,35 @@
+/*
+ * Bug 25485: Browser/TorBrowser/Tor/libstdc++.so.6: version `CXXABI_1.3.11' not found
+ * This program is borrowed from
+ * https://en.cppreference.com/w/cpp/error/uncaught_exception and is useful in
+ * determining the latest C++ ABI. Specifically this program requires
+ * `GLIBCXX_3.4.22` which we use to compare the version of the installed
+ * libstdc++.so.6 and the bundled version. If the program executes
+ * successfully, that means we should use the system version of libstdc++.so.6
+ * and if not, that means we should use the bundled version.
+ */
+
+#include <iostream>
+#include <exception>
+#include <stdexcept>
+
+struct Foo {
+ int count = std::uncaught_exceptions();
+ ~Foo() {
+ std::cout << (count == std::uncaught_exceptions()
+ ? "~Foo() called normally\n"
+ : "~Foo() called during stack unwinding\n");
+ }
+};
+
+int main()
+{
+ Foo f;
+ try {
+ Foo f;
+ std::cout << "Exception thrown\n";
+ throw std::runtime_error("test exception");
+ } catch (const std::exception& e) {
+ std::cout << "Exception caught: " << e.what() << '\n';
+ }
+}
diff --git a/projects/firefox/build b/projects/firefox/build
index da1e71b..4dd0945 100644
--- a/projects/firefox/build
+++ b/projects/firefox/build
@@ -237,6 +237,10 @@ ELSE;
END;
%]
+[% IF c("var/linux") %]
+ /var/tmp/dist/gcc/bin/g++ $rootdir/abicheck.cc -o Browser/abicheck
+[% END %]
+
[% c('tar', {
tar_src => [ browserdir ],
tar_args => '-czf ' _ dest_dir _ '/' _ c('filename') _ '/tor-browser.tar.gz',
diff --git a/projects/firefox/config b/projects/firefox/config
index 3284ed4..02a380d 100644
--- a/projects/firefox/config
+++ b/projects/firefox/config
@@ -116,3 +116,5 @@ input_files:
- project: fxc2
name: fxc2
enable: '[% c("var/windows") %]'
+ - filename: abicheck.cc
+ enable: '[% c("var/linux") %]'
diff --git a/projects/tor-browser/RelativeLink/start-tor-browser b/projects/tor-browser/RelativeLink/start-tor-browser
index 6639f44..47fbdef 100755
--- a/projects/tor-browser/RelativeLink/start-tor-browser
+++ b/projects/tor-browser/RelativeLink/start-tor-browser
@@ -274,7 +274,14 @@ if [ $SYSARCHITECTURE -ne $TORARCHITECTURE ]; then
fi
LD_LIBRARY_PATH="${HOME}/TorBrowser/Tor/"
+# Check if the system has a more recent version of libstdc++.so.6; if yes, use
+# that instead of the bundled version.
+./abicheck >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${HOME}/TorBrowser/Tor/libstdc++/"
+fi
export LD_LIBRARY_PATH
+
[% IF ! c("var/release") %]
export SELFRANDO_write_layout_file=
[% END %]
diff --git a/projects/tor/build b/projects/tor/build
index 8f129d6..89a5418 100644
--- a/projects/tor/build
+++ b/projects/tor/build
@@ -47,12 +47,14 @@ openssldir=/var/tmp/dist/openssl
# LD_LIBRARY_PATH value to the Tor Browser with the newer one. Thus, we copy
# the libstdc++ into the directory with the libs tor depends on, too. See bug
# 13359 for further details.
- cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libstdc++.so.6 "$distdir/Tor/"
+ mkdir -p "$distdir/Tor/libstdc++"
+ cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libstdc++.so.6 "$distdir/Tor/libstdc++/"
[% IF c("var/asan") -%]
cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libasan.so.3 "$distdir/Tor/"
cp /var/tmp/dist/gcc/[% c("var/libdir") %]/libubsan.so.0 "$distdir/Tor/"
[% END -%]
chmod 700 "$distdir"/Tor/*.so*
+ chmod 700 "$distdir"/Tor/libstdc++/*.so*
# This is needed to make RPATH unavailable. See bug 9150.
export LD_LIBRARY_PATH="$distdir/Tor/"
[% END %]
1
0

[tor-browser-build/master] Bug: 27020: RBM build fails with runc version 1.0.1
by boklm@torproject.org 03 Aug '18
by boklm@torproject.org 03 Aug '18
03 Aug '18
commit 3960ad5d91701ef9b22e57eef8532e7a2e19b9db
Author: Richard Pospesel <richard(a)torproject.org>
Date: Wed Aug 1 11:29:46 2018 -0700
Bug: 27020: RBM build fails with runc version 1.0.1
runc version on Ubuntu 18.04 is 1.0.1 which is not currently handled in
rbm.conf, so the runc_spec100 flag does not get set properly. This
patch changes it so the runc_spec100 flag is set if a spec string
greater than 1.0.0 is found.
---
rbm.conf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/rbm.conf b/rbm.conf
index d046d86..8cfa5e2 100644
--- a/rbm.conf
+++ b/rbm.conf
@@ -390,11 +390,11 @@ ENV:
my ($out) = capture_exec('sudo', 'runc', '--version');
return !($out =~ m/^runc version 0.1.1/);
},
- # runc_spec100 is true if runc spec is exactly 1.0.0
+ # runc_spec100 is true if runc spec is at least 1.0.0
# We will need to update this when there is a new spec version available
runc_spec100 => sub {
my ($out) = capture_exec('sudo', 'runc', '--version');
- return $out =~ m/^spec: 1\.0\.0$/m;
+ return $out =~ m/^.*spec: 1\.[0-9]+\.[0-9]+$/m;
},
},
)
1
0

31 Jul '18
commit 2a2a1ac8da14983ff682c46e0d8426cb2590ec41
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jul 31 13:54:26 2018 -0400
Bug 26985: Help button icons missing
The image we previously used has been removed from Firefox, so use
ESR 60's new help button image instead. Background shading is used
for the hover and active states.
---
src/chrome/content/network-settings-overlay.xul | 6 ++++--
src/chrome/skin/network-settings.css | 26 +++++++------------------
2 files changed, 11 insertions(+), 21 deletions(-)
diff --git a/src/chrome/content/network-settings-overlay.xul b/src/chrome/content/network-settings-overlay.xul
index 3d42c15..35b9fc7 100644
--- a/src/chrome/content/network-settings-overlay.xul
+++ b/src/chrome/content/network-settings-overlay.xul
@@ -98,8 +98,10 @@
<radio id="bridgeRadioDefault"
label="&torsettings.useBridges.default;" selected="true"
oncommand="onBridgeTypeRadioChange()"/>
- <button class="helpButton"
- oncommand="onOpenHelp('bridgeHelpContent')"/>
+ <vbox pack="center">
+ <button class="helpButton"
+ oncommand="onOpenHelp('bridgeHelpContent')"/>
+ </vbox>
<spacer style="width: 3em"/>
<menulist id="defaultBridgeType" sizetopopup="always"
placeholder="&torsettings.useBridges.default.placeholder;">
diff --git a/src/chrome/skin/network-settings.css b/src/chrome/skin/network-settings.css
index 9a02493..c6a9f0b 100644
--- a/src/chrome/skin/network-settings.css
+++ b/src/chrome/skin/network-settings.css
@@ -133,8 +133,9 @@ wizard.os-mac #bridgeList {
/* reuse Mozilla's help button from the Firefox hamburger menu */
.helpButton {
- list-style-image: url(chrome://browser/skin/menuPanel-help.png);
- -moz-image-region: rect(0, 16px, 16px, 0);
+ background: url('chrome://global/skin/icons/help.svg') no-repeat center center;
+ background-size: 16px 16px;
+ cursor: pointer;
-moz-appearance: none;
height: 16px;
width: 16px;
@@ -152,26 +153,13 @@ wizard.os-mac #bridgeList {
}
.helpButton:hover {
- -moz-image-region: rect(0, 32px, 16px, 16px);
+ background-color: rgba(12, 12, 13, 0.1);
+ border-radius: 50%;
}
.helpButton:hover:active {
- -moz-image-region: rect(0, 48px, 16px, 32px);
-}
-
-@media (min-resolution: 8.1dppx) {
- .helpButton {
- list-style-image: url(chrome://browser/skin/menuPanel-help@2x.png);
- -moz-image-region: rect(0, 32px, 32px, 0);
- }
-
- .helpButton:hover {
- -moz-image-region: rect(0, 64px, 32px, 32px);
- }
-
- .helpButton:hover:active {
- -moz-image-region: rect(0, 96px, 32px, 64px);
- }
+ background-color: rgba(12, 12, 13, 0.15);
+ border-radius: 50%;
}
#progressContent[isShowingReconfigure] description,
1
0

31 Jul '18
commit 392ba14d7d148edafa58eabb1ea18d95e917dd6d
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jul 31 14:07:33 2018 -0400
Bug 25509: Improve the proxy help text.
---
src/chrome/locale/en/network-settings.dtd | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/chrome/locale/en/network-settings.dtd b/src/chrome/locale/en/network-settings.dtd
index 4615146..c6c5687 100644
--- a/src/chrome/locale/en/network-settings.dtd
+++ b/src/chrome/locale/en/network-settings.dtd
@@ -52,7 +52,7 @@
<!ENTITY torsettings.copyLog "Copy Tor Log To Clipboard">
<!ENTITY torsettings.proxyHelpTitle "Proxy Help">
-<!ENTITY torsettings.proxyHelp1 "A local proxy is needed when connecting through a company, school, or university network. If you are not sure how to answer this question, look at the Internet settings in another browser or check your system's network settings to see whether a proxy is needed.">
+<!ENTITY torsettings.proxyHelp1 "A local proxy might be needed when connecting through a company, school, or university network. If you are not sure whether a proxy is needed, look at the Internet settings in another browser or check your system's network settings.">
<!ENTITY torsettings.bridgeHelpTitle "Bridge Relay Help">
<!ENTITY torsettings.bridgeHelp1 "Bridges are unlisted relays that make it more difficult to block connections to the Tor Network.  Each type of bridge uses a different method to avoid censorship.  The obfs ones make your traffic look like random noise, and the meek ones make your traffic look like it's connecting to that service instead of Tor.">
1
0

[tor-browser-build/master] Bug 26951: Fix execdesktop argument passing
by gk@torproject.org 31 Jul '18
by gk@torproject.org 31 Jul '18
31 Jul '18
commit 09111c4e8df1272dcbcf02f5c823e139801c44c4
Author: Ben Burrill <bburrill98(a)gmail.com>
Date: Thu Jul 26 14:31:54 2018 -0700
Bug 26951: Fix execdesktop argument passing
Prior to this change, arguments with spaces were flattened, so running
./start-tor-browser.desktop --search "hello world"
would be converted to
./start-tor-browser.desktop --search hello world
opening up two windows, one search for "hello" and one trying to connect
to http://world
Fixes #18022 as well.
---
projects/tor-browser/RelativeLink/execdesktop | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/tor-browser/RelativeLink/execdesktop b/projects/tor-browser/RelativeLink/execdesktop
index 0dc7a42..27328b2 100755
--- a/projects/tor-browser/RelativeLink/execdesktop
+++ b/projects/tor-browser/RelativeLink/execdesktop
@@ -11,4 +11,4 @@ else
echo "Launching '${TBB_START_PROG}'..."
fi
-eval "${TBB_START_PROG} $@"
+${TBB_START_PROG} "$@"
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1474306 - Fix typo in the extension optionsType handler. r=Mossop
by gk@torproject.org 30 Jul '18
by gk@torproject.org 30 Jul '18
30 Jul '18
commit 63bb7813511ad99ecbbbc7f0fb610718847ff108
Author: Igor Oliveira <igt0(a)torproject.org>
Date: Mon Jul 9 07:24:00 2018 +0300
Bug 1474306 - Fix typo in the extension optionsType handler. r=Mossop
AddonManager.OPTIONS_INLINE_BROWSER was replaced by
AddonManager.OPTIONS_TYPE_INLINE_BROWSER.
---
toolkit/mozapps/extensions/internal/XPIInstall.jsm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/toolkit/mozapps/extensions/internal/XPIInstall.jsm b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
index 2fc1d7edbe80..659d97616dc6 100644
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
@@ -560,7 +560,7 @@ async function loadManifestFromRDF(aUri, aStream) {
addon.hasEmbeddedWebExtension = getRDFProperty(ds, root, "hasEmbeddedWebExtension") == "true";
if (addon.optionsType &&
- addon.optionsType != AddonManager.OPTIONS_INLINE_BROWSER &&
+ addon.optionsType != AddonManager.OPTIONS_TYPE_INLINE_BROWSER &&
addon.optionsType != AddonManager.OPTIONS_TYPE_TAB) {
throw new Error("Install manifest specifies unknown optionsType: " + addon.optionsType);
}
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1459089 - Don't use OS Locale when resistFingerprinting is enabled. When the OS Locale is used, it leaks the OS language in the HTTP Accept-Language header. r=mcomella
by gk@torproject.org 30 Jul '18
by gk@torproject.org 30 Jul '18
30 Jul '18
commit d352f450f3edd120df9b7ab973db45069ef22bb2
Author: Igor Oliveira <igt0(a)torproject.org>
Date: Thu May 3 18:28:00 2018 +0300
Bug 1459089 - Don't use OS Locale when resistFingerprinting is enabled. When the OS Locale is used, it leaks the OS language in the HTTP Accept-Language header. r=mcomella
--HG--
extra : rebase_source : 7b0dc69be25c5076696a6bd9db7611cd5b0abbad
---
mobile/android/chrome/content/browser.js | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js
index 2dc973a15ee7..d081fde9b20e 100644
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -2147,6 +2147,13 @@ var BrowserApp = {
appLocale = appLocale.toLowerCase();
}
+ try {
+ const resistFingerprinting = Services.prefs.getBoolPref("privacy.resistFingerprinting");
+ if (resistFingerprinting) {
+ osLocale = null;
+ }
+ } catch (e) {}
+
if (osLocale) {
osLocale = osLocale.toLowerCase();
}
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1459420 - HLS Player doesn't use the centralized Proxy Selector r=mcomella GeckoHlsPlayer uses the default http ExoPlayer handler, called DefaultHttpDataSource. It uses URL::openConnection instead of the Firefox ProxySelector.
by gk@torproject.org 30 Jul '18
by gk@torproject.org 30 Jul '18
30 Jul '18
commit 7aeef47671133760672f881b38117cb4070f32b3
Author: Igor Oliveira <igt0(a)torproject.org>
Date: Mon Jun 4 05:15:00 2018 +0300
Bug 1459420 - HLS Player doesn't use the centralized Proxy Selector r=mcomella GeckoHlsPlayer uses the default http ExoPlayer handler, called DefaultHttpDataSource. It uses URL::openConnection instead of the Firefox ProxySelector.
This patch updates the ExoPlayer DefaultHttpDataSource to use the
ProxySelector.
---
.../exoplayer2/upstream/DefaultHttpDataSource.java | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/mobile/android/geckoview/src/thirdparty/java/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java b/mobile/android/geckoview/src/thirdparty/java/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
index 599cdddeb91f..75e1f675c5eb 100644
--- a/mobile/android/geckoview/src/thirdparty/java/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
+++ b/mobile/android/geckoview/src/thirdparty/java/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
@@ -31,6 +31,7 @@ import java.lang.reflect.Method;
import java.net.HttpURLConnection;
import java.net.NoRouteToHostException;
import java.net.ProtocolException;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;
import java.util.Map;
@@ -38,6 +39,8 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.mozilla.gecko.util.ProxySelector;
+
/**
* An {@link HttpDataSource} that uses Android's {@link HttpURLConnection}.
* <p>
@@ -193,6 +196,8 @@ public class DefaultHttpDataSource implements HttpDataSource {
} catch (IOException e) {
throw new HttpDataSourceException("Unable to connect to " + dataSpec.uri.toString(), e,
dataSpec, HttpDataSourceException.TYPE_OPEN);
+ } catch (URISyntaxException e) {
+ throw new HttpDataSourceException("URI invalid: " + dataSpec.uri.toString(), dataSpec, HttpDataSourceException.TYPE_OPEN);
}
int responseCode;
@@ -337,7 +342,7 @@ public class DefaultHttpDataSource implements HttpDataSource {
/**
* Establishes a connection, following redirects to do so where permitted.
*/
- private HttpURLConnection makeConnection(DataSpec dataSpec) throws IOException {
+ private HttpURLConnection makeConnection(DataSpec dataSpec) throws IOException, URISyntaxException {
URL url = new URL(dataSpec.uri.toString());
byte[] postBody = dataSpec.postBody;
long position = dataSpec.position;
@@ -389,8 +394,14 @@ public class DefaultHttpDataSource implements HttpDataSource {
* @param followRedirects Whether to follow redirects.
*/
private HttpURLConnection makeConnection(URL url, byte[] postBody, long position,
- long length, boolean allowGzip, boolean followRedirects) throws IOException {
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ long length, boolean allowGzip, boolean followRedirects) throws IOException, URISyntaxException {
+ /**
+ * Tor Project modified the way the connection object was created. For the sake of
+ * simplicity, instead of duplicating the whole file we changed the connection object
+ * to use the ProxySelector.
+ */
+ HttpURLConnection connection = (HttpURLConnection) ProxySelector.openConnectionWithProxy(url.toURI());
+
connection.setConnectTimeout(connectTimeoutMillis);
connection.setReadTimeout(readTimeoutMillis);
if (defaultRequestProperties != null) {
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 1455165 - Filter external apps out if needed. r=mcomella
by gk@torproject.org 30 Jul '18
by gk@torproject.org 30 Jul '18
30 Jul '18
commit 3d30d5d1f2ebbdf60af0180af435afad4ba7e773
Author: Igor Oliveira <igt0(a)torproject.org>
Date: Wed Apr 18 17:16:00 2018 +0300
Bug 1455165 - Filter external apps out if needed. r=mcomella
---
mobile/android/chrome/content/browser.js | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js
index 5f49c07a5ca5..2dc973a15ee7 100644
--- a/mobile/android/chrome/content/browser.js
+++ b/mobile/android/chrome/content/browser.js
@@ -6235,6 +6235,10 @@ var ExternalApps = {
filter: {
matches: function(aElement) {
+ if (!Services.prefs.getBoolPref("network.protocol-handler.external-default")) {
+ return false;
+ }
+
let uri = ExternalApps._getMediaLink(aElement);
let apps = [];
if (uri) {
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 26528 - Don't allow Fennec to use UpdateService when installed through the app store
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 1388fbe6fd988603cbfe10eec92f9f9be578a18c
Author: Igor Oliveira <igt0(a)torproject.org>
Date: Wed Jun 27 12:12:22 2018 -0300
Bug 26528 - Don't allow Fennec to use UpdateService when installed through the app store
App stores such as Google Play or F-Droid have their own update service.
The Fennec UpdateService should be used just when the user installs it
by themselves.
---
.../base/java/org/mozilla/gecko/preferences/GeckoPreferences.java | 2 +-
.../base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java | 2 +-
.../geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java | 5 +++--
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java b/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
index 3675afa9c052..1042a7c2c990 100644
--- a/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
+++ b/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java
@@ -663,7 +663,7 @@ public class GeckoPreferences
pref.setOnPreferenceChangeListener(this);
if (PREFS_UPDATER_AUTODOWNLOAD.equals(key)) {
- if (!AppConstants.MOZ_UPDATER || ContextUtils.isInstalledFromGooglePlay(this)) {
+ if (!AppConstants.MOZ_UPDATER || ContextUtils.isInstalledFromAppStore(this)) {
preferences.removePreference(pref);
i--;
continue;
diff --git a/mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java b/mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java
index c4d198ae735f..c63fad412b00 100644
--- a/mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java
+++ b/mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java
@@ -133,7 +133,7 @@ public class UpdateServiceHelper {
}
public static boolean isUpdaterEnabled(final Context context) {
- return AppConstants.MOZ_UPDATER && isEnabled && !ContextUtils.isInstalledFromGooglePlay(context);
+ return AppConstants.MOZ_UPDATER && isEnabled && !ContextUtils.isInstalledFromAppStore(context);
}
public static void setUpdateUrl(Context context, String url) {
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java
index 0228e144fd89..9a793d3c1e8b 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java
@@ -13,6 +13,7 @@ import android.text.TextUtils;
public class ContextUtils {
private static final String INSTALLER_GOOGLE_PLAY = "com.android.vending";
+ private static final String INSTALLER_FDROID = "org.fdroid.fdroid";
private ContextUtils() {}
@@ -37,13 +38,13 @@ public class ContextUtils {
}
}
- public static boolean isInstalledFromGooglePlay(final Context context) {
+ public static boolean isInstalledFromAppStore(final Context context) {
final String installerPackageName = context.getPackageManager().getInstallerPackageName(context.getPackageName());
if (TextUtils.isEmpty(installerPackageName)) {
return false;
}
- return INSTALLER_GOOGLE_PLAY.equals(installerPackageName);
+ return INSTALLER_GOOGLE_PLAY.equals(installerPackageName) || INSTALLER_FDROID.equals(installerPackageName);
}
}
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Conditionally require WIFI and NETWORK permissions
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 2f95c5a75f74fb9f34c60940a5e1285162f696d5
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 17:52:59 2018 +0000
Bug 25741 - TBA: Conditionally require WIFI and NETWORK permissions
Only require the {ACCESS,CHANGE}_WIFI_STATE and ACCESS_NETWORK_STATE
permissions if MOZ_ANDROID_NETWORK_STATE is defined in the preprocessor.
---
mobile/android/base/FennecManifest_permissions.xml.in | 3 +++
mobile/android/geckoview/src/main/AndroidManifest.xml | 2 ++
mobile/android/moz.configure | 4 ++++
.../services/manifests/FxAccountAndroidManifest_permissions.xml.in | 2 ++
mobile/android/torbrowser.configure | 2 ++
5 files changed, 13 insertions(+)
diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in
index 94bd1b39e0e0..747f1e988147 100644
--- a/mobile/android/base/FennecManifest_permissions.xml.in
+++ b/mobile/android/base/FennecManifest_permissions.xml.in
@@ -8,8 +8,11 @@
(potentially) of the push feature. -->
#include GcmAndroidManifest_permissions.xml.in
+#ifdef MOZ_ANDROID_NETWORK_STATE
+ <!-- Android WIFI state -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
+#endif
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
diff --git a/mobile/android/geckoview/src/main/AndroidManifest.xml b/mobile/android/geckoview/src/main/AndroidManifest.xml
index c99c76efdd57..2a84ae4611ad 100644
--- a/mobile/android/geckoview/src/main/AndroidManifest.xml
+++ b/mobile/android/geckoview/src/main/AndroidManifest.xml
@@ -1,11 +1,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.mozilla.geckoview">
+#ifdef MOZ_ANDROID_NETWORK_STATE
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+#endif
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure
index df9eb2038075..468ec4723632 100644
--- a/mobile/android/moz.configure
+++ b/mobile/android/moz.configure
@@ -185,3 +185,7 @@ def check_android_gcm(android_gcm,
if not google_play_services:
die('You must specify --with-google-play-services when'
' building with MOZ_ANDROID_GCM=1')
+
+project_flag('MOZ_ANDROID_NETWORK_STATE',
+ help='Include permission for accessing WiFi/network state on Android',
+ default=False)
diff --git a/mobile/android/services/manifests/FxAccountAndroidManifest_permissions.xml.in b/mobile/android/services/manifests/FxAccountAndroidManifest_permissions.xml.in
index d5c7e3e5c7dc..8498b8015855 100644
--- a/mobile/android/services/manifests/FxAccountAndroidManifest_permissions.xml.in
+++ b/mobile/android/services/manifests/FxAccountAndroidManifest_permissions.xml.in
@@ -1,5 +1,7 @@
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
+#ifdef MOZ_ANDROID_NETWORK_STATE
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+#endif
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
diff --git a/mobile/android/torbrowser.configure b/mobile/android/torbrowser.configure
index 5e3ab67dca6a..3e84355774d5 100644
--- a/mobile/android/torbrowser.configure
+++ b/mobile/android/torbrowser.configure
@@ -41,3 +41,5 @@ imply_option('MOZ_SERVICES_HEALTHREPORT', False)
# them here, as well.
#imply_option('MOZ_TELEMETRY_REPORTING', False)
#imply_option('MOZ_DATA_REPORTING', False)
+
+imply_option('MOZ_ANDROID_NETWORK_STATE', False);
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Orfox: hook up default panic trigger to "quit and clear"
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit e7b74ce6d0559f2a9d801b7dae1117fb8ead0212
Author: Hans-Christoph Steiner <hans(a)eds.org>
Date: Sat Nov 21 00:24:09 2015 +0100
Orfox: hook up default panic trigger to "quit and clear"
Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com>
---
mobile/android/base/AndroidManifest.xml.in | 7 +++
.../base/java/org/mozilla/gecko/GeckoApp.java | 61 ++++++++++++----------
2 files changed, 41 insertions(+), 27 deletions(-)
diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in
index 4f626dcc2098..c4ea9a37683e 100644
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -168,6 +168,13 @@
<data android:pathPattern=".*\\.xpi" />
</intent-filter>
+ <!-- receive triggers from panickit apps -->
+ <intent-filter>
+ <action android:name="info.guardianproject.panic.action.TRIGGER" />
+
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
#ifdef MOZ_ANDROID_BEAM
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
index ada3e5fa5b0c..63a136541970 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
@@ -129,6 +129,7 @@ public abstract class GeckoApp extends GeckoActivity
public static final String ACTION_INIT_PW = "org.mozilla.gecko.INIT_PW";
public static final String ACTION_SWITCH_TAB = "org.mozilla.gecko.SWITCH_TAB";
public static final String ACTION_SHUTDOWN = "org.mozilla.gecko.SHUTDOWN";
+ public static final String ACTION_PANIC_TRIGGER = "info.guardianproject.panic.action.TRIGGER";
public static final String INTENT_REGISTER_STUMBLER_LISTENER = "org.mozilla.gecko.STUMBLER_REGISTER_LOCAL_LISTENER";
@@ -554,42 +555,46 @@ public abstract class GeckoApp extends GeckoActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.quit) {
- // Make sure the Guest Browsing notification goes away when we quit.
- GuestSession.hideNotification(this);
+ quitAndClear();
+ return true;
+ }
- final SharedPreferences prefs = getSharedPreferencesForProfile();
- final Set<String> clearSet = PrefUtils.getStringSet(
- prefs, ClearOnShutdownPref.PREF, new HashSet<String>());
+ return super.onOptionsItemSelected(item);
+ }
- final GeckoBundle clearObj = new GeckoBundle(clearSet.size());
- for (final String clear : clearSet) {
- clearObj.putBoolean(clear, true);
- }
+ private void quitAndClear() {
+ // Make sure the Guest Browsing notification goes away when we quit.
+ GuestSession.hideNotification(this);
- final GeckoBundle res = new GeckoBundle(2);
- res.putBundle("sanitize", clearObj);
+ final SharedPreferences prefs = getSharedPreferencesForProfile();
+ final Set<String> clearSet = PrefUtils.getStringSet(
+ prefs, ClearOnShutdownPref.PREF, new HashSet<String>());
- // If the user wants to clear open tabs, or else has opted out of session
- // restore and does want to clear history, we also want to prevent the current
- // session info from being saved.
- if (clearObj.containsKey("private.data.openTabs")) {
- res.putBoolean("dontSaveSession", true);
- } else if (clearObj.containsKey("private.data.history")) {
+ final GeckoBundle clearObj = new GeckoBundle(clearSet.size());
+ for (final String clear : clearSet) {
+ clearObj.putBoolean(clear, true);
+ }
- final String sessionRestore =
- getSessionRestorePreference(getSharedPreferences());
- res.putBoolean("dontSaveSession", "quit".equals(sessionRestore));
- }
+ final GeckoBundle res = new GeckoBundle(2);
+ res.putBundle("sanitize", clearObj);
- EventDispatcher.getInstance().dispatch("Browser:Quit", res);
+ // If the user wants to clear open tabs, or else has opted out of session
+ // restore and does want to clear history, we also want to prevent the current
+ // session info from being saved.
+ if (clearObj.containsKey("private.data.openTabs")) {
+ res.putBoolean("dontSaveSession", true);
+ } else if (clearObj.containsKey("private.data.history")) {
- // We don't call shutdown here because this creates a race condition which
- // can cause the clearing of private data to fail. Instead, we shut down the
- // UI only after we're done sanitizing.
- return true;
+ final String sessionRestore =
+ getSessionRestorePreference(getSharedPreferences());
+ res.putBoolean("dontSaveSession", "quit".equals(sessionRestore));
}
- return super.onOptionsItemSelected(item);
+ EventDispatcher.getInstance().dispatch("Browser:Quit", res);
+
+ // We don't call shutdown here because this creates a race condition which
+ // can cause the clearing of private data to fail. Instead, we shut down the
+ // UI only after we're done sanitizing.
}
@Override
@@ -1531,6 +1536,8 @@ public abstract class GeckoApp extends GeckoActivity
// Copy extras.
settingsIntent.putExtras(intent.getUnsafe());
startActivity(settingsIntent);
+ } else if (ACTION_PANIC_TRIGGER.equals(action)) {
+ quitAndClear();
}
mPromptService = new PromptService(this, getAppEventDispatcher());
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Orfox: disable screenshots and prevent page from being in "recent apps"
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit f44bf9a30b66b7b0ee34cc2daa89b1bde46f12d2
Author: Hans-Christoph Steiner <hans(a)eds.org>
Date: Sat Nov 21 00:10:06 2015 +0100
Orfox: disable screenshots and prevent page from being in "recent apps"
Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com>
---
mobile/android/base/java/org/mozilla/gecko/GeckoApp.java | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
index 1f2f95490d0a..ada3e5fa5b0c 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
@@ -78,6 +78,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.Window;
+import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
@@ -1068,6 +1069,9 @@ public abstract class GeckoApp extends GeckoActivity
GeckoScreenOrientation.getInstance().update(getResources().getConfiguration().orientation);
+ // disable screenshots and pic in "recent apps"
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
+
setContentView(getLayout());
// Set up Gecko layout.
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Disable GeckoNetworkManager
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 945c0a54fb87628cd1679839c6fa3c55e643ec04
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Thu Apr 26 22:22:51 2018 +0000
Bug 25741 - TBA: Disable GeckoNetworkManager
The browser should not need information related to the network
interface or network state, tor should take care of that.
---
mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
index f7464acdb019..9a5e89dc1579 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
@@ -199,12 +199,16 @@ public class GeckoApplication extends Application
if (mIsInitialResume) {
GeckoBatteryManager.getInstance().start(this);
GeckoFontScaleListener.getInstance().initialize(this);
- GeckoNetworkManager.getInstance().start(this);
+ if (!AppConstants.isTorBrowser()){
+ GeckoNetworkManager.getInstance().start(this);
+ }
mIsInitialResume = false;
} else if (mPausedGecko) {
GeckoThread.onResume();
mPausedGecko = false;
- GeckoNetworkManager.getInstance().start(this);
+ if (!AppConstants.isTorBrowser()){
+ GeckoNetworkManager.getInstance().start(this);
+ }
}
mInBackground = false;
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: top sites changed, used bookmarks icon temporarily.
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 74da90a39fc0c6f8c5b1a78025b3da514707deaa
Author: Amogh Pradeep <amoghbl1(a)gmail.com>
Date: Thu Jun 18 04:14:18 2015 -0400
Bug 25741 - TBA: top sites changed, used bookmarks icon temporarily.
Adjust the Top Sites shown when a user taps on the URL bar.
Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com>
---
.../res/drawable-hdpi/suggestedsites_checktor.png | Bin 0 -> 1286 bytes
.../suggestedsites_guardianproject.png | Bin 0 -> 1286 bytes
.../drawable-hdpi/suggestedsites_torproject.png | Bin 0 -> 1286 bytes
.../res/drawable-xhdpi/suggestedsites_checktor.png | Bin 0 -> 1626 bytes
.../suggestedsites_guardianproject.png | Bin 0 -> 1626 bytes
.../drawable-xhdpi/suggestedsites_torproject.png | Bin 0 -> 1626 bytes
.../drawable-xxhdpi/suggestedsites_checktor.png | Bin 0 -> 1626 bytes
.../suggestedsites_guardianproject.png | Bin 0 -> 1626 bytes
.../drawable-xxhdpi/suggestedsites_torproject.png | Bin 0 -> 1626 bytes
.../mozilla/gecko/util/UnusedResourcesUtil.java | 3 ++
mobile/locales/en-US/chrome/region.properties | 42 ++++++++++++---------
mobile/locales/search/list.json | 16 ++++----
mobile/locales/searchplugins/duckduckgo.xml | 6 +--
13 files changed, 39 insertions(+), 28 deletions(-)
diff --git a/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_checktor.png b/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_checktor.png
new file mode 100644
index 000000000000..a87c16e3d566
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_checktor.png differ
diff --git a/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_guardianproject.png b/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_guardianproject.png
new file mode 100644
index 000000000000..a87c16e3d566
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_guardianproject.png differ
diff --git a/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_torproject.png b/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_torproject.png
new file mode 100644
index 000000000000..a87c16e3d566
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-hdpi/suggestedsites_torproject.png differ
diff --git a/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_checktor.png b/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_checktor.png
new file mode 100644
index 000000000000..fa7f676310df
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_checktor.png differ
diff --git a/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_guardianproject.png b/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_guardianproject.png
new file mode 100644
index 000000000000..fa7f676310df
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_guardianproject.png differ
diff --git a/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_torproject.png b/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_torproject.png
new file mode 100644
index 000000000000..fa7f676310df
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-xhdpi/suggestedsites_torproject.png differ
diff --git a/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_checktor.png b/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_checktor.png
new file mode 100644
index 000000000000..fa7f676310df
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_checktor.png differ
diff --git a/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_guardianproject.png b/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_guardianproject.png
new file mode 100644
index 000000000000..fa7f676310df
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_guardianproject.png differ
diff --git a/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_torproject.png b/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_torproject.png
new file mode 100644
index 000000000000..fa7f676310df
Binary files /dev/null and b/mobile/android/app/src/photon/res/drawable-xxhdpi/suggestedsites_torproject.png differ
diff --git a/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java b/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
index 8f68e29ba069..7ed717b6fd3d 100644
--- a/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
+++ b/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java
@@ -63,10 +63,13 @@ final class UnusedResourcesUtil {
public static final int[] USED_IN_SUGGESTEDSITES = {
R.drawable.suggestedsites_amazon,
+ R.drawable.suggestedsites_checktor,
R.drawable.suggestedsites_facebook,
+ R.drawable.suggestedsites_guardianproject,
R.drawable.suggestedsites_restricted_fxsupport,
R.drawable.suggestedsites_restricted_mozilla,
R.drawable.suggestedsites_twitter,
+ R.drawable.suggestedsites_torproject,
R.drawable.suggestedsites_webmaker,
R.drawable.suggestedsites_wikipedia,
R.drawable.suggestedsites_youtube,
diff --git a/mobile/locales/en-US/chrome/region.properties b/mobile/locales/en-US/chrome/region.properties
index 79c819c02cd1..1cc4d64ebf05 100644
--- a/mobile/locales/en-US/chrome/region.properties
+++ b/mobile/locales/en-US/chrome/region.properties
@@ -3,17 +3,17 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Default search engine
-browser.search.defaultenginename=Google
+browser.search.defaultenginename=DuckDuckGo
# Search engine order (order displayed in the search bar dropdown).
-browser.search.order.1=Google
-browser.search.order.2=Bing
+browser.search.order.1=DuckDuckGo
+browser.search.order.2=Google
# These override the equivalents above when the client detects that it is in
# US market only.
-browser.search.defaultenginename.US=Google
-browser.search.order.US.1=Google
-browser.search.order.US.2=Bing
+browser.search.defaultenginename.US=DuckDuckGo
+browser.search.order.US.1=DuckDuckGo
+browser.search.order.US.2=Google
# increment this number when anything gets changed in the list below. This will
# cause Firefox to re-read these prefs and inject any new handlers into the
@@ -44,19 +44,27 @@ browser.contentHandlers.types.0.uri=https://add.my.yahoo.com/rss?url=%s
# browser.suggestedsites.NAME.title=Displayed name
# browser.suggestedsites.NAME.url=Website URL
# browser.suggestedsites.NAME.bgcolor= Color (hex format)
-#
-# Note that if you remove or add items to this set, you need to adjust
-# mobile/android/tests/browser/robocop/testDistribution.java
-# to reflect the new set of IDs reported as tiles data.
-#
-browser.suggestedsites.list.0=facebook
-browser.suggestedsites.list.1=youtube
-browser.suggestedsites.list.2=amazon
+
+browser.suggestedsites.list.0=checktor
+browser.suggestedsites.list.1=torproject
+browser.suggestedsites.list.2=guardianproject
browser.suggestedsites.list.3=wikipedia
-browser.suggestedsites.list.4=twitter
+browser.suggestedsites.list.4=facebook
+
+browser.suggestedsites.checktor.title=Check Tor Connection
+browser.suggestedsites.checktor.url=https://check.torproject.org/
+browser.suggestedsites.checktor.bgcolor=#ffecf0f3
+
+browser.suggestedsites.torproject.title=The Tor Project
+browser.suggestedsites.torproject.url=https://www.torproject.org/
+browser.suggestedsites.torproject.bgcolor=#ffecf0f3
+
+browser.suggestedsites.guardianproject.title=The Guardian Project
+browser.suggestedsites.guardianproject.url=https://guardianproject.info/
+browser.suggestedsites.guardianproject.bgcolor=#ffecf0f3
-browser.suggestedsites.facebook.title=Facebook
-browser.suggestedsites.facebook.url=https://m.facebook.com/
+browser.suggestedsites.facebook.title=Facebook Onion Service
+browser.suggestedsites.facebook.url=https://m.facebookcorewwwi.onion
browser.suggestedsites.facebook.bgcolor=#3B5998
browser.suggestedsites.youtube.title=YouTube
diff --git a/mobile/locales/search/list.json b/mobile/locales/search/list.json
index 4c490568579c..a0ee93d4f7f7 100644
--- a/mobile/locales/search/list.json
+++ b/mobile/locales/search/list.json
@@ -1,30 +1,30 @@
{
"default": {
"visibleDefaultEngines": [
- "google", "bing", "amazondotcom", "ddg", "twitter", "wikipedia"
+ "ddg", "google", "bing", "amazondotcom", "twitter", "wikipedia"
]
},
"regionOverrides": {
"US": {
- "google": "google-2018"
+ "ddg": "duckduckgo"
},
"KZ": {
- "google": "google-nocodes"
+ "ddg": "duckduckgo"
},
"BY": {
- "google": "google-nocodes"
+ "ddg": "duckduckgo"
},
"RU": {
- "google": "google-nocodes"
+ "ddg": "duckduckgo"
},
"TR": {
- "google": "google-nocodes"
+ "ddg": "duckduckgo"
},
"UA": {
- "google": "google-nocodes"
+ "ddg": "duckduckgo"
},
"CN": {
- "google": "google-nocodes"
+ "ddg": "duckduckgo"
}
},
"locales": {
diff --git a/mobile/locales/searchplugins/duckduckgo.xml b/mobile/locales/searchplugins/duckduckgo.xml
index 2e5d1d2802c4..9ff1b91a027a 100644
--- a/mobile/locales/searchplugins/duckduckgo.xml
+++ b/mobile/locales/searchplugins/duckduckgo.xml
@@ -11,13 +11,13 @@
<Param name="type" value="list"/>
</Url>
<!-- this is effectively x-moz-phonesearch, but search service expects a text/html entry -->
-<Url type="text/html" method="GET" template="https://duckduckgo.com/">
+<Url type="text/html" method="GET" template="https://duckduckgo.com/html/">
<Param name="q" value="{searchTerms}" />
<Param name="t" value="fpas" />
</Url>
-<Url type="application/x-moz-tabletsearch" method="GET" template="https://duckduckgo.com/">
+<Url type="application/x-moz-tabletsearch" method="GET" template="https://duckduckgo.com/html/">
<Param name="q" value="{searchTerms}" />
<Param name="t" value="ftas" />
</Url>
-<SearchForm>https://duckduckgo.com</SearchForm>
+<SearchForm>https://duckduckgo.com/html/</SearchForm>
</SearchPlugin>
1
0

27 Jul '18
commit d3ae0dae41066bf664b1f7b016ca135dd47f10f6
Author: Amogh Pradeep <amoghbl1(a)gmail.com>
Date: Fri Jul 17 17:01:09 2015 -0400
Orfox: quit button added
Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com>
---
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 3cc087e66622..ea9480d149cc 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -3711,7 +3711,7 @@ public class BrowserApp extends GeckoApp
!PrefUtils.getStringSet(prefs,
ClearOnShutdownPref.PREF,
new HashSet<String>()).isEmpty();
- aMenu.findItem(R.id.quit).setVisible(visible);
+ aMenu.findItem(R.id.quit).setVisible(true);
// If tab data is unavailable we disable most of the context menu and related items and
// return early.
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Adjust the User Agent String so it doesn't leak Android version
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 0635ac83085116e683ea876bb91c848682126ae8
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Thu Apr 26 15:17:42 2018 +0000
Bug 25741 - TBA: Adjust the User Agent String so it doesn't leak Android version
---
mobile/android/base/AppConstants.java.in | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/mobile/android/base/AppConstants.java.in b/mobile/android/base/AppConstants.java.in
index 79f81257dade..d676b1e1da12 100644
--- a/mobile/android/base/AppConstants.java.in
+++ b/mobile/android/base/AppConstants.java.in
@@ -131,20 +131,33 @@ public class AppConstants {
public static final String OS_TARGET = "@OS_TARGET@";
public static final String TARGET_XPCOM_ABI = "@TARGET_XPCOM_ABI@";
- public static final String USER_AGENT_BOT_LIKE = "Redirector/" + AppConstants.MOZ_APP_VERSION +
- " (Android; rv:" + AppConstants.MOZ_APP_VERSION + ")";
-
- public static final String USER_AGENT_FENNEC_MOBILE = "Mozilla/5.0 (Android " +
+ // TBA: Commented out, not used.
+ //public static final String USER_AGENT_BOT_LIKE = "Redirector/" + AppConstants.MOZ_APP_VERSION +
+ // " (Android; rv:" + AppConstants.MOZ_APP_VERSION + ")";
+
+ // TBA: Fennec's UAS now contains the Android version. Hard-code all users UAS
+ // so it matches the RFP string from necko.
+ // toolkit/components/resistfingerprinting/nsRFPService.h
+ public static final String USER_AGENT_FENNEC_MOBILE =
+//#ifdef TOR_BROWSER_VERSION
+ "Mozilla/5.0 (Android 6.0; Mobile; rv:60.0) Gecko/20100101 Firefox/60.0";
+//#else
+ "Mozilla/5.0 (Android " +
Build.VERSION.RELEASE + "; Mobile; rv:" +
AppConstants.MOZ_APP_VERSION + ") Gecko/" +
AppConstants.MOZ_APP_VERSION + " Firefox/" +
AppConstants.MOZ_APP_VERSION;
+//#endif
+//#ifdef TOR_BROWSER_VERSION
+ public static final String USER_AGENT_FENNEC_TABLET = USER_AGENT_FENNEC_MOBILE;
+//#else
public static final String USER_AGENT_FENNEC_TABLET = "Mozilla/5.0 (Android " +
Build.VERSION.RELEASE + "; Tablet; rv:" +
AppConstants.MOZ_APP_VERSION + ") Gecko/" +
AppConstants.MOZ_APP_VERSION + " Firefox/" +
AppConstants.MOZ_APP_VERSION;
+//#endif
public static final int MOZ_MIN_CPU_VERSION = @MOZ_MIN_CPU_VERSION@;
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Orfox: Centralized proxy applied to AbstractCommunicator and BaseResources.
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit ebc4951c6b23a345c1cf6d99fd4be2b2a6a22e78
Author: Amogh Pradeep <amoghbl1(a)gmail.com>
Date: Fri Jun 12 02:07:45 2015 -0400
Orfox: Centralized proxy applied to AbstractCommunicator and BaseResources.
See Bug 1357997 for partial uplift.
---
.../java/org/mozilla/gecko/util/ProxySelector.java | 25 +++++++++++++++++++++-
.../org/mozilla/gecko/sync/net/BaseResource.java | 7 ++++++
.../service/utils/AbstractCommunicator.java | 11 +++++++---
3 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
index 35010242b22d..f05716fe1d09 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java
@@ -29,6 +29,10 @@ import java.net.URLConnection;
import java.util.List;
public class ProxySelector {
+ private static final String TOR_PROXY_ADDRESS = "127.0.0.1";
+ private static final int TOR_SOCKS_PROXY_PORT = 9050;
+ private static final int TOR_HTTP_PROXY_PORT = 8118;
+
public static URLConnection openConnectionWithProxy(URI uri) throws IOException {
java.net.ProxySelector ps = java.net.ProxySelector.getDefault();
Proxy proxy = Proxy.NO_PROXY;
@@ -39,7 +43,26 @@ public class ProxySelector {
}
}
- return uri.toURL().openConnection(proxy);
+ /* Ignore the proxy we found from the VM, only use Tor. We can probably
+ * safely use the logic in this class in the future. */
+ return uri.toURL().openConnection(getProxy());
+ }
+
+ public static Proxy getProxy() {
+ // TODO make configurable
+ return new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(TOR_PROXY_ADDRESS, TOR_SOCKS_PROXY_PORT));
+ }
+
+ public static String getProxyHostAddress() {
+ return TOR_PROXY_ADDRESS;
+ }
+
+ public static int getSocksProxyPort() {
+ return TOR_SOCKS_PROXY_PORT;
+ }
+
+ public static int getHttpProxyPort() {
+ return TOR_HTTP_PROXY_PORT;
}
public ProxySelector() {
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/BaseResource.java b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/BaseResource.java
index 6abe5efc9cb5..48d51be8b42d 100644
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/BaseResource.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/BaseResource.java
@@ -23,9 +23,11 @@ import org.json.simple.JSONObject;
import org.mozilla.gecko.background.common.GlobalConstants;
import org.mozilla.gecko.background.common.log.Logger;
import org.mozilla.gecko.sync.ExtendedJSONObject;
+import org.mozilla.gecko.util.ProxySelector;
import ch.boye.httpclientandroidlib.Header;
import ch.boye.httpclientandroidlib.HttpEntity;
+import ch.boye.httpclientandroidlib.HttpHost;
import ch.boye.httpclientandroidlib.HttpResponse;
import ch.boye.httpclientandroidlib.HttpVersion;
import ch.boye.httpclientandroidlib.client.AuthCache;
@@ -40,6 +42,7 @@ import ch.boye.httpclientandroidlib.client.methods.HttpRequestBase;
import ch.boye.httpclientandroidlib.client.methods.HttpUriRequest;
import ch.boye.httpclientandroidlib.client.protocol.ClientContext;
import ch.boye.httpclientandroidlib.conn.ClientConnectionManager;
+import ch.boye.httpclientandroidlib.conn.params.ConnRoutePNames;
import ch.boye.httpclientandroidlib.conn.scheme.PlainSocketFactory;
import ch.boye.httpclientandroidlib.conn.scheme.Scheme;
import ch.boye.httpclientandroidlib.conn.scheme.SchemeRegistry;
@@ -215,6 +218,10 @@ public class BaseResource implements Resource {
// We could reuse these client instances, except that we mess around
// with their parameters… so we'd need a pool of some kind.
client = new DefaultHttpClient(getConnectionManager());
+ /* TBA: We need a HTTP Proxy here */
+ HttpHost defaultProxy = new HttpHost(ProxySelector.getProxyHostAddress(),
+ ProxySelector.getHttpProxyPort());
+ client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, defaultProxy);
// TODO: Eventually we should use Apache HttpAsyncClient. It's not out of alpha yet.
// Until then, we synchronously make the request, then invoke our delegate's callback.
diff --git a/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/AbstractCommunicator.java b/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/AbstractCommunicator.java
index 4e30cb7deeb7..9b3ee98f89db 100644
--- a/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/AbstractCommunicator.java
+++ b/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/AbstractCommunicator.java
@@ -7,6 +7,7 @@ package org.mozilla.mozstumbler.service.utils;
import android.os.Build;
import android.util.Log;
+import org.mozilla.gecko.util.ProxySelector;
import org.mozilla.mozstumbler.service.AppGlobals;
import org.mozilla.mozstumbler.service.Prefs;
@@ -16,7 +17,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
-import java.net.URL;
+import java.net.URI;
public abstract class AbstractCommunicator {
@@ -72,8 +73,12 @@ public abstract class AbstractCommunicator {
if (sMozApiKey == null || prefs != null) {
sMozApiKey = prefs.getMozApiKey();
}
- URL url = new URL(getUrlString() + "?key=" + sMozApiKey);
- mHttpURLConnection = (HttpURLConnection) url.openConnection();
+
+ /* TBA: This was a URL, but the connection logic would simply
+ * convert the URL into a URI, and then later convert the URI back
+ * into a URL. Creating a URL at the beginning is only wasteful. */
+ URI uri = new URI(getUrlString() + "?key=" + sMozApiKey);
+ mHttpURLConnection = (HttpURLConnection) ProxySelector.openConnectionWithProxy(uri);
mHttpURLConnection.setRequestMethod("POST");
} catch (MalformedURLException e) {
throw new IllegalArgumentException(e);
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Orfox: add BroadcastReceiver to receive Tor status from Orbot
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit e3bb52052fcb1e06b8c90bcacfe456d6a5d7758f
Author: Hans-Christoph Steiner <hans(a)eds.org>
Date: Tue Sep 1 20:49:27 2015 +0200
Orfox: add BroadcastReceiver to receive Tor status from Orbot
Run in thread so Tor status updates will be received while the Gecko event
sync is blocking the main thread. This might not be the best approach
since it probably means that the main UI will be frozen waiting for Tor to
reach ON status.
Queue URL Intents events when Orbot is not yet started
Instead of failing when opening a URL and Tor is not ready, queue those
Intents, then send them once we get STATUS_ON from Orbot.
Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com>
---
.../base/java/org/mozilla/gecko/BrowserApp.java | 32 ++++++++++++++++++++++
.../main/java/org/mozilla/gecko/GeckoAppShell.java | 32 ++++++++++++++++++++++
2 files changed, 64 insertions(+)
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 8d5bbddabc88..3cc087e66622 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -13,11 +13,13 @@ import android.app.DownloadManager;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
import android.content.ContentProviderClient;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
@@ -35,6 +37,9 @@ import android.nfc.NfcEvent;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.StrictMode;
@@ -1273,6 +1278,16 @@ public class BrowserApp extends GeckoApp
}
}
+ private BroadcastReceiver torStatusReceiver = new BroadcastReceiver() {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (TextUtils.equals(intent.getAction(), OrbotHelper.ACTION_STATUS)) {
+ GeckoAppShell.setTorStatus(intent);
+ }
+ }
+ };
+
public void checkStartOrbot() {
if (!OrbotHelper.isOrbotInstalled(this)) {
final Intent installOrbotIntent = OrbotHelper.getOrbotInstallIntent(this);
@@ -1293,6 +1308,14 @@ public class BrowserApp extends GeckoApp
});
builder.show();
} else {
+ /* run in thread so Tor status updates will be received while the
+ * Gecko event sync is blocking the main thread */
+ HandlerThread handlerThread = new HandlerThread("torStatusReceiver");
+ handlerThread.start();
+ Looper looper = handlerThread.getLooper();
+ Handler handler = new Handler(looper);
+ registerReceiver(torStatusReceiver, new IntentFilter(OrbotHelper.ACTION_STATUS),
+ null, handler);
OrbotHelper.requestStartTor(this);
}
}
@@ -1335,6 +1358,15 @@ public class BrowserApp extends GeckoApp
for (BrowserAppDelegate delegate : delegates) {
delegate.onPause(this);
}
+
+ if (torStatusReceiver != null)
+ {
+ try {
+ unregisterReceiver(torStatusReceiver);
+ } catch (IllegalArgumentException e) {
+ Log.w(LOGTAG, "Tor status receiver couldn't be unregistered", e);
+ }
+ }
}
@Override
diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java
index 7dbb286cae04..f67603f853e2 100644
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoAppShell.java
@@ -18,10 +18,13 @@ import java.net.Proxy;
import java.net.URLConnection;
import java.nio.ByteBuffer;
import java.util.ArrayList;
+import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Queue;
import java.util.StringTokenizer;
import java.util.TreeMap;
@@ -39,6 +42,8 @@ import org.mozilla.gecko.util.ProxySelector;
import org.mozilla.gecko.util.ThreadUtils;
import org.mozilla.geckoview.BuildConfig;
+import info.guardianproject.netcipher.proxy.OrbotHelper;
+
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
@@ -110,7 +115,11 @@ public class GeckoAppShell
// We have static members only.
private GeckoAppShell() { }
+ /* Initialize as STATUS_OFF */
+ private static String sTorStatus = OrbotHelper.STATUS_OFF;
+
private static final CrashHandler CRASH_HANDLER = new CrashHandler() {
+
@Override
protected String getAppPackageName() {
final Context appContext = getAppContext();
@@ -200,6 +209,8 @@ public class GeckoAppShell
static private int sDensityDpi;
static private int sScreenDepth;
+ static final Queue<Intent> PENDING_URL_INTENTS = new ConcurrentLinkedQueue<Intent>();
+
/* Is the value in sVibrationEndTime valid? */
private static boolean sVibrationMaybePlaying;
@@ -251,6 +262,16 @@ public class GeckoAppShell
private static Rect sScreenSize;
+ static void sendPendingUrlIntents() {
+ try {
+ Context context = getApplicationContext();
+ while (!PENDING_URL_INTENTS.isEmpty()) {
+ final Intent intent = PENDING_URL_INTENTS.poll();
+ context.startActivity(intent);
+ }
+ } catch (NoSuchElementException e) {}
+ }
+
@WrapForJNI(stubName = "NotifyObservers", dispatchTo = "gecko")
private static native void nativeNotifyObservers(String topic, String data);
@@ -1874,4 +1895,15 @@ public class GeckoAppShell
public static String getDefaultLocale() {
return Locale.getDefault().toString();
}
+
+ public static void setTorStatus(Intent intent) {
+ sTorStatus = intent.getStringExtra(OrbotHelper.EXTRA_STATUS);
+ if (OrbotHelper.STATUS_ON.equals(sTorStatus)) {
+ sendPendingUrlIntents();
+ }
+ }
+
+ public static String getTorStatus() {
+ return sTorStatus;
+ }
}
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Orfox: NetCipher enabled, checks if orbot is installed
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 5307039febcc2e0fcd0b2451d821197202fda8b8
Author: Amogh Pradeep <amoghbl1(a)gmail.com>
Date: Mon Jul 20 21:46:25 2015 -0400
Orfox: NetCipher enabled, checks if orbot is installed
Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com>
---
.../base/java/org/mozilla/gecko/BrowserApp.java | 38 +++-
mobile/android/base/strings.xml.in | 1 +
.../netcipher/proxy/OrbotHelper.java | 186 ++++++++++++++++
.../netcipher/proxy/TorServiceUtils.java | 233 +++++++++++++++++++++
mobile/android/torbrowser/strings.xml.in | 5 +
5 files changed, 458 insertions(+), 5 deletions(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 88c707cfa533..8d5bbddabc88 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -176,6 +176,8 @@ import org.mozilla.gecko.widget.GeckoActionProvider;
import org.mozilla.gecko.widget.SplashScreen;
import org.mozilla.geckoview.GeckoSession;
+import info.guardianproject.netcipher.proxy.OrbotHelper;
+
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -1271,6 +1273,30 @@ public class BrowserApp extends GeckoApp
}
}
+ public void checkStartOrbot() {
+ if (!OrbotHelper.isOrbotInstalled(this)) {
+ final Intent installOrbotIntent = OrbotHelper.getOrbotInstallIntent(this);
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle(R.string.install_orbot);
+ builder.setMessage(R.string.you_must_have_orbot);
+ builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ startActivity(installOrbotIntent);
+ }
+ });
+ builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ }
+ });
+ builder.show();
+ } else {
+ OrbotHelper.requestStartTor(this);
+ }
+ }
+
@Override
public void onResume() {
super.onResume();
@@ -1279,16 +1305,18 @@ public class BrowserApp extends GeckoApp
return;
}
- if (!mHasResumed) {
- getAppEventDispatcher().unregisterUiThreadListener(this, "Prompt:ShowTop");
- mHasResumed = true;
- }
-
processTabQueue();
for (BrowserAppDelegate delegate : delegates) {
delegate.onResume(this);
}
+
+ // isInAutomation is overloaded with isTorBrowser(), but here we actually
+ // need to know if we are in automation.
+ final SafeIntent intent = new SafeIntent(getIntent());
+ if (!IntentUtils.getIsInAutomationFromEnvironment(intent)) {
+ checkStartOrbot();
+ }
}
@Override
diff --git a/mobile/android/base/strings.xml.in b/mobile/android/base/strings.xml.in
index b510012948b9..cf43a3b4c78b 100644
--- a/mobile/android/base/strings.xml.in
+++ b/mobile/android/base/strings.xml.in
@@ -25,6 +25,7 @@
<string name="android_package_name_for_ui">@ANDROID_PACKAGE_NAME@</string>
#include ../services/strings.xml.in
+#include ../torbrowser/strings.xml.in
<string name="firstrun_panel_title_welcome">&firstrun_panel_title_welcome;</string>
diff --git a/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/OrbotHelper.java b/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/OrbotHelper.java
new file mode 100644
index 000000000000..d6a632fda37d
--- /dev/null
+++ b/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/OrbotHelper.java
@@ -0,0 +1,186 @@
+
+package info.guardianproject.netcipher.proxy;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.util.Log;
+
+
+import java.util.List;
+
+public class OrbotHelper {
+
+ private final static int REQUEST_CODE_STATUS = 100;
+
+ public final static String ORBOT_PACKAGE_NAME = "org.torproject.android";
+ public final static String ORBOT_MARKET_URI = "market://details?id=" + ORBOT_PACKAGE_NAME;
+ public final static String ORBOT_FDROID_URI = "https://f-droid.org/repository/browse/?fdid="
+ + ORBOT_PACKAGE_NAME;
+ public final static String ORBOT_PLAY_URI = "https://play.google.com/store/apps/details?id="
+ + ORBOT_PACKAGE_NAME;
+
+ /**
+ * A request to Orbot to transparently start Tor services
+ */
+ public final static String ACTION_START = "org.torproject.android.intent.action.START";
+ /**
+ * {@link Intent} send by Orbot with {@code ON/OFF/STARTING/STOPPING} status
+ */
+ public final static String ACTION_STATUS = "org.torproject.android.intent.action.STATUS";
+ /**
+ * {@code String} that contains a status constant: {@link #STATUS_ON},
+ * {@link #STATUS_OFF}, {@link #STATUS_STARTING}, or
+ * {@link #STATUS_STOPPING}
+ */
+ public final static String EXTRA_STATUS = "org.torproject.android.intent.extra.STATUS";
+ /**
+ * A {@link String} {@code packageName} for Orbot to direct its status reply
+ * to, used in {@link #ACTION_START} {@link Intent}s sent to Orbot
+ */
+ public final static String EXTRA_PACKAGE_NAME = "org.torproject.android.intent.extra.PACKAGE_NAME";
+
+ /**
+ * All tor-related services and daemons are stopped
+ */
+ public final static String STATUS_OFF = "OFF";
+ /**
+ * All tor-related services and daemons have completed starting
+ */
+ public final static String STATUS_ON = "ON";
+ public final static String STATUS_STARTING = "STARTING";
+ public final static String STATUS_STOPPING = "STOPPING";
+ /**
+ * The user has disabled the ability for background starts triggered by
+ * apps. Fallback to the old Intent that brings up Orbot.
+ */
+ public final static String STATUS_STARTS_DISABLED = "STARTS_DISABLED";
+
+ public final static String ACTION_START_TOR = "org.torproject.android.START_TOR";
+ public final static String ACTION_REQUEST_HS = "org.torproject.android.REQUEST_HS_PORT";
+ public final static int START_TOR_RESULT = 0x048079234;
+ public final static int HS_REQUEST_CODE = 9999;
+
+ private final static String FDROID_PACKAGE_NAME = "org.fdroid.fdroid";
+ private final static String PLAY_PACKAGE_NAME = "com.android.vending";
+
+ private OrbotHelper() {
+ // only static utility methods, do not instantiate
+ }
+
+ public static boolean isOrbotRunning(Context context) {
+ int procId = TorServiceUtils.findProcessId(context);
+
+ return (procId != -1);
+ }
+
+ public static boolean isOrbotInstalled(Context context) {
+ return isAppInstalled(context, ORBOT_PACKAGE_NAME);
+ }
+
+ private static boolean isAppInstalled(Context context, String uri) {
+ try {
+ PackageManager pm = context.getPackageManager();
+ pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
+ return true;
+ } catch (PackageManager.NameNotFoundException e) {
+ return false;
+ }
+ }
+
+ public static void requestHiddenServiceOnPort(Activity activity, int port) {
+ Intent intent = new Intent(ACTION_REQUEST_HS);
+ intent.setPackage(ORBOT_PACKAGE_NAME);
+ intent.putExtra("hs_port", port);
+
+ activity.startActivityForResult(intent, HS_REQUEST_CODE);
+ }
+
+ /**
+ * First, checks whether Orbot is installed. If Orbot is installed, then a
+ * broadcast {@link Intent} is sent to request Orbot to start transparently
+ * in the background. When Orbot receives this {@code Intent}, it will
+ * immediately reply to this all with its status via an
+ * {@link #ACTION_STATUS} {@code Intent} that is broadcast to the
+ * {@code packageName} of the provided {@link Context} (i.e.
+ * {@link Context#getPackageName()}.
+ *
+ * @param context the app {@link Context} will receive the reply
+ * @return whether the start request was sent to Orbot
+ */
+ public static boolean requestStartTor(Context context) {
+ if (OrbotHelper.isOrbotInstalled(context)) {
+ Log.i("OrbotHelper", "requestStartTor " + context.getPackageName());
+ Intent intent = getOrbotStartIntent();
+ intent.putExtra(EXTRA_PACKAGE_NAME, context.getPackageName());
+ context.sendBroadcast(intent);
+ return true;
+ }
+ return false;
+ }
+
+ public static Intent getOrbotStartIntent() {
+ Intent intent = new Intent(ACTION_START);
+ intent.setPackage(ORBOT_PACKAGE_NAME);
+ return intent;
+ }
+
+ /**
+ * First, checks whether Orbot is installed, then checks whether Orbot is
+ * running. If Orbot is installed and not running, then an {@link Intent} is
+ * sent to request Orbot to start, which will show the main Orbot screen.
+ * The result will be returned in
+ * {@link Activity#onActivityResult(int requestCode, int resultCode, Intent data)}
+ * with a {@code requestCode} of {@link START_TOR_RESULT}
+ *
+ * @param activity the {@link Activity} that gets the
+ * {@code START_TOR_RESULT} result
+ * @return whether the start request was sent to Orbot
+ */
+ public static boolean requestShowOrbotStart(Activity activity) {
+ if (OrbotHelper.isOrbotInstalled(activity)) {
+ if (!OrbotHelper.isOrbotRunning(activity)) {
+ Intent intent = getShowOrbotStartIntent();
+ activity.startActivityForResult(intent, START_TOR_RESULT);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static Intent getShowOrbotStartIntent() {
+ Intent intent = new Intent(ACTION_START_TOR);
+ intent.setPackage(ORBOT_PACKAGE_NAME);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ return intent;
+ }
+
+ public static Intent getOrbotInstallIntent(Context context) {
+ final Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setData(Uri.parse(ORBOT_MARKET_URI));
+
+ PackageManager pm = context.getPackageManager();
+ List<ResolveInfo> resInfos = pm.queryIntentActivities(intent, 0);
+
+ String foundPackageName = null;
+ for (ResolveInfo r : resInfos) {
+ Log.i("OrbotHelper", "market: " + r.activityInfo.packageName);
+ if (TextUtils.equals(r.activityInfo.packageName, FDROID_PACKAGE_NAME)
+ || TextUtils.equals(r.activityInfo.packageName, PLAY_PACKAGE_NAME)) {
+ foundPackageName = r.activityInfo.packageName;
+ break;
+ }
+ }
+
+ if (foundPackageName == null) {
+ intent.setData(Uri.parse(ORBOT_FDROID_URI));
+ } else {
+ intent.setPackage(foundPackageName);
+ }
+ return intent;
+ }
+}
diff --git a/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/TorServiceUtils.java b/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/TorServiceUtils.java
new file mode 100644
index 000000000000..e553ecac3543
--- /dev/null
+++ b/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/TorServiceUtils.java
@@ -0,0 +1,233 @@
+/* Copyright (c) 2009, Nathan Freitas, Orbot / The Guardian Project - http://openideals.com/guardian */
+/* See LICENSE for licensing information */
+
+package info.guardianproject.netcipher.proxy;
+
+import android.content.Context;
+import android.util.Log;
+
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.URLEncoder;
+import java.util.StringTokenizer;
+
+public class TorServiceUtils {
+
+ private final static String TAG = "TorUtils";
+ // various console cmds
+ public final static String SHELL_CMD_CHMOD = "chmod";
+ public final static String SHELL_CMD_KILL = "kill -9";
+ public final static String SHELL_CMD_RM = "rm";
+ public final static String SHELL_CMD_PS = "ps";
+ public final static String SHELL_CMD_PIDOF = "pidof";
+
+ public final static String CHMOD_EXE_VALUE = "700";
+
+ public static boolean isRootPossible()
+ {
+
+ StringBuilder log = new StringBuilder();
+
+ try {
+
+ // Check if Superuser.apk exists
+ File fileSU = new File("/system/app/Superuser.apk");
+ if (fileSU.exists())
+ return true;
+
+ fileSU = new File("/system/app/superuser.apk");
+ if (fileSU.exists())
+ return true;
+
+ fileSU = new File("/system/bin/su");
+ if (fileSU.exists())
+ {
+ String[] cmd = {
+ "su"
+ };
+ int exitCode = TorServiceUtils.doShellCommand(cmd, log, false, true);
+ if (exitCode != 0)
+ return false;
+ else
+ return true;
+ }
+
+ // Check for 'su' binary
+ String[] cmd = {
+ "which su"
+ };
+ int exitCode = TorServiceUtils.doShellCommand(cmd, log, false, true);
+
+ if (exitCode == 0) {
+ Log.d(TAG, "root exists, but not sure about permissions");
+ return true;
+
+ }
+
+ } catch (IOException e) {
+ // this means that there is no root to be had (normally) so we won't
+ // log anything
+ Log.e(TAG, "Error checking for root access", e);
+
+ } catch (Exception e) {
+ Log.e(TAG, "Error checking for root access", e);
+ // this means that there is no root to be had (normally)
+ }
+
+ Log.e(TAG, "Could not acquire root permissions");
+
+ return false;
+ }
+
+ public static int findProcessId(Context context) {
+ String dataPath = context.getFilesDir().getParentFile().getParentFile().getAbsolutePath();
+ String command = dataPath + "/" + OrbotHelper.ORBOT_PACKAGE_NAME + "/app_bin/tor";
+ int procId = -1;
+
+ try {
+ procId = findProcessIdWithPidOf(command);
+
+ if (procId == -1)
+ procId = findProcessIdWithPS(command);
+ } catch (Exception e) {
+ try {
+ procId = findProcessIdWithPS(command);
+ } catch (Exception e2) {
+ Log.e(TAG, "Unable to get proc id for command: " + URLEncoder.encode(command), e2);
+ }
+ }
+
+ return procId;
+ }
+
+ // use 'pidof' command
+ public static int findProcessIdWithPidOf(String command) throws Exception
+ {
+
+ int procId = -1;
+
+ Runtime r = Runtime.getRuntime();
+
+ Process procPs = null;
+
+ String baseName = new File(command).getName();
+ // fix contributed my mikos on 2010.12.10
+ procPs = r.exec(new String[] {
+ SHELL_CMD_PIDOF, baseName
+ });
+ // procPs = r.exec(SHELL_CMD_PIDOF);
+
+ BufferedReader reader = new BufferedReader(new InputStreamReader(procPs.getInputStream()));
+ String line = null;
+
+ while ((line = reader.readLine()) != null)
+ {
+
+ try
+ {
+ // this line should just be the process id
+ procId = Integer.parseInt(line.trim());
+ break;
+ } catch (NumberFormatException e)
+ {
+ Log.e("TorServiceUtils", "unable to parse process pid: " + line, e);
+ }
+ }
+
+ return procId;
+
+ }
+
+ // use 'ps' command
+ public static int findProcessIdWithPS(String command) throws Exception
+ {
+
+ int procId = -1;
+
+ Runtime r = Runtime.getRuntime();
+
+ Process procPs = null;
+
+ procPs = r.exec(SHELL_CMD_PS);
+
+ BufferedReader reader = new BufferedReader(new InputStreamReader(procPs.getInputStream()));
+ String line = null;
+
+ while ((line = reader.readLine()) != null)
+ {
+ if (line.indexOf(' ' + command) != -1)
+ {
+
+ StringTokenizer st = new StringTokenizer(line, " ");
+ st.nextToken(); // proc owner
+
+ procId = Integer.parseInt(st.nextToken().trim());
+
+ break;
+ }
+ }
+
+ return procId;
+
+ }
+
+ public static int doShellCommand(String[] cmds, StringBuilder log, boolean runAsRoot,
+ boolean waitFor) throws Exception
+ {
+
+ Process proc = null;
+ int exitCode = -1;
+
+ if (runAsRoot)
+ proc = Runtime.getRuntime().exec("su");
+ else
+ proc = Runtime.getRuntime().exec("sh");
+
+ OutputStreamWriter out = new OutputStreamWriter(proc.getOutputStream());
+
+ for (int i = 0; i < cmds.length; i++)
+ {
+ // TorService.logMessage("executing shell cmd: " + cmds[i] +
+ // "; runAsRoot=" + runAsRoot + ";waitFor=" + waitFor);
+
+ out.write(cmds[i]);
+ out.write("\n");
+ }
+
+ out.flush();
+ out.write("exit\n");
+ out.flush();
+
+ if (waitFor)
+ {
+
+ final char buf[] = new char[10];
+
+ // Consume the "stdout"
+ InputStreamReader reader = new InputStreamReader(proc.getInputStream());
+ int read = 0;
+ while ((read = reader.read(buf)) != -1) {
+ if (log != null)
+ log.append(buf, 0, read);
+ }
+
+ // Consume the "stderr"
+ reader = new InputStreamReader(proc.getErrorStream());
+ read = 0;
+ while ((read = reader.read(buf)) != -1) {
+ if (log != null)
+ log.append(buf, 0, read);
+ }
+
+ exitCode = proc.waitFor();
+
+ }
+
+ return exitCode;
+
+ }
+}
diff --git a/mobile/android/torbrowser/strings.xml.in b/mobile/android/torbrowser/strings.xml.in
new file mode 100644
index 000000000000..e3a22974ed78
--- /dev/null
+++ b/mobile/android/torbrowser/strings.xml.in
@@ -0,0 +1,5 @@
+<!-- NetCipher Integration Strings, used for dialog -->
+ <string name="install_orbot">Install Orbot?</string>
+ <string name="you_must_have_orbot">You must have Orbot installed and activated to proxy traffic through it. Would you like to download it?</string>
+ <string name="yes">Yes</string>
+ <string name="no">No</string>
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Always Quit, do not restore the last session
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 9965f1db64ffba901f55a59d18fe53b2f66a7354
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 20:42:04 2018 +0000
Bug 25741 - TBA: Always Quit, do not restore the last session
---
mobile/android/app/src/main/res/xml/preferences_advanced.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mobile/android/app/src/main/res/xml/preferences_advanced.xml b/mobile/android/app/src/main/res/xml/preferences_advanced.xml
index b8c740eabfe3..8c9cee3bdd80 100644
--- a/mobile/android/app/src/main/res/xml/preferences_advanced.xml
+++ b/mobile/android/app/src/main/res/xml/preferences_advanced.xml
@@ -27,7 +27,7 @@
<ListPreference android:key="android.not_a_preference.restoreSession3"
android:title="@string/pref_restore"
- android:defaultValue="always"
+ android:defaultValue="quit"
android:entries="@array/pref_restore_entries"
android:entryValues="@array/pref_restore_values"
android:persistent="true" />
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Neuter Firefox Accounts
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 2bfa4ee4fd1c0c282fbc7c4960ffbd6320b61bd6
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Thu Apr 19 20:39:55 2018 +0000
Bug 25741 - TBA: Neuter Firefox Accounts
We're not confident it is proxy-safe, so we disable it. We can revert this when
Bug 1314778 lands.
---
.../base/java/org/mozilla/gecko/BrowserApp.java | 8 ---
.../org/mozilla/gecko/fxa/FirefoxAccounts.java | 73 +++++++++++++---------
.../gecko/fxa/authenticator/AndroidFxAccount.java | 13 +++-
3 files changed, 56 insertions(+), 38 deletions(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index ce2f1c5908b8..88c707cfa533 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -398,8 +398,6 @@ public class BrowserApp extends GeckoApp
private ReadingListHelper mReadingListHelper;
- private AccountsHelper mAccountsHelper;
-
private ExtensionPermissionsHelper mExtensionPermissionsHelper;
// The tab to be selected on editing mode exit.
@@ -920,7 +918,6 @@ public class BrowserApp extends GeckoApp
mSharedPreferencesHelper = new SharedPreferencesHelper(appContext);
mReadingListHelper = new ReadingListHelper(appContext, profile);
- mAccountsHelper = new AccountsHelper(appContext, profile);
mExtensionPermissionsHelper = new ExtensionPermissionsHelper(this);
if (AppConstants.MOZ_ANDROID_BEAM) {
@@ -1677,11 +1674,6 @@ public class BrowserApp extends GeckoApp
mReadingListHelper = null;
}
- if (mAccountsHelper != null) {
- mAccountsHelper.uninit();
- mAccountsHelper = null;
- }
-
if (mExtensionPermissionsHelper != null) {
mExtensionPermissionsHelper.uninit();
mExtensionPermissionsHelper = null;
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/FirefoxAccounts.java b/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/FirefoxAccounts.java
index 74b10c477237..a207f9b237ad 100644
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/FirefoxAccounts.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/FirefoxAccounts.java
@@ -7,6 +7,7 @@ package org.mozilla.gecko.fxa;
import java.io.File;
import java.util.concurrent.CountDownLatch;
+import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.background.common.log.Logger;
import org.mozilla.gecko.fxa.authenticator.AccountPickler;
import org.mozilla.gecko.fxa.authenticator.AndroidFxAccount;
@@ -49,15 +50,22 @@ public class FirefoxAccounts {
* @return Firefox account objects.
*/
public static Account[] getFirefoxAccounts(final Context context) {
- final Account[] accounts =
- AccountManager.get(context).getAccountsByType(FxAccountConstants.ACCOUNT_TYPE);
- if (accounts.length > 0) {
- FirefoxAccountsUtils.optionallySeparateAccountsDuringFirstRun(context, accounts);
- return accounts;
- }
+ if (AppConstants.isTorBrowser()) {
+ return new Account[0];
+ } else {
+ // TBA: Conditionally disable this at run-time.
+ // XXX This will throw a java.lang.SecurityException because we don't declare
+ // the android.permission.GET_ACCOUNTS permission.
+ final Account[] accounts =
+ AccountManager.get(context).getAccountsByType(FxAccountConstants.ACCOUNT_TYPE);
+ if (accounts.length > 0) {
+ FirefoxAccountsUtils.optionallySeparateAccountsDuringFirstRun(context, accounts);
+ return accounts;
+ }
- final Account pickledAccount = getPickledAccount(context);
- return (pickledAccount != null) ? new Account[] {pickledAccount} : new Account[0];
+ final Account pickledAccount = getPickledAccount(context);
+ return (pickledAccount != null) ? new Account[] {pickledAccount} : new Account[0];
+ }
}
private static Account getPickledAccount(final Context context) {
@@ -111,9 +119,14 @@ public class FirefoxAccounts {
}
public static void logSyncOptions(Bundle syncOptions) {
- final boolean scheduleNow = syncOptions.getBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_BACKOFF, false);
+ if (AppConstants.isTorBrowser()) {
+ // Don't log an erroneous message, this'll only confuse someone looking at the logs.
+ return;
+ } else {
+ final boolean scheduleNow = syncOptions.getBoolean(ContentResolver.SYNC_EXTRAS_IGNORE_BACKOFF, false);
- Logger.info(LOG_TAG, "Sync options -- scheduling now: " + scheduleNow);
+ Logger.info(LOG_TAG, "Sync options -- scheduling now: " + scheduleNow);
+ }
}
public static void requestImmediateSync(final Account account, String[] stagesToSync, String[] stagesToSkip, boolean ignoreSettings) {
@@ -145,28 +158,32 @@ public class FirefoxAccounts {
* @param stagesToSkip stage names to skip.
*/
protected static void requestSync(final Account account, final Bundle syncOptions, String[] stagesToSync, String[] stagesToSkip) {
- if (account == null) {
- throw new IllegalArgumentException("account must not be null");
- }
- if (syncOptions == null) {
- throw new IllegalArgumentException("syncOptions must not be null");
- }
+ if (AppConstants.isTorBrowser()) {
+ return;
+ } else {
+ if (account == null) {
+ throw new IllegalArgumentException("account must not be null");
+ }
+ if (syncOptions == null) {
+ throw new IllegalArgumentException("syncOptions must not be null");
+ }
- Utils.putStageNamesToSync(syncOptions, stagesToSync, stagesToSkip);
+ Utils.putStageNamesToSync(syncOptions, stagesToSync, stagesToSkip);
- Logger.info(LOG_TAG, "Requesting sync.");
- logSyncOptions(syncOptions);
+ Logger.info(LOG_TAG, "Requesting sync.");
+ logSyncOptions(syncOptions);
- // We get strict mode warnings on some devices, so make the request on a
- // background thread.
- ThreadPool.run(new Runnable() {
- @Override
- public void run() {
- for (String authority : AndroidFxAccount.DEFAULT_AUTHORITIES_TO_SYNC_AUTOMATICALLY_MAP.keySet()) {
- ContentResolver.requestSync(account, authority, syncOptions);
+ // We get strict mode warnings on some devices, so make the request on a
+ // background thread.
+ ThreadPool.run(new Runnable() {
+ @Override
+ public void run() {
+ for (String authority : AndroidFxAccount.DEFAULT_AUTHORITIES_TO_SYNC_AUTOMATICALLY_MAP.keySet()) {
+ ContentResolver.requestSync(account, authority, syncOptions);
+ }
}
- }
- });
+ });
+ }
}
/**
diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/AndroidFxAccount.java b/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/AndroidFxAccount.java
index 21af0694ceed..58422355b326 100644
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/AndroidFxAccount.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/authenticator/AndroidFxAccount.java
@@ -29,6 +29,7 @@ import android.support.v4.content.LocalBroadcastManager;
import android.text.TextUtils;
import android.util.Log;
+import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.background.common.GlobalConstants;
import org.mozilla.gecko.background.common.log.Logger;
import org.mozilla.gecko.background.fxa.FxAccountUtils;
@@ -711,7 +712,11 @@ public class AndroidFxAccount {
* @param ignoreSettings whether we should check if syncing is allowed via in-app or system settings.
*/
public void requestImmediateSync(String[] stagesToSync, String[] stagesToSkip, boolean ignoreSettings) {
- FirefoxAccounts.requestImmediateSync(getAndroidAccount(), stagesToSync, stagesToSkip, ignoreSettings);
+ if (AppConstants.isTorBrowser()) {
+ return;
+ } else {
+ FirefoxAccounts.requestImmediateSync(getAndroidAccount(), stagesToSync, stagesToSkip, ignoreSettings);
+ }
}
/**
@@ -722,7 +727,11 @@ public class AndroidFxAccount {
* @param stagesToSkip stage names to skip; can be null to skip <b>no</b> known stages.
*/
public void requestEventualSync(String[] stagesToSync, String[] stagesToSkip) {
- FirefoxAccounts.requestEventualSync(getAndroidAccount(), stagesToSync, stagesToSkip);
+ if (AppConstants.isTorBrowser()) {
+ return;
+ } else {
+ FirefoxAccounts.requestEventualSync(getAndroidAccount(), stagesToSync, stagesToSkip);
+ }
}
public synchronized void setState(State state) {
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Only include GCM permissions if we want them
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 8ea67231b7d81646420da6d9c069746fa5e2ccf9
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Mon Apr 16 04:24:01 2018 +0000
Bug 25741 - TBA: Only include GCM permissions if we want them
---
mobile/android/base/FennecManifest_permissions.xml.in | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in
index eb4e111f6800..1b7b2d5475ec 100644
--- a/mobile/android/base/FennecManifest_permissions.xml.in
+++ b/mobile/android/base/FennecManifest_permissions.xml.in
@@ -8,7 +8,10 @@
them during the same release, which should be Fennec 48. Therefore we
decouple the push permission from MOZ_ANDROID_GCM to let it ride ahead
(potentially) of the push feature. -->
+
+#ifdef MOZ_ANDROID_GCM
#include GcmAndroidManifest_permissions.xml.in
+#endif
#ifdef MOZ_ANDROID_NETWORK_STATE
<!-- Android WIFI state -->
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Do not import bookmarks and history from native browser by default
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 4c70fba1083e03e0ce5a24b40fd985a142560fa5
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 18:51:09 2018 +0000
Bug 25741 - TBA: Do not import bookmarks and history from native browser by default
---
mobile/android/app/src/main/res/values/arrays.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mobile/android/app/src/main/res/values/arrays.xml b/mobile/android/app/src/main/res/values/arrays.xml
index 555797ce7db2..f1d166262546 100644
--- a/mobile/android/app/src/main/res/values/arrays.xml
+++ b/mobile/android/app/src/main/res/values/arrays.xml
@@ -46,8 +46,8 @@
<item>@string/history_title</item>
</string-array>
<string-array name="pref_import_android_defaults">
- <item>true</item>
- <item>true</item>
+ <item>false</item>
+ <item>false</item>
</string-array>
<string-array name="pref_import_android_values">
<item>android_import.data.bookmarks</item>
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Only include Firefox Account permissions if we want them
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 481f6b374dbf9a22348c24429fcd05eb12082449
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Mon Apr 16 04:22:51 2018 +0000
Bug 25741 - TBA: Only include Firefox Account permissions if we want them
---
mobile/android/base/AndroidManifest.xml.in | 4 ++++
mobile/android/base/FennecManifest_permissions.xml.in | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in
index 548c662939f6..4f626dcc2098 100644
--- a/mobile/android/base/AndroidManifest.xml.in
+++ b/mobile/android/base/AndroidManifest.xml.in
@@ -269,7 +269,9 @@
</intent-filter>
</receiver>
+#ifdef MOZ_ACCOUNT
#include ../services/manifests/FxAccountAndroidManifest_activities.xml.in
+#endif
#ifdef MOZ_CRASHREPORTER
<activity android:name="org.mozilla.gecko.CrashReporter"
@@ -415,7 +417,9 @@
</intent-filter>
</service>
+#ifdef MOZ_ACCOUNT
#include ../services/manifests/FxAccountAndroidManifest_services.xml.in
+#endif
<service
android:name="org.mozilla.gecko.tabqueue.TabReceivedService"
diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in
index 7ca8239cca5a..eb4e111f6800 100644
--- a/mobile/android/base/FennecManifest_permissions.xml.in
+++ b/mobile/android/base/FennecManifest_permissions.xml.in
@@ -1,5 +1,7 @@
+#ifdef MOZ_ACCOUNT
#include ../services/manifests/FxAccountAndroidManifest_permissions.xml.in
+#endif
<!-- Bug 1261302: we have two new permissions to request,
RECEIVE_BOOT_COMPLETED and the permission for push. We want to ask for
@@ -25,7 +27,9 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
+#ifdef MOZ_ANDROID_LOCATION
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
+#endif
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.VIBRATE"/>
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Clear state when the app exits, by default
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit b1780714bb2b5a23d14989edcbc68c3bb8c6d556
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 18:55:25 2018 +0000
Bug 25741 - TBA: Clear state when the app exits, by default
Do not delete downloaded files on exit.
These correspond with (in order):
private.data.openTabs
private.data.history
private.data.searchHistory
private.data.downloadFiles
private.data.formdata
private.data.cookies_sessions
private.data.cache
private.data.offlineApps
private.data.siteSettings
private.data.syncedTabs
private.data.passwords
---
mobile/android/app/src/main/res/values/arrays.xml | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/mobile/android/app/src/main/res/values/arrays.xml b/mobile/android/app/src/main/res/values/arrays.xml
index f1d166262546..87b5e72b993e 100644
--- a/mobile/android/app/src/main/res/values/arrays.xml
+++ b/mobile/android/app/src/main/res/values/arrays.xml
@@ -70,6 +70,7 @@
<item>true</item>
<item>true</item>
<item>true</item>
+ <item>false</item>
<item>true</item>
<item>true</item>
<item>true</item>
@@ -77,7 +78,6 @@
<item>true</item>
<item>true</item>
<item>true</item>
- <item>false</item>
</string-array>
<string-array name="pref_private_data_values">
<item>private.data.openTabs</item>
@@ -106,17 +106,17 @@
<item>private.data.passwords</item>
</string-array>
<string-array name="pref_clear_on_exit_defaults">
+ <item>true</item>
+ <item>true</item>
+ <item>true</item>
<item>false</item>
- <item>false</item>
- <item>false</item>
- <item>false</item>
- <item>false</item>
- <item>false</item>
- <item>false</item>
- <item>false</item>
- <item>false</item>
- <item>false</item>
- <item>false</item>
+ <item>true</item>
+ <item>true</item>
+ <item>true</item>
+ <item>true</item>
+ <item>true</item>
+ <item>true</item>
+ <item>true</item>
</string-array>
<string-array name="pref_restore_entries">
<item>@string/pref_restore_always</item>
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Disable all data reporting by default
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 42b4d485e898be9acbb6cae5c7e736fda7b00eea
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 20:37:43 2018 +0000
Bug 25741 - TBA: Disable all data reporting by default
This includes:
Telemetry
Geo-Location (Wi-Fi, Cellular location data, etc)
Health Report
---
mobile/android/app/src/main/res/xml/preferences_privacy.xml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mobile/android/app/src/main/res/xml/preferences_privacy.xml b/mobile/android/app/src/main/res/xml/preferences_privacy.xml
index 68a2066976c8..23be2f12121b 100644
--- a/mobile/android/app/src/main/res/xml/preferences_privacy.xml
+++ b/mobile/android/app/src/main/res/xml/preferences_privacy.xml
@@ -84,7 +84,8 @@
<CheckBoxPreference android:key="android.not_a_preference.app.geo.reportdata"
android:title="@string/datareporting_wifi_title"
- android:summary="@string/datareporting_wifi_geolocation_summary" />
+ android:summary="@string/datareporting_wifi_geolocation_summary"
+ android:defaultValue="false" />
<org.mozilla.gecko.preferences.AlignRightLinkPreference android:key="android.not_a_preference.geo.learn_more"
android:title="@string/pref_learn_more"
@@ -94,7 +95,7 @@
<CheckBoxPreference android:key="android.not_a_preference.healthreport.uploadEnabled"
android:title="@string/datareporting_fhr_title"
android:summary="@string/datareporting_fhr_summary2"
- android:defaultValue="true" />
+ android:defaultValue="false" />
</PreferenceCategory>
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Do not save browsing history by default
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 694a7f174bc0214fec5a46893d11342fb1156936
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 18:46:02 2018 +0000
Bug 25741 - TBA: Do not save browsing history by default
---
mobile/android/app/src/main/res/xml-v11/preferences_search.xml | 2 +-
mobile/android/app/src/main/res/xml/preferences_search.xml | 2 +-
.../app/src/photon/java/org/mozilla/gecko/home/SearchEngineRow.java | 2 +-
mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java | 4 ++--
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/mobile/android/app/src/main/res/xml-v11/preferences_search.xml b/mobile/android/app/src/main/res/xml-v11/preferences_search.xml
index 937b05b617c6..a58bb7cece44 100644
--- a/mobile/android/app/src/main/res/xml-v11/preferences_search.xml
+++ b/mobile/android/app/src/main/res/xml-v11/preferences_search.xml
@@ -27,7 +27,7 @@
<CheckBoxPreference android:key="android.not_a_preference.search.search_history.enabled"
android:title="@string/pref_history_search_suggestions"
- android:defaultValue="true"
+ android:defaultValue="false"
android:persistent="true" />
</PreferenceScreen>
diff --git a/mobile/android/app/src/main/res/xml/preferences_search.xml b/mobile/android/app/src/main/res/xml/preferences_search.xml
index 440167fe5e2a..fc8c258821e1 100644
--- a/mobile/android/app/src/main/res/xml/preferences_search.xml
+++ b/mobile/android/app/src/main/res/xml/preferences_search.xml
@@ -34,7 +34,7 @@
<CheckBoxPreference android:key="android.not_a_preference.search.search_history.enabled"
android:title="@string/pref_history_search_suggestions"
- android:defaultValue="true"
+ android:defaultValue="false"
android:persistent="true" />
</PreferenceScreen>
diff --git a/mobile/android/app/src/photon/java/org/mozilla/gecko/home/SearchEngineRow.java b/mobile/android/app/src/photon/java/org/mozilla/gecko/home/SearchEngineRow.java
index 8d7eec1d839a..1d90f7bacf41 100644
--- a/mobile/android/app/src/photon/java/org/mozilla/gecko/home/SearchEngineRow.java
+++ b/mobile/android/app/src/photon/java/org/mozilla/gecko/home/SearchEngineRow.java
@@ -378,7 +378,7 @@ class SearchEngineRow extends ThemedRelativeLayout {
final int recycledSuggestionCount = mSuggestionView.getChildCount();
final SharedPreferences prefs = GeckoSharedPrefs.forApp(getContext());
- final boolean savedSearchesEnabled = prefs.getBoolean(GeckoPreferences.PREFS_HISTORY_SAVED_SEARCH, true);
+ final boolean savedSearchesEnabled = prefs.getBoolean(GeckoPreferences.PREFS_HISTORY_SAVED_SEARCH, false);
// Remove duplicates of search engine suggestions from saved searches.
List<String> searchHistorySuggestions = (rawSearchHistorySuggestions != null) ? rawSearchHistorySuggestions : new ArrayList<String>();
diff --git a/mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java b/mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java
index e25d1067a995..02cd3888ed15 100644
--- a/mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java
@@ -276,7 +276,7 @@ public class BrowserSearch extends HomeFragment
super.onResume();
final SharedPreferences prefs = GeckoSharedPrefs.forApp(getContext());
- mSavedSearchesEnabled = prefs.getBoolean(GeckoPreferences.PREFS_HISTORY_SAVED_SEARCH, true);
+ mSavedSearchesEnabled = prefs.getBoolean(GeckoPreferences.PREFS_HISTORY_SAVED_SEARCH, false);
// Fetch engines if we need to.
if (mSearchEngines.isEmpty() || !Locale.getDefault().equals(mLastLocale)) {
@@ -1385,4 +1385,4 @@ public class BrowserSearch extends HomeFragment
setSelector(isPrivate ? R.drawable.search_list_selector_private : R.drawable.search_list_selector);
}
}
-}
\ No newline at end of file
+}
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Conditionally require *_LOCATION permissions
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit a549bf2a62b4a84eaf1326436a6e899d9d156572
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 18:07:25 2018 +0000
Bug 25741 - TBA: Conditionally require *_LOCATION permissions
Only require the {FINE,COURSE}_LOCATION permissions if
MOZ_ANDROID_LOCATION is defined in the preprocessor. Also
include location features (with gps).
---
mobile/android/base/FennecManifest_permissions.xml.in | 5 +++++
mobile/android/geckoview/src/main/AndroidManifest.xml | 2 ++
mobile/android/moz.configure | 4 ++++
mobile/android/torbrowser.configure | 1 +
4 files changed, 12 insertions(+)
diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in
index 747f1e988147..25c4b4f215d5 100644
--- a/mobile/android/base/FennecManifest_permissions.xml.in
+++ b/mobile/android/base/FennecManifest_permissions.xml.in
@@ -13,8 +13,11 @@
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
#endif
+
+#ifdef MOZ_ANDROID_LOCATION
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+#endif
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
@@ -30,8 +33,10 @@
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
#endif
+#ifdef MOZ_ANDROID_LOCATION
<uses-feature android:name="android.hardware.location" android:required="false"/>
<uses-feature android:name="android.hardware.location.gps" android:required="false"/>
+#endif
<uses-feature android:name="android.hardware.touchscreen"/>
<!-- Tab Queue -->
diff --git a/mobile/android/geckoview/src/main/AndroidManifest.xml b/mobile/android/geckoview/src/main/AndroidManifest.xml
index 2a84ae4611ad..da1508336d90 100644
--- a/mobile/android/geckoview/src/main/AndroidManifest.xml
+++ b/mobile/android/geckoview/src/main/AndroidManifest.xml
@@ -18,8 +18,10 @@
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.VIBRATE"/>
+#ifdef MOZ_ANDROID_LOCATION
<uses-feature android:name="android.hardware.location" android:required="false"/>
<uses-feature android:name="android.hardware.location.gps" android:required="false"/>
+#endif
<uses-feature android:name="android.hardware.touchscreen"/>
<uses-permission android:name="android.permission.CAMERA" />
diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure
index 468ec4723632..7033d4283211 100644
--- a/mobile/android/moz.configure
+++ b/mobile/android/moz.configure
@@ -189,3 +189,7 @@ def check_android_gcm(android_gcm,
project_flag('MOZ_ANDROID_NETWORK_STATE',
help='Include permission for accessing WiFi/network state on Android',
default=False)
+
+project_flag('MOZ_ANDROID_LOCATION',
+ help='Include permission for accessing fine and course-grain Location on Android',
+ default=False)
diff --git a/mobile/android/torbrowser.configure b/mobile/android/torbrowser.configure
index 3e84355774d5..ac30fde888a6 100644
--- a/mobile/android/torbrowser.configure
+++ b/mobile/android/torbrowser.configure
@@ -43,3 +43,4 @@ imply_option('MOZ_SERVICES_HEALTHREPORT', False)
#imply_option('MOZ_DATA_REPORTING', False)
imply_option('MOZ_ANDROID_NETWORK_STATE', False);
+imply_option('MOZ_ANDROID_LOCATION', False);
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Move CAMERA permission within MOZ_WEBRTC
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit dfb8e56d11dc741a449412697a3bc409588b725b
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 11 18:16:33 2018 +0000
Bug 25741 - TBA: Move CAMERA permission within MOZ_WEBRTC
Require the CAMERA permissions if MOZ_WEBRTC is defined in
the preprocessor.
---
mobile/android/base/FennecManifest_permissions.xml.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in
index 25c4b4f215d5..7ca8239cca5a 100644
--- a/mobile/android/base/FennecManifest_permissions.xml.in
+++ b/mobile/android/base/FennecManifest_permissions.xml.in
@@ -53,10 +53,10 @@
<uses-feature android:name="android.hardware.audio.low_latency" android:required="false"/>
<uses-feature android:name="android.hardware.camera.any" android:required="false"/>
<uses-feature android:name="android.hardware.microphone" android:required="false"/>
-#endif
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
+#endif
<!-- App requires OpenGL ES 2.0 -->
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Disable the microphone by default
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit dd347ea938540744bb23761633ccb28d1469eb7c
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Mon Apr 9 22:20:16 2018 +0000
Bug 25741 - TBA: Disable the microphone by default
Deactivating this is an accessibility concern because this is used for
voice dictation, so users should have the option of re-enabling this.
This uses the Android Speech API.
---
mobile/android/app/src/main/res/xml/preferences_accessibility.xml | 2 +-
.../android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mobile/android/app/src/main/res/xml/preferences_accessibility.xml b/mobile/android/app/src/main/res/xml/preferences_accessibility.xml
index c4fe86ed62c3..c82006ee2473 100644
--- a/mobile/android/app/src/main/res/xml/preferences_accessibility.xml
+++ b/mobile/android/app/src/main/res/xml/preferences_accessibility.xml
@@ -18,7 +18,7 @@
<SwitchPreference android:key="android.not_a_preference.voice_input_enabled"
android:title="@string/pref_voice_input"
android:summary="@string/pref_voice_input_summary"
- android:defaultValue="true"/>
+ android:defaultValue="false"/>
<SwitchPreference android:key="android.not_a_preference.qrcode_enabled"
android:title="@string/pref_qrcode_enabled"
diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java
index eaf318dbd2d1..c1ac4dc0f36a 100644
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java
@@ -287,7 +287,7 @@ public class ToolbarEditLayout extends ThemedLinearLayout {
return false;
}
return GeckoSharedPrefs.forApp(context)
- .getBoolean(GeckoPreferences.PREFS_VOICE_INPUT_ENABLED, true);
+ .getBoolean(GeckoPreferences.PREFS_VOICE_INPUT_ENABLED, false);
}
private void launchVoiceRecognizer() {
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Disable QR Code reader by default
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 2b04ca6766a34dc4edb0f7ae8f49ee84667e8f97
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Mon Apr 9 22:36:53 2018 +0000
Bug 25741 - TBA: Disable QR Code reader by default
This is another accessibility and usability concern, so we allow
this as an opt-in.
---
mobile/android/app/src/main/res/xml/preferences_accessibility.xml | 2 +-
.../android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mobile/android/app/src/main/res/xml/preferences_accessibility.xml b/mobile/android/app/src/main/res/xml/preferences_accessibility.xml
index c82006ee2473..c5afa4d8d644 100644
--- a/mobile/android/app/src/main/res/xml/preferences_accessibility.xml
+++ b/mobile/android/app/src/main/res/xml/preferences_accessibility.xml
@@ -23,6 +23,6 @@
<SwitchPreference android:key="android.not_a_preference.qrcode_enabled"
android:title="@string/pref_qrcode_enabled"
android:summary="@string/pref_qrcode_enabled_summary"
- android:defaultValue="true"/>
+ android:defaultValue="false"/>
</PreferenceScreen>
diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java
index c1ac4dc0f36a..b44b261b75ef 100644
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java
@@ -324,7 +324,7 @@ public class ToolbarEditLayout extends ThemedLinearLayout {
return false;
}
return GeckoSharedPrefs.forApp(context)
- .getBoolean(GeckoPreferences.PREFS_QRCODE_ENABLED, true);
+ .getBoolean(GeckoPreferences.PREFS_QRCODE_ENABLED, false);
}
private void launchQRCodeReader() {
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Disable telemetry and experiments
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 58ed6fff3b06e225b55d0af80ba399a0eba11e9e
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Mon Apr 9 21:57:22 2018 +0000
Bug 25741 - TBA: Disable telemetry and experiments
---
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
index 0cf5aa15b0e1..ce2f1c5908b8 100644
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -71,6 +71,7 @@ import android.widget.Button;
import android.widget.ListView;
import android.widget.ViewFlipper;
+import org.mozilla.gecko.AppConstants;
import org.mozilla.gecko.AppConstants.Versions;
import org.mozilla.gecko.DynamicToolbar.VisibilityTransition;
import org.mozilla.gecko.Tabs.TabEvents;
@@ -703,7 +704,11 @@ public class BrowserApp extends GeckoApp
showSplashScreen = true;
final SafeIntent intent = new SafeIntent(getIntent());
- final boolean isInAutomation = IntentUtils.getIsInAutomationFromEnvironment(intent);
+ // TBA: Disable Switchboard testing experiments and
+ // Telemetry-uploading by abusing the isInAutomation detection.
+ final boolean isInAutomation =
+ (IntentUtils.getIsInAutomationFromEnvironment(intent)
+ || AppConstants.isTorBrowser());
GeckoProfile.setIntentArgs(intent.getStringExtra("args"));
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Remove sync option from preferences
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 99f346a73bde893c862bbb6504ff52f63b5b60e0
Author: Amogh Pradeep <amoghbl1(a)gmail.com>
Date: Fri Jul 17 13:27:07 2015 -0400
Bug 25741 - TBA: Remove sync option from preferences
We don't want this while the Sync subsystem is a proxy-bypass risk. We
can drop this when the feature is patched.
Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com>
---
mobile/android/app/src/main/res/xml/preferences.xml | 6 ------
1 file changed, 6 deletions(-)
diff --git a/mobile/android/app/src/main/res/xml/preferences.xml b/mobile/android/app/src/main/res/xml/preferences.xml
index 06716cd9af91..08ee14ea443a 100644
--- a/mobile/android/app/src/main/res/xml/preferences.xml
+++ b/mobile/android/app/src/main/res/xml/preferences.xml
@@ -9,12 +9,6 @@
xmlns:gecko="http://schemas.android.com/apk/res-auto"
android:enabled="false">
- <org.mozilla.gecko.preferences.SyncPreference android:key="android.not_a_preference.sync"
- android:title="@string/pref_sync"
- android:icon="@drawable/sync_avatar_default"
- android:summary="@string/pref_sync_summary"
- android:persistent="false" />
-
<PreferenceScreen android:title="@string/pref_category_general"
android:summary="@string/pref_category_general_summary"
android:key="android.not_a_preference.general_screen"
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Add mobile-override of 000-tor-browser prefs
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit b5a6b33814d32a25a41b0d21f02447e1b630ec4f
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Jan 19 23:49:11 2018 +0000
Bug 25741 - TBA: Add mobile-override of 000-tor-browser prefs
---
.eslintignore | 3 ++
mobile/android/app/000-tor-browser-android.js | 58 +++++++++++++++++++++++++++
mobile/android/app/mobile.js | 4 ++
mobile/android/app/moz.build | 1 +
mobile/android/installer/package-manifest.in | 1 +
5 files changed, 67 insertions(+)
diff --git a/.eslintignore b/.eslintignore
index 3fcc46db7ded..69f27d2366ec 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -326,6 +326,9 @@ media/webrtc/trunk/**
# mobile/android/ exclusions
mobile/android/tests/browser/chrome/tp5/**
+# uses `#include`
+mobile/android/app/000-tor-browser-android.js
+
# Uses `#filter substitution`
mobile/android/app/mobile.js
mobile/android/app/geckoview-prefs.js
diff --git a/mobile/android/app/000-tor-browser-android.js b/mobile/android/app/000-tor-browser-android.js
new file mode 100644
index 000000000000..399c6f07718b
--- /dev/null
+++ b/mobile/android/app/000-tor-browser-android.js
@@ -0,0 +1,58 @@
+// Import all prefs from the canonical file
+// We override mobile-specific prefs below
+// Tor Browser for Android
+// Do not edit this file.
+
+#include ../../../browser/app/profile/000-tor-browser.js
+
+
+// Disable Presentation API
+pref("dom.presentation.controller.enabled", false);
+pref("dom.presentation.enabled", false);
+pref("dom.presentation.discoverable", false);
+pref("dom.presentation.discoverable.encrypted", false);
+pref("dom.presentation.discovery.enabled", false);
+pref("dom.presentation.receiver.enabled", false);
+
+pref("dom.audiochannel.audioCompeting", false);
+pref("dom.audiochannel.mediaControl", false);
+
+// Space separated list of URLs that are allowed to send objects (instead of
+// only strings) through webchannels. This list is duplicated in browser/app/profile/firefox.js
+pref("webchannel.allowObject.urlWhitelist", "");
+
+// Disable browser auto updaters
+pref("app.update.auto", false);
+pref("app.update.enabled", false);
+pref("browser.startup.homepage_override.mstone", "ignore");
+
+// Clear data on quit
+pref("privacy.clearOnShutdown.cache", true);
+pref("privacy.clearOnShutdown.cookies",true);
+pref("privacy.clearOnShutdown.downloads",true);
+pref("privacy.clearOnShutdown.formdata",true);
+pref("privacy.clearOnShutdown.history",true);
+pref("privacy.clearOnShutdown.offlineApps",true);
+pref("privacy.clearOnShutdown.passwords",true);
+pref("privacy.clearOnShutdown.sessions",true);
+pref("privacy.clearOnShutdown.siteSettings",true);
+
+// Disable Control media casting & mirroring features
+pref("browser.casting.enabled", false);
+pref("browser.mirroring.enabled", false);
+
+// Disable autoplay
+pref("media.autoplay.enabled", false);
+
+// controls if we want camera support
+pref("device.camera.enabled", false);
+pref("media.realtime_decoder.enabled", false);
+
+// Do not fetch updated per-site user-agent strings from Mozilla
+// See ua-update.json.in for the packaged UA override list
+// See https://bugzilla.mozilla.org/show_bug.cgi?id=897221
+pref("general.useragent.updates.enabled", false);
+pref("general.useragent.updates.url", "");
+
+// Override this because Orbot uses 9050 as the default
+pref("network.proxy.socks_port", 9050);
diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js
index a11e1b033396..052ebdec5948 100644
--- a/mobile/android/app/mobile.js
+++ b/mobile/android/app/mobile.js
@@ -504,7 +504,11 @@ pref("app.update.timerMinimumDelay", 30); // seconds
// used by update service to decide whether or not to
// automatically download an update
pref("app.update.autodownload", "wifi");
+#ifdef TOR_BROWSER_VERSION
+pref("app.update.url.android", "");
+#else
pref("app.update.url.android", "https://aus5.mozilla.org/update/4/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TAR…");
+#endif
#ifdef MOZ_UPDATER
/* prefs used specifically for updating the app */
diff --git a/mobile/android/app/moz.build b/mobile/android/app/moz.build
index 8ff152f3b369..773c1a3979a8 100644
--- a/mobile/android/app/moz.build
+++ b/mobile/android/app/moz.build
@@ -49,6 +49,7 @@ if CONFIG['MOZ_PKG_SPECIAL']:
DEFINES['MOZ_PKG_SPECIAL'] = CONFIG['MOZ_PKG_SPECIAL']
JS_PREFERENCE_PP_FILES += [
+ '000-tor-browser-android.js',
'geckoview-prefs.js',
'mobile.js',
]
diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in
index 6f6a02082bec..8a2a356c151c 100644
--- a/mobile/android/installer/package-manifest.in
+++ b/mobile/android/installer/package-manifest.in
@@ -431,6 +431,7 @@
#ifdef MOZ_GECKOVIEW_JAR
@BINPATH@/@PREF_DIR@/geckoview-prefs.js
#else
+@BINPATH@/@PREF_DIR@/000-tor-browser-android.js
@BINPATH@/@PREF_DIR@/mobile.js
#endif
@BINPATH@/@PREF_DIR@/channel-prefs.js
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Do not register Stumbler listener at start up
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 2fd232288ac877e67fabf6c52ec1d85b87533446
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Wed Apr 25 01:55:44 2018 +0000
Bug 25741 - TBA: Do not register Stumbler listener at start up
---
mobile/android/base/java/org/mozilla/gecko/GeckoApp.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
index 7e04484ac5bc..1f2f95490d0a 100644
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
@@ -979,9 +979,12 @@ public abstract class GeckoApp extends GeckoActivity
// Tell Stumbler to register a local broadcast listener to listen for preference intents.
// We do this via intents since we can't easily access Stumbler directly,
// as it might be compiled outside of Fennec.
- getApplicationContext().sendBroadcast(
+ // TBA: We don't want Fennec using or receiving Stumbler
+ if (!AppConstants.isTorBrowser()) {
+ getApplicationContext().sendBroadcast(
new Intent(INTENT_REGISTER_STUMBLER_LISTENER)
- );
+ );
+ }
// Did the OS locale change while we were backgrounded? If so,
// we need to die so that Gecko will re-init add-ons that touch
@@ -1025,6 +1028,7 @@ public abstract class GeckoApp extends GeckoActivity
final String uri = getURIFromIntent(intent);
if (!TextUtils.isEmpty(uri)) {
// Start a speculative connection as soon as Gecko loads.
+ // XXX TBA: Check this doesn't leak, and is blocked by Tor bootstrap
GeckoThread.speculativeConnect(uri);
}
}
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Add default configure options in dedicated file
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit da8531b4015da74d3ebc2e4218a6f7a6455b3328
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Mon Jan 22 11:18:45 2018 +0000
Bug 25741 - TBA: Add default configure options in dedicated file
---
mobile/android/moz.configure | 9 ++++++--
mobile/android/torbrowser.configure | 43 +++++++++++++++++++++++++++++++++++++
2 files changed, 50 insertions(+), 2 deletions(-)
diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure
index 034810e966dc..df9eb2038075 100644
--- a/mobile/android/moz.configure
+++ b/mobile/android/moz.configure
@@ -112,9 +112,12 @@ option(env='MOZ_ANDROID_MOZILLA_ONLINE',
set_config('MOZ_ANDROID_MOZILLA_ONLINE',
depends_if('MOZ_ANDROID_MOZILLA_ONLINE')(lambda _: True))
-imply_option('MOZ_SERVICES_HEALTHREPORT', True)
-imply_option('MOZ_ANDROID_HISTORY', True)
imply_option('--enable-small-chunk-size', True)
+# Comment these so we can imply |False| in torbrowser.configure
+# The Build system doesn't allow multiple imply_option()
+# calls with the same key.
+#imply_option('MOZ_SERVICES_HEALTHREPORT', True)
+#imply_option('MOZ_ANDROID_HISTORY', True)
set_config('ANDROID_SUPPORT_LIBRARY_VERSION', '23.4.0')
add_old_configure_assignment('ANDROID_SUPPORT_LIBRARY_VERSION', '23.4.0')
@@ -128,6 +131,8 @@ def check_target(target):
'Build_Instructions/Simple_Firefox_for_Android_build '
'for more information about the necessary options.')
+include('torbrowser.configure')
+
include('../../toolkit/moz.configure')
include('../../build/moz.configure/java.configure')
include('gradle.configure')
diff --git a/mobile/android/torbrowser.configure b/mobile/android/torbrowser.configure
new file mode 100644
index 000000000000..5e3ab67dca6a
--- /dev/null
+++ b/mobile/android/torbrowser.configure
@@ -0,0 +1,43 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Set Tor Browser default config
+
+# Disable Android Beam (NFC integration)
+imply_option('MOZ_ANDROID_BEAM', False)
+
+
+imply_option('MOZ_ANDROID_DOWNLOAD_CONTENT_SERVICE', False)
+imply_option('MOZ_ANDROID_DOWNLOADS_INTEGRATION', False)
+imply_option('MOZ_ANDROID_EXCLUDE_FONTS', False)
+
+# Disable push notifications/messaging on nightly
+imply_option('MOZ_ANDROID_GCM', False)
+
+# Disable all history/bookmark/icon caching
+# (both in local sqlite DB and with Android integration)
+imply_option('MOZ_ANDROID_HISTORY', False)
+imply_option('MOZ_PLACES', False)
+
+# Disable the stumbler, Firefox shouldn't touch the network
+imply_option('MOZ_ANDROID_MLS_STUMBLER', False)
+
+# Disable uploading crash reports and dump files to an external server
+# This is still configured in old-configure. Uncomment when this moves
+# to the python config
+#imply_option('MOZ_CRASHREPORTER', False)
+
+# Disable uploading information about the browser configuration and
+# performance to an external server
+imply_option('MOZ_SERVICES_HEALTHREPORT', False)
+
+# Disable creating telemetry and data reports that are uploaded to an
+# external server
+# These aren't actually configure options. These are disabled in
+# confvars.sh, but they look like configure options so we'll document
+# them here, as well.
+#imply_option('MOZ_TELEMETRY_REPORTING', False)
+#imply_option('MOZ_DATA_REPORTING', False)
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Disable features at compile-time
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 377b11c036a42e4157e02ab8aaa8b1fc9a8cd45b
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Mon Apr 9 19:48:12 2018 +0000
Bug 25741 - TBA: Disable features at compile-time
MOZ_NATIVE_DEVICES for casting and the media player
MOZ_TELEMETRY_REPORTING for telemetry
MOZ_DATA_REPORTING for all data reporting preferences (crashreport, telemetry, geo)
Document two remaining but unused defines:
MOZ_CAPTURE
MOZ_XULRUNNER
---
mobile/android/confvars.sh | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/mobile/android/confvars.sh b/mobile/android/confvars.sh
index e1b507396c84..43062e7352c6 100644
--- a/mobile/android/confvars.sh
+++ b/mobile/android/confvars.sh
@@ -30,9 +30,14 @@ MOZ_ANDROID_BROWSER_INTENT_CLASS=org.mozilla.gecko.BrowserApp
MOZ_NO_SMART_CARDS=1
+# TBA: MOZ_XULRUNNER and MOZ_CAPTURE defines are dead/unused, leaving here for easier future rebasing
+# Bug 1478438
+
MOZ_XULRUNNER=
MOZ_CAPTURE=1
+
+# Adds MIME-type support for raw video
MOZ_RAW=1
# use custom widget for html:select
@@ -42,3 +47,15 @@ MOZ_APP_ID={aa3c5121-dab2-40e2-81ca-7ea25febc110}
# Enable checking that add-ons are signed by the trusted root
MOZ_ADDON_SIGNING=1
+
+### Tor Browser for Android ###
+
+# Disables support at compile-time for casting (Mozilla Media Manager)
+# and prevents dependency on Google Play Services support
+unset MOZ_NATIVE_DEVICES
+
+# Disable telemetry at compile-time
+unset MOZ_TELEMETRY_REPORTING
+
+# Disable data reporting at compile-time
+unset MOZ_DATA_REPORTING
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Add an AppConstant for TOR_BROWSER_VERSION
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit b148406e9e358c325e008a22454fe13c416e5789
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Jan 19 20:13:58 2018 +0000
Bug 25741 - TBA: Add an AppConstant for TOR_BROWSER_VERSION
---
.../java/org/mozilla/gecko/TorBrowserTest.java | 27 ++++++++++++++++++++++
mobile/android/base/AppConstants.java.in | 15 ++++++++++++
mobile/android/base/generate_build_config.py | 3 ++-
3 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/mobile/android/app/src/test/java/org/mozilla/gecko/TorBrowserTest.java b/mobile/android/app/src/test/java/org/mozilla/gecko/TorBrowserTest.java
new file mode 100644
index 000000000000..15ee5aa1b70f
--- /dev/null
+++ b/mobile/android/app/src/test/java/org/mozilla/gecko/TorBrowserTest.java
@@ -0,0 +1,27 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+package org.mozilla.gecko;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mozilla.gecko.background.testhelpers.TestRunner;
+import org.mozilla.gecko.AppConstants;
+
+import static org.junit.Assert.*;
+
+(a)RunWith(TestRunner.class)
+public class TorBrowserTest {
+ /**
+ * Tests the compile-time constants are set.
+ */
+ @Test
+ public void testIsTorBrowser() {
+ assertTrue(AppConstants.isTorBrowser());
+ }
+
+ @Test
+ public void testTorBrowserVersion() {
+ assertEquals(AppConstants.TOR_BROWSER_VERSION, "8.0");
+ }
+}
diff --git a/mobile/android/base/AppConstants.java.in b/mobile/android/base/AppConstants.java.in
index 34e483a6db77..79f81257dade 100644
--- a/mobile/android/base/AppConstants.java.in
+++ b/mobile/android/base/AppConstants.java.in
@@ -338,4 +338,19 @@ public class AppConstants {
//#else
null;
//#endif
+
+ public static final String TOR_BROWSER_VERSION =
+//#ifdef TOR_BROWSER_VERSION
+ "@TOR_BROWSER_VERSION@";
+//#else
+ null;
+//#endif
+
+ public static final boolean isTorBrowser() {
+//#ifdef TOR_BROWSER_VERSION
+ return true;
+//#else
+ return false;
+//#endif
+ }
}
diff --git a/mobile/android/base/generate_build_config.py b/mobile/android/base/generate_build_config.py
index f5f499b09aed..61e5f91aa6e4 100644
--- a/mobile/android/base/generate_build_config.py
+++ b/mobile/android/base/generate_build_config.py
@@ -64,7 +64,8 @@ def _defines():
'MOZ_ANDROID_MAX_SDK_VERSION',
'MOZ_ANDROID_MIN_SDK_VERSION',
'MOZ_PKG_SPECIAL',
- 'MOZ_UPDATER'):
+ 'MOZ_UPDATER',
+ 'TOR_BROWSER_VERSION'):
if CONFIG[var]:
DEFINES[var] = CONFIG[var]
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Exclude unwanted Stumbler tests
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 214bccd0cd359301724fe13d3979c1d1911be6ad
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Mon Apr 16 13:47:48 2018 +0000
Bug 25741 - TBA: Exclude unwanted Stumbler tests
When the stumbler service is ifdef-disabled because MOZ_ANDROID_MLS_STUMBLER
is not defined, then the unit test compilation fails because some values are
never declared and defined. We exclude all testStumbler*.java files from
the robocop gecko test source tree.
---
mobile/android/app/build.gradle | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle
index f18e933a03d2..7c515bbe65a7 100644
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -186,6 +186,11 @@ android {
androidTest {
java {
srcDir "${topsrcdir}/mobile/android/tests/browser/robocop/src"
+
+ if (!mozconfig.substs.MOZ_ANDROID_MLS_STUMBLER) {
+ exclude 'org/mozilla/gecko/tests/testStumbler*.java'
+ }
+
// Bug 1229149 tracks pushing this into a :services Gradle project.
srcDir "${topsrcdir}/mobile/android/services/src/androidTest/java"
srcDir "${topsrcdir}/mobile/android/tests/browser/junit3/src"
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Move GCM Push prefs within preprocessor guard
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit 75c6114151ff3f97595c51e75e07413d06da336a
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Sun Apr 15 14:19:38 2018 +0000
Bug 25741 - TBA: Move GCM Push prefs within preprocessor guard
Otherwise the preprocessor is sad because MOZ_ANDROID_GCM_SENDERID is
not defined. We don't need any of this, so we exclude it.
---
mobile/android/app/mobile.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js
index a737a1bda4ce..a11e1b033396 100644
--- a/mobile/android/app/mobile.js
+++ b/mobile/android/app/mobile.js
@@ -859,13 +859,13 @@ pref("dom.serviceWorkers.interception.enabled", true);
// click on mobile. This is to account for some devices being quite slow.
pref("dom.serviceWorkers.disable_open_click_delay", 5000);
+#ifdef MOZ_ANDROID_GCM
pref("dom.push.debug", false);
// The upstream autopush endpoint must have the Google API key corresponding to
// the App's sender ID; we bake this assumption directly into the URL.
pref("dom.push.serverURL", "https://updates.push.services.mozilla.com/v1/gcm/@MOZ_ANDROID_GCM_SENDERID@");
pref("dom.push.maxRecentMessageIDsPerSubscription", 0);
-#ifdef MOZ_ANDROID_GCM
pref("dom.push.enabled", true);
#endif
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Add mozconfig for Android and pertinent branding files.
by gk@torproject.org 27 Jul '18
by gk@torproject.org 27 Jul '18
27 Jul '18
commit ce3ad196040db4886e953cf13fc8d24fdf712d4b
Author: Matthew Finkel <Matthew.Finkel(a)gmail.com>
Date: Fri Feb 2 17:04:11 2018 +0000
Bug 25741 - TBA: Add mozconfig for Android and pertinent branding files.
Based on Orfox initial commits with fixup commits squashed and
rebranding Orfox -> Tor Browser
See original source from ce3fab3c90eb4a3892181ee36b037da04c785d99
https://github.com/guardianproject/tor-browser.git
Dropped symlinks
---
.mozconfig-android | 38 +++++++++++++++++++++
.../android/base/locales/en-US/android_strings.dtd | 2 +-
mobile/android/branding/torbrowser/configure.sh | 8 +++++
.../android/branding/torbrowser/content/about.png | Bin 0 -> 16858 bytes
.../branding/torbrowser/content/favicon32.png | Bin 0 -> 1797 bytes
.../branding/torbrowser/content/favicon64.png | Bin 0 -> 3993 bytes
mobile/android/branding/torbrowser/content/jar.mn | 9 +++++
.../android/branding/torbrowser/content/moz.build | 7 ++++
mobile/android/branding/torbrowser/ic_launcher.zip | Bin 0 -> 96525 bytes
mobile/android/branding/torbrowser/icon.png | Bin 0 -> 36456 bytes
.../branding/torbrowser/locales/Makefile.in | 5 +++
.../branding/torbrowser/locales/en-US/brand.dtd | 9 +++++
.../torbrowser/locales/en-US/brand.properties | 7 ++++
mobile/android/branding/torbrowser/locales/jar.mn | 11 ++++++
.../android/branding/torbrowser/locales/moz.build | 7 ++++
mobile/android/branding/torbrowser/moz.build | 7 ++++
.../branding/torbrowser/res/drawable-hdpi/icon.png | Bin 0 -> 3549 bytes
.../torbrowser/res/drawable-hdpi/large_icon.png | Bin 0 -> 9558 bytes
.../res/drawable-hdpi/launcher_widget.png | Bin 0 -> 14001 bytes
.../branding/torbrowser/res/drawable-mdpi/icon.png | Bin 0 -> 2577 bytes
.../torbrowser/res/drawable-mdpi/large_icon.png | Bin 0 -> 5878 bytes
.../res/drawable-mdpi/launcher_widget.png | Bin 0 -> 7661 bytes
.../res/drawable-nodpi/firstrun_welcome.png | Bin 0 -> 48391 bytes
.../torbrowser/res/drawable-xhdpi/icon.png | Bin 0 -> 5878 bytes
.../torbrowser/res/drawable-xhdpi/large_icon.png | Bin 0 -> 13553 bytes
.../res/drawable-xhdpi/launcher_widget.png | Bin 0 -> 21223 bytes
.../torbrowser/res/drawable-xhdpi/widget_icon.png | Bin 0 -> 4381 bytes
.../torbrowser/res/drawable-xxhdpi/icon.png | Bin 0 -> 9558 bytes
.../torbrowser/res/drawable-xxhdpi/large_icon.png | Bin 0 -> 13553 bytes
.../res/drawable-xxhdpi/launcher_widget.png | Bin 0 -> 32686 bytes
.../torbrowser/res/drawable-xxxhdpi/icon.png | Bin 0 -> 13553 bytes
mobile/android/branding/torbrowser/torbrowser.png | Bin 0 -> 55962 bytes
mobile/android/branding/torbrowser/torbrowser.xcf | Bin 0 -> 267775 bytes
.../mozharness/mozilla/testing/testbase.py | 7 ++--
34 files changed, 114 insertions(+), 3 deletions(-)
diff --git a/.mozconfig-android b/.mozconfig-android
new file mode 100755
index 000000000000..efcb1c5415c2
--- /dev/null
+++ b/.mozconfig-android
@@ -0,0 +1,38 @@
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-arm-linux-androideabi
+mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser"
+mk_add_options MOZILLA_OFFICIAL=1
+
+ac_add_options --enable-optimize
+ac_add_options --enable-official-branding
+
+# Android
+ac_add_options --enable-application=mobile/android
+ac_add_options --target=arm-linux-androideabi
+ac_add_options --with-android-ndk="$NDK_BASE" #Enter the android ndk location(ndk r15c)
+ac_add_options --with-android-sdk="$SDK_BASE" #Enter the android sdk location
+ac_add_options --with-branding=mobile/android/branding/torbrowser
+
+if [ -n "${TB_BUILD_WITH_DISTRIBUTION}" ]; then
+ ac_add_options --with-android-distribution-directory=@TOPSRCDIR@/mobile/android/torbrowser
+fi
+
+#enable ccache to set amount of cache assigned for build.
+ac_add_options --with-ccache
+
+ac_add_options --disable-tor-browser-update
+ac_add_options --disable-signmar
+ac_add_options --disable-verify-mar
+
+ac_add_options --enable-strip
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-rust-debug
+ac_add_options --disable-maintenance-service
+ac_add_options --disable-crashreporter
+ac_add_options --disable-webrtc
+
+ac_add_options --without-google-play-services
+
+# Let's make sure no preference is enabling either Adobe's or Google's CDM.
+ac_add_options --disable-eme
+#ac_add_options --disable-ctypes
diff --git a/mobile/android/base/locales/en-US/android_strings.dtd b/mobile/android/base/locales/en-US/android_strings.dtd
index 917ed534fc9f..b4e2296268c1 100644
--- a/mobile/android/base/locales/en-US/android_strings.dtd
+++ b/mobile/android/base/locales/en-US/android_strings.dtd
@@ -4,7 +4,7 @@
<!ENTITY firstrun_panel_title_welcome "Welcome">
<!ENTITY firstrun_urlbar_message2 "Thanks for choosing &brandShortName;">
-<!ENTITY firstrun_urlbar_subtext2 "A modern mobile browser from Mozilla, the non-profit committed to a free and open web.">
+<!ENTITY firstrun_urlbar_subtext2 "A modern mobile browser from The Tor Project, the non-profit committed to a free and open web.">
<!ENTITY firstrun_panel_title_privacy "Privacy">
<!ENTITY firstrun_privacy_message "Browse like no one\'s watching">
<!ENTITY firstrun_privacy_subtext "Private Browsing with Tracking Protection blocks trackers while you browse and won’t remember your history when you finish browsing.">
diff --git a/mobile/android/branding/torbrowser/configure.sh b/mobile/android/branding/torbrowser/configure.sh
new file mode 100644
index 000000000000..79b7e718cbfd
--- /dev/null
+++ b/mobile/android/branding/torbrowser/configure.sh
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ANDROID_PACKAGE_NAME=org.torproject.torbrowser
+MOZ_APP_DISPLAYNAME="Tor Browser for Android"
+MOZ_UPDATER=
+MOZ_ANDROID_ANR_REPORTER=
diff --git a/mobile/android/branding/torbrowser/content/about.png b/mobile/android/branding/torbrowser/content/about.png
new file mode 100644
index 000000000000..3819f6337a17
Binary files /dev/null and b/mobile/android/branding/torbrowser/content/about.png differ
diff --git a/mobile/android/branding/torbrowser/content/favicon32.png b/mobile/android/branding/torbrowser/content/favicon32.png
new file mode 100644
index 000000000000..0c414d6ca46b
Binary files /dev/null and b/mobile/android/branding/torbrowser/content/favicon32.png differ
diff --git a/mobile/android/branding/torbrowser/content/favicon64.png b/mobile/android/branding/torbrowser/content/favicon64.png
new file mode 100644
index 000000000000..bfc9e05538c6
Binary files /dev/null and b/mobile/android/branding/torbrowser/content/favicon64.png differ
diff --git a/mobile/android/branding/torbrowser/content/jar.mn b/mobile/android/branding/torbrowser/content/jar.mn
new file mode 100644
index 000000000000..f934ed5e4634
--- /dev/null
+++ b/mobile/android/branding/torbrowser/content/jar.mn
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+chrome.jar:
+% content branding %content/branding/
+ content/branding/about.png (about.png)
+ content/branding/favicon32.png (favicon32.png)
+ content/branding/favicon64.png (favicon64.png)
diff --git a/mobile/android/branding/torbrowser/content/moz.build b/mobile/android/branding/torbrowser/content/moz.build
new file mode 100644
index 000000000000..3bbe6729759c
--- /dev/null
+++ b/mobile/android/branding/torbrowser/content/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+JAR_MANIFESTS += ['jar.mn']
diff --git a/mobile/android/branding/torbrowser/ic_launcher.zip b/mobile/android/branding/torbrowser/ic_launcher.zip
new file mode 100644
index 000000000000..69601344519e
Binary files /dev/null and b/mobile/android/branding/torbrowser/ic_launcher.zip differ
diff --git a/mobile/android/branding/torbrowser/icon.png b/mobile/android/branding/torbrowser/icon.png
new file mode 100644
index 000000000000..6e0051b95a32
Binary files /dev/null and b/mobile/android/branding/torbrowser/icon.png differ
diff --git a/mobile/android/branding/torbrowser/locales/Makefile.in b/mobile/android/branding/torbrowser/locales/Makefile.in
new file mode 100644
index 000000000000..82f614ecea29
--- /dev/null
+++ b/mobile/android/branding/torbrowser/locales/Makefile.in
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+DEFINES += -DAB_CD=$(AB_CD)
diff --git a/mobile/android/branding/torbrowser/locales/en-US/brand.dtd b/mobile/android/branding/torbrowser/locales/en-US/brand.dtd
new file mode 100644
index 000000000000..01346be36a7c
--- /dev/null
+++ b/mobile/android/branding/torbrowser/locales/en-US/brand.dtd
@@ -0,0 +1,9 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+ - License, v. 2.0. If a copy of the MPL was not distributed with this
+ - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<!ENTITY brandShortName "Tor Browser">
+<!ENTITY brandFullName "Tor Browser for Android">
+<!ENTITY vendorShortName "The Tor Project">
+
+<!ENTITY brandPocket "">
diff --git a/mobile/android/branding/torbrowser/locales/en-US/brand.properties b/mobile/android/branding/torbrowser/locales/en-US/brand.properties
new file mode 100644
index 000000000000..3015d2376518
--- /dev/null
+++ b/mobile/android/branding/torbrowser/locales/en-US/brand.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#filter
+brandShortName=Tor Browser
+brandFullName=Tor Browser for Android
diff --git a/mobile/android/branding/torbrowser/locales/jar.mn b/mobile/android/branding/torbrowser/locales/jar.mn
new file mode 100644
index 000000000000..825dabbfb470
--- /dev/null
+++ b/mobile/android/branding/torbrowser/locales/jar.mn
@@ -0,0 +1,11 @@
+#filter substitution
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+@AB_CD@.jar:
+% locale branding @AB_CD@ %locale/branding/
+# Nightly branding only exists in en-US
+ locale/branding/brand.dtd (en-US/brand.dtd)
+* locale/branding/brand.properties (en-US/brand.properties)
diff --git a/mobile/android/branding/torbrowser/locales/moz.build b/mobile/android/branding/torbrowser/locales/moz.build
new file mode 100644
index 000000000000..3bbe6729759c
--- /dev/null
+++ b/mobile/android/branding/torbrowser/locales/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+JAR_MANIFESTS += ['jar.mn']
diff --git a/mobile/android/branding/torbrowser/moz.build b/mobile/android/branding/torbrowser/moz.build
new file mode 100644
index 000000000000..8f320daeae90
--- /dev/null
+++ b/mobile/android/branding/torbrowser/moz.build
@@ -0,0 +1,7 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+DIRS += ['content', 'locales']
diff --git a/mobile/android/branding/torbrowser/res/drawable-hdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-hdpi/icon.png
new file mode 100644
index 000000000000..2a1dc9aea83d
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-hdpi/icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-hdpi/large_icon.png b/mobile/android/branding/torbrowser/res/drawable-hdpi/large_icon.png
new file mode 100644
index 000000000000..946e03e42d0b
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-hdpi/large_icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-hdpi/launcher_widget.png b/mobile/android/branding/torbrowser/res/drawable-hdpi/launcher_widget.png
new file mode 100644
index 000000000000..4d7dc659a565
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-hdpi/launcher_widget.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-mdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-mdpi/icon.png
new file mode 100644
index 000000000000..78ace1c9b6d3
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-mdpi/icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-mdpi/large_icon.png b/mobile/android/branding/torbrowser/res/drawable-mdpi/large_icon.png
new file mode 100644
index 000000000000..8e45a100870b
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-mdpi/large_icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-mdpi/launcher_widget.png b/mobile/android/branding/torbrowser/res/drawable-mdpi/launcher_widget.png
new file mode 100644
index 000000000000..23d966478fdf
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-mdpi/launcher_widget.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-nodpi/firstrun_welcome.png b/mobile/android/branding/torbrowser/res/drawable-nodpi/firstrun_welcome.png
new file mode 100644
index 000000000000..e4e84187e891
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-nodpi/firstrun_welcome.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-xhdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-xhdpi/icon.png
new file mode 100644
index 000000000000..8e45a100870b
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xhdpi/icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-xhdpi/large_icon.png b/mobile/android/branding/torbrowser/res/drawable-xhdpi/large_icon.png
new file mode 100644
index 000000000000..d3a4929e7503
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xhdpi/large_icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-xhdpi/launcher_widget.png b/mobile/android/branding/torbrowser/res/drawable-xhdpi/launcher_widget.png
new file mode 100644
index 000000000000..beff04f1fc1d
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xhdpi/launcher_widget.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-xhdpi/widget_icon.png b/mobile/android/branding/torbrowser/res/drawable-xhdpi/widget_icon.png
new file mode 100644
index 000000000000..ef76eb342035
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xhdpi/widget_icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-xxhdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/icon.png
new file mode 100644
index 000000000000..946e03e42d0b
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-xxhdpi/large_icon.png b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/large_icon.png
new file mode 100644
index 000000000000..d3a4929e7503
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/large_icon.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-xxhdpi/launcher_widget.png b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/launcher_widget.png
new file mode 100644
index 000000000000..279af3fff38b
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/launcher_widget.png differ
diff --git a/mobile/android/branding/torbrowser/res/drawable-xxxhdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-xxxhdpi/icon.png
new file mode 100644
index 000000000000..d3a4929e7503
Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xxxhdpi/icon.png differ
diff --git a/mobile/android/branding/torbrowser/torbrowser.png b/mobile/android/branding/torbrowser/torbrowser.png
new file mode 100644
index 000000000000..6c6d906aa044
Binary files /dev/null and b/mobile/android/branding/torbrowser/torbrowser.png differ
diff --git a/mobile/android/branding/torbrowser/torbrowser.xcf b/mobile/android/branding/torbrowser/torbrowser.xcf
new file mode 100644
index 000000000000..2a8f829c3c34
Binary files /dev/null and b/mobile/android/branding/torbrowser/torbrowser.xcf differ
diff --git a/testing/mozharness/mozharness/mozilla/testing/testbase.py b/testing/mozharness/mozharness/mozilla/testing/testbase.py
index 558c629363f8..1e5c9507a2b3 100755
--- a/testing/mozharness/mozharness/mozilla/testing/testbase.py
+++ b/testing/mozharness/mozharness/mozilla/testing/testbase.py
@@ -566,8 +566,11 @@ You can set this by:
self._download_test_packages(suite_categories, extract_dirs)
self._download_installer()
- if self.config.get('download_symbols'):
- self._download_and_extract_symbols()
+ # When using --disable-crashreporter the symbols file
+ # "target.crashreporter-symbols.zip" won't be created,
+ # so we shouldn't try downloading it (and fail).
+ #if self.config.get('download_symbols'):
+ # self._download_and_extract_symbols()
# create_virtualenv is in VirtualenvMixin.
1
0

[tor-browser-build/master] Bug 26949: Use GitHub repository for STIX
by gk@torproject.org 26 Jul '18
by gk@torproject.org 26 Jul '18
26 Jul '18
commit cab964b173814a77f25bfd7ffa8d9adeff4d53fe
Author: Sukhbir Singh <sukhbir(a)torproject.org>
Date: Thu Jul 26 12:27:13 2018 -0400
Bug 26949: Use GitHub repository for STIX
STIX moved away from SourceForge to GitHub breaking download during Tor
Browser build; see
https://lists.torproject.org/pipermail/tor-dev/2018-July/013357.html
---
projects/fonts/build | 4 ++--
projects/fonts/config | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/projects/fonts/build b/projects/fonts/build
index 9b33da9..a1e066b 100644
--- a/projects/fonts/build
+++ b/projects/fonts/build
@@ -13,8 +13,8 @@ mkdir -p $distdir
END; %]
[% IF c("var/linux") || c("var/osx") %]
- unzip -o STIXv1.1.1-latex.zip -d STIX
- cp "STIX/Fonts/fonts/opentype/public/stix/STIXMath-Regular.otf" $distdir/
+ unzip -o 2.0.0.zip -d STIX
+ cp "STIX/stixfonts-2.0.0/archive/STIXv1.1.1/Fonts/STIX-Word/STIXMath-Regular.otf" $distdir/
[% END %]
[% IF c("var/linux") %]
cp NotoEmoji-Regular.ttf $distdir/
diff --git a/projects/fonts/config b/projects/fonts/config
index 1547403..9d11d2c 100644
--- a/projects/fonts/config
+++ b/projects/fonts/config
@@ -102,6 +102,6 @@ input_files:
- URL: https://github.com/googlei18n/noto-cjk/raw/f36eda03dfa5582a6d49abbfb5c83d02…
sha256sum: e6b82f7d3dab605c428161124ceb5e169cde93de632d800297b167cdd88e7baa
enable: '[% c("var/linux") %]'
- - URL: https://downloads.sourceforge.net/stixfonts/STIXv1.1.1-latex.zip
- sha256sum: e3b0f712e2644438eee2d0dcd2b10b2d54f1b972039de95b2f8e800bae1adbd8
+ - URL: https://github.com/stipub/stixfonts/archive/2.0.0.zip
+ sha256sum: 4327a16797dabebedce28a9075671730e22c7f74831b24b1fb91e27faec5a235
enable: '[% c("var/linux") || c("var/osx") %]'
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] fixup! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 25 Jul '18
by gk@torproject.org 25 Jul '18
25 Jul '18
commit 83eaa0098095411758e3042ffccedbc120c391f9
Author: Sukhbir Singh <sukhbir(a)torproject.org>
Date: Tue Jul 24 12:11:09 2018 -0400
fixup! TB4: Tor Browser's Firefox preference overrides.
As part of the fix for #9145, we no longer need to set these preferences
to disable hardware acceleration.
---
browser/app/profile/000-tor-browser.js | 5 -----
1 file changed, 5 deletions(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index 49f5909b9d5d..1ab4dd39a13c 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -317,11 +317,6 @@ pref("browser.search.geoSpecificDefaults", false);
pref("browser.search.order.extra.1", "DuckDuckGo");
pref("browser.search.order.extra.2", "YouTube");
-// Hacks/workarounds: Direct2D seems to crash w/ lots of video cards w/ MinGW?
-// Nvida cards also experience crashes without the second pref set to disabled
-pref("gfx.direct2d.disabled", true);
-pref("layers.acceleration.disabled", true);
-
// Audio_data is deprecated in future releases, but still present
// in FF24. This is a dangerous combination (spotted by iSec)
pref("media.audio_data.enabled", false);
1
0

[tor-browser-build/master] Bug 9145: Tor Browser for Windows is broken with hardware acceleration
by gk@torproject.org 25 Jul '18
by gk@torproject.org 25 Jul '18
25 Jul '18
commit 11e0e597480bbbd03410431107b26b0492c4fd83
Author: Sukhbir Singh <sukhbir(a)torproject.org>
Date: Sat Jun 23 11:21:44 2018 -0400
Bug 9145: Tor Browser for Windows is broken with hardware acceleration
We now build with -DWIDL_EXPLICIT_AGGREGATE_RETURNS on Windows to fix
this issue; see https://bugzilla.mozilla.org/show_bug.cgi?id=1411401 for
more information.
---
projects/firefox/mozconfig-windows-i686 | 3 +++
projects/firefox/mozconfig-windows-x86_64 | 3 +++
2 files changed, 6 insertions(+)
diff --git a/projects/firefox/mozconfig-windows-i686 b/projects/firefox/mozconfig-windows-i686
index daeaed4..a5e15f1 100644
--- a/projects/firefox/mozconfig-windows-i686
+++ b/projects/firefox/mozconfig-windows-i686
@@ -1,5 +1,8 @@
CROSS_COMPILE=1
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1411401
+export CXXFLAGS="-DWIDL_EXPLICIT_AGGREGATE_RETURNS"
+
ac_add_options --enable-application=browser
ac_add_options --target=i686-w64-mingw32
ac_add_options --with-toolchain-prefix=i686-w64-mingw32-
diff --git a/projects/firefox/mozconfig-windows-x86_64 b/projects/firefox/mozconfig-windows-x86_64
index 568d88d..e7f857d 100644
--- a/projects/firefox/mozconfig-windows-x86_64
+++ b/projects/firefox/mozconfig-windows-x86_64
@@ -1,5 +1,8 @@
CROSS_COMPILE=1
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1411401
+export CXXFLAGS="-DWIDL_EXPLICIT_AGGREGATE_RETURNS"
+
ac_add_options --enable-application=browser
ac_add_options --target=x86_64-w64-mingw32
ac_add_options --with-toolchain-prefix=x86_64-w64-mingw32-
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] squash! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 25 Jul '18
by gk@torproject.org 25 Jul '18
25 Jul '18
commit 51bc401c59cdaa7bf550a8ee955a27253285995e
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Thu Jun 28 11:20:05 2018 -0700
squash! TB4: Tor Browser's Firefox preference overrides.
Bug 26237: Clean up toolbar for ESR60-based Tor Browser.
---
browser/app/profile/000-tor-browser.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index 0981831a5c68..49f5909b9d5d 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -302,7 +302,7 @@ pref("extensions.getAddons.showPane", false);
pref("extensions.legacy.exceptions", "{972ce4c6-7e08-4474-a285-3208198ce6fd},torbutton@torproject.org,tor-launcher@torproject.org");
// Toolbar layout
-pref("browser.uiCustomization.state", "{\"placements\":{\"PanelUI-contents\":[\"edit-controls\",\"zoom-controls\",\"new-window-button\",\"save-page-button\",\"print-button\",\"bookmarks-menu-button\",\"history-panelmenu\",\"find-button\",\"preferences-button\",\"add-ons-button\",\"developer-button\",\"https-everywhere-button\",\"downloads-button\"],\"addon-bar\":[\"addonbar-closebutton\",\"status-bar\"],\"PersonalToolbar\":[\"personal-bookmarks\"],\"nav-bar\":[\"noscript-tbb\",\"torbutton-button\",\"urlbar-container\",\"search-container\",\"webrtc-status-button\",\"loop-button\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"toolbar-menubar\":[\"menubar-items\"]},\"seen\":[],\"dirtyAreaCache\":[\"PersonalToolbar\",\"nav-bar\",\"TabsToolbar\",\"toolbar-menubar\",\"PanelUI-contents\",\"addon-bar\"],\"currentVersion\":4,\"newElementCount\":0}");
+pref("browser.uiCustomization.state", "{\"placements\":{\"widget-overflow-fixed-list\":[],\"PersonalToolbar\":[],\"nav-bar\":[\"torbutton-button\",\"back-button\",\"forward-button\",\"stop-reload-button\",\"urlbar-container\",\"downloads-button\",\"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action\"],\"TabsToolbar\":[\"tabbrowser-tabs\",\"new-tab-button\",\"alltabs-button\"],\"toolbar-menubar\":[\"menubar-items\"],\"PanelUI-contents\":[\"home-button\",\"edit-controls\",\"zoom-controls\",\"new-window-button\",\"save-page-button\",\"print-button\",\"bookmarks-menu-button\",\"history-panelmenu\",\"find-button\",\"preferences-button\",\"add-ons-button\",\"developer-button\",\"https-everywhere-button\"],\"addon-bar\":[\"addonbar-closebutton\",\"status-bar\"]},\"seen\":[\"developer-button\",\"https-everywhere_eff_org-browser-action\",\"_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action\"],\"dirtyAreaCache\":[\"PersonalToolbar\",\"nav-bar\",\"TabsToolbar\",\"toolbar-menubar\"],\"cur
rentVersion\":14,\"newElementCount\":1}");
// Putting the search engine prefs into this file to fix #11236.
// Default search engine
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] fixup! Bug 2176: Rebrand Firefox to TorBrowser
by gk@torproject.org 25 Jul '18
by gk@torproject.org 25 Jul '18
25 Jul '18
commit 095707f11202f4fd763853f446b0b0b3988da55c
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Tue Jun 26 23:41:31 2018 -0700
fixup! Bug 2176: Rebrand Firefox to TorBrowser
---
browser/branding/official/default128.png | Bin 12667 -> 20445 bytes
browser/branding/official/default16.png | Bin 988 -> 1413 bytes
browser/branding/official/default22.png | Bin 1262 -> 1740 bytes
browser/branding/official/default24.png | Bin 1430 -> 1969 bytes
browser/branding/official/default256.png | Bin 29606 -> 48401 bytes
browser/branding/official/default32.png | Bin 2145 -> 2907 bytes
browser/branding/official/default48.png | Bin 5402 -> 5190 bytes
browser/branding/official/default64.png | Bin 5168 -> 7805 bytes
browser/branding/official/firefox64.ico | Bin 38630 -> 75112 bytes
9 files changed, 0 insertions(+), 0 deletions(-)
diff --git a/browser/branding/official/default128.png b/browser/branding/official/default128.png
index 84a9b6ff57c0..7113b0ae15cf 100644
Binary files a/browser/branding/official/default128.png and b/browser/branding/official/default128.png differ
diff --git a/browser/branding/official/default16.png b/browser/branding/official/default16.png
index 59e34b3157d0..9a6f283b8f05 100644
Binary files a/browser/branding/official/default16.png and b/browser/branding/official/default16.png differ
diff --git a/browser/branding/official/default22.png b/browser/branding/official/default22.png
index be56b88fe5e9..a9ef81c47df0 100644
Binary files a/browser/branding/official/default22.png and b/browser/branding/official/default22.png differ
diff --git a/browser/branding/official/default24.png b/browser/branding/official/default24.png
index 61c067fadf09..fdbbae3fdc0d 100644
Binary files a/browser/branding/official/default24.png and b/browser/branding/official/default24.png differ
diff --git a/browser/branding/official/default256.png b/browser/branding/official/default256.png
index 0a73b8061245..1682f54b98fb 100644
Binary files a/browser/branding/official/default256.png and b/browser/branding/official/default256.png differ
diff --git a/browser/branding/official/default32.png b/browser/branding/official/default32.png
index f4701edab65d..494951ce50d6 100644
Binary files a/browser/branding/official/default32.png and b/browser/branding/official/default32.png differ
diff --git a/browser/branding/official/default48.png b/browser/branding/official/default48.png
index 5f445aea1a19..1b78e3b41967 100644
Binary files a/browser/branding/official/default48.png and b/browser/branding/official/default48.png differ
diff --git a/browser/branding/official/default64.png b/browser/branding/official/default64.png
index bc68d51b3f95..29cca7e1c881 100644
Binary files a/browser/branding/official/default64.png and b/browser/branding/official/default64.png differ
diff --git a/browser/branding/official/firefox64.ico b/browser/branding/official/firefox64.ico
index 4db9e72c7589..01fb0efda56d 100644
Binary files a/browser/branding/official/firefox64.ico and b/browser/branding/official/firefox64.ico differ
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 26321: New Circuit and New Identity menu items
by gk@torproject.org 25 Jul '18
by gk@torproject.org 25 Jul '18
25 Jul '18
commit 9eef59c878e596b64efff9eafb0cc4bcc38f680c
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Fri Jun 22 23:56:44 2018 -0700
Bug 26321: New Circuit and New Identity menu items
Placeholder menu items whose labels and commands
are overridden by torbutton patch 26321.
---
browser/base/content/browser-menubar.inc | 7 +++++++
browser/components/customizableui/content/panelUI.inc.xul | 8 ++++++++
2 files changed, 15 insertions(+)
diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc
index bbae987196c7..f10fc2f4072d 100644
--- a/browser/base/content/browser-menubar.inc
+++ b/browser/base/content/browser-menubar.inc
@@ -34,6 +34,13 @@
accesskey="&newPrivateWindow.accesskey;"
command="Tools:PrivateBrowsing"
key="key_privatebrowsing"/>
+ <menuseparator/>
+ <!-- To be modified by torbutton 26321 -->
+ <menuitem id="menu_newIdentity"
+ label="New Identity"/>
+ <menuitem id="menu_newCircuit"
+ label="New Tor Circuit for this Site"/>
+ <menuseparator/>
#ifdef MAC_NON_BROWSER_WINDOW
<menuitem id="menu_openLocation"
label="&openLocationCmd.label;"
diff --git a/browser/components/customizableui/content/panelUI.inc.xul b/browser/components/customizableui/content/panelUI.inc.xul
index e44330108bb9..3aab2fd2587d 100644
--- a/browser/components/customizableui/content/panelUI.inc.xul
+++ b/browser/components/customizableui/content/panelUI.inc.xul
@@ -217,6 +217,14 @@
class="subviewbutton subviewbutton-iconic"
command="Browser:RestoreLastSession"/>
<toolbarseparator/>
+ <!-- To be modified by torbutton #26321 -->
+ <toolbarbutton id="appMenuNewIdentity"
+ label="New Identity"
+ class="subviewbutton subviewbutton-iconic"/>
+ <toolbarbutton id="appMenuNewCircuit"
+ label="New Tor Circuit for this Site"
+ class="subviewbutton subviewbutton-iconic"/>
+ <toolbarseparator/>
<toolbaritem id="appMenu-zoom-controls" class="toolbaritem-combined-buttons" closemenu="none">
<!-- Use a spacer, because panel sizing code gets confused when using CSS methods. -->
<spacer class="before-label"/>
1
0

[torbutton/master] Bug 26321: Move 'New Identity', 'New Circuit' to File, hamburger menus
by gk@torproject.org 25 Jul '18
by gk@torproject.org 25 Jul '18
25 Jul '18
commit 25786da78e5646ddbccaee769a9356e0b4f39e42
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Fri Jun 22 14:47:25 2018 -0700
Bug 26321: Move 'New Identity', 'New Circuit' to File, hamburger menus
This patch moves the menu items from the torbutton to the menubar
and the app menu. Needs the 26321 patch in tor-browser.git.
Also hides the "New Private Window" and "Restore Previous Session"
items from the app menu.
(Design by Pearl Crescent and Antonela Debiasi.)
---
src/chrome.manifest | 1 +
src/chrome/content/menu-items-overlay.xul | 29 +++++++++++++++++++++++++++++
src/chrome/content/popup.xul | 13 -------------
src/chrome/content/torbutton.js | 12 ++++++++----
src/chrome/skin/torbutton.css | 8 ++++++++
5 files changed, 46 insertions(+), 17 deletions(-)
diff --git a/src/chrome.manifest b/src/chrome.manifest
index 7b57d399..18c5f5b9 100644
--- a/src/chrome.manifest
+++ b/src/chrome.manifest
@@ -14,6 +14,7 @@ override chrome://branding/locale/brand.properties chrome://torbutton/locale/bra
overlay chrome://browser/content/aboutDialog.xul chrome://torbutton/content/aboutDialog.xul
# UI customization
+overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-items-overlay.xul
overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-overlay.xul
overlay about:preferences chrome://torbutton/content/privacy-prefs-overlay.xul
overlay chrome://browser/content/browser.xul chrome://torbutton/content/tor-circuit-display.xul
diff --git a/src/chrome/content/menu-items-overlay.xul b/src/chrome/content/menu-items-overlay.xul
new file mode 100644
index 00000000..274c9c71
--- /dev/null
+++ b/src/chrome/content/menu-items-overlay.xul
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?> <!-- -*- Mode: HTML -*- -->
+
+<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
+
+<overlay id="torbutton-menu-overlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <menuitem id="menu_newIdentity"
+ accesskey="&torbutton.context_menu.new_identity_key;"
+ key="torbutton-new-identity-key"
+ label="&torbutton.context_menu.new_identity;"
+ oncommand="torbutton_new_identity();"/>
+ <menuitem id="menu_newCircuit"
+ accesskey="&torbutton.context_menu.new_circuit_key;"
+ key="torbutton-new-circuit-key"
+ label="&torbutton.context_menu.new_circuit;"
+ oncommand="torbutton_new_circuit();"/>
+ <toolbarbutton id="appMenuNewIdentity"
+ key="torbutton-new-identity-key"
+ label="&torbutton.context_menu.new_identity;"
+ oncommand="torbutton_new_identity();"/>
+ <toolbarbutton id="appMenuNewCircuit"
+ key="torbutton-new-circuit-key"
+ label="&torbutton.context_menu.new_circuit;"
+ oncommand="torbutton_new_circuit();"/>
+ <toolbarbutton id="appMenu-private-window-button"
+ hidden="true"/>
+ <toolbarbutton id="appMenuRestoreLastSession"
+ hidden="true"/>
+</overlay>
diff --git a/src/chrome/content/popup.xul b/src/chrome/content/popup.xul
index b088a829..b4191e30 100644
--- a/src/chrome/content/popup.xul
+++ b/src/chrome/content/popup.xul
@@ -15,19 +15,6 @@
anchor="torbutton-button" position="after_start" >
<hbox align="start">
<vbox>
- <menuitem id="torbutton-new-identity"
- label="&torbutton.context_menu.new_identity;"
- accesskey="&torbutton.context_menu.new_identity_key;"
- key="torbutton-new-identity-key"
- insertafter="context-stop"
- oncommand="torbutton_new_identity()"/>
- <menuitem id="torbutton-new-circuit"
- label="&torbutton.context_menu.new_circuit;"
- accesskey="&torbutton.context_menu.new_circuit_key;"
- key="torbutton-new-circuit-key"
- insertafter="context-stop"
- oncommand="torbutton_new_circuit()"/>
- <menuseparator/>
<menuitem id="torbutton-cookie-protector"
label="&torbutton.context_menu.cookieProtections;"
accesskey="&torbutton.context_menu.cookieProtections.key;"
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 885a141a..18895927 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -949,7 +949,8 @@ function torbutton_new_identity() {
try {
// Make sure that we can only click once on New Identiy to avoid race
// conditions leading to failures (see bug 11783 for an example).
- document.getElementById("torbutton-new-identity").disabled = true;
+ document.getElementById("menu_newIdentity").disabled = true;
+ document.getElementById("appMenuNewIdentity").disabled = true;
let shouldConfirm = m_tb_prefs.getBoolPref("extensions.torbutton.confirm_newnym");
@@ -972,7 +973,8 @@ function torbutton_new_identity() {
if (confirmed) {
torbutton_do_new_identity();
} else {
- document.getElementById("torbutton-new-identity").disabled = false;
+ document.getElementById("menu_newIdentity").disabled = false;
+ document.getElementById("appMenuNewIdentity").disabled = false;
}
} else {
torbutton_do_new_identity();
@@ -980,7 +982,8 @@ function torbutton_new_identity() {
} catch(e) {
// If something went wrong make sure we have the New Identity button
// enabled (again).
- document.getElementById("torbutton-new-identity").disabled = false;
+ document.getElementById("menu_newIdentity").disabled = false;
+ document.getElementById("appMenuNewIdentity").disabled = false;
torbutton_log(5, "Unexpected error on new identity: "+e);
window.alert("Torbutton: Unexpected error on new identity: "+e);
}
@@ -1769,7 +1772,8 @@ function torbutton_check_protections()
document.getElementById("torbutton-cookie-protector").hidden = m_tb_prefs.getBoolPref("browser.privatebrowsing.autostart");
if (!m_tb_control_pass || (!m_tb_control_ipc_file && !m_tb_control_port)) {
- document.getElementById("torbutton-new-identity").disabled = true;
+ document.getElementById("menu_newIdentity").disabled = true;
+ document.getElementById("appMenuNewIdentity").disabled = true;
}
if (!m_tb_tbb && m_tb_prefs.getBoolPref("extensions.torbutton.prompt_torbrowser")) {
diff --git a/src/chrome/skin/torbutton.css b/src/chrome/skin/torbutton.css
index 14166b73..cf90ae6d 100644
--- a/src/chrome/skin/torbutton.css
+++ b/src/chrome/skin/torbutton.css
@@ -59,3 +59,11 @@ svg#tor-circuit circle.node-circle {
stroke-width: 2px;
fill: white;
}
+
+#appMenuNewIdentity {
+ list-style-image: url("chrome://browser/skin/reload.svg");
+}
+
+#appMenuNewCircuit {
+ list-style-image: url("chrome://torbutton/skin/relay.svg");
+}
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 26353: Prevent speculative connect that violated FPI.
by gk@torproject.org 23 Jul '18
by gk@torproject.org 23 Jul '18
23 Jul '18
commit 1b1c4e4143d57a72e02464ac3bc343bd6d57ec9e
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Sat Jul 14 08:50:55 2018 -0700
Bug 26353: Prevent speculative connect that violated FPI.
Connections were observed in the catch-all circuit when
the user entered an https or http URL in the URL bar, or
typed a search term.
---
toolkit/components/remotebrowserutils/RemoteWebNavigation.js | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/toolkit/components/remotebrowserutils/RemoteWebNavigation.js b/toolkit/components/remotebrowserutils/RemoteWebNavigation.js
index 9ca238359c0f..8f256f41953d 100644
--- a/toolkit/components/remotebrowserutils/RemoteWebNavigation.js
+++ b/toolkit/components/remotebrowserutils/RemoteWebNavigation.js
@@ -72,6 +72,10 @@ RemoteWebNavigation.prototype = {
},
loadURIWithOptions(aURI, aLoadFlags, aReferrer, aReferrerPolicy,
aPostData, aHeaders, aBaseURI, aTriggeringPrincipal) {
+/*******************************************************************************
+ TOR BROWSER: Disable the following speculative connect until
+ we can make it properly obey first-party isolation.
+
// We know the url is going to be loaded, let's start requesting network
// connection before the content process asks.
// Note that we might have already setup the speculative connection in some
@@ -95,6 +99,7 @@ RemoteWebNavigation.prototype = {
// reason (such as failing to parse the URI), just ignore it.
}
}
+*******************************************************************************/
this._sendMessage("WebNavigation:LoadURI", {
uri: aURI,
flags: aLoadFlags,
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] Revert "Fix MAR generation bashism"
by gk@torproject.org 23 Jul '18
by gk@torproject.org 23 Jul '18
23 Jul '18
commit d94df634a18daca48ce92bf7ddff306a2b072f83
Author: Georg Koppen <gk(a)torproject.org>
Date: Mon Jul 23 09:20:04 2018 +0000
Revert "Fix MAR generation bashism"
This reverts commit 9ebb4cfb3d88543eac674bef8b72607cf29ce2d0.
---
tools/update-packaging/common.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/update-packaging/common.sh b/tools/update-packaging/common.sh
index 79548dd4aa19..388d6b186367 100755
--- a/tools/update-packaging/common.sh
+++ b/tools/update-packaging/common.sh
@@ -218,7 +218,7 @@ list_files() {
continue;
fi
eval "${1}[$count]=\"$file\""
- count=$((count + 1))
+ (( count++ ))
done <"${tmpfile}"
rm -f "${tmpfile}"
}
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] fixup! Bug 4234: Use the Firefox Update Process for Tor Browser.
by gk@torproject.org 23 Jul '18
by gk@torproject.org 23 Jul '18
23 Jul '18
commit 3ea5140e0bb662dee230a99c8fceaadb51e93ae1
Author: Sukhbir Singh <sukhbir(a)torproject.org>
Date: Wed Jun 27 09:52:42 2018 -0400
fixup! Bug 4234: Use the Firefox Update Process for Tor Browser.
Part of the fix for #26216.
---
tools/update-packaging/make_full_update.sh | 2 --
tools/update-packaging/make_incremental_update.sh | 2 --
2 files changed, 4 deletions(-)
diff --git a/tools/update-packaging/make_full_update.sh b/tools/update-packaging/make_full_update.sh
index 9faa067da528..97e5fe221e40 100755
--- a/tools/update-packaging/make_full_update.sh
+++ b/tools/update-packaging/make_full_update.sh
@@ -8,8 +8,6 @@
# Author: Darin Fisher
#
-set -e
-
# shellcheck disable=SC1090
. "$(dirname "$0")/common.sh"
diff --git a/tools/update-packaging/make_incremental_update.sh b/tools/update-packaging/make_incremental_update.sh
index 263ec5aa4a56..822ded71d949 100755
--- a/tools/update-packaging/make_incremental_update.sh
+++ b/tools/update-packaging/make_incremental_update.sh
@@ -8,8 +8,6 @@
# Author: Darin Fisher
#
-set -e
-
# shellcheck disable=SC1090
. "$(dirname "$0")/common.sh"
1
0

[tor-browser/tor-browser-60.1.0esr-8.0-1] squash! TB4: Tor Browser's Firefox preference overrides.
by gk@torproject.org 23 Jul '18
by gk@torproject.org 23 Jul '18
23 Jul '18
commit 3f03e30163c2117f5849a7fdc0f3b41b094eb8bd
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Sat Jul 14 23:37:06 2018 -0700
squash! TB4: Tor Browser's Firefox preference overrides.
Bug 26603: Remove obsolete http pipelining prefs
---
browser/app/profile/000-tor-browser.js | 5 -----
1 file changed, 5 deletions(-)
diff --git a/browser/app/profile/000-tor-browser.js b/browser/app/profile/000-tor-browser.js
index c3d83adf7d43..0981831a5c68 100644
--- a/browser/app/profile/000-tor-browser.js
+++ b/browser/app/profile/000-tor-browser.js
@@ -267,11 +267,6 @@ pref("javascript.options.asmjs", false);
pref("gfx.font_rendering.graphite.enabled", false);
// Network and performance
-pref("network.http.pipelining", true);
-pref("network.http.pipelining.aggressive", true);
-pref("network.http.pipelining.maxrequests", 12);
-pref("network.http.pipelining.ssl", true);
-pref("network.http.proxy.pipelining", true);
pref("security.ssl.enable_false_start", true);
pref("network.http.connection-retry-timeout", 0);
pref("network.http.max-persistent-connections-per-proxy", 256);
1
0

[tor-browser-build/master] Bug 26569: redirect pre-8.0a9 alpha users to a separate update directory
by gk@torproject.org 19 Jul '18
by gk@torproject.org 19 Jul '18
19 Jul '18
commit 9756279736cde0363abc97f5e0eced6ffb627d37
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Wed Jul 11 12:47:32 2018 +0200
Bug 26569: redirect pre-8.0a9 alpha users to a separate update directory
---
projects/release/update_responses_config.yml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/projects/release/update_responses_config.yml b/projects/release/update_responses_config.yml
index 92c2203..3f7ff41 100644
--- a/projects/release/update_responses_config.yml
+++ b/projects/release/update_responses_config.yml
@@ -47,3 +47,8 @@ versions:
minSupportedOSVersion: 6.1
win64:
minSupportedOSVersion: 6.1
+htaccess_rewrite_rules:
+ alpha: |
+ # bug 26569: Redirect pre-8.0a9 alpha users to a separate update directory
+ RewriteRule ^[^/]+/8\.0a[12345678]/.* https://aus1.torproject.org/torbrowser/update_pre8.0a9/alpha/$0 [last]
+ RewriteRule ^[^/]+/[4567]\..*/.* https://aus1.torproject.org/torbrowser/update_pre8.0a9/alpha/$0 [last]
1
0

[tor-browser-build/master] Merge remote-tracking branch 'boklm/bug_26569_v2'
by gk@torproject.org 19 Jul '18
by gk@torproject.org 19 Jul '18
19 Jul '18
commit fd7ecf819ad87e948de62b7328472a1857748bde
Merge: ed17557 9756279
Author: Georg Koppen <gk(a)torproject.org>
Date: Thu Jul 19 09:43:04 2018 +0000
Merge remote-tracking branch 'boklm/bug_26569_v2'
projects/release/update_responses_config.yml | 5 +++++
1 file changed, 5 insertions(+)
1
0

[tor-browser-build/master] Bug 26477: Make meek extension compatible with ESR 60
by gk@torproject.org 18 Jul '18
by gk@torproject.org 18 Jul '18
18 Jul '18
commit ed1755732939ec95b14b501eb82c799b7756ef2a
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Jul 18 19:35:26 2018 +0000
Bug 26477: Make meek extension compatible with ESR 60
---
projects/meek/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/meek/config b/projects/meek/config
index f58fbd1..7d0fd2d 100644
--- a/projects/meek/config
+++ b/projects/meek/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 0.29
+version: 0.31
git_url: https://git.torproject.org/pluggable-transports/meek.git
git_hash: '[% c("version") %]'
tag_gpg_id: 1
1
0

[tor-browser-build/master] Bug 26795: Bump snowflake to 6077141f4a for #25600.
by gk@torproject.org 18 Jul '18
by gk@torproject.org 18 Jul '18
18 Jul '18
commit f64781d4b36aa8cc6e222b1c028853e28f6089fd
Author: David Fifield <david(a)bamsoftware.com>
Date: Sun Jul 15 17:21:47 2018 -0700
Bug 26795: Bump snowflake to 6077141f4a for #25600.
This works around a hang in the client that occurred once it had logged
a certain amount of information to its stderr. Now, if not logging to a
file, snowflake-client will log nothing rather than writing to stderr.
The corresponding tor bug is #26360.
---
projects/snowflake/config | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/snowflake/config b/projects/snowflake/config
index 8e3296c..c9a84b3 100644
--- a/projects/snowflake/config
+++ b/projects/snowflake/config
@@ -1,7 +1,7 @@
# vim: filetype=yaml sw=2
version: '[% c("abbrev") %]'
git_url: https://git.torproject.org/pluggable-transports/snowflake.git
-git_hash: 1114acbcb4acb82174b293983ced8afcaf9e2a93
+git_hash: 6077141f4affdab9b7ce97a9b1c6859825eaaa29
filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.gz'
var:
1
0

[torbutton/master] Bug 26590: Use new svg.disabled pref in security slider
by gk@torproject.org 17 Jul '18
by gk@torproject.org 17 Jul '18
17 Jul '18
commit 54c64d2ea862873a42e6049e2e1aa2bc4a5b2b27
Author: Arthur Edelstein <arthuredelstein(a)gmail.com>
Date: Mon Jul 16 10:28:09 2018 -0700
Bug 26590: Use new svg.disabled pref in security slider
Updates from Tor Browser's old "svg.in-content.enabled" pref
to Firefox's new built-in "svg.disabled".
---
src/modules/security-prefs.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/modules/security-prefs.js b/src/modules/security-prefs.js
index d269a1fc..fa97b70d 100644
--- a/src/modules/security-prefs.js
+++ b/src/modules/security-prefs.js
@@ -27,7 +27,7 @@ const kSecuritySettings = {
"media.webaudio.enabled" : [, false, false, false, true ],
"mathml.disabled" : [, true, true, true, false],
"gfx.font_rendering.opentype_svg.enabled" : [, false, false, false, true ],
- "svg.in-content.enabled" : [, false, true, true, true ],
+ "svg.disabled" : [, true, false, false, false],
};
// The Security Settings prefs in question.
1
0

[tor-browser-build/master] Bug 26355: update tbb-windows-installer to check for Windows7+
by boklm@torproject.org 13 Jul '18
by boklm@torproject.org 13 Jul '18
13 Jul '18
commit 7903f5828c835e52722101a83450bbeb29fc2007
Author: Nicolas Vigier <boklm(a)torproject.org>
Date: Fri Jul 13 09:59:14 2018 +0200
Bug 26355: update tbb-windows-installer to check for Windows7+
We also update keyring/tbb-windows-installer.gpg as Moritz is using a
new key for signing the tag:
7A3D AD44 08A0 009B 4DE9 C855 858E E1C3 B8A4 568D
---
keyring/tbb-windows-installer.gpg | Bin 107882 -> 7231 bytes
projects/tbb-windows-installer/config | 2 +-
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/keyring/tbb-windows-installer.gpg b/keyring/tbb-windows-installer.gpg
index 6923786..343c69e 100644
Binary files a/keyring/tbb-windows-installer.gpg and b/keyring/tbb-windows-installer.gpg differ
diff --git a/projects/tbb-windows-installer/config b/projects/tbb-windows-installer/config
index 0de570e..57c4fda 100644
--- a/projects/tbb-windows-installer/config
+++ b/projects/tbb-windows-installer/config
@@ -1,5 +1,5 @@
# vim: filetype=yaml sw=2
-version: 0.3.1
+version: 0.4
git_url: https://github.com/moba/tbb-windows-installer.git
git_hash: 'v[% c("version") %]'
tag_gpg_id: 1
1
0