[tor-commits] [tor-messenger-build/master] Merge our updater patches

arlo at torproject.org arlo at torproject.org
Mon Oct 10 19:41:22 UTC 2016


commit 954c8202f2f5d95b33893a269d8bc2d636330202
Author: Arlo Breault <arlolra at gmail.com>
Date:   Sun Oct 9 13:52:04 2016 -0700

    Merge our updater patches
---
 ...14716-HTTP-Basic-Authentication-prompt-on.patch |   2 +-
 projects/mozilla/0002-Block-flash-too.patch        |  33 -
 .../mozilla/0002-Trac-16475-Block-flash-too.patch  |  33 +
 ...Avoid-the-need-to-download-the-font-Osaka.patch |  65 ++
 .../0003-s-TorBrowser-Data-TorMessenger-Data.patch |  28 -
 ...-Don-t-attempt-to-look-up-a-single-face-f.patch |  65 --
 ...Update-OS-X-toolchain-to-work-with-ESR-45.patch | 123 ++++
 ...ic-ops-code-to-be-more-compatible-with-th.patch | 123 ----
 projects/mozilla/0005-OSX-package-as-tar.bz2.patch |  25 +
 projects/mozilla/0006-OSX-package-as-tar.bz2.patch |  25 -
 projects/mozilla/0006-Updater-fixups-for-TM.patch  | 710 +++++++++++++++++++++
 projects/mozilla/0007-Remove-updater-links.patch   |  71 ---
 projects/mozilla/aboutTBUpdateLogo.png             | Bin 2724 -> 0 bytes
 projects/mozilla/build                             |   7 +-
 projects/mozilla/config                            |  14 +-
 projects/mozilla/marsigner.der                     | Bin 1233 -> 0 bytes
 projects/mozilla/marsigner1.der                    | Bin 1235 -> 0 bytes
 17 files changed, 963 insertions(+), 361 deletions(-)

diff --git a/projects/mozilla/0001-Revert-Bug-14716-HTTP-Basic-Authentication-prompt-on.patch b/projects/mozilla/0001-Revert-Bug-14716-HTTP-Basic-Authentication-prompt-on.patch
index 3203556..f2dbe90 100644
--- a/projects/mozilla/0001-Revert-Bug-14716-HTTP-Basic-Authentication-prompt-on.patch
+++ b/projects/mozilla/0001-Revert-Bug-14716-HTTP-Basic-Authentication-prompt-on.patch
@@ -1,7 +1,7 @@
 From ed5968f6b886ba8c606a673582ff3ecb36c3cc2a Mon Sep 17 00:00:00 2001
 From: Arlo Breault <arlolra at gmail.com>
 Date: Sat, 8 Oct 2016 18:11:20 -0700
-Subject: [PATCH 1/7] Revert "Bug 14716: HTTP Basic Authentication prompt only
+Subject: [PATCH 1/6] Revert "Bug 14716: HTTP Basic Authentication prompt only
  displayed once"
 
  * This patch was breaking Tor Messenger.
diff --git a/projects/mozilla/0002-Block-flash-too.patch b/projects/mozilla/0002-Block-flash-too.patch
deleted file mode 100644
index 5e843e2..0000000
--- a/projects/mozilla/0002-Block-flash-too.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 07ad22078a293c7bf12e587a6d4b6569370e050b Mon Sep 17 00:00:00 2001
-From: Arlo Breault <arlolra at gmail.com>
-Date: Thu, 6 Oct 2016 20:13:35 -0700
-Subject: [PATCH 2/7] Block flash too
-
- * Builds on "Bug #3547: Block all plugins except flash."
----
- dom/plugins/base/nsPluginHost.cpp | 9 ---------
- 1 file changed, 9 deletions(-)
-
-diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
-index 5345ce7..1569236 100644
---- a/dom/plugins/base/nsPluginHost.cpp
-+++ b/dom/plugins/base/nsPluginHost.cpp
-@@ -2081,15 +2081,6 @@ PRBool nsPluginHost::GhettoBlacklist(nsIFile *pluginFile)
-     return PR_TRUE; // fuck 'em. blacklist.
-   }
- 
--  // libgnashplugin.so, libflashplayer.so, Flash Player-10.4-10.5.plugin,
--  // NPSWF32.dll, NPSWF64.dll
--  if (strstr(leafStr, "libgnashplugin") == leafStr ||
--      strstr(leafStr, "libflashplayer") == leafStr ||
--      strstr(leafStr, "Flash Player") == leafStr ||
--      strstr(leafStr, "NPSWF") == leafStr) {
--    return PR_FALSE;
--  }
--
-   return PR_TRUE; // fuck 'em. blacklist.
- }
- 
--- 
-2.10.1
-
diff --git a/projects/mozilla/0002-Trac-16475-Block-flash-too.patch b/projects/mozilla/0002-Trac-16475-Block-flash-too.patch
new file mode 100644
index 0000000..39f2e14
--- /dev/null
+++ b/projects/mozilla/0002-Trac-16475-Block-flash-too.patch
@@ -0,0 +1,33 @@
+From d8481cf36c473024b279b23842ca0d541bdde2d7 Mon Sep 17 00:00:00 2001
+From: Arlo Breault <arlolra at gmail.com>
+Date: Thu, 6 Oct 2016 20:13:35 -0700
+Subject: [PATCH 2/6] Trac 16475: Block flash too
+
+ * Builds on "Bug #3547: Block all plugins except flash."
+---
+ dom/plugins/base/nsPluginHost.cpp | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
+index 5345ce7..1569236 100644
+--- a/dom/plugins/base/nsPluginHost.cpp
++++ b/dom/plugins/base/nsPluginHost.cpp
+@@ -2081,15 +2081,6 @@ PRBool nsPluginHost::GhettoBlacklist(nsIFile *pluginFile)
+     return PR_TRUE; // fuck 'em. blacklist.
+   }
+ 
+-  // libgnashplugin.so, libflashplayer.so, Flash Player-10.4-10.5.plugin,
+-  // NPSWF32.dll, NPSWF64.dll
+-  if (strstr(leafStr, "libgnashplugin") == leafStr ||
+-      strstr(leafStr, "libflashplayer") == leafStr ||
+-      strstr(leafStr, "Flash Player") == leafStr ||
+-      strstr(leafStr, "NPSWF") == leafStr) {
+-    return PR_FALSE;
+-  }
+-
+   return PR_TRUE; // fuck 'em. blacklist.
+ }
+ 
+-- 
+2.10.1
+
diff --git a/projects/mozilla/0003-Trac-20206-Avoid-the-need-to-download-the-font-Osaka.patch b/projects/mozilla/0003-Trac-20206-Avoid-the-need-to-download-the-font-Osaka.patch
new file mode 100644
index 0000000..9d702c5
--- /dev/null
+++ b/projects/mozilla/0003-Trac-20206-Avoid-the-need-to-download-the-font-Osaka.patch
@@ -0,0 +1,65 @@
+From 9468b6269eefcfa9a10a90d93b9b565e916050e4 Mon Sep 17 00:00:00 2001
+From: Jonathan Kew <jkew at mozilla.com>
+Date: Sun, 9 Oct 2016 09:18:37 -0700
+Subject: [PATCH 3/6] Trac 20206: Avoid the need to download the font Osaka
+
+ * Bug 1283573 - Don't attempt to look up a single-face-family name if
+   the corresponding main family isn't available. r=mstange
+---
+ gfx/thebes/gfxMacPlatformFontList.mm | 17 +++++++++++++----
+ modules/libpref/init/all.js          |  6 +++---
+ 2 files changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/gfx/thebes/gfxMacPlatformFontList.mm b/gfx/thebes/gfxMacPlatformFontList.mm
+index eb7a788..5c63e69 100644
+--- a/gfx/thebes/gfxMacPlatformFontList.mm
++++ b/gfx/thebes/gfxMacPlatformFontList.mm
+@@ -735,15 +735,24 @@ gfxMacPlatformFontList::InitSingleFaceList()
+     for (uint32_t i = 0; i < numFonts; i++) {
+         LOG_FONTLIST(("(fontlist-singleface) face name: %s\n",
+                       NS_ConvertUTF16toUTF8(singleFaceFonts[i]).get()));
+-        if (!gfxFontUtils::IsFontFamilyNameAllowed(singleFaceFonts[i])) {
++        nsAutoString familyName(singleFaceFonts[i]);
++        auto colon = familyName.FindChar(':');
++        if (colon != kNotFound) {
++            nsAutoString key(Substring(familyName, colon + 1));
++            ToLowerCase(key);
++            if (!mFontFamilies.GetWeak(key)) {
++                continue;
++            }
++            familyName.Truncate(colon);
++        }
++        if (!gfxFontUtils::IsFontFamilyNameAllowed(familyName)) {
+             continue;
+         }
+-        gfxFontEntry *fontEntry = LookupLocalFont(singleFaceFonts[i],
++        gfxFontEntry *fontEntry = LookupLocalFont(familyName,
+                                                   400, 0,
+                                                   NS_FONT_STYLE_NORMAL);
+         if (fontEntry) {
+-            nsAutoString familyName, key;
+-            familyName = singleFaceFonts[i];
++            nsAutoString key;
+             GenerateFontListKey(familyName, key);
+             LOG_FONTLIST(("(fontlist-singleface) family name: %s, key: %s\n",
+                           NS_ConvertUTF16toUTF8(familyName).get(),
+diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
+index 7078c66..a7b091d 100644
+--- a/modules/libpref/init/all.js
++++ b/modules/libpref/init/all.js
+@@ -3576,9 +3576,9 @@ pref("font.name.monospace.x-math", "Courier");
+ pref("font.name.cursive.x-math", "Apple Chancery");
+ pref("font.name.fantasy.x-math", "Papyrus");
+ 
+-// individual font faces to be treated as independent families
+-// names are Postscript names of each face
+-pref("font.single-face-list", "Osaka-Mono");
++// Individual font faces to be treated as independent families,
++// listed as <Postscript name of face:Owning family name>
++pref("font.single-face-list", "Osaka-Mono:Osaka");
+ 
+ // optimization hint for fonts with localized names to be read in at startup, otherwise read in at lookup miss
+ // names are canonical family names (typically English names)
+-- 
+2.10.1
+
diff --git a/projects/mozilla/0003-s-TorBrowser-Data-TorMessenger-Data.patch b/projects/mozilla/0003-s-TorBrowser-Data-TorMessenger-Data.patch
deleted file mode 100644
index fc82b87..0000000
--- a/projects/mozilla/0003-s-TorBrowser-Data-TorMessenger-Data.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 1542f877647e82ad9f6be6965bad121fd8335c42 Mon Sep 17 00:00:00 2001
-From: Arlo Breault <arlolra at gmail.com>
-Date: Thu, 6 Oct 2016 20:20:11 -0700
-Subject: [PATCH 3/7] s/TorBrowser-Data/TorMessenger-Data/
-
- * All that remains after the updater patches.
-
- * See trac 20309
----
- xpcom/io/TorFileUtils.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/xpcom/io/TorFileUtils.cpp b/xpcom/io/TorFileUtils.cpp
-index c45961a..23d6fbe 100644
---- a/xpcom/io/TorFileUtils.cpp
-+++ b/xpcom/io/TorFileUtils.cpp
-@@ -16,7 +16,7 @@ TorBrowser_GetUserDataDir(nsIFile *aExeFile, nsIFile** aFile)
-   nsCOMPtr<nsIFile> tbDataDir;
- 
- #ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
--  nsAutoCString tbDataLeafName(NS_LITERAL_CSTRING("TorBrowser-Data"));
-+  nsAutoCString tbDataLeafName(NS_LITERAL_CSTRING("TorMessenger-Data"));
-   nsCOMPtr<nsIFile> appRootDir;
-   nsresult rv = GetAppRootDir(aExeFile, getter_AddRefs(appRootDir));
-   NS_ENSURE_SUCCESS(rv, rv);
--- 
-2.10.1
-
diff --git a/projects/mozilla/0004-Bug-1283573-Don-t-attempt-to-look-up-a-single-face-f.patch b/projects/mozilla/0004-Bug-1283573-Don-t-attempt-to-look-up-a-single-face-f.patch
deleted file mode 100644
index b9f84f8..0000000
--- a/projects/mozilla/0004-Bug-1283573-Don-t-attempt-to-look-up-a-single-face-f.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From a9cb072ad4b3e50723b182f845628b41f4987ff2 Mon Sep 17 00:00:00 2001
-From: Jonathan Kew <jkew at mozilla.com>
-Date: Sun, 9 Oct 2016 09:18:37 -0700
-Subject: [PATCH 4/7] Bug 1283573 - Don't attempt to look up a
- single-face-family name if the corresponding main family isn't available.
- r=mstange
-
----
- gfx/thebes/gfxMacPlatformFontList.mm | 17 +++++++++++++----
- modules/libpref/init/all.js          |  6 +++---
- 2 files changed, 16 insertions(+), 7 deletions(-)
-
-diff --git a/gfx/thebes/gfxMacPlatformFontList.mm b/gfx/thebes/gfxMacPlatformFontList.mm
-index eb7a788..5c63e69 100644
---- a/gfx/thebes/gfxMacPlatformFontList.mm
-+++ b/gfx/thebes/gfxMacPlatformFontList.mm
-@@ -735,15 +735,24 @@ gfxMacPlatformFontList::InitSingleFaceList()
-     for (uint32_t i = 0; i < numFonts; i++) {
-         LOG_FONTLIST(("(fontlist-singleface) face name: %s\n",
-                       NS_ConvertUTF16toUTF8(singleFaceFonts[i]).get()));
--        if (!gfxFontUtils::IsFontFamilyNameAllowed(singleFaceFonts[i])) {
-+        nsAutoString familyName(singleFaceFonts[i]);
-+        auto colon = familyName.FindChar(':');
-+        if (colon != kNotFound) {
-+            nsAutoString key(Substring(familyName, colon + 1));
-+            ToLowerCase(key);
-+            if (!mFontFamilies.GetWeak(key)) {
-+                continue;
-+            }
-+            familyName.Truncate(colon);
-+        }
-+        if (!gfxFontUtils::IsFontFamilyNameAllowed(familyName)) {
-             continue;
-         }
--        gfxFontEntry *fontEntry = LookupLocalFont(singleFaceFonts[i],
-+        gfxFontEntry *fontEntry = LookupLocalFont(familyName,
-                                                   400, 0,
-                                                   NS_FONT_STYLE_NORMAL);
-         if (fontEntry) {
--            nsAutoString familyName, key;
--            familyName = singleFaceFonts[i];
-+            nsAutoString key;
-             GenerateFontListKey(familyName, key);
-             LOG_FONTLIST(("(fontlist-singleface) family name: %s, key: %s\n",
-                           NS_ConvertUTF16toUTF8(familyName).get(),
-diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
-index 7078c66..a7b091d 100644
---- a/modules/libpref/init/all.js
-+++ b/modules/libpref/init/all.js
-@@ -3576,9 +3576,9 @@ pref("font.name.monospace.x-math", "Courier");
- pref("font.name.cursive.x-math", "Apple Chancery");
- pref("font.name.fantasy.x-math", "Papyrus");
- 
--// individual font faces to be treated as independent families
--// names are Postscript names of each face
--pref("font.single-face-list", "Osaka-Mono");
-+// Individual font faces to be treated as independent families,
-+// listed as <Postscript name of face:Owning family name>
-+pref("font.single-face-list", "Osaka-Mono:Osaka");
- 
- // optimization hint for fonts with localized names to be read in at startup, otherwise read in at lookup miss
- // names are canonical family names (typically English names)
--- 
-2.10.1
-
diff --git a/projects/mozilla/0004-Trac-18331-Update-OS-X-toolchain-to-work-with-ESR-45.patch b/projects/mozilla/0004-Trac-18331-Update-OS-X-toolchain-to-work-with-ESR-45.patch
new file mode 100644
index 0000000..fcd36a9
--- /dev/null
+++ b/projects/mozilla/0004-Trac-18331-Update-OS-X-toolchain-to-work-with-ESR-45.patch
@@ -0,0 +1,123 @@
+From ff04db65b95872a3d17793bcfc292a2b4151affb Mon Sep 17 00:00:00 2001
+From: Arlo Breault <arlolra at gmail.com>
+Date: Wed, 23 Mar 2016 19:52:07 -0700
+Subject: [PATCH 4/6] Trac 18331: Update OS X toolchain to work with ESR 45
+
+ * We're reverting the patch, "Adjust atomic ops code to be more
+   compatible with thread sanitizer tools."
+
+ * See trac 20316 where we want to port the gitian patches to rbm.
+---
+ intl/icu/source/common/putilimp.h | 17 +----------------
+ intl/icu/source/common/umutex.cpp |  4 ++--
+ intl/icu/source/common/umutex.h   | 29 +----------------------------
+ 3 files changed, 4 insertions(+), 46 deletions(-)
+
+diff --git a/intl/icu/source/common/putilimp.h b/intl/icu/source/common/putilimp.h
+index 55ec0ae..ac083b0 100644
+--- a/intl/icu/source/common/putilimp.h
++++ b/intl/icu/source/common/putilimp.h
+@@ -1,7 +1,7 @@
+ /*
+ ******************************************************************************
+ *
+-*   Copyright (C) 1997-2015, International Business Machines
++*   Copyright (C) 1997-2014, International Business Machines
+ *   Corporation and others.  All Rights Reserved.
+ *
+ ******************************************************************************
+@@ -229,21 +229,6 @@ typedef size_t uintptr_t;
+ #endif
+ 
+ 
+-/**
+- *  \def U_HAVE_CLANG_ATOMICS
+- *  Defines whether Clang c11 style built-in atomics are avaialable.
+- *  These are used in preference to gcc atomics when both are available.
+- */
+-#ifdef U_HAVE_CLANG_ATOMICS
+-    /* Use the predefined value. */
+-#elif __has_builtin(__c11_atomic_load) && \
+-    __has_builtin(__c11_atomic_store) && \
+-    __has_builtin(__c11_atomic_fetch_add) && \
+-    __has_builtin(__c11_atomic_fetch_sub)
+-#    define U_HAVE_CLANG_ATOMICS 1
+-#else
+-#    define U_HAVE_CLANG_ATOMICS 0
+-#endif
+ 
+ /*===========================================================================*/
+ /** @{ Programs used by ICU code                                             */
+diff --git a/intl/icu/source/common/umutex.cpp b/intl/icu/source/common/umutex.cpp
+index 69eab79..dff0b47 100644
+--- a/intl/icu/source/common/umutex.cpp
++++ b/intl/icu/source/common/umutex.cpp
+@@ -344,8 +344,8 @@ umtx_atomic_dec(u_atomic_int32_t *p) {
+ 
+ U_COMMON_API int32_t U_EXPORT2
+ umtx_loadAcquire(u_atomic_int32_t &var) {
+-    umtx_lock(&gIncDecMutex);
+     int32_t val = var;
++    umtx_lock(&gIncDecMutex);
+     umtx_unlock(&gIncDecMutex);
+     return val;
+ }
+@@ -353,8 +353,8 @@ umtx_loadAcquire(u_atomic_int32_t &var) {
+ U_COMMON_API void U_EXPORT2
+ umtx_storeRelease(u_atomic_int32_t &var, int32_t val) {
+     umtx_lock(&gIncDecMutex);
+-    var = val;
+     umtx_unlock(&gIncDecMutex);
++    var = val;
+ }
+ 
+ U_NAMESPACE_END
+diff --git a/intl/icu/source/common/umutex.h b/intl/icu/source/common/umutex.h
+index 0e4d118..e0ad0d3 100644
+--- a/intl/icu/source/common/umutex.h
++++ b/intl/icu/source/common/umutex.h
+@@ -1,6 +1,6 @@
+ /*
+ **********************************************************************
+-*   Copyright (C) 1997-2015, International Business Machines
++*   Copyright (C) 1997-2014, International Business Machines
+ *   Corporation and others.  All Rights Reserved.
+ **********************************************************************
+ *
+@@ -118,33 +118,6 @@ inline int32_t umtx_atomic_dec(u_atomic_int32_t *var) {
+ U_NAMESPACE_END
+ 
+ 
+-#elif U_HAVE_CLANG_ATOMICS
+-/*
+- *  Clang __c11 atomic built-ins
+- */
+-
+-U_NAMESPACE_BEGIN
+-typedef _Atomic(int32_t) u_atomic_int32_t;
+-#define ATOMIC_INT32_T_INITIALIZER(val) val
+-
+-inline int32_t umtx_loadAcquire(u_atomic_int32_t &var) {
+-     return __c11_atomic_load(&var, __ATOMIC_ACQUIRE);
+-}
+-
+-inline void umtx_storeRelease(u_atomic_int32_t &var, int32_t val) {
+-   return __c11_atomic_store(&var, val, __ATOMIC_RELEASE);
+-}
+-
+-inline int32_t umtx_atomic_inc(u_atomic_int32_t *var) {
+-    return __c11_atomic_fetch_add(var, 1, __ATOMIC_SEQ_CST) + 1;
+-}
+-
+-inline int32_t umtx_atomic_dec(u_atomic_int32_t *var) {
+-    return __c11_atomic_fetch_sub(var, 1, __ATOMIC_SEQ_CST) - 1;
+-}
+-U_NAMESPACE_END
+-
+-
+ #elif U_HAVE_GCC_ATOMICS
+ /*
+  * gcc atomic ops. These are available on several other compilers as well.
+-- 
+2.10.1
+
diff --git a/projects/mozilla/0005-Adjust-atomic-ops-code-to-be-more-compatible-with-th.patch b/projects/mozilla/0005-Adjust-atomic-ops-code-to-be-more-compatible-with-th.patch
deleted file mode 100644
index b1cd719..0000000
--- a/projects/mozilla/0005-Adjust-atomic-ops-code-to-be-more-compatible-with-th.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 760a2780d529b6c8a569824f7bc4c288c2a6ca2d Mon Sep 17 00:00:00 2001
-From: Arlo Breault <arlolra at gmail.com>
-Date: Wed, 23 Mar 2016 19:52:07 -0700
-Subject: [PATCH 5/7] Adjust atomic ops code to be more compatible with thread
- sanitizer tools.
-
- * This is until we port the patches for trac 18331
-
- * See trac 20316
----
- intl/icu/source/common/putilimp.h | 17 +----------------
- intl/icu/source/common/umutex.cpp |  4 ++--
- intl/icu/source/common/umutex.h   | 29 +----------------------------
- 3 files changed, 4 insertions(+), 46 deletions(-)
-
-diff --git a/intl/icu/source/common/putilimp.h b/intl/icu/source/common/putilimp.h
-index 55ec0ae..ac083b0 100644
---- a/intl/icu/source/common/putilimp.h
-+++ b/intl/icu/source/common/putilimp.h
-@@ -1,7 +1,7 @@
- /*
- ******************************************************************************
- *
--*   Copyright (C) 1997-2015, International Business Machines
-+*   Copyright (C) 1997-2014, International Business Machines
- *   Corporation and others.  All Rights Reserved.
- *
- ******************************************************************************
-@@ -229,21 +229,6 @@ typedef size_t uintptr_t;
- #endif
- 
- 
--/**
-- *  \def U_HAVE_CLANG_ATOMICS
-- *  Defines whether Clang c11 style built-in atomics are avaialable.
-- *  These are used in preference to gcc atomics when both are available.
-- */
--#ifdef U_HAVE_CLANG_ATOMICS
--    /* Use the predefined value. */
--#elif __has_builtin(__c11_atomic_load) && \
--    __has_builtin(__c11_atomic_store) && \
--    __has_builtin(__c11_atomic_fetch_add) && \
--    __has_builtin(__c11_atomic_fetch_sub)
--#    define U_HAVE_CLANG_ATOMICS 1
--#else
--#    define U_HAVE_CLANG_ATOMICS 0
--#endif
- 
- /*===========================================================================*/
- /** @{ Programs used by ICU code                                             */
-diff --git a/intl/icu/source/common/umutex.cpp b/intl/icu/source/common/umutex.cpp
-index 69eab79..dff0b47 100644
---- a/intl/icu/source/common/umutex.cpp
-+++ b/intl/icu/source/common/umutex.cpp
-@@ -344,8 +344,8 @@ umtx_atomic_dec(u_atomic_int32_t *p) {
- 
- U_COMMON_API int32_t U_EXPORT2
- umtx_loadAcquire(u_atomic_int32_t &var) {
--    umtx_lock(&gIncDecMutex);
-     int32_t val = var;
-+    umtx_lock(&gIncDecMutex);
-     umtx_unlock(&gIncDecMutex);
-     return val;
- }
-@@ -353,8 +353,8 @@ umtx_loadAcquire(u_atomic_int32_t &var) {
- U_COMMON_API void U_EXPORT2
- umtx_storeRelease(u_atomic_int32_t &var, int32_t val) {
-     umtx_lock(&gIncDecMutex);
--    var = val;
-     umtx_unlock(&gIncDecMutex);
-+    var = val;
- }
- 
- U_NAMESPACE_END
-diff --git a/intl/icu/source/common/umutex.h b/intl/icu/source/common/umutex.h
-index 0e4d118..e0ad0d3 100644
---- a/intl/icu/source/common/umutex.h
-+++ b/intl/icu/source/common/umutex.h
-@@ -1,6 +1,6 @@
- /*
- **********************************************************************
--*   Copyright (C) 1997-2015, International Business Machines
-+*   Copyright (C) 1997-2014, International Business Machines
- *   Corporation and others.  All Rights Reserved.
- **********************************************************************
- *
-@@ -118,33 +118,6 @@ inline int32_t umtx_atomic_dec(u_atomic_int32_t *var) {
- U_NAMESPACE_END
- 
- 
--#elif U_HAVE_CLANG_ATOMICS
--/*
-- *  Clang __c11 atomic built-ins
-- */
--
--U_NAMESPACE_BEGIN
--typedef _Atomic(int32_t) u_atomic_int32_t;
--#define ATOMIC_INT32_T_INITIALIZER(val) val
--
--inline int32_t umtx_loadAcquire(u_atomic_int32_t &var) {
--     return __c11_atomic_load(&var, __ATOMIC_ACQUIRE);
--}
--
--inline void umtx_storeRelease(u_atomic_int32_t &var, int32_t val) {
--   return __c11_atomic_store(&var, val, __ATOMIC_RELEASE);
--}
--
--inline int32_t umtx_atomic_inc(u_atomic_int32_t *var) {
--    return __c11_atomic_fetch_add(var, 1, __ATOMIC_SEQ_CST) + 1;
--}
--
--inline int32_t umtx_atomic_dec(u_atomic_int32_t *var) {
--    return __c11_atomic_fetch_sub(var, 1, __ATOMIC_SEQ_CST) - 1;
--}
--U_NAMESPACE_END
--
--
- #elif U_HAVE_GCC_ATOMICS
- /*
-  * gcc atomic ops. These are available on several other compilers as well.
--- 
-2.10.1
-
diff --git a/projects/mozilla/0005-OSX-package-as-tar.bz2.patch b/projects/mozilla/0005-OSX-package-as-tar.bz2.patch
new file mode 100644
index 0000000..2818228
--- /dev/null
+++ b/projects/mozilla/0005-OSX-package-as-tar.bz2.patch
@@ -0,0 +1,25 @@
+From f18bf5119125d98dc635b41db4c73988f36590ff Mon Sep 17 00:00:00 2001
+From: Nicolas Vigier <boklm at torproject.org>
+Date: Thu, 25 Jun 2015 12:18:43 +0200
+Subject: [PATCH 5/6] OSX: package as tar.bz2
+
+---
+ toolkit/mozapps/installer/upload-files.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/toolkit/mozapps/installer/upload-files.mk b/toolkit/mozapps/installer/upload-files.mk
+index 5c11ed2..0c7bf28 100644
+--- a/toolkit/mozapps/installer/upload-files.mk
++++ b/toolkit/mozapps/installer/upload-files.mk
+@@ -4,7 +4,7 @@
+ 
+ ifndef MOZ_PKG_FORMAT
+ ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
+-MOZ_PKG_FORMAT  = DMG
++MOZ_PKG_FORMAT  = BZ2
+ else
+ ifeq (,$(filter-out WINNT, $(OS_ARCH)))
+ MOZ_PKG_FORMAT  = ZIP
+-- 
+2.10.1
+
diff --git a/projects/mozilla/0006-OSX-package-as-tar.bz2.patch b/projects/mozilla/0006-OSX-package-as-tar.bz2.patch
deleted file mode 100644
index ab8829f..0000000
--- a/projects/mozilla/0006-OSX-package-as-tar.bz2.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ffcaf55f66529997086610fd5687915737da8993 Mon Sep 17 00:00:00 2001
-From: Nicolas Vigier <boklm at torproject.org>
-Date: Thu, 25 Jun 2015 12:18:43 +0200
-Subject: [PATCH 6/7] OSX: package as tar.bz2
-
----
- toolkit/mozapps/installer/upload-files.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/toolkit/mozapps/installer/upload-files.mk b/toolkit/mozapps/installer/upload-files.mk
-index 5c11ed2..0c7bf28 100644
---- a/toolkit/mozapps/installer/upload-files.mk
-+++ b/toolkit/mozapps/installer/upload-files.mk
-@@ -4,7 +4,7 @@
- 
- ifndef MOZ_PKG_FORMAT
- ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
--MOZ_PKG_FORMAT  = DMG
-+MOZ_PKG_FORMAT  = BZ2
- else
- ifeq (,$(filter-out WINNT, $(OS_ARCH)))
- MOZ_PKG_FORMAT  = ZIP
--- 
-2.10.1
-
diff --git a/projects/mozilla/0006-Updater-fixups-for-TM.patch b/projects/mozilla/0006-Updater-fixups-for-TM.patch
new file mode 100644
index 0000000..36b7700
--- /dev/null
+++ b/projects/mozilla/0006-Updater-fixups-for-TM.patch
@@ -0,0 +1,710 @@
+From 739b531b69320b044cf517ff478778a4993d52d2 Mon Sep 17 00:00:00 2001
+From: Arlo Breault <arlolra at gmail.com>
+Date: Sun, 9 Oct 2016 09:34:38 -0700
+Subject: [PATCH 6/6] Updater fixups for TM
+
+ * Remove updater links
+
+ * Copy over the der's and TM update logo
+
+ * Trac 20309: s/TorBrowser-Data/TorMessenger-Data/
+---
+ .../base/content/abouttbupdate/aboutTBUpdateLogo.png | Bin 23266 -> 2724 bytes
+ toolkit/mozapps/update/content/updates.js            |   2 +-
+ toolkit/mozapps/update/content/updates.xul           |  13 +++++--------
+ toolkit/mozapps/update/updater/release_primary.der   | Bin 1229 -> 1233 bytes
+ toolkit/mozapps/update/updater/release_secondary.der | Bin 1229 -> 1235 bytes
+ xpcom/io/TorFileUtils.cpp                            |   2 +-
+ 6 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/browser/base/content/abouttbupdate/aboutTBUpdateLogo.png b/browser/base/content/abouttbupdate/aboutTBUpdateLogo.png
+index be5cae93fa96ffa71b3195eb36b5d3c955be3ef4..3de3c93d1105a0220ba0922e4c9a101755b126a9 100644
+GIT binary patch
+delta 2712
+zcmV;J3TO4=wE?6RkQWMI2nGNE0M&YWNt00o7k>a5bVXQnQ*UN;cVTj606}DLVr3vn
+zZDD6+Qe|Oed2z{QJOBU+F-b&0RCwC#U0ZKdRTN&+4#TBDxmO6p;bLe+umN6#hmIzS
+zF;Q#6n-7);pY4P1R^L_l1(X;Q6EGA^h#De;QA`Y#wy3Fc=`^iiODO|wxfJSge{=Ss
+zr+?Eq)0wl^xt}lD%yd$wGw1vEx7J=~pLG(Nrcu~%;<sdzcvvAuS`NT?tr~QTk(bZ2
+z_~+p6C)qF^t3;3mAc#&&Vlgt3>}Os0(|4sfa`Le|sKN-80OZWhm`1(NK4On_ioy`0
+z$j1UuBOI39B8MLduS5`?7(xu)u>h(k{eSHch1&rsh7Lc8!8ZaB#DnnGkda=_89JmG
+z@{tvQob4dJ&86hck2ogAVXs`l69LHVy-ku|PceY=Vzj%xns8MBa>gGP<Gq+~e+a=9
+z0Z8K8<cMc{<w9r`LdXSL0D}BhIqPHM?cs=YgnXa`AmcnT-R77>W!#l+&>08;2!HZn
+z_3iPjXU8ciguE{WAY*-}A7}lI;hE=;rigCenftv{sRXTAY5tjJ{p=$*XyHl{*#scS
+z&q(q;oAsl2KrGStgjOK@(PRB*4s2LABZ$>2g-})zEvxfX2p<a(wEIE;((*rd^V?$<
+zgX9|{8r>elqx%e`7U+W5&_I;llz;HTEtErovH%469d51b$0v#U2Z?fnnkR%;A_$0K
+zvk*giBhkW?D}S~}hJ>7}0&pwdW2XOg9YbTYbGHByY~PX)f^a1-$k-_-+Y*2zA4$lI
+zP9|+29pnccaE4utLJV6IPUa1^L{PN=oF*T{U+nd##dBc$7NWho91}v-B7dk#08Wx0
+zcH&(WLRBKDRsie?9}>HB7otOaG4}2x+S!=kP8cDAbS0~UiUlCZM?L=o&QFOMfAKO!
+z9&mwud)Sl39_a*mWdX?DIwv^`Hs^i`URLkMs^R6ASl!^55J0Pv0OUy>#1obZAF}$N
+zFKRUPI40c64GuK37L^VO5r1^32%wuQ>BFoK!?Ml|zzL8jGUWqJR)wOPdB|_)ARon?
+z<7Z;>tDP)Acd?wOfpb^y09 at 7&@=u at jKHg6~(#K;wJ}m#cb at Cf8UG9(NBHX~KP*6?)
+zDD%D at MDjuO<UOJZVSW$p6Fr=?|6ZwuM2kdRUc5vXh8Ln>5<$tOVSh;h$Wy!Lf<!(@
+zAH69^zo$m{e5kD at TE0ry;wt^oE$nP0+P_Cx1anRyTL~abiYIy8O8D;FBD!_cS<>ed
+zL&GNBDFTof&T)Y`0^peay?sO%x}4i=I{ieS?HJS3{z%#&gf;7(4-p67P+lU=a)D9;
+zK%!u~+>0X5i8Gp`Gk^X at zki4?#>%zMIs)nh5P?FmXqF4q6p_Dz6l?vkekbriSp46;
+zM1xoTOTHn{D?Pe9IRTtIxp-OW7-NmoVpRudRkeO6l0F>FE4|*td0Qb$2=qpd=-MB8
+zxZ=j;K3xb3Xk`}wvVNT0;g0o~@i>@41eT(Gzv=G9UMRYtbbqXyWu0e60Mh<#SN)Lj
+zbJq7k{<S}KOARvM25>L#?}5|jiZ0Mn>;M at xThiFc4~pei0yr7B2oxPR!zKXi)E#Fe
+zEB9Bp$Ty3CGaTT!BlL0!pvg92LwvIz at gA`=thmmY7$W56hU~8f&~(cz0Na&6^JP~m
+zKpEGm<&&Rsf`7qljJd$D(&S6mm=ZwS>ryWJAG%7Bz`ZeD>^uTc`tMI2z_$I5j`0;x
+za6%_47#`$#AH~U+u2KB}rLMBIgRzM13Pzs8l at KbpfVu!!l9@;0PW;Nbp4X^RT>_3W
+zlzzjw<f{Y^CjBD-+m{zlO at -q?cohcxA^_V>3YRUV7=HnVat`2emy8%*3m}GlaBUh%
+zr92eChK5AUq)jYha!-XVV%^F)!0MGTk#<qfu&Y?{_~#1(P-!xRy=k!ssz+f*F~e~~
+zPa*|m%^_gGqYn{DU<Yw+l0g9LltOUMEP$NdcR?eh7}dr828Lb$Sb-_ at 6d1q-qh<kQ
+zRg#c641ZK^{hPM(yqDrdBH7|qKu+b|b~VN>Pzg3|BU;Rq{iEv`rvS35YK)6Q^UVBh
+zeAg4=T0zC*-8oADvVp)|m3L&ij5(C#Z`q+=HN*k*9o)N9=~y2td1a8Q3lw_hZj1>x
+z12evHH=peTXfLPON2tSiQd7znR9yfHjXF@~O at D9K2gh=6X4$8A9aX at 9xz#+o0HDm*
+zo1+^FVD}Be1)tl+-#-8o>wx;PZ8!f=>gr(S&LBWFJpi#kZg?oz#A9v0c0FI5F9n86
+z!!i5Q<`<F{*`cxk5U0i`!`&DPHjh~j(ic0t0zznIXdTyH{DM`75M+ofeE}=!6cQ8%
+zfPcLkeS+$iJ5Rcqe1?{BJ!1CH+5K&mo}ex4M_eDC$XzD at Ia_z=d+&{|U}zR)T#-|5
+zD;8$;0(qVu1RJE|bvN3;I7B|sR_eua0${tzV_{{G(hAqLy9qzEc~eRF_U~mQ|A^I1
+zrb=!Ikwt>ToL>kXuHr&bWk7}RtykH|?|&&3`^)A4rd)u%-wU>pe|KJ+bwvwz4q$|U
+zAOh=rEcKWgM$dcifcZLw_B-(<3*AI6&xC|n0J6L*R!)jVo??`36kRR{05VQ}S*RN!
+zVe>|Pl`u at v24?-s``GUua%4X8JrlswFWx}(ZcBo`KCRK{zs at vN@_Vdz;6 at PuPJi~a
+zRq~7FLI7JWpc3Rov^x5QMpqbC3Vsg(ARczll;joTydb~g$!k>zLc!pY7YAo#l<3qq
+z8uj+rcLcu*fO%<WmGNh)+2ot_%KojeZVl1<hY|%xIQJvbFCs^n2+5VhDCIgxzOCEH
+z`c41_R*2y9&YKts`u$I$AF>+tUw;=Xh=*~Vz#`_i+WC*Z6 at VEpJddFlkqj{m4N+*E
+zK at m!K5l>pg|9ZcETeBDtCVuTA>g&^JWQ1sJG*ZOhm6orxhoh7Ov;^e{AWXdW3dT%{
+z84fY|fT(tXUTqwo5Mkpnh3yt~J(B!x)i+A|-Tv)3gk0cQ{tn8~R*fyt?|;B3$oTZe
+zmPaaG<J%QLGld*$f_V|kfSmPN&NnT-UqFUp_%hKW{oa3B?l(?`$^Ju#^K#bbocaUF
+zpeBG3Aimv+8E+{7)%yj+2o~|B93Zy;2odj<08qT>lp`ZU&a)9E-8dHQPR4jY2;eE{
+zMO7<2Z<CeB)(DB=l<9cny?_2Nh10<@{@-zd^s<m*Fr2~jdIVP?D4C=utLo{}!W4aW
+z^uy_|{G>)h065?$y&!!aL1d&LGF}KmMF7j{Xsm7tbxq!<V<$hE{?e~@lvG^)v6F6w
+zOp3Baf-qd7$xk7}ApAcupGHRMdqH}R0szASa#b8mM at hHo5@|W`oPTXOTgn0Im(hfH
+zxV?NSb=TBT- at rfg?b%PKvlLJyj(64K!1V`-^a_Qsf at bc7(j<jJ7D;c8=JrU+{oPLw
+zM{aA+4Be!w`Fr$}AUaPW0|bB!{Ad_Rk6|wd$i$>a7jOV<D(H?$k0$;XU;u+$euS+6
+SE-?TA002ovPDHLkU;%<=Y6f8d
+
+literal 23266
+zcmV($K;yrOP)<h;3K|Lk000e1NJLTq004jh004jp1^@s6!#-il000CeX+uL$Nkc;*
+zP;zf(X>4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH
+z<T^KrsT&8|>9(p*dx19w`~g7O0}n_%Aq at s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK
+zVkc9?T=n|PIo~<wJLg{8L_J?=wVD}Kh?c9aozEndlcyGxo=u9<v(!ri)T`-EEs at L3
+z5-!0N_s;9#9f}Cc?UC;OPWB_edW+oAi6T$HZWSGU8TbrQ%+zbPOBBBc`}k?M2Hf);
+z at Y6N~0;>X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8 at eK9k+ZFm
+zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U at uwSpaNnw8l_>cP1
+zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT at q!)ni
+zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX<gx$-tTA9oOBadXir_JPm2Y^4ct-PoO&C)tI
+zGolvqOIK at duBk!Vu9{g<3;i;gJ6?~-DQ&xz!jvD&4!U-s8Os(*#?k2}f30SEXA#=i
+z1-qUX+K`{!((H5w7<t$~ygD!D1{~X6)KX%$qrgY#L_{M_7A<1csY*MfP at XcB#Jxr~
+zJS8&7goVS)VKE|4(h_Xlc{z{c$ApZs7riZ_QKdV_uW-M~u~<J-*#Z0?VzcZp8)p-w
+zus7J7><CN2I>8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS
+zBTvvVG+XTxAO{m at bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#<s%v*srlI
+z{B2SKJ79W>mZ8e<cESmGBON_l0n;T7>u=y$(ArYkv7 at Ex`GL?QCc!_*KFrd&;n1r7
+zqW-CFs9&fT)ZaU5gc&=gBz-D<EBz>aCw(vdOp0__x+47~U6sC(E(JNe at 4cTT*n6*E
+zVH4eoU1-&7pEV~_PRe`a7v+ at vy!^5}8?Y3)UmlaE<h}6h3HHql{T;m+bPBU-O|^S1
+z at dOw&4<!bj2G_<^#e}PL7FpY$lcrKO$i~?8Bd2y;oaL5^csibnCrF9!i%-PI;xhub
+zp1k;8_$IKX1NHus6EHeD;B72SCCD at 4ojP$=Mf3`Eo6yZ&eg at wTqDiZE);7u&SJ|(s
+zuPF(9%D6IJ)klXF%`_Fy<tR3HxV^%Qqa?nAB97=m-uu2qcHInZ?ps8M|H3=#R%lzO
+z6MgLv^}ib0hVV{&<};#;2lcwW;^(7C<OY#bI<VjS9qCKr-E_Cnc!2j+&nHAXA2%BR
+zt~VMxUn2h&(Pi^LSpac(Y#S>R00009a7bBm000XU000XU0RWnu7ytl307*naRCod1
+zeFuPDMb-bgukP;K-Zz`w^xg;wB%}bLh at hZ=fFOzuu)$};PyO@*QU7*Cv4A3iN(~}N
+zGe`*#2t6dEx6N*{CE4D0U;Y1nXYPIb-nML#O~7w<@0+=Er<^(G%$YMY=gzfav6%c{
+za!>trLm=JfDt1{`am<Pp#$whK%d)1%BvypB7NM<0xDOzlf-o<^eJ?y-oiT~li at 5en
+zRO(`u?6M at b-4Zv#q5Ym<TJ55bO>SeJ|0~Y=zrX-%R=%^qipi%e%XJwDlkE_PZ3A(w
+z#Cs>q=%L!~JWKEsdr3D6eJB=<-LdrIS*uZA;xniC{}}&2k^x at 4Z^P+sxBGGsa3L@~
+z6_+oO&bW^geUvGIDj^qGfnlI1LOT&$Z^c~qoOJPwhex at -qh8#91Oq(z<W7HPTWG!|
+zk&lYY^(AyVH!-8sNTB>t$JXE#Py#4Z03N3JOUxyIwtU_<m!3DReef*ro!Iv at 1FT-X
+z+T*J)yaA;CZy?tVT08K at 7(N&pG46|HI_$xc4*48<1gLw^s`}?QOc9IS;ZN(mX2Ay+
+zboEd0Ub%M=`d)!Y;dt?ZO-n)T>p}PxAiRf>!_k|Bc17Ld#^s8-q&}xkYV-HOua&m+
+z7U}VIORu*_!k&->aYfu=iCR&K at j}@yFo_G@)*bPPH{umf*em{!U;M!|$>_|Ig61MA
+zX&ftsO=Faym_K4g0Fy$-p8<~236aXD2)+VD|9HtIa~>Ix at Li60PcgvS2RAOk5c^Bu
+z<iug|0 at Si+W89UFv^EgASqWY-X1naouK-cO5CUevpQbywuo%2L)I%oWUj%=2B`sw#
+zp?ZpptsgI$9ob+IqjNIdP=dnnf^x&|SS)(Y(u?OjiK56L at 49<WFu*JKZ5<zRN7iCc
+zFJ at 0C!UpT{j!0+k-8^ZXyftI3bflPJmZI8mD)tXqYCE}y_F2E<oT0 at ZN|AZnPmuXr
+zPf`gq)R2KTIl~r%oiVrTjAa+jeAOxM-SXd626%Dhx&oK@?gFjO22x0LVmOI(M7jr}
+zIqHhYo730I?y=jXKD$oBu5i4EC+8T5N at bjZ(T5n51XesR%cg{&o{-;CB;)EP$qAd6
+zNlI_3gxsOQ7+KrM_QJj5am&?<E}Xp~Uf?kfyekZ_dF5tbs}=hKaPUi;@JY>9g4rUz
+zF?+vkob;BgoBWE3bvGvfiL{8bj3QLaiFG1D8?JWxh&tewSREuwgSn5j!tX(RFZ?ik
+z&M92DykNp~`04PoQC=Z at T=XRq7vpo_`*AsrN+$l*A)3+&nug5Wdz>7<?IbB^D#jz!
+zjrhToNo9nX{7h24-+wn|4ab}TUVUi8*hs{^4h_#APRuuD)ytDh|1Pb8W+2ZXyuWBq
+z?Aft3kP at rBBCmtkT+^dtHk(#{pI>}lzj!@9z1$Y`170o;IZy_XE)vB^9|=nsS11fJ
+z274qF329MEWQW!{AnD0ru|9|%KH2C7tVRipfL6)b1DJzD#QR^qKuQmc({}V{f`kqL
+zmW-aZ<f1uiO at +ti_n0!kOAl=PHHd!AU`-=2ebBtCN_NT1bDxu%ysCjBUa_p`l_&@v
+zd&Vo#EkIipR)SnU$<E1<^vp~Nq^5(&(B^UZqJHsMZfTygU)m=&Nmog`L{cyd at PcqG
+zDuNk6uUkBAeo5PtA?cfPC1p>hMEqgxwIonDOr{7aQ-mTx>F(*0?ye5$=!E_efWkQm
+z#Gi{E{vj|#nPCWI)@G7<sX!LCmdL`*OJ(Nn<D}QuGqg0Y<e{Y(&AxCj9373gW5NJ0
+z+_$mJ<F=^z&cdZ+bQ(j#bL!R#P5#B>pOPIVn+0U+Lr?<IV- at J#PkSWtSC0}lH7ix}
+za|`qeq at _zV%ASl7If_hCOS+5NrRJ2~vVZX&trY!TdnNlS0uBi3^Nz4^ME7;2NYTTS
+zB<uA8aX0%U=3=>crWX at 3HA@re=xLYM&PM6%?v!AAuf!k`+ at B4KEQEx}VtGa~Fa$P|
+zlIF2;#%t$EUP}S=ngPQCs!(0=K+I*Gw)Dc8n~?pex}(kjW==29p%q at Ibxw<j6c6Uz
+zFV25T)=zy+$InDDPdrmEjBR&I^jj$sYqZe212T2Obji%*^a}}yVLDI)wAb_!bW7zq
+zTV&rE+vCFrd!*4ZO>)`qlGp)cqMm?!+!nI(5E#!&4dIxw?9Q2z{X#LS0c()4;9|;X
+zh+$HV!7yU~HFq?~{+1d%i;C-mP*lGLrf^|6Pymq^WwVVFtEb7?FI_kc6SyL=Xyl5e
+zm(00at2jzON0k9yeqhs2fS7L(_Qdg?$l{{Q-s0Wz><N!cOQ2B|yyWo_*sXI(`1^jb
+z)_Y{ago#pASR#S6fJC(?;<@%jlE4r{afImF#TBys!|TK-jEHD<N%R2>7wh0xBQ^H>
+zVvy7xHx`d at kv0(!H3Cu3uqz)|If9F@*z?JtjQisp$y!@v7LSw(3^Qo;D4uy7r_dm-
+ztG8VaG}TFmr$yXXfDtYYN({_qWe`@Q6sGp3$+Gol=&%sR;!<M!DQ)PWqujgXBeS^4
+zbyVC at VStq@SGr4O=DmRUqQqWL!jt<WoYKvBNnXKbnkNRuO~tXnBHPWL8hy+wvG1iy
+z$%JB=F?BY!0MKJ?q!>&j5FHWDGb`+pbzfX9ZDmbbZuIwliT=?iY58f88kv%ll_%+e
+z3`zB;DZ-i0T&4_;@9mv!(%jl89qnz>jlc9?xMjvKPm+iadO>1(FoRR?VAP?K+0oT1
+z`)VsCys%5$H}^>NE(~v{Kvx(KX+vCCVVSvSzMQ=7ec}yaxS at o=U!ns_Hgxtxmb~xd
+zb2}5`M<aYx7~tjmH*Ob~H3a~Yjr&@IJI?3-cFwKRp4O at eP+~vj73(zg08Yn9{2!!>
+zZ*@QxpSVmFITpiN8VloPoE at Tv8e$mpDa);}Ti*P_Gtyq(jQg0R{-QvRt2s$r9zM4<
+zer8ZHjwm>zJ0O6vbVk4-0gmyV!FJj6l?^iMXUiq*H8TPZ1=tRbr(rlz!s&y4KQ&EN
+z((K<a?v-5<UXd=Y4}`?^jULnoSkPuJJzw(Fl~`HK)b=>p!C=k;Qb)}188g~b#nEN}
+z3&h`sHYxFe6k;8CjfofQ>$}Rf%9Bg}t`dL`VpS0F*ZIYLK}1}aKyiYLtnx_yt>rRr
+z&U|sB*C$~^Q}Bl++RhF*J(0`5uS|MYI<IJmBR5c&C3#zmrEuL?$*9aVLkQ;Ox*x#&
+z?A1zCKt&}U;kF4)(y*vnnitiI^}95gy>qcdVu=#K&ZBvgAaWq<^HB#;(b&3Qs%Pw!
+z^vnF>x;9hVa+<{RKad7c7!?fsp1kfXS+He^1iigrQ$-)Zi!(uE#O<21{DK*^eT5%c
+zXw(>B?aIx$(O7ghz{yJL4QxEt>?!h}pZhQI!4QXR5q%PSJl{{1NfV|@#occhf?{DN
+z^{ir9zT#v`$GA%f_7R>>i8b{QaKiAnyt7GauG%Kn`?<=)1ZK>QP(t7@{Xmwa?avTj
+zdy2Sv++sm`P`n2NnBo<;OGjx7ih~jdWiocZPYPC!lksI!utvbCqci at SI#n7t3<N(B
+zR#Un8C3r3j33avA(savinQ`+nX+F>(wfpx<?CLJDE(0TYVpv29$=r$)WW^ijm^Sq*
+zkc<x9W$K~}XY5EU|8T>j#Q+xO_{|`ERsy#IiDt}yZ2A3CS+Y|Zf#NRmUuojqlp at O(
+zpCX}>9(nPLkE$*Ze%z8XU%5cseh-ipr|HmbGc?fWXb4DVToemB&#iez!Z|^4e;;%1
+z>3wr^XHjXWLLGcZAMi=^cCVyjX>iVz`G$!oCHSY(f+0jZVZs8<A7BjY$bg&Wb(xw!
+zS3C{SPmpJ4?M4X}Lr3^qH%ruVv)l9J(p6UiUCiM?rH}L`7V(rW{phrsVJjQK!%<-X
+zj`@IdfY|5!{vRv;Ci at EaKrjRD11<@E!6)O~lVs-1S=uAoiksx+tDeMaEJXk6v2wyo
+zr+|<km^RZi-2C>n#-K=XrI7~dh;@(;pNQR6u~T+!+bNO!khrI#$O&MPDUbsB at VVs6
+z^js2dfrO~VaI+J$gi1 at I=vx6RL(0p>OMXtFPXCn9sDO3Er-3MjJyI_+0>YFCNfJ;Y
+zO#W#LHA`x4s(2xR9Cx6(R%(KK#CuavteFu7EeA~Sk*7b2;WJ at f#6V4yH2I}x;)077
+zK$$vxcSH=J+J1D#77{<H(Ifzry??B at Tk7)mDacl}TOt<+WX7CXGO>K3F1s>MTewAD
+zy5Ujm$9pBaE?1WQ;R6uIn0~QM{VCtSog at b1NCfrGj}i$#ET7 at p+I`T(_eys+mUg>C
+z5)ET8h-eO73U;}%dF%rVLh at v$XGu}s7|DVkM!Nn4?jts<MZF+6r=`>zbb6|c062z#
+z-4%kp!i5!*wYpeW9|<vmhY_oEbhk-G1-S30o#I*ng%gO)=*og}_!(U#O)Qgj!}Umt
+zx9~_5Lp8QwNr&Tfs^>z_H_&L4NeV7}{Oz3IL(|7j4B&J_y>~VFWa*+)B`p{8cpwP|
+zA84N?DIIAN#X^r8cDqd_2jsxaeNwoq6wkDQ3RWU6`(h2md<HxzZqVuN^e8(%Ac%}9
+z87n2lrK;5@^<+n6qfl*vUAQx at 13Wk*f~hbX$I2LHVpFk#io}o|1`s>tKo6^d7?uv4
+zT_M?jFBQwH6=)vPGmx4ov!)*>n{RkqqMN(L^~GLk3$(~x=l({nc=SsHBmo#aCE63>
+zmh#Mjb&V{BYW88dH4nV=6J)#ymorTv>2>S&(Ub3s6W?RO$_9V#xiHsF&rwcS<sLtr
+z+h-JJi1*e^5CDt<<DYdOdQrluSU4fm*l8^I&gI0>H*r|Yw>Ng2XWZb?XZB_fwN6R{
+zeU616mo5OYeh+3EPCZZtQKpktY0Emu1^l<edTZCGtYMdJ;!QmalRxOiFSf7SBm2Jo
+z4wlB!pvZapo-rNkK$>W7MDo9rA^vkAm5ebIteARb<r#MZ(a<qiu%<V)AlnS+Uk_^J
+zVf-8x18{j4NdE?U4WVHh6)=wZRQUE5Rwx2UeEtz==-ARUrOqarA-?X!q17{c=ZS3Q
+ziX60HUr1J6d!KaXw?Qv(h-1<_1a^q;0-=+`HsRy(Bna{XSGx1ZFrV23WLTMn_Y7;g
+zggD+i at ocDu6Vl?Ilw&z~2t+t#*o;HO&_P7SpyBVn at eOIMYL$XLWk}u+^+*#5L}bs+
+zuS@%x2gE9mViU`B9 at 4xeqfs6_{Vxu(O}VVyz<eQAU9WT^55?~X#lf?_v~qJf*5sZe
+z?X`A03+?fqU$9Dcm16pZ#!&1##3y2SSGjaMdYnP3%WWeL`6rAUFV>ebB(@7oKxBat
+zp8fPgvSaZ(hFEqUC4e1v%3+*_QJ(YMA*>QRsXjv()@_LCFc9vQkPfpL*bL(&q(M8h
+zY=d-VKIh)4Q_JCV)~kOmiDU<5+izZ!4tJ~gug{a>{IRG{si*a7o`_2tF5j(fcXG1h
+zuoHMKuXd>VoEmuuN;UE8NP;-UEV*^<-#25ra%k?582~FKPXJ&qfp#2w{*JOOvSIS;
+zapF_#6G%3OjzG7LX;g!5A`3A#(k)%>JM;ASiChcSe61}Sv39U=`RnrB<&Q|+l)bvI
+z&V?Zd(ZryU2q+8XX|Glv<x*Ue0C68_lqe9xQIGUybxXs{8VRRE<3>FWGbmA*k7+f%
+z6Sj$kXAay>`_*^S+rGkvCFvLpOlm%{Rkr>b!y0z^qgSQLq_NYD@`&~mJI)pLN2P6P
+z9Z?l`s9kYLCZIH6=cvu!E3eO5qYG>Cgb1KRx}uTjb2PR|j6Yb|eZvhm94t-z`OCVW
+z at A@DrOB(lEGMeT7({9IHp7VDYdEqaS_*wvP$EDQt)=bGhkf+PON<c*#jBNaVDa<XB
+zy??HiXf~#SQ?U>O_UujTk;-X1q+;$i$!f}hrEUtC0n;MVG)^ofi%mF&?R$h628prd
+zY)RN3l3k~4k_{KGk$NbbRZF%@Mnje^3~53F3USNy>JYX=>YH-Sqxcgi4Sm!>Mi1t9
+zN&Q)svilpaVPUC5Vz>FkeM`E`D4#Dr4>q^hW)zcn1;=(u%V`)QHP)$vY5JIel97_P
+zqG-Dmw~m$U_S`;+fi-oMn}U^uh2^sf at 9ryM_|S-_fooT;FNKPSIUP}Cpd^tg`tSPS
+zZ&X|56Tjux8v8edkxb9uGk$Y1rZr?#VvS<g6w2P+8w|?7Ry`p->D}V~ITmpyf*C0C
+z(0DpZo4nd0ng7BP$=Q!RbvLGTR7G%U3Jr5s#yDi)9sy<@dlqb$Z7beFdZW!dh-I1M
+zUYsry{yiH>?P;Gqm5WdDP>${wAf9EKy#o>hw at k|gM_lzMSIWNgw at Ek+JAZCGe8DS`
+zANsN6kSUXkXDQ*Chs>Mk2zkee4N~)k%}VgZXHJ-D2y-v~80Ol*RsZ<9X`@{pJ0{Wt
+zQ`ULQE}r$MlXp0OL<~T&g2mBl6oie^K1Ys!?Bx4pcL~OJ{ITZ`M)<xQgf}MT8>Yy-
+zRZAqw`M!2#BE_^qZ=pYI-L^&6z5b at i31M+xjC4yeFQ!vwFlO4RJpsw9E5cPMg;k}J
+zUsEhDYzA?MEebUBrgqDk%b$?$j84=FiPGPmP|G8aM5JW>1eyN#6EuuHAk>pEueTWj
+zn*kyrv=DRo-awDEPB|bgQx8b{gl6d+*P?mB&boXYei&lA$}i=mlO;Qlr#+X|4d#f)
+z`j76G=Ck(#5rd`ZizEJm_+xvr+w<kJe^K`%)=fsk0}_sfV};8uo5LNkVcm$<0n~sq
+z+Rug$xY%1#A$zdI%a<xRMmazXS0mHxp1WC!DodrfqMQPN)Q|TH6^|g^teG=q=8WmG
+z=A|`K`>k3<xchV1F<gwR2=$?yP)e`Vj at v6W<0~b)_!S@}COIwnQn+`F<kl9-p84C9
+z_^gv^D1HVy#E~)T=2c2Cqg!U(dy;@3V08 at 1f<5{$Bus=al%xcuqqs#{Cp1Vih~5+E
+z0I4x`#IG8cRzXTV3QOR>;H8o at zm#AxY0S)VYGX)=K`A$s;}&)gUpgKpjgyxxp?*as
+zXiaaD%@fwkoLvjlu!L#sj)eIw3{6Eo>*O2CKd1zt={EZIf&K+>PWro#{8*z^Q|+hp
+z^-rI8PeQq%^`8FM3nZ;0U70{-7ZAYd8ig1g^$8+{2&}B!Bd@;pngk=g;tBu_=V0>$
+zMiy$Ni?k+(X44-cN+l8`#z+v$0yxZ&7 at -)Y4WJ}J5T|1=7PlP7Xu8;XSSsBEeP<mF
+zQDc&xk|C2yXJBzIwQqQ!B!L8R@|c``zbw_=>5<J3JdHF%rAkb1h60+GIe(vg@)~_f
+z#mR3=0Sr&FV%bM$ukOn|FmzA`cxmOPC(xR+9T839QPFwoq=%vTW6VO>XBoxQ0bpP?
+z17n<WmOXN|6jqn$*sOH`2Z{#uof|NN&H%8CT3;_U)iqLCQ7LuR`^8m4qfGR}$w1{)
+z3>8 at Gm-2{sU08g=P;xkqMx3w<j%SV0#C#`+jJ*Qcf&GHrSo5ne3p;uF1(KUxAXxz@
+zs31J8ighKC!v+`^9ypk-WxzNx85yf{R*U%RQYBc}EtTJT1F~d90$Ix<t|<lhPC{{G
+zDfSFLrOWRQ4X6*GGi_XQ(M&AC4ef?yfLHE&dwkUGMN<<T+R+|pmAgK03qWuQ-k^i8
+zBuhv%!XU~DSs_`pdWDSNKGl>1+|W4;XR8J#GU3;S6})gLBo%uqq_V0~TAEuV*aehy
+z!qDQPkodoDR?Q9vHY#>KKLVlOf>^J at oB(igpTLs>;p_KGPDY+?66K`lf#A?buuaTf
+z*QYd^UatzGEdf9$%%Cw7$?cVvQ>x{_1w?BfjDzYY3GMA4Btx-nR0_$g=dHO+Us>Za
+ze3FYsKRnz!iNi7gmKbYLSV>ZWsQ8W#-;5V7doavkk>U_Ue{wnY9pI&iP3=mPQy)85
+zGFr3L3fGYaOqEE)cu!(JKD67*Ensf&aJbm)+8{eV_ZA3eh7cw at 6vsMJ9?p^Ce at v8&
+zY-47w at Mv9N3hmuUWfRvSv@!s at JpOg2z;wK&57?@|v`N|*9MHWI!b9ol%x)6fcqp(s
+z!+<;DmQVfjzs#mlask0mS9;c|pB&G9&jD^one+U;@0{eaVkADBtzDb|SC;O=o3^l4
+zL0A_j^x<Jj0D^<8EUP=MOCG=YUMV<GB4ew at OX=QmlG{|E3MLXr$Tr8~z)XPXNC4i@
+z=lVY2Mc5^Qjj-$A3HUfH7|=ESq5Nb`PnXH%Q=tT6_Yl3DRXIdejn!^4l{<i>9h_C^
+zJ%Cb%p)>>WJEylu<yY5XIT%9}7oHrLkUkzh6yOrla<!Gi08Pxdj9)MFwwxGO2<>EE
+zS4#T at 2;Y;CEgl?_0l>01lbPWFrg3~n at 7YC<Dc7>+A1UxoxvYU at QKB>z9FT^>I(cj1
+zOF&~xGJ3F313S4hpFH0r2TWuE5`=lQ2Y~_*W$0N*g7DNi)8w at uye#fNLs4X|cneGs
+zBl(SV8u3i#A~79biO*d`8)o`sP{jqprbpwB at q`iMed9TmP#Boz at Fdc3@DfL4f}j<Y
+z=jX4I>D!Nk#WfKTcZB3tT!S(|Qc5Swb9cYJ6b(L+jZVDYp7E-5`8&~GLo8N4>JH#?
+zF71YW0RK97bxYufg$9|xDiKS9=tX??kK=R1FCTXr-XkDE4iCcEJDB3Zkd)=)$J9eI
+zvpnA8kIwluKJT4BeJt*fTiRzgI0;SUDE_iG;!CIEV1$>Ce>#a~pdVev^Y^U#{9x4%
+z$^dvF;d*3>7ewnC%D9cw-U4Cl%?Xs|AYrhA4>u0g!r=!7&^_0?C3qF))Y&EC^<kMA
+z@>Tc8z#P7)Pp63_kh5uHm;nnhD5SIm`~NU2?;9`<0V1?DYiBMv(e!LXQj=flkD&4K
+zM45xnoUn}*h07(~<Jy5bEG!&l#|<NP%w6NQs$r`drx+Si&x=7>{o-IC3}ArO-&^fL
+z`V}1SoQuS-%Y}t(Mnk+O3|82Y#*z3m6OXJ1;?DI- at s2XN`r0dH%CxD<6JZ!`uA9GB
+zZvXf%<j+^!EN$7XhWOm{Q9{^6z`fV!mD$nbB($E4JaWi1Ee>?a_wsEZ!oxB(pkay^
+zr!M;eNN?gCwqU%?2GR<pPeuR8K{)J`go~%4ygl<ZUCeUm2cJwZYxUi)j_qIg00sz-
+zPrCt$$pmo;Kn8yLw0~lR<^mH}zZ`+rzqrG{cZlEfO^<Y4<C62w|FE3<p${rfq25VT
+zUcLPNyg$o^S+A=UAPlda at Vp5F99=Ua;?W`{7|3_r3G*c7-&wdHIR`MUwF$<c(Eth}
+zN1{zESADx|-tgbP62m6WP7hdG7S-S}Gap^YIyhu<ICyLROA>Tpxj2D_42Q$k06idy
+z0akJ=F&g{t1kO<@(1=&Hds4b|oFM~@_So+bzx|UU6KW^R)mL9BB_&wb$3l)b>XlcI
+ze_kFw^KRJ6W92X5uOYuqha|Hrh+c>xLjP>aupLwO&eEQ&B4h+KAgg$8%M_o_+1Fr+
+zbnscO3E>y@=@YF{V>JyFFi$u3?}6FY<FI6044p~SG3U{9qzUUGeK;dHkcVB>1SyU%
+z)}><0pSbh&;zTHtW&s)PEeoQt<mEH&zEzd)Qtg%;=2Vne$dQKG>w0f;%SqWwWYO{y
+z^mS~i^lh0<^5lw at P&~WP)005eD#O_HF{WDV_C{inNMtBZ$M_b&)bUg0?MGggln))e
+z7cyUHT}<W%<|?t-Ye;jfso5l?L at +ZC6K`6sB?I1QTCdbE+$+`RY{lL|kM>4g;5kwR
+zjUYcEByGq5JiuzpjJKs^Z<!v9WoIXtIBG4j6#n0xB9pL+Y2PInERrxqEq48UbCeA$
+zaZuqDFgiZO*XP61QC%<H8 at eQz-YaWP{I~4St5I&IhHFzGsk#{KCoEd`5Mo^M9;(b>
+zvZUvxOVJzU((<9bgB8(Np3)WzQme9MY<Zc!D5~WlUYSeLXHcU-Mr)l20A+jMzeTFg
+z+!kNtG4DJw5w2t89Qx4THDQY^@tuJwVbXFqXUo?BoWU6&22C-U{34a*yQSCNi&IgI
+zA;ZyV3pv-7;*#ByH_ML6 at 1P1J%1C%+xIvJ}-s<0nahmgMY^M@#N)pDa6yQBd;;A1q
+zi)PEq;k}UU!$6O`JZNG9mZYQ8q4jERQlE|`nXnU5AC(5Px at 6nsuSwfDyy5J?>tvz-
+zE;vd{?q_VD{*FxBIAAN_lqYX_HS_Fi7Ge8QM=As1W4FC{Iz|bP87ul`0K2AbR`JVe
+z1_^aEoI_-8ukvsRN10K)4^bhBowL2bFaWxumcen^76;}YnE`Sx*6gh?NjA76)9~v3
+zmRF`tpB7J~rP^gvxze3Vt;y8aRnjVNetVU4;6+qE9}eDlp+`BOoe8jTx?VMYcYi%V
+z at 5A2UXB;p9wQ+a};^RtR>Jp?gFLZ>)!UM|LEI5u-JI}l28Ab#_Cq|_v2cjK4&jVXO
+z4|^bbrNW8FHZSOsH5JOC9GNMy(UOyjPsWn6L5VVw!!x$8CSTBr+(C~t;r+~Y|MiUO
+zM(+i}J8g4lMEF~Cn?OSV at 6gls@d_KJSH{JKBGNBl??<%LY#o2wvRbr9It4o!N6R-N
+zo7ECd)?&h@{5UA)*8XKGn7l~kl5MhEwjc-g;)59y=)!ydJ!z8CohGTgx&q?u!GaO=
+zn7&pe6{UHxt18wlX_CGuO<FvS67=<&%ik*@Ts?s<T-|tiv>QH79L?;733m`3<LFF@
+zlOa6xJK~4RU^kTK=A3%TYRp3e6Y<*jA_*4=w1$8D=2`9*8G}9q*sCgLZI#zfdtOrU
+zH`)x~5S~Z21%Hco1|J5oVOQsZVX)@|I8WxI(BZMyZ}}X+9cBQzu~i?0?VzM7pbCHd
+zN0k9Glle38*xehX4NSpy at r_(s0C3zSr?95PU%f-QT<0fZIYhnJ9oyD}zX at BW$%+3y
+zrT+$zgniNMi>^AORVBd6Uq7_~#uIVkvvC%-FDqtjLvxK-W#dPa2~_NEaY^UZF}!*`
+zPUc at SUypxjZfTay?`)RckM0(4HWq#_h>G{qRLc4oq308r>NH_#*awKlgHcWd;TB at 2
+zZ5n)gKinZAa}Bi;$M!(mQNl9~N<?Zn%|sM3ukFx&j`LnDLytBtoGM1kcNm+>;NB^_
+zW#OvjW~fT2z}0JAf!kjz1E9A9#YA$Si(u=rskmOO{YX-zeW35*5r?30??=zWo5B}<
+z_*^L~!+aH%G+fiq%g>YPGp0#LM~Cd%wM*W4WTVvFUMv2&V8tx#54;(c<;O3Toa1t&
+zxv51O>l>x<{zhr~O_KzBU<{H4QbIShaJh2eL!!iR32i4SG2#wr>VWil6+RBHP|IEz
+ze5xT3;-wu4;YT}=AMf9~(_sAaQ{ZTnJ3<_sQ4Ba8m9r9_J=B%nDSn)MmgpdXi4ns9
+zFs8VqkJU}G?f`aU;H*a=7_Q>U7$`R09ZZ at d`3-;5C!hG(C&ZWHmrxKg9fe1^`GSq7
+zP!J+JB}Hb>o+I<;&zA!*16#lDZE34*ljF}_Am!!dYK0>ck=|LGNAK+H?2raBL}LT4
+zMro;Nm9FkCOa&p{KhXjPK%eG6+F{`^ik=H`mS8YoD~nG1z(D%u5c)gz6jFRClIBa7
+zhM!|GjQHq}s3SqbQO>K1EP(Dx?G$f^FR?Z at W%eKb at TS-E*!Lbwi)DK7hC#B#qk#t7
+zTJp{WscYFLo@|Q8Bj*5){XKt=$<l)5*sy^?rBMb at G9HjJ&_ltvU<Ag%1R7>vIoa8A
+z>WUS11E8@(S}?h)tZI&hTa at F*%brC=MN&|J?$75;fdBT?HhDbDEQ2fY5!rr)C8sYu
+zT?+CFjl~Y~bJLUQ6(;)Rc#JCRFL*&>Wwb4 at hX@;z_qs=B<#5%R(Jq<$ajae+`521j
+zG&h&HS~9(3Y!fGRJ|Y1Z#{aH#ywQTcalXkC`o5VgkXA?PIQAF3Q7W_N;zbN+Xjei3
+zSVcZyLp<S73fo}=8w at e@p3m6?Kxi@{OvnuUWF*axI8U!fUO(kIFqLM&k#RUa_+pVo
+z1xvAITxK5?$G3!W(W*#y7R{U=hR at Q2cMA4TH&e|cZTq3+XM at b8c-QtFS_xzT{<Rb}
+zK*2URF?ck1inxO%E-Tzygy~<>f&sa{wFq;_tu9H!AUbXTJc+zUq#Onm2{1cNnxA=s
+z(c(cx5|HtPLBqT!6C#p5SmTxGj0Z}XPM`Os>&s`OjAdwL=;@j5Qe9Z7<9Ya5Y%_nr
+zD@(_oA~R;pf~i*o>A-L%aRQ_!$m!$854~)dhkfQ)IlvwR!MZ=@k?t>}^I`O&?qQgG
+zgg~(UaGbTY6oQtZX+Jt!I2*Cd6Tzp|-0W=$jtWsnZkzbl;5~I5vOEbVbME|~?PC22
+zhZ&Utmcv8_cu*p(kN~N$@KJfhMxih+R#1CKm_<|cT7-#vyXq3*Gm?U3#fitPOkxw$
+z;K~5$Zo~HSIq2P32=Yh#a^86#)KfqrIQ>HrszoEM=4U}H$6Vc6ol-x(8iIf5MI;4p
+zlz-R^3orSVcTAI>_HL=YxKaXt2KQq(-?VCo3JJH<Ni`t{E$Bu$SoIA9UwmCH$;GC5
+ztPm{exx|&=ENp3Z<+Mx5?(sT*q%v{(iD%0*-+WAb_wXogttlbL$by;+oJ|EUilaIW
+zIQV6Q(LOQ(J?>aU$pktUpteMgvwN$0NNa`w4aCbc62ZhV>#4_|u7^jLm5$T&lp=A*
+zmIDL>i-QJp7sR3ufir9w&oOv_S#0DVslu$xz0)gY`IFQvt*E0^Hh=j|@jl2`+=hV%
+z^@sirDTnuUQm at Ba$_Ke03P}P+=E<m(0Ld;k6)2BQrpZ_0#j&>wuRi5BmT0G9CLfMj
+zpPjK#y1#9Z<Padaz=Pje>CA6>F%hNZs7NP(c!UdE(xj~3Q|ud^!1nEU3J5bK*ggrs
+za*$rj<UPva`va54Pr*BS<Mn}-r{&`oN%Tk4nlMU0fFuw_+ at TOZ^dOKAu{|0?Wm=H)
+zSDY;XfMW}=?fqaoW~lH9`yfu+g80<C^JU50GsX3T42isLBxnc*qx^V9B8^QrHpPW0
+zU~zm51?Cv0eSJ@;SMsu;O)I8RGHMuKI#DL>!Ptp)^TTN*fsgtl67pab59P6^(>DY&
+z0VhmfpCf_k<&JM)(M*~j30Vk<kB}*lUSfJXjqTY9HK~R*-sDyUBQHC1S6(YvVQ_?N
+zRrZfVleE7S$dr^h5;ZgE#3Y9p#@oNWDbicmA?v at tN;Z9UHHL7!adbb<HuyD%BLiz<
+zp=8-`V?-vpW{D4LdJE^AERi4ar5&;}ULe7Xvi<1{U8=|hybVwSnUDu5a0H>qF+BnX
+z59p#Zrp%GZH?a+SI1WV-n9e}E($5$!Dy=|2N&^th>BaCV5n#?1mjvv+jAI(}%+9O5
+z9{Dw%<(T-m4_Nyo0~y0Sr-X=y0hfjqxo9^weYzkzhw5>O%|}k at c{nOF^N*J?Ipg&p
+z?8N7X9=4=?UcJ2W<45(#d#eGG;98uE at Y_7ecoMI~@3Y}gD3~na+UvvVW_%Nw9n>Y$
+zWuXLbrxt)kH&|2kQvxXwiYWmGFhJN9(oGcN!t_%12x1LdB}D47X)9DTCDcFSAQ_+?
+z8%!!$bf?OcONtsIkqH<Ew}7xFzHgS|q|^L>iA2{Sf})aLk#Q`N@%Yypmcv`S4e at yA
+zULTq?&NKFma4Pg2^8Y~`i^+PjL^89nREhABDve~ia2Cwpcv9&TIAh=g=~7ZTQ5MZS
+zRpykRh%*PUH{&RK39tq5{sfUh!OzEe+4+*XGGAidD9^)p7W?psFwh*u`erPa-d{9C
+zLO7tP*Q^|&92RHr!XP5DGhi}32mpLM68G{MPs#Qf?}$5$DGms&bWq|UH+|Meg7Q}5
+zNmz5~J)a<xAt+(vJrgHfnz!%Xq%rL<35N)4{Y(Lgr<y6s7{(EH94Ic6yt5<>;}Zk@
+zFd0Vjh=uGyufG_liTylFPMCR$Oevm&^2y1Tl+{g>;6DH(>rQZf?1XX=4cws at CG4E?
+zMItZbsC<39$>7YUH~KVBb&Ez**eeqq-;ej!VhNZP;1Ls=WknQ#!ih}&9gbsNVVnf^
+z(kZLtt;K6(-0rC|Vb at eCtD2}w!F+v+#AX|)s5p-I+F*j}R1F`4fu`4I2&>O{z4(m(
+z`lEjQxh)|~I`iB~tL;TuQBDF5;@A_T&-(D?m<*&mT&(o31njrfCzIW?q;$%7Qz`%@
+z4hUm;@g%8VxlbbJn**^m9*<l-R6vm=p>uLGFRL2592Za7=6;Um-zojUc6o8m&zpE}
+zpX|gurc}+!vcveEPJgE9SMIR4WF~%{lY8wuAqlq4Sg!^hbJi`Asat1 at 9}19%$D<}R
+zMhVAK36I?lLs%v<5$Ykxc;y{165~iv<{|7R%y<)LB#Q|fX=9g<%3TeP!bQvvbXp$}
+z>$?T7hR;mVk52TPQ4h>Cf*8V|lUg8Sb0%n86xT!s9X!5`JSjFuHvaW_ at qOG#1wQg{
+zy&vhQyCu4;16c0HhSp#bP3`{^6En=IN2V(qJrc*bD-!@=z#fYxVtZjCKCB}?0Vq<(
+zlM%U28%Pb;>J$mTfil0`D{j~W(v*4qg0-^Y_*cZ&>z5q77&>jsT$#9I1_*~U^mw+9
+ziewb*6svSIHx5CSDDme`fQ0A8A3&vv>|)|^L?oPML9a%<uOijN4f<<(WY>*2#b(N4
+zO|QvV9$o{dBOw)Mwy%*R{INQyfDi82fwD4lB=A6?^qyBIE)M;u(%npR^ntlj1sh%*
+zY6p2n8$hn?ByE&hy)e)?5&NLKEvZ_%O~$X8i6hS-Ucp#wT5l!>Jq^L@=h%Lg5)Wf5
+zat)-#HcV+2V)5sCv+PPHATy-Q^GM3?ilp|G8gVa=iu(+R{^jUS_zD+Is_Vv7N%fct
+zdG_>2qyXy?g|(%U+fXREjro$(P=H-LY$S0NgQ6OYN^G%iMLT`H$8$!;!%PE0JNFFY
+zxt)Y#jv=HbfrapfY$ioZnT8CE=QX(7g_%huaP$Pkam!Rmn~;w28Ar&JG~-JpjpmDF
+z1O<-9CbZ8Z(FiRWVkFMp!rsgrgkYd!{LG>S^49aKM9!mphXgo)?<yta;esCbK*Hnj
+zr4ktRMq36NvJA=qE?}giumzGJB0GvUNMKr~<nAg_!m<H9nOG7Y2$RMTNx at rTTJd0t
+zj43FRvdQD5;+<X6c-KDheX@@Uc!KxoXP+tIwurpGZmrb(tVV+0h2{$;a9xFUg0Wx<
+z=%^Nm+>Ez^nsV#y#)05yZ7#mLRa8?dg}Cx-OTZ9#D+Ud=U<U0%57frnxU*@l#3rKR
+zL?`iWCLkA(5m31L3>Tyo%iCXaN$M{_IGp(x*@(lTzJg(a`f++pG8bfsXL(Rwp74;g
+z6*nT1!j~6EUUUF1+~6<Lg|@U}>p2fSNIyC`6!sK_1X0|Z{3=ED#zYVJ<px&Zg#zh0
+zuNFY#8-+M`*^zGiEM5&v)yF<LL%NFFB)iIdRjq#^90Is(0n>>-r-u%tz_<d127Xv1
+zZ$12sthnJ49k<DO-5HP$LpVM!@0}>~PFtkQujELs!oB#=v(kK8B|gT)=Aj2coNqq<
+zO_}@rVp(?Lsj$NjNhiM7vw7P_+5VZWkOV+N4$yZpH0z7N7=>n8lSWw_;o7p%+i>le
+zNi%Y!#jEQsB|f%4zz8nf2U=kx*cs3RsZ%-v;_pmVgHCSp at O=l1wt at gBf>knnyBLQ-
+zq2;)Gu@&B((FIA at gAZK5{44~91Ovp%AYmUyW$c`|@6<oMoB-!c{YY9$rEn+GKZIU~
+z4`W1|u|(Sr$aBF=cR*UvL~jTlAmhbCF$wI>#@9+!6lwW`{ji8)oTIQ?_KDR1L$w+x
+z?yz~V&;d5xxLQiSJX0hCYZQg}RwBENa(KKXC4>i>_I^M-HXe-t%!MSB8bqd;OfQ=&
+zFaA%Jyl}&Vvh2qfioe at G>=3~IS=?EM24Wh6X^V<{K)QJGa(U#&8u9-T$b_Rv+_7N2
+z%v`fj$0rM0u^E9(S#sjZvUuTAd`Y85>JH#~vQFynIDoe`p^wZ4Y%@{jG$3X&{9^cE
+zCOSPY5Jc2&gD5g$M^>x)=8iFR=2wFQe%N2>5`8<&Awb94zWgRFN~{M<?t!@723=+|
+zu1yg4`|xFwj4a8{&cz2U^Ci19PxiM}OU1RDB=sJiKjh at r3hf_LcJP0BY&}ghQ1)QS
+z60&5v at +9;c(%pd5$x3nZI&y9ODvqW7eXpd#kcG$Pg))G1sBK&aNN_B<*Mq46ushI&
+zadr=7VMbbpOvcwPE4REYuU_-GEdR*`7y|gd+u$w=YaU-UM9~;j#`m){CFYwRkDQpc
+zT-I%S4j*qYgd<7n$5u-L&iK>T0 at yHn8(dLAu at vJoaqhWXs)$Kdb*1dtTOkKF?w4>c
+zR>gaHBn%ckzzo&`NQvV>e4Ypb9Rl{@xKKBi8Td*$UmiIuhn}QE1d8S~if05$4~SiX
+zcznt(_9kH41W5uaxjm2pUXP^X$oIm`F_M3L5$Z-76hQcii80yb5-3TPow7C=e*_P0
+z=QodgKI4(XuCd}Orkq3D at H?bKzLYG#M829Tb0?mNX1Zk86>ms$q+Uwb&6Yqh7yy3}
+z99$_qfH_$Lpja6EA##8J3P_kRM6z1cKvYjGn<`ab-zgn;w#rLic?8?4v at aVRwCEc+
+z$+I9|*RF{?j^XS><i0Uu#>$%j*8N1^VtMVvN-5YqR<|k%U!rIvz&NWw!7D8;ld&b`
+zT22tK5k8uL)z#O^f#>(jfxqL6;`r_#&*0}_r4|iF83q&RZf+{z$RoyZkLN1e>9ZMB
+zgUNS6++gk>Ylcs|KnfHRo?EGS&ZFRHk<8=kvT*c$ZW@%*35C-9!F|$jdL at pr^@+a;
+zqW(=V=JQy5!M=w&G>SClkEer`BEYVVe+|-ujb!(y+%hFFTZ+(DrBxy_kY<2G{t(RF
+zPMmfcMkT*&xpocS<ERzuV_7nG;v`jQSxqPtz{C2Q6aIc~KZbzF&i-=70 at 1A&>}(aZ
+zNm_lTitA-_&XgCwvP#<TXqI3m4<i7FvH?jhCfOS?=k$Q at RQw|Wryt;MihTCQWph`^
+z3r{{K{<95Z?3=Yqj(dDL4t<2l6_V>*oLE7aj57da)aP}>S{Oq{sy`JbUFc~unUcrM
+z_DWY*C$28(>gkm3UVI at 0=HtOIcEfsb?IBa6M?!L_v59tX)PsuolBpgv0pAU2<;CT}
+z83UeFysHF`N_9bp at M0Ug6netg9_hrPk!|ITvSZqIENtQILTLJ3*mdhFYn8@%RnmnI
+zPmR47R!`2?PlzYBsRqlt;C~B}Dn7Ho2Q7nmEq+?g97qowY{8z7v<GtzZaiL`topf^
+zq;W>I$Yq(bVB9io3w06J8L|LhH{KfdQS$aVFvm_06#ea-{2)4BCHkxQ8d9WjT8*UD
+z;?ypPRGzyxJ9B}o{|sIfy&s%S2{ni-Y#0j*Uuq9<AiS2!l5ufvos*d-Iroo|uCr?p
+z2?fR1C3O?4BzG?kWI!4vxebZa!2Zb4-of(OKoF6gR2?#;`U869#`0Nw+{N=S3m@>`
+zzF3Cx0wO4N$Q&wtuqzq{V>V5zm3=t6zIk#jvKeO6U%MBp0;sSX!1?At-B~+Ow<Tj9
+zng&VIhpg0;Gzr}U<CH5&WXvpH#>@i5pF3`mr28 at LMBOZVB#x=@GM~J2{nOaF#7QJq
+z1Y{b%%;9xG%8>SeuX8;1U0 at OB@=+&?W6Bh7#kOOX7~8LnwHvPpfb8=hNR@^;)oLGT
+zo{JRbjFEYni&bgs51=9wk(u>*Kp>}kHWK^!T;83YHCMWBHPoTW(w_NSwc*KmNT6hb
+zXs>mM)30124pH$u8V0$@bnNxKxPoRr5s%GPhV?>^cH#jy<5WsO?AI>dC9i(>QQ3O=
+zE7CHVCw%}~^mMborWEgwhWI at t!v3>%%En(jEiK346!0MQ1#%s9lf2bsnl5;=N5bF6
+z*6pNIaLOn)lBfra at FIb`#^Bw=n;w&{!ZwL~EKR0_=1D<D3HeUTVVb7-)i~!h6+xqm
+zI5?#rjab`o3T|}&0Fy8P;l(Og^ZTon!*Hv>b2TYHw@`L!mox-)T1;*ZZ{w^35`)-J
+zblOwcIKYN<#l=|ISz9jcSMF8O+XnkXP78IliuuUes4=l8^ea)HYn=T+k?Vx%+c3~m
+zc<A#FNTD-vxMw_>2Y*DElfHWS4%zvkH$iZ2iz`4TV?xkG4DrjhqQPOjLbmfuuSlRK
+zTk at Y7FFCK3%GjRC^5*BOBx`HF%$mFq2V6r!K(~luvF)J615BPgR(<Xk*>mA~e2WRY
+zg<nXO at v&)Al!M`e4Pf19iwo~C)}K@*zLzmOKm-{(!Lh+r*bEBS67g_|F!ggx^f#Gh
+z&~DfUrZ&MkMIQl8YF*3Z$&Q)buVK$R6?0$oB$i<a4)mdTGv2|+O%TQ=bBh<q^M9%p
+zFWx!e<`4zBg`?-0Rw3#0k}DeIj%`+lfCllSA^MC+jCaD0Bw<FzX<E%F-MJl7aqfC0
+z{=q4tH4pxyXr&J7k)Dzc+57Q#r0V1ACHLjAQgBD9Or1LyYYv_Gh}16ewELvwAJa_F
+z9lSJUs1QDKvFY2Zb#Cu!#B1Q_`Qy^3N@>n`5FdEQABTnRv2D`0e6RH8bxQW0F}hmX
+zj{zvnYCYHg`kJ;MeDM}8?#Hb>*gJgGR)LRh6yR^fw{DSu{KG?{2SW-g4qetEZ*6%_
+z=Kp1dDuRxlKpH4v;j>I4J1r29?8i%_?X11JFhb77gh8LNd>eNO0cN%x3rq~^y&<AT
+zvm6HKGZ4SG(;$-Zs&G1CCPN$-QQrRYGrG*2)bm;1kvMG=Tji4GB{(-|i6t9)>m-7W
+zH9BvbUy2{Z*F-pL>E|ecT{w28>az7x`@S7!sd<%8!aw!OoZ^L&na0oIA`^<I#MyS^
+z3()+{cLmt?l*Tk&)lDc?Q~OhT__aj1XzU>sgX|Ud#f=5_;+CoVv0{cK5FZw<SP$|7
+zA|flv;ht&gX77=wzkjz>9}gvn(<f-$7<i55O`rM!($OS)(Q!*9@?&V$708SA1Lv7O
+zXI;EBuPMibO+4%3rEw at z_q**ps)N{JElZU=JH6&(T`b2Q?-^FuqEfwVhbn#)-$%od
+zsT{`QG|{;a>i!CbJ;2&`p;KUL+A^<3-ul&}vhM?%%?#_ue(~IpE%V1Lkt`4&4M90r
+z at X5nr72kV7!dUoWxoD+I4Spimp{woF7NFuQH+`jB832dK{mDV7<GV3!kP3Xr=mhjo
+zYz|QYgHkL}t|+acsP4xBz*ppb*h1a{u>`K(_>r~p-2bkWmeK}njv39`QR3o0xM)gn
+zmV~~Hb#F{8BB(>3p(5HP^4?rf;NoEur{@AQ9pi1kFANx&--&m8r+g4RUKe0+!rTO_
+zIeCX74fs384(B8l!Fm^r$BWXoC#Or^x$zm<cFkIRhNfGrU0w;F9*~UHg|cAQ$#`uo
+z9W()%kv at cDb+&$Q4PITxoZp5WEDuCr2*Oa|(6!Hx-N6Pb1AO-nUwIy-pez<<F4_cG
+ztNhZLi}&k_v6)O+0tE64o35YX3twF0NZ<ihHv6P`68n5WB40DFlLzs=pI5*5q^$Yc
+z!%{zOA5PEW%2;0=3{My{Sx!3P6azELPkfFWBbWR6iD?*C2VcXQ7CqX|V|M at go|$;U
+z&N%p}Qv<kZnqG(L6l~~^Iq}&7D2!NscVV{BUD7U_zW1zb_~}#nB@*`L$hTo{@R?MZ
+zUUZzy8jBA^aFq&h(p0Z!OuKCP>1r%IVK_k?TE+sA0 at C(n&a<%gpzSqyU^p0y{fTMZ
+zH{5UoeR=kgmoLMEJX~rj#JJFos02UKraNp|Td=@`IF98Rn6K7_tHeEv1p+)p7+&b~
+zq{-a+#nM&LDXqW5DOqV){FwzSU^J}yxSdkFutE=O2<*?qegodf<s=lq at FR-ww0z#1
+zfO8L at Q3;px+|Hn7 at HrEibfyeOX`K2D+VM=MkNVQn265MAZ%Hs0-zg#%-v#G}BDnX0
+zO;UN$dh}#_VeBD{_1C~YqOMqGl`q6v0XiRnCy4O7Cbr0~|5>X6#u_>0Yc(9Q>6BqW
+ze0ECTud*a7l%s8D`|Ydg2Y>wPcbV4c00>}yz5(I^!@L<QIbYB6U`MJJuNKYPuZ1y=
+z^Jsn<Bk)^VnUMH|1`aEOwWmNq!56>gU~02u_Nn5%JyXJGVFs}dZ|1-Ps2htFo6mn$
+zp1$!O_^+s`GQZbjh6KA_70-+_<8vGy2d=np(s0AcNu#11F!G*8EgJ9mb~;UuIHLoY
+zG?WtjEDS##f3(JagQTH<xw2Yw?lx(kio>QN*tf^$bcs8DZER-YLTt*-6A$+mKnYdE
+zLCjE2x9tA!SIrwg{dktWpUc{rRa6lBaAa^5+w4Hn#{kjTJ?t0GA2YeJ#OSW at Nf)LR
+zoJXQ=<vJ=7)2GanuItQrMNV{h at 15(OgJDFAq~qoMWiw8fc_sJ|)0d!yei(C6e3G4x
+zjoo|FR(avu56Mek`={(WZG$qHyAxmefL)ub7y3v1Wkytqddc<bGps{}iDTW)bA~C>
+zd9SeAVe^~`5pQ2wo)bp;h!?Mr+aeUHj;T|eQ?Vv-AIH2N#-QQPq{!54ydFPsDHJ{Q
+zVEmaLZsZfEmD_&wf=>DR3oI><4czUPKnA|m3<PML{foPQI}MDBdq#ZglRqX(l3d;7
+zeG>dmlN3EWNyhzU9yU>cEr=SvMSGyJM)v*mZE=lfHp2p at 84*co4M<vb7N(Oa`l+|t
+zRxB!kE3Fy0%F!5yWvK9Qkpk-gdiY8wzCqHGD(TfZl3AH2xm$|G*M^lW8jJRGY@=}q
+znE&`KBRD)6pB^EzeLJ5S5||GAKv_Mq;RjF0;bPLG?g$47kDa>U<LJ@%;t-0ufD{#u
+z!2#Lhl;8?uKR_ZF9(Me24R-m=nBVU)aEYNCf1bP3Wz4 at PBtF&}qi$E}PyX}`uElf1
+zG{Hq;cL8TtB*aMSnoJbcEc;K}ExE6hO8RbN63#`3{On at ca|=Gr^b2mM8Arl$;UkpQ
+zE3H|5JIxd|M%<7nhFLTRf?QhV=O*bmkLA^gWzM=2E0k%*KQ%{6pPLHN7#CP1uM%A|
+z8PX~t^<E$Gr;q52C!rmL8sgjcXml7~1v{3GuyFW{wV1bn-CbUpkUvq1r(tIltu~Im
+zJ^?DikA0b)|GRcb;xjeP(CB>sO7Fk0#M0LP<W56;rs=~d?<8_35JRVkq94eDR)3HA
+zIK=j^tyS(KCi#qRTzCrNOjsjE>j$7JGht<<>V2E!jc-3GuV1rDDo)=h?L|1357Sgv
+z52mA-Cv!%U2y<fCfz^rAdkhUaRA at Vpm-<1_LHcMlVCZs)IubwfBHrBnh+8J7&zAWU
+zmPiro2oQ^m#OJ_^XC3bT at 7E;+MK!SxIW>{p+573!Rw2*|2C!-6_*ihe$w^N?NdmO>
+zM&3vxtxfI9d)!k`gB0k!v`NRvt>1Z3X54VHa-s`kOCa0W!zUIxs$pdW*w<kRG at 8*P
+zyUW(g&a+$n={NuY7FbC{K~&Z$kf|;Bo)2~_19e%FQlBoqcE5O?s|}{*JhYh~dSruu
+zaBY?|EbtCdM2upy6 at 7uYhx&0eoz at 0eg14fgzu*|0iE||2H~S}s1r_ZBK%ffNv|^uh
+zO=>ZUYQJP8I$NsBAKK`8FirfKT$YbBwpNW)&nFh1qyzB5*Dk&Bc6gtOCqhNN*h_Ez
+z+a9rCZx#dd<-buT<8D6=@&jg9a~h at MEBxfyQO2ANkU7$gD`>V;f;t2yiP=u`OP`xL
+z{^m6CL9gI)s|&ANajwnRuGB~B2-eQS{-Crk#*hV`F)ZU$Fv>m{uKSZ-NvTekS>qN0
+zL=tW!&XSFHJcYFVgmyw!wwhlNqXM1ziBhcX8wrq*Wcx4f{a@@)_qikq!03+7*tJ-u
+z?_&VqlLi>EAEt=)Lzsg%VRdjBc9;$XWX#HG(p$i7gpoC&uiC>4v4NfryioH0U;(@g
+z-Sv1dg4zWd2uONb<#I}@AR&T1zbCg-uY=XfW7YU~G+pR*oV(OKK}yQX$)5yJy at S<R
+zedR_Z86MBrRx`ys1S6In^nQGiJkepP<D$fSh6l9vwtrsV_2o;hUyElaIf;29ck1hz
+z($j!Nk|K;VKTnl?U*DwX??&^v?tE+<dnVpwlt6v9gnkr}o~|B=VOHXrf?iaH3kOTa
+z#=xiPR}L=P2ilj#tuF314dWaHV$~v^Dq4?O3Jrg;=D~VgXn)`0S3KE>1DXCDDa{*?
+zk=h>XM}R!O|Ij(Tc~H^sRLsu7=^lqX_wCrcg9UPu__w6u=6k=l!AbA<0~ml0uu1Y0
+zpz&b_aVd!DS?SXAM2pBLU|#ewjK_DRN%g0<=#i`k<4l%0T8<4ZxHLz`J~WGfN?UiU
+zG<P&g`}$Vtd==);SU at ss0Z7RX01>OhJX_+l1{<9g?epPl>u3iEOK3_ at Y#T@~o_S6M
+zLU(}S_JHls0chaL4I|%mVex#(l&Of(pOLqYh9bH=4IxEvM&dZiMFP<5hpCH4=c+Nu
+z8dwx(;InzyY_pxV8b5bB5sCf)9l&{b%}2ho3*m{*J^i*8AowY~00EASeidD6K}b?Q
+z1_TkpVSr04<4D6~fRq{>T=o5>2}Sjd+GGH(BGRXV=d1?uXt_`X_Ww|dbQciZ!7v3d
+zP1t#uG;J2?lR(Yw4U*zdliZ9#^9*T1_-^seeVZhFQkSGa0v(PdNPja=%5K4)$w8!1
+zLgRF$Z~L!akXTx>NM{=2gMUF-t#W4J`bdssCBNpOMcwk?4+f>spb~&NfW$9?s!wQc
+zo4jdhI86CR9pe6WulT+TJN@&qCU6O)!jPrdxku3>siUcQ*B$!^+`C8H;Xr5;(0dZm
+z!Z`+d15YIYO~pB>1`dfZHYpJ!CXQtpmzz<f8585VXEATmV%ho17U|kh4U=_Kj+19Z
+zK8I;koLu|xId!Ijcl?uI;4|%DIaG|<w8-6lNo&W-Um%H5z^B%K4OPRCD&=n<`q96z
+z<l2cVetsZN(Dbi`W{EWuu0yBYK$VMqNU1PX9itu}fu$`!i{gB at SMB&9o at o<c;uv<G
+z+wth_JQ>VL2*lY^g7<xKj5il0#$fS0(w1Kc_tgXruhp~-bR?5qms96ZKF1}i6_TkR
+zCW(9MEr1xq6W+LfI8D51P}p?|98 at uWM0%rt>z6ftJ0t at z1vVW{CvlxWDj9y5NXNcx
+zwtHKa)j>Q_j3)M_c-coSK(ljQFyVp@|D7v7<^y74%ZZ22VTx<%qj6Dur_^x$;}9L;
+zz!Z&cq;L?me1*-0Gn?7f97meafqfPGvETae8XWdpKqH4<nkE{(?st#<sM*Qa-yfC%
+ze*cf3yoOb>R}wjswfT17&7U{Gkst&=S?W~Szwo1V&-3mu(#LzNuH>O7J3ENF)5l(c
+zOJzP*QMiL<28vPeQI>yS+MzcOW3+{hE>+fS_=bcDgyf2DD5ppET)R%XP9hEaIvP72
+zML(rUtO^W*g&%(DG=Ww?L$vC5|NP0#!vT8G(Hqu0S3?A?Pb|cj>XYFAOB2^aJW|_m
+zA?MFzgkvHNfCp_j>PvEc_(_T$?Hft}e=X;ghwiLqGXx~9 at h23+7ExMJvNpW0LiSy@
+z8EYHJvmbpGukgn3wkmPVp0B+hZI0fQf+c%wm|;jsa8U5AZzbFh8XQ&vFvlMs`Pl}H
+zB|le$liP5yBHEcnZp3?5fS6Mdjzh<U_ykHtKT-AWT`3l<rtNhXf;19GXx;6!wHyL&
+zM0+|t(!8u%w*Kq|slIHh5<mJUzl6_EmB?0N*yvoU_#qs<6W>^R8+MhTNivOMt8Rb%
+zXZIWou7gSd77+7#Zj1$km=)l&8 at 6-9WX%0Mj14b?209s5KlsDG;IUx>EOvnX(O?If
+zW9?(Qg=6&eUBVGz(18z2(>N!fKiv901e(-7zaGcJZr2w+XvQT~*aP_~#`aBFGI87t
+z*}MH6iOlWPtzH#&n1EULVb24KUqbIER;-A}`ixWSaQ;Ch05kvTk)Pnbqu2^ttHd-J
+zQUDsa*Mk=zKZUWd-Ebx6qI4Vzj+P_xEWDwsFKr&JN=8yHdOzRxIaKFv#AXBWLlohP
+zLe#gMSSK6*@U&EX`7P-k)1hY at M1O;&+{*$|SXm}B#vLbqKi*F~kfj}sJspaKgg=IF
+zBH<(2#v&S6$5tOM9J3tz`dyFSR6P>dM%;osR^9w6ihmFn7mw&v<akqH!SWr>3fLYP
+zHQ>(?QzHT3P}5L+S};?yLL&zKP^%bGdTR6BOj1IQB!|)*5&);KQ4yqaxA&@zvh}7H
+zrSeN}W8L0p^U-@?19%?3aP%;~oC3m+&6}urrL>8SH{UhV<&0lJ^!JdN0D?^m+kgGe
+zf8G3xk$}WBha|x6eCk&hed5e(_9I_mVg;@@APIhlhJ68F)57LFr#MGbDUAG{Yq`|#
+zla!uBkdA&BJ1bTj#B?EzFH|58Unj?XfZH{@Me5GmD(%x6FusG4nG5FVv8Q29e;W>Y
+zXbDJJQJLfw7AP)N(L-I0XI4r5ITgr(S;Uhd{Jq$m%Y+WV*+QR-g=6k>`)&^&IwS^Q
+zanV?41yodSDxmeoxl%D!-HY*mF^GRWmL?#d$pi{4_?Hr4bQ~niD&V{d=N09$Od$2$
+za%f)+#;!7XgaA;phrp=4Zi`}r+tf5<iT)G*EijwI-?;n<k~6VDd$f7Y3uS}&UDKMS
+z`cs<?KI^c_^V1Y@<IwGX<34fz{(GLjnH_Y*ZpgiW;Yzstv at cu+)Zg7d4OijZw_$sD
+zIyE$GBjanMqsauJKjO<?f60_-<L2p+Fqkj(2jSS=gP=8KJEijnc+CsMJE#Mw{Ma=Q
+zeU9zGyZVq~(M_06_NL0%!if^V$s#;>B8jO%{Em4Ivgd1Wo9F`|{^gkO<K<9xuzv2Q
+zyPy5t*ZRdB^!BhAfTdn~>gT}#vC9x775bpTB8}_Mc#EZ+n<a<O1k7vNh(#ZWIWBo}
+z0mavZIq#-i32e<4Z#|4W8dLP5c^EgTm`3RVKN&DWedsP;1_(|Ot{Yz<43EugOs$os
+zKkOJ01F${4|G*p6_hHdyk4G|cGo>I4=L at IOY#VLEa|em6iZg at u`3+L}Ra!q`h-gFg
+zRJa?Hn9Tui?Y*mSU2^EHV|!ThVY*9Cy&4Nd)?Ac<{RW36Q6AuQ;o}BsL4;cm&S^Om
+zoxmY}WFJ<- at RB26Th-3t^mvL>Ck)t0YQD{!x&x+Rl{gt}PX>JKiNnO4PLpagf!UEX
+zml>R-^g-<2vJUAkZ<n6(4(XcOg13FmIZ6H)#$u=GTHC-MtrA<#!3+IT<inf6nfML^
+z|D1*<Wx<fio<Fxq_FPBeqpg at +MK1$V8vqOegG<19D~O-1k%#ePFmxChnZ at hxUJ~j}
+zs{;b~{<!S`FpfZpUK9}5?HCS<!S&>DAeCR-WW$Hk2 at FoKz4=?W1n)&zu~ZzGgl1!N
+zPIZjaFw4Lhf(8w!63oCqzR?q0)FZ8nXuV<RtY7oSY=JWdm+f;*)z{&j-mFD{MC at 3A
+zk*j=qC?<%`_x1I-8{O|<sdT1hmd&=%q+LHD8wbdwO8iADB>J{Tre@;h4j+^~DsD`#
+zd6GGj?_}=3be9}Bf48<R1{6j=iKTalf9(Wz!4A_!+}5nbx(+pbL=u3NeQ4QdGSWQW
+z3IzFDS+XR+vXKiqfmO~`DumGjGQn^RK+=W&g|YsJ+4xq`G>FHTv~)H|M>l$3cenI*
+zzzQe}NXMyQ7G6!0DPV>oAhZySl}%*w>T|p^c*d^=`koCL(o7`p;8|igKS>UNtT@=o
+z9d?Uv1xp&Pa13J?r_0n7yjL+)GP|<sE4N6~vVBH(g2^~vs*!!nl$4RFgH|}Y;GQ*q
+z*u>fo*Bvnfu;R<kxUwh~cAKteC}2YiI5{-m1tvhRB@?h6c=ZEbQiI~~6Yb%112R2#
+ze$o`j;dmx&?{1OS&L;S+x at C)mTB}Nr0)+YU2^G<DFa>P}VaBDVVTn~HhMn38A02(}
+zzk|RevYr9B6%D~TfH7#{D)E^g1|&R at EOixzDRs$(Dm;)Xp%+9-Z<!<MX_*w=cG^CV
+zxQL{MWarObm59FD4G?fjS at dFzeUJeCh_4x=E^FES&;I_UzETb^G%5_hsxMyg*~ysN
+z?C1}MK>~2~ZP*jO4|8VKaJT?L%RBCICl3h_mQsGzLM(Csvx6W@%eTi|MH~)33iHdL
+zxM=ay8^kG}y^s{Rg5h30I!?>MPMO7bPdIs{xOXlV2p)-FoWO8F(>C1T`G!6ZSQaOe
+zrTEO{b^Gv*LBNl9^`boy+4<o&#eX>oo6G<xN#mmD<E+JuIRGPJ=)x041vL6rY^&FP
+zYP%Y`AR4c3pxo=Q%nmcPe(Hr5hz+{s4?K6<8clnIKcmI~gyZ8UUtJP*SsTISFcm`k
+z;@uWx#vzEVPviCH&l9^wypjRP2qdJ#2=oi?oG6)3Vc at 3~&q!Sy|3n%~G{oR9KjaVw
+zbA+R2`&9SL!CWK=ou<d|#371d4^Bj*^$!W`IE9#b7@=Hkp3wSeXTv6mJpiN4fXx63
+z3({iGqWemhjPIDP2T0l=nT*gyxcXOrafLLTRRui)97!GIVXUnF2#O`nHFOxt9$J|%
+zh at OA?X!Lvo1gjjXmpLg8(ZBf2tFv4|p<;-wLd93STd3{>eZWoSP!BCMkH`dE2yqyJ
+zQ at Zh=S_EZG(S3*z9NXlenM$A?uJz)-3(U<fi at 4YxyqtTLS4uL<VONO79S1B1kg0cE
+zr&M157S=N$0a*ydLF8NL^)I1AP)hYV&B0rY`LmC7%<n7KghrhKSS%I8RJZ3<1ZS{E
+z^*L}jwQ!hrTi3z5cm;bTo&y17096oi&lyAE at 1{ulTAr%hm;1dKa;VeTdO)g!d&Dya
+zdIHQOVmMa5tZ1TS1^8}0AZIgSwiU?;N%ggxrE{h+(qZ#r&@ZCjPQ{tSzzrB;kVdys
+z+kfDh-&c<|4vq=~I6!{%l&c>^_(I<IX9R9;SQlYRcU7;Rn#mqO!mDn;v-n^JRsN;p
+z at dZtEhxa%WfP~7xZ9T2h*4eBlin7;pNa3KtmAgoKNSaTtmHJC|5gSAaL<ib at ANEnO
+zD#+8v<M9Yl>@xx>*WUa5ZA%b7D(<K<03rV9$ya~Ya#^>bJvfP#vd(Eep8`E-qWhPa
+zCCtNkjK at xIAtR*J2c-16xj-Owgrtnj{GN5muv*f5);`()@tuH|gB*zqzXnWkHRj2X
+z7E0!X*4V=`i at E8(=WqLZ!lO|S9(4vF#2;I6)p3!iwHgeNh1+EO;7)Y|Oxs*HVx~}H
+z6f-gc**|r6rj*<?6R)CSeAKfEnEgHM2se9tAS?$i-z^;r8uZ{M9*Ut1&gtEE(Uv!%
+zV4{7ABP4shEh#xLzW<)pxBmNRxAd4W02{Gl#rHf#vD!z_uye at a$wLBDp!auSrtnb=
+z3m?Tx4m at sNV>v^MNangi$^LhVq;Aa;R~L{+%U~4tUT`YcaCQM#5WA<gO6w{6rFD5N
+z=nKV`KvJ?{@hJ8W?EKx1=`AN0{e>X~gDOPwy2~3q_nxQ!cu2c?hl__}#sCh0m!5X@
+z2e1wLFc_e3j^#Y0Z%YK%S@>efH?hD%jhM&+BAxaB%$EzL;NA)1w!eX+NM_z+#Spd-
+za^Q)kMx^P&DrtUSjl$><T{#r6NB at AGzrSD+g6d2^7 at f{Q9}mBF-|AbF-rr}lj;1^2
+z48X>GZ21>*@QIe6g4mzMZNhqi(^T{rXw0e@&B3zo)ld{?VugmzW(1 at VZ*z+HYEvcS
+zwS3GN^07Mz(Q2>Xqw|ffBYmKYa9 at E(v~(<LkoJ=rV8YcUp at P1TXgTzaRb%TGMlwS4
+zd8~n0x~Abgje|y30u5x96$yR%-Zg)!i9b0;fp>)goVH!M;`671^M4Jr%yHrd_`nW_
+z25T}_(XPPIz&!x_m2kTwa`3=kM7;PWP~hzxN!^|)-Z~gdHv3_Pi!}ybI1fNYu|osL
+zcPg|CQ^`yw10zM!vBC)LJ(7cO4HWiB_mp<&n%6A7x%_CBS+|Jyc9avtR&8t(uDkI?
+zGZ0?4$Oejfr$);BDuD4VX!!@V-i>D(<-ohj08U#jJ>?7Mfq*M9EO>zwl4cO8z*rC(
+zkF9*@5MRVP!l~G0q;921#$zNg!vWIuBd`bN*q(ZvAcF58c$#6o1T!pN$bmOq at KOoh
+zrH^F6qA?#InJB;#ayC~ilO4;Z*msInSWs*94UFwD;*9M^nOdYml9U<ka at xdT1ZQkr
+zch7UT4g1nYQUOQl<~_jxY}+~KT<g#5=s6#!kNp8VfEkE#5H_Ic94@(5udjHI#SNr`
+zYYEKImLgJ at P)!y?22LRv8q7KI4oQ>KfYmgD`Qs_Dkj2wCxndXF2C1?a_Ym<^?D%;c
+zWvJw0co%;FtKDl--NC>8`ME#CsQcY_?->S2M8zd1f9`YW)qD?OHsc`~;s{JkXTo?y
+zqR=)I7k3>6dV_@%O0Dq-XW at A!F0MXe+O6LTG8qT|#ri#u!O?F9wSllW7((_ at w1epQ
+zZeVN|x;WKW=ybynoZ>yszzFU}3+}x4h1<SAc%|=N?0b>{9CTcK`sYhs;V8$)lN}}i
+zGRY85l3{!^Tnw7Pi_JhB0s&(l?XVUI9_0ZM1Es!Z2TPC(2Q8{!BoZ27K{&DUwGBr5
+z7vJ;3A8ADUo^<bN25>M&dxJ>OS_Tq)34}P+i60pwIH_%)B!aU&bA#VFdE<fjqeBg>
+z2U34&c_ORte&+VdL(P1w)Bi^>Kq6Aq0?Fn1Y}B$oh at LqUOn`l35Y$M9cn?g>Gs<DD
+zBS8{1q5RE={I at q6`{Q3<xUF`S>pQB&{l_ste{5X7_}WaI at _7Z~uSDnNbdm(38?-Nj
+zaPhI(B<uTio{_k8j)bxAnNOo}Ux7j7Pf?faPY*ozTgMVg^Zcj%{KqpuBEq at cToA4q
+z<Hj~T<`88N3sa$~O~s4yQz$7wxFYzlvl`kV4U7(93})ejnwEPfj7PS+Eo(dWGOA)$
+lxF+BV*FuA*n)rXh{eOL`E@}ETfW-g+002ovPDHLkV1nm~vr+&6
+
+diff --git a/toolkit/mozapps/update/content/updates.js b/toolkit/mozapps/update/content/updates.js
+index 40e76c8..5565b9c 100644
+--- a/toolkit/mozapps/update/content/updates.js
++++ b/toolkit/mozapps/update/content/updates.js
+@@ -979,7 +979,7 @@ var gUpdatesFoundBasicPage = {
+ 
+     var updateMoreInfoURL = document.getElementById("updateMoreInfoURL");
+     if (update.detailsURL)
+-      updateMoreInfoURL.setAttribute("url", update.detailsURL);
++      updateMoreInfoURL.setAttribute("value", update.detailsURL);
+     else
+       updateMoreInfoURL.hidden = true;
+ 
+diff --git a/toolkit/mozapps/update/content/updates.xul b/toolkit/mozapps/update/content/updates.xul
+index 6066802..c82bc77 100644
+--- a/toolkit/mozapps/update/content/updates.xul
++++ b/toolkit/mozapps/update/content/updates.xul
+@@ -121,8 +121,7 @@
+       <separator id="upgradeEvangelismSep" flex="1"/>
+       <vbox flex="1">
+         <hbox id="moreInfoURL">
+-          <label class="text-link" id="updateMoreInfoURL"
+-                 value="&clickHere.label;" onclick="openUpdateURL(event);"/>
++          <textbox class="plain" flex="1" readonly="true" id="updateMoreInfoURL" />
+         </hbox>
+       </vbox>
+     </vbox>
+@@ -205,8 +204,7 @@
+       <separator/>
+       <label id="errorManual">&errorManual.label;</label>
+       <hbox>
+-        <label class="text-link" id="errorLinkLabel" value=""
+-               onclick="openUpdateURL(event);"/>
++        <label id="errorLinkLabel" value="" />
+       </hbox>
+     </vbox>
+   </wizardpage>
+@@ -223,8 +221,7 @@
+       <label id="genericBackgroundErrorLabel"
+              hidden="true">&genericBackgroundError.label;</label>
+       <hbox>
+-        <label id="errorExtraLinkLabel" class="text-link" hidden="true"
+-               value="" onclick="openUpdateURL(event);"/>
++        <label id="errorExtraLinkLabel" hidden="true" value="" />
+       </hbox>
+     </vbox>
+   </wizardpage>
+@@ -257,8 +254,8 @@
+       <hbox align="center">
+         <label>&finishedBackground.name;</label>
+         <label id="updateFinishedName" flex="1" crop="right" value=""/>
+-        <label id="finishedBackgroundLink" class="text-link" disabled="true"
+-               value="&details.link;" onclick="openUpdateURL(event);"/>
++        <label id="finishedBackgroundLink" hidden="true" disabled="true"
++               value="&details.link;" />
+       </hbox>
+       <spacer flex="1"/>
+       <label id="finishedBackgroundMore">&finishedBackground.more;</label>
+diff --git a/toolkit/mozapps/update/updater/release_primary.der b/toolkit/mozapps/update/updater/release_primary.der
+index 542fb24f552661aba4229d57024bc3ef14856ff9..5f98d361c5529fee52c0677e701f93e1f3d7258c 100644
+GIT binary patch
+delta 1184
+zcmV;R1Yi5j3DF5VFoFclFoFWLpaTK{0s;j9r!uD=FbxI?Duzgg_YDC74Fv!&C^055
+zBnAUj1OpQtRBv)1O=WX)Wo~DYffF|#7Y#8sFgP$cGB7eWF*I5i4KX$`F)%nXFfukV
+zG+HnyF(xo11_M<D0}~xoZ*m|_Wpi_7ZfB8!Gk?_AadB1@>Z-Otj9oL<@T2!iv(ND^
+zCbjy#1*bRqQRnm7sAMw+ at wFnpu3@BXw6-0gu%ihyn3(rHk_LB!>gIkx6r75&K*I}f
+zR56o?5nywOF~m!iGwL9sKq3Ub1wKV(T&C)h^b5Wo%6 at Z*Yw%ELfci<cKw6`#THXw8
+zTYnbp#GfzQK$+RRGHY at Nfno=)TCshAnf*x*-*yAJp~~3o73cs8L at lM$19*}L|F~ZQ
+z^@3=9sc=#%mI%IG9&}M9!kR~T7uA<Sbvqc23g{a1mb<7T6E7kj`Sxrgm!y?JJCIOP
+z9kd)vs*H{}z!ALpLSkW`tIXE`+eT5-e18ow`D8n1?E=SQ{wov<?H7wOEEEQR&#Sm{
+zX`D$NK;7PBv5FUimAfo?ksWAXT?*wvlS!H>zxh#a!uP&z?T&!!`ZvjcZQ^iUYQx-y
+zWal3E-8w!GA5us+EL1owXo#RREJ_*KGi_j3=WlLG10}6m-ui;dnSivr$SW+5P=Col
+z9#k<i9QGmlfp_V%D=i#KE at +&a=riQd<8Er9e4`}1!>%VPzN)Qix;9Ouhjs4sU;Gu(
+z^uA!A-gK2f#jk}gFc3_3GTa|Iv$WuM`7Eixl(Spt%(yVAT%)LD+q;I{25vm8gd9j@
+ziXB*-E~lhwo!+o{0D#ZM at lV#Cu75PptIq-h0RRCo4F(A+hDe6 at 4FLfS1potr0s#Qb
+z{gVE)D9YKz{W0D6dAADICC)_UbvPe8QO2ON`VX-(EI!wds1c2PslN?2L%6k6eJFy+
+z9JRgv<XfttARwNjaTxWzxAcDZQp`pSp0_XSSsj&aFRer%3+2W+dK+<v#DDN1sC8y5
+z)8gb>^wi#qgx#iGH$9H7Scn!5Kb6JgD-aa(Rl6j`18m{@mVI(eFB!c^5UE{NNHXDq
+zPu)@z>LqR_FFL)5rQHuRY|`6>{||wZlK-V;*n%kr!2m-6Ipuh$3QWs0Q%er<BsdIa
+zQ-8n#jiKbd#`Bsp;%C*^S${fM(~#f7PZ!p|W4QoX>JEnvmJk(}tn~43R at -*?h!52Q
+z2M7$jTk-C8*4$z4<n-}Sl^P1Qc2%7-0-gF`B-agEL>SnTLRF8$TA=tfeAS4twwu|{
+zNp*}4B){4Gt;<NZ<HM%Q;$_B43<nzi&$TtS4i at dhQOM(0+~s2=34fetDXY))j}O<R
+z&88G>4VkJUA&bdeOpW-eL~#bGVG*5XhF@=LN6=9R$U8b$3`C^3ga{*oM#^zP`-BGb
+znoY}xK->^-RzUzWC-ye1HDUF7>|)s1VuQT+WZ#2P1)opEmK=Rc{wr45DA~SKM82&3
+y%(|U={k0Dk^aD>-%OO?_v%C|caJ}5^ShHf?u^u}iFnM5{>s%3iNFJZv>e?DlOd#_B
+
+delta 1196
+zcmV;d1XKIb3C#(AFoFchFoFWHpaTK{0s;j9p-)g`FbxI?Duzgg_YDC74Fv!&CNU&1
+zA_fCh1OpQrRBv)1LUM0+b7gWMO+iv1b7^O8X>MmAYh`&b9v2NUG%+$UI50UiF)%b*
+z7Y#8rFf%bYFgZ0bFf>{)CNU&1A_fCh1OpQrRBv)1LUL~ccXN at 2Gk@1Dd^v#SLpT2L
+zWptt)Yu66L*(jmr(TG<0ztDW>j5--${BJ!WtfAf;RiRi1Be1t at TcYPSJ+5#WCps{2
+z^~ft-%DZM0uRdd&YMERstJ6DAK$yrvtP6>p^We{k=JUP2CM>xYbfrV#Hnx5Zo+8z9
+z*$zw5yjtsorBqM#i+ at 5vrc@5ZW(0^;BV9j(!yA3xba^e!9b&FX8X0S}`Y>{~X1@~X
+z6sBlt4h~a|)LF3%fn(YwJ5(cFs$M6PK*(GO=rm<~QN1N&9<LCu0WIA9e)pFJWps>9
+zr5bXxO$MfN4qTMT{Bv9Js?}vNN^`Uuf-YZZvlv2^^w3}TuYdaxkg2&0Yp=0NgPeRo
+z@*GjI>uw`;)`#M^vZE9ak=p}3H>2lh6CbSBkG3r9bWt0B0(l_iuAFs)41ggP-h;J{
+zY{4%4|E_RpFI~JtWD+pT?<;6ehLcBXp+5j>-V#A`&pe_7*V*GYaIbT`o$moveN1BH
+zijD*zr_8$|H-9uF3LdNtni$=Aydk>=>@1+9Co^$b);v#jlwxlewTLU<gV8iH00q81
+zcf<+=EYkBTpNeTObUNbsEE3UyKN=X7LGBRF87)P0ObI(A=pGPBj&U>X<%E*(+{|ra
+zW at 7Wx;yaDK%~BJtGx+v{A}{M0Swdk6bGss{ihSphaevKFv^N3+0RRCo4F(A+hDe6@
+z4FLfS1potr0s#QQp&oY%1_q{dLa{KQUG^S?Ar0WvwBdQa_y^<RK5&lRgSOC$ioS0d
+zBPiE%VsF^r&>nyr)@{B3q{FwbS)qA^K;<#o*(@hG<GiE+lKfHT$(qt9bb_#`@*3n|
+z8YLkkF at Nv{oPu(1C1WngZxLhFlxO!s9uQnNV8$iH)PSQgK=L1fR)@OOapj-wPl1US
+zdLp(&kIHI>ApfYA at kKA+xywcImGypVH%!rzP8j{#&@_-+*yh~cu9kN7&)?iNAIq!E
+z&ud2Vl!x10?*E!fYak_)G}zrR*#CSLOGBd@(tjHaCMG{KV`+;?u|+^L#1K!TAG6;T
+z!>9)TWbuXDziZJfsEGqAF;HNQ<PG%vLSxmzv7EoC1X3LpboW<G8o*Ljd#aOaDDT}a
+zedB2<K9EF5#K`!tjNv1501~4IfBeyt;_q05nHJWqJ@@~iVn`eZNzhL~m{==r=ng>x
+zz<-X3ST~^%hcj}oB(5Q_%IayTI++jF#G}3l3>KAKrKr&v9wHPBy?yTnz(!x02$8Tz
+z`MfQ$VUF05wz;0;6FuMFa>*IsOv2 at x!4hkHeJ|62liS=T(gsI|Q+$EDGz*E$4Pv2S
+zanfe{lNKM1LeU@^2)Clt2GE-!pkq}@U?DSF|7tk%q+=T~5#w3r!PlWL^8Xqj)MSp`
+K7=8K4Y^8H%(iqMF
+
+diff --git a/toolkit/mozapps/update/updater/release_secondary.der b/toolkit/mozapps/update/updater/release_secondary.der
+index 49a7c0185f1c1cb89553cc2343986519fc711ec7..a7370bdc99b17d2fb1df31f3620de654715dc0ed 100644
+GIT binary patch
+delta 1220
+zcmX at hd6~1`po!(YK at -#V1<Xv0OiZi{%T2{R40zc%wc0$|zVk9N^0G1*Xd0>;sIoDK
+zvM>wFh2$40_@)*Yr{<-n0$Gkh3dNb}d6{|X3fZZZh6ZxtyoP2576z7vmL>)UmQf(C
+zp&^`$VU!eZvnEbftUtTZ?MrHS#^dvn`38ClE^_ypuFsHm7Ww}x@$=0uN38f3t+hPy
+zV2v!t%QN>*TW7R=3QY40vkLolj*nZcK>A2xUQYmziA}WDA=!5pM=cmmX3D?W`ldID
+z;rf${+0nmdeBWYy|Nkua_it0S?6dQ~*)(sH#;fOcvklKo4sKcy=6SEW-YQ#rW6uKL
+zpO?5#cUSE+lhP3mX!q<E&}Gm*cA<00f8SXiZv-~6L`2#(g&Bw&>3xg)>T$=!N1~eh
+z%hCGxEL$yN9RfUlU1U3XBc&wxwn3Sq>=CJRu0ivP4WiC*R5Q0Lyqf(j=*0TPAD2$D
+zNjlAH%(C`-f0F90t2?|N{#mp9(U*GTxewDl4bPtZw{fPywey9KcQ3e|Z4nXn=|l0k
+zH}h;O`6NZY8mD+%J$vGR;vtV82K6 at u4)4_bvp~;__s8)mOf%GkuY^=DS$6*VnhTXi
+z#kWuPzMT4m%YTA|_JWfQH+cAp4HZsm)ix{qoOidUb+^)yBhp`w$tt*=R;>^|Cg{ZW
+z<U+l^(v}z87hO+vcwg%=KFDnT)azr_EBBlCkA#?o=WkVh|9{_hwH at vY%R((@|Gg3v
+zs^D{A``KHHl6FB&Z<2M=wyaCdW?QPl#$3%bz5Lv#3N3-ovekdDd+DlfTeiSEF=oYX
+z3Cl&b^-o>-pY6Tpd}aGoW_P6tPxO2?80+5rbM^Jd>Gcae-#RieGcquuB}wKcCPs#1
+zOP+nNU8i{^=I=$e_18M4I*Fazc&sAk!j*@*LJNG<bbXBstR~-^HTjW4xOjtGM2p%#
+zi#JDd%8$kAZk9T1#H!tLyr1I at PsNq=4+`abxdn9i+05n_t9GC7aysz(vIaNPC87Gy
+zwP!Tm7zZ!c?Nhej<{2iqvLGtx#)kE=$AsG=Q;ON5Y7&*_EWBk>q88 at QaiHCd<HgD?
+zk3X!^F*{f>E!K5fc7n(E6a{%L*^hJY?pEr3Qgo)HxY^;t@>!Qte{K7 at c10L>=M1fd
+zcOSboJ{Ny6tFA-QQYE>0*ZT*YYyw>^Jg-m0)|<Pmzp3MW%2bnwD at Hi&yVQ$-E|#R=
+z!|Tco?y%gR<R07AF0A(Ib^9Ix$w&P=7QS(^3KZaB+&00=;*4f=<I9E7Tp?HU%lx@}
+zqRnKgBtwk87?`~<*>Esy^CM*!o5=Y)rzq6<v}t`Y<NRP&=jz{Y#kh?5 at V+9s^`1wB
+zm&o4b5UoF+EB$67^Fh5S503ZVeR9%bZ5=yPrd3IyvrAe+&&{1%^lrH?3snrxs@=X?
+zD6Lr2c+rx)>hh%<y7y#1FUX1$>OJP$995Ikbs~VzI7z(o#sz2Nx&+<))UWF<R~}lR
+z63?j-AT+Bozx?{icM+dj%$@CxIrX=^_PjDLv2N|PiHRMGA!p9lsM)tTsa06rJN_j;
+W+%Wltn`GU2)yA(?zFh5_B~k%*V<2?^
+
+delta 1214
+zcmcc2d6u)@po!(AK at -!)1<Xv0OiZi{OO3VH8t}4lYPET^edlFl<Yi?rP%~69P-0^a
+zWnmVU4#_W4a4O0#FHS8|@O2DQ2+mB;%gjqx$WE;^kQ3)MG&3+Xv at kR<F)%iX0&`8^
+zTx{luU^8gqOvU;`E*-prF0Tu}hG(<%R!^CI;&@l at nzC(dQ6Gdi2}&JZB%%FAsJT`%
+zaK#z{xrb{WPG0PD!P`P{GrQ}IugebFm56Sxw|TDqid9_CS}J5}T=FZOhaWbzPI at BN
+zwsYUfi8^Oo<?_ERGb>bI|7hoGHq{qlZMAjnJKtn<JTdNb{o3BVp?;gxoIhvv=6q_*
+z>b0ww at 8_Yzq&Ri at 7ahKD<{R$JefGt5fA86VRJKf0u0{Fnn|B$e${%1!zqTRoQu4<I
+zOFrd^Z8vPXxx(umOVi}AS^AB+p>3Z;(|$5;YE0ufYU*ygQeaZpysej3PBy)!^7h|x
+z$rT*3PuWyoCn&k|Eh!Yfs@$DjFIS_V{CDxjha9USSFhaF+i^HcCr`^m#asCMM&F$O
+zkN*TruKv8>v)kJn>sIbxRGTYp-nC0wjKS-EVf6byW)sr1Y at WQC^f at R!j(O77;KP4;
+zMV`D^a{ldov#pbZjV`Y=m0Z;KoqOu4$zsPBGG5%Hdw<R4e?9rndb*|f-(0vZzIf)b
+z`d*Xx4*m%#Z at SOU<uUkGYbSc2Cw+73Lb>$<m*<+NvL#e8tg>V2v|MTQXj;jFV#AHx
+zI~_{wG=wib-54sR@;5)C>bgr$i^{5cpH*S9DxC=r8ji&AWrf at dT^Gf+gh$~@=I at 4L
+znRo*>P2CcO1ID+mOlA5JbgS>fv^u#Br&nk9U#MUH`1NrnW<~}^w8Y5V#Kg#;z&Aba
+z{4wM09xuCoPnc45Wx9CxCfl}i3U at zVTFcq_%=oBFv}S)=y*bzBqa5EAeNS+yWhHwo
+zTO(Gqpf%@v_iv?BGv66bewpWI`y%UYPUOlT?T#MDB|h3tH2rw~O{0dK`1uF*shVDM
+zRqwxX7YfZ&HeY%D(~-*|cfJMqe#~VR;1|&4 at km|7vhZ%>BHnWffjr;pvINgMy;y!J
+zFt6s)am%iTHos{q)8 at Zh?iXpw|K7t)tjKm-bIk5TY0Kx!Ec4sZCA4WflVSA#@c9?`
+zcPjnyJb$%tqM at si$Q at 3%0`88t?OwjGUFuhVJ~c!0RA+;b&c;2SiYo4mKQaPUGgCH}
+z%zSy0LC?Iu at v3xWX&iSz&qJ{VA1Zv$L|ycM68FycNbZ;9D))=`=S2vKrT1#RRmx9Q
+zJ)+4|RvkBAaq><7uWNW%{~P?_^nJs)y1wXJ8fRR_u5%}}zj53?dY4!2&~eSZS+A#Z
+z-!fINKP*`O>sQ{T5NY!?d5<=Mg`4LeN&8sL+OgVM=<W0PQY9XqEngJ(?v=MaDpZ)*
+zbKGzWvzA3x>-Q;}s(c?EU%K*g(yXNug*g2LUV7#omDwqM^}v1Y7{@L4?QERgdQ$to
+zHAIICCiYIYSX`mIUcOp4Id^^h+f`jW<`?chRNi!yt6Nd*2j3*8u$&(cmR(l9;<#d+
+W at ahR1{w+qA19CVV{J*b~TmS$gHy at k;
+
+diff --git a/xpcom/io/TorFileUtils.cpp b/xpcom/io/TorFileUtils.cpp
+index c45961a..23d6fbe 100644
+--- a/xpcom/io/TorFileUtils.cpp
++++ b/xpcom/io/TorFileUtils.cpp
+@@ -16,7 +16,7 @@ TorBrowser_GetUserDataDir(nsIFile *aExeFile, nsIFile** aFile)
+   nsCOMPtr<nsIFile> tbDataDir;
+ 
+ #ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR
+-  nsAutoCString tbDataLeafName(NS_LITERAL_CSTRING("TorBrowser-Data"));
++  nsAutoCString tbDataLeafName(NS_LITERAL_CSTRING("TorMessenger-Data"));
+   nsCOMPtr<nsIFile> appRootDir;
+   nsresult rv = GetAppRootDir(aExeFile, getter_AddRefs(appRootDir));
+   NS_ENSURE_SUCCESS(rv, rv);
+-- 
+2.10.1
+
diff --git a/projects/mozilla/0007-Remove-updater-links.patch b/projects/mozilla/0007-Remove-updater-links.patch
deleted file mode 100644
index 8eb3a8e..0000000
--- a/projects/mozilla/0007-Remove-updater-links.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From ab9bbbce89ff95ec72690d62c25db20b82f28cd9 Mon Sep 17 00:00:00 2001
-From: Arlo Breault <arlolra at gmail.com>
-Date: Sun, 9 Oct 2016 09:34:38 -0700
-Subject: [PATCH 7/7] Remove updater links
-
----
- toolkit/mozapps/update/content/updates.js  |  2 +-
- toolkit/mozapps/update/content/updates.xul | 13 +++++--------
- 2 files changed, 6 insertions(+), 9 deletions(-)
-
-diff --git a/toolkit/mozapps/update/content/updates.js b/toolkit/mozapps/update/content/updates.js
-index 40e76c8..5565b9c 100644
---- a/toolkit/mozapps/update/content/updates.js
-+++ b/toolkit/mozapps/update/content/updates.js
-@@ -979,7 +979,7 @@ var gUpdatesFoundBasicPage = {
- 
-     var updateMoreInfoURL = document.getElementById("updateMoreInfoURL");
-     if (update.detailsURL)
--      updateMoreInfoURL.setAttribute("url", update.detailsURL);
-+      updateMoreInfoURL.setAttribute("value", update.detailsURL);
-     else
-       updateMoreInfoURL.hidden = true;
- 
-diff --git a/toolkit/mozapps/update/content/updates.xul b/toolkit/mozapps/update/content/updates.xul
-index 6066802..c82bc77 100644
---- a/toolkit/mozapps/update/content/updates.xul
-+++ b/toolkit/mozapps/update/content/updates.xul
-@@ -121,8 +121,7 @@
-       <separator id="upgradeEvangelismSep" flex="1"/>
-       <vbox flex="1">
-         <hbox id="moreInfoURL">
--          <label class="text-link" id="updateMoreInfoURL"
--                 value="&clickHere.label;" onclick="openUpdateURL(event);"/>
-+          <textbox class="plain" flex="1" readonly="true" id="updateMoreInfoURL" />
-         </hbox>
-       </vbox>
-     </vbox>
-@@ -205,8 +204,7 @@
-       <separator/>
-       <label id="errorManual">&errorManual.label;</label>
-       <hbox>
--        <label class="text-link" id="errorLinkLabel" value=""
--               onclick="openUpdateURL(event);"/>
-+        <label id="errorLinkLabel" value="" />
-       </hbox>
-     </vbox>
-   </wizardpage>
-@@ -223,8 +221,7 @@
-       <label id="genericBackgroundErrorLabel"
-              hidden="true">&genericBackgroundError.label;</label>
-       <hbox>
--        <label id="errorExtraLinkLabel" class="text-link" hidden="true"
--               value="" onclick="openUpdateURL(event);"/>
-+        <label id="errorExtraLinkLabel" hidden="true" value="" />
-       </hbox>
-     </vbox>
-   </wizardpage>
-@@ -257,8 +254,8 @@
-       <hbox align="center">
-         <label>&finishedBackground.name;</label>
-         <label id="updateFinishedName" flex="1" crop="right" value=""/>
--        <label id="finishedBackgroundLink" class="text-link" disabled="true"
--               value="&details.link;" onclick="openUpdateURL(event);"/>
-+        <label id="finishedBackgroundLink" hidden="true" disabled="true"
-+               value="&details.link;" />
-       </hbox>
-       <spacer flex="1"/>
-       <label id="finishedBackgroundMore">&finishedBackground.more;</label>
--- 
-2.10.1
-
diff --git a/projects/mozilla/aboutTBUpdateLogo.png b/projects/mozilla/aboutTBUpdateLogo.png
deleted file mode 100644
index 3de3c93..0000000
Binary files a/projects/mozilla/aboutTBUpdateLogo.png and /dev/null differ
diff --git a/projects/mozilla/build b/projects/mozilla/build
index 77e8d09..ab18d69 100644
--- a/projects/mozilla/build
+++ b/projects/mozilla/build
@@ -9,15 +9,10 @@ if ls -1 $rootdir/*.patch > /dev/null 2>&1
 then
     for patch in $(ls -1 $rootdir/*.patch | sort)
     do
-        patch -p1 < $patch
+        git apply -p1 < $patch
     done
 fi
 
-cp $rootdir/marsigner.der toolkit/mozapps/update/updater/release_primary.der
-cp $rootdir/marsigner1.der toolkit/mozapps/update/updater/release_secondary.der
-
-cp $rootdir/aboutTBUpdateLogo.png browser/base/content/abouttbupdate/
-
 cd ..
 
 [% SET src_dir=project _ '-' _ c('version');
diff --git a/projects/mozilla/config b/projects/mozilla/config
index cc3bf75..0be7c3d 100644
--- a/projects/mozilla/config
+++ b/projects/mozilla/config
@@ -4,13 +4,9 @@ filename: 'mozilla-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id")
 git_url: https://git.torproject.org/tor-browser.git
 git_hash: 8b1f07f31cd04fb157bf99a9e2e600b4422f277f
 input_files:
-  - filename: marsigner.der
-  - filename: marsigner1.der
-  - filename: aboutTBUpdateLogo.png
   - filename: 0001-Revert-Bug-14716-HTTP-Basic-Authentication-prompt-on.patch
-  - filename: 0002-Block-flash-too.patch
-  - filename: 0003-s-TorBrowser-Data-TorMessenger-Data.patch
-  - filename: 0004-Bug-1283573-Don-t-attempt-to-look-up-a-single-face-f.patch
-  - filename: 0005-Adjust-atomic-ops-code-to-be-more-compatible-with-th.patch
-  - filename: 0006-OSX-package-as-tar.bz2.patch
-  - filename: 0007-Remove-updater-links.patch
+  - filename: 0002-Trac-16475-Block-flash-too.patch
+  - filename: 0003-Trac-20206-Avoid-the-need-to-download-the-font-Osaka.patch
+  - filename: 0004-Trac-18331-Update-OS-X-toolchain-to-work-with-ESR-45.patch
+  - filename: 0005-OSX-package-as-tar.bz2.patch
+  - filename: 0006-Updater-fixups-for-TM.patch
diff --git a/projects/mozilla/marsigner.der b/projects/mozilla/marsigner.der
deleted file mode 100644
index 5f98d36..0000000
Binary files a/projects/mozilla/marsigner.der and /dev/null differ
diff --git a/projects/mozilla/marsigner1.der b/projects/mozilla/marsigner1.der
deleted file mode 100644
index a7370bd..0000000
Binary files a/projects/mozilla/marsigner1.der and /dev/null differ





More information about the tor-commits mailing list