Merge from cvs-trunk-mirror to mozilla-central.
authorjorendorff@mozilla.com
Fri, 28 Mar 2008 13:01:14 -0500
changeset 13672 7deefc8dce86238ed2ccbf97f7493dd473b0505b
parent 13542 bb394207d96ce6ae347f5b9122cf4eae86fc3578 (current diff)
parent 13671 f25f62b9e94a1a0dc6baf0865dd3c03513f46bd4 (diff)
child 13830 5cb5ebda33128d5c08beea90119e008a3f22257b
push id4
push userjorendorff@mozilla.com
push dateFri, 28 Mar 2008 18:03:49 +0000
treeherderautoland@7deefc8dce86 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone2.0a1pre
Merge from cvs-trunk-mirror to mozilla-central.
browser/app/module.ver
browser/config/version.txt
config/milestone.txt
content/base/src/nsCrossSiteListenerProxy.cpp
content/base/src/nsCrossSiteListenerProxy.h
content/base/test/file_CrossSiteXHR2_fail1.xml
content/base/test/file_CrossSiteXHR2_fail1.xml^headers^
content/base/test/file_CrossSiteXHR2_fail2.xml
content/base/test/file_CrossSiteXHR2_inner.html
content/base/test/file_CrossSiteXHR2_pass1.xml
content/base/test/file_CrossSiteXHR2_pass1.xml^headers^
content/base/test/file_CrossSiteXHR2_pass2.xml
content/base/test/file_CrossSiteXHR2_pass3.xml
content/base/test/file_CrossSiteXHR2_pass3.xml^headers^
content/base/test/file_CrossSiteXHR2_pass3_redirect.xml
content/base/test/file_CrossSiteXHR3_inner.html
content/base/test/file_CrossSiteXHR3_pass1.xml
content/base/test/file_CrossSiteXHR3_pass1.xml^headers^
content/base/test/file_CrossSiteXHR_fail1.xml
content/base/test/file_CrossSiteXHR_fail2.xml
content/base/test/file_CrossSiteXHR_fail2.xml^headers^
content/base/test/file_CrossSiteXHR_fail3.xml
content/base/test/file_CrossSiteXHR_fail4.xml
content/base/test/file_CrossSiteXHR_pass1.xml
content/base/test/file_CrossSiteXHR_pass1.xml^headers^
content/base/test/file_CrossSiteXHR_pass2.xml
content/base/test/file_CrossSiteXHR_pass3.xml
content/base/test/test_CrossSiteXHR.html
content/base/test/test_CrossSiteXHR2.html
content/base/test/test_CrossSiteXHR3.html
intl/chardet/src/classic/Makefile.in
intl/chardet/src/classic/nsClassicCharDetDll.cpp
intl/chardet/src/classic/nsClassicCharDetDll.h
intl/chardet/src/classic/nsClassicDetectors.cpp
intl/chardet/src/classic/nsClassicDetectors.h
intl/chardet/src/windows/makefile.win
intl/chardet/src/windows/nsNativeCharDetDll.cpp
intl/chardet/src/windows/nsNativeCharDetDll.h
intl/chardet/src/windows/nsNativeDetectors.cpp
intl/chardet/src/windows/nsNativeDetectors.h
js/src/jsarray.cpp
js/tests/js1_5/Array/regress-424954.js
--- a/accessible/src/msaa/nsAccessibleWrap.cpp
+++ b/accessible/src/msaa/nsAccessibleWrap.cpp
@@ -291,19 +291,16 @@ STDMETHODIMP nsAccessibleWrap::get_accNa
   *pszName = NULL;
   nsCOMPtr<nsIAccessible> xpAccessible;
   GetXPAccessibleFor(varChild, getter_AddRefs(xpAccessible));
   if (xpAccessible) {
     nsAutoString name;
     if (NS_FAILED(xpAccessible->GetName(name)))
       return E_FAIL;
 
-    if (name.IsEmpty())
-      return S_FALSE;
-
     *pszName = ::SysAllocStringLen(name.get(), name.Length());
     if (!*pszName)
       return E_OUTOFMEMORY;
 
 #ifdef DEBUG_A11Y
     NS_ASSERTION(mIsInitialized, "Access node was not initialized");
 #endif
   }
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -635,22 +635,16 @@ pref("browser.sessionstore.postdata", 0)
 // 0 = everywhere, 1 = unencrypted sites, 2 = nowhere
 pref("browser.sessionstore.privacy_level", 1);
 // how many tabs can be reopened (per window)
 pref("browser.sessionstore.max_tabs_undo", 10);
 
 // allow META refresh by default
 pref("accessibility.blockautorefresh", false);
 
-// import bookmarks.html into Places bookmarks
-pref("browser.places.importBookmarksHTML", true);
-
-// if false, will add the "Smart Bookmarks" folder to the personal toolbar
-pref("browser.places.createdSmartBookmarks", false);
-
 // If true, will migrate uri post-data annotations to
 // bookmark post-data annotations (bug 398914)
 // XXX to be removed after beta 2 (bug 391419)
 pref("browser.places.migratePostDataAnnotations", true);
 
 // If true, will update the Smart Bookmarks uri for
 // recent tags (bug 385245). Useful just for FX3 beta users.
 pref("browser.places.updateRecentTagsUri", true);
--- a/browser/base/content/baseMenuOverlay.xul
+++ b/browser/base/content/baseMenuOverlay.xul
@@ -71,17 +71,18 @@
           label="&helpMenuWin.label;"
           accesskey="&helpMenuWin.accesskey;">
 #else
     <menu id="helpMenu"
           label="&helpMenu.label;"
           accesskey="&helpMenu.accesskey;">
 #endif
       <menupopup id="menu_HelpPopup" onpopupshowing="buildHelpMenu();">
-        <menuitem oncommand="openHelpLink('firefox-help')"
+        <menuitem id="menu_openHelp"
+                  oncommand="openHelpLink('firefox-help')"
 #ifdef XP_MACOSX
                   label="&helpContentsMac.label;"
                   key="key_openHelpMacFrontend"/>
 #else
                   label="&helpContents.label;"
                   accesskey="&helpContents.accesskey;"
                   key="key_openHelp"/>
 #endif
--- a/browser/base/content/browser-menubar.inc
+++ b/browser/base/content/browser-menubar.inc
@@ -371,17 +371,18 @@
                           key="goForwardKb"
 #endif
                           chromedir="&locale.dir;"
                           oncommand="BrowserForward(event, true)"
                           onclick="checkForMiddleClick(this, event);">
                   <observes element="Browser:Forward" attribute="disabled" />
                 </menuitem>
 
-                <menuitem label="&historyHomeCmd.label;"
+                <menuitem id="historyMenuHome"
+                          label="&historyHomeCmd.label;"
                           oncommand="BrowserGoHome(event);"
                           onclick="checkForMiddleClick(this, event);"
                           key="goHome"/>
                 <menuitem label="&showAllHistoryCmd2.label;"
 #ifndef XP_MACOSX
                           key="showAllHistoryKb"
 #endif
                           command="Browser:ShowAllHistory"/>
--- a/browser/base/content/browser-places.js
+++ b/browser/base/content/browser-places.js
@@ -162,19 +162,24 @@ var StarUI = {
   },
 
   _doShowEditBookmarkPanel:
   function SU__doShowEditBookmarkPanel(aItemId, aAnchorElement, aPosition) {
     this._blockCommands(); // un-done in the popuphiding handler
 
     var bundle = this._element("bundle_browser");
 
-    // "Page Bookmarked" title
+    // Set panel title:
+    // if we are batching, i.e. the bookmark has been added now,
+    // then show Page Bookmarked, else if the bookmark did already exist,
+    // we are about editing it, then use Edit This Bookmark.
     this._element("editBookmarkPanelTitle").value =
-      bundle.getString("editBookmarkPanel.pageBookmarkedTitle");
+      this._batching ?
+        bundle.getString("editBookmarkPanel.pageBookmarkedTitle") :
+        bundle.getString("editBookmarkPanel.editBookmarkTitle");
 
     // No description; show the Done, Cancel;
     // hide the Edit, Undo buttons
     this._element("editBookmarkPanelDescription").textContent = "";
     this._element("editBookmarkPanelBottomButtons").hidden = false;
     this._element("editBookmarkPanelContent").hidden = false;
     this._element("editBookmarkPanelEditButton").hidden = true;
     this._element("editBookmarkPanelUndoRemoveButton").hidden = true;
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -1945,70 +1945,73 @@ function checkForDirectoryListing()
 {
   if ( "HTTPIndex" in content &&
        content.HTTPIndex instanceof Components.interfaces.nsIHTTPIndex ) {
     content.wrappedJSObject.defaultCharacterset =
       getMarkupDocumentViewer().defaultCharacterSet;
   }
 }
 
-function URLBarSetURI(aURI, aMustUseURI) {
+function URLBarSetURI(aURI) {
   var value = getBrowser().userTypedValue;
   var state = "invalid";
 
-  if (!value || aMustUseURI) {
+  if (!value) {
     if (aURI) {
       // If the url has "wyciwyg://" as the protocol, strip it off.
       // Nobody wants to see it on the urlbar for dynamically generated
       // pages.
       if (!gURIFixup)
         gURIFixup = Cc["@mozilla.org/docshell/urifixup;1"]
                       .getService(Ci.nsIURIFixup);
       try {
         aURI = gURIFixup.createExposableURI(aURI);
       } catch (ex) {}
     } else {
       aURI = getWebNavigation().currentURI;
     }
 
-    value = aURI.spec;
-    if (value == "about:blank") {
+    if (aURI.spec == "about:blank") {
       // Replace "about:blank" with an empty string
       // only if there's no opener (bug 370555).
-      if (!content.opener)
-        value = "";
+      value = content.opener ? aURI.spec : "";
     } else {
-      // Try to decode as UTF-8 if there's no encoding sequence that we would break.
-      if (!/%25(?:3B|2F|3F|3A|40|26|3D|2B|24|2C|23)/i.test(value))
-        try {
-          value = decodeURI(value)
-                    // 1. decodeURI decodes %25 to %, which creates unintended
-                    //    encoding sequences. Re-encode it, unless it's part of
-                    //    a sequence that survived decodeURI, i.e. one for:
-                    //    ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '#'
-                    //    (RFC 3987 section 3.2)
-                    // 2. Re-encode whitespace so that it doesn't get eaten away
-                    //    by the location bar (bug 410726).
-                    .replace(/%(?!3B|2F|3F|3A|40|26|3D|2B|24|2C|23)|[\r\n\t]/ig,
-                             encodeURIComponent);
-        } catch (e) {}
-
-      // Encode bidirectional formatting characters.
-      // (RFC 3987 sections 3.2 and 4.1 paragraph 6)
-      value = value.replace(/[\u200e\u200f\u202a\u202b\u202c\u202d\u202e]/g,
-                            encodeURIComponent);
-
+      value = losslessDecodeURI(aURI);
       state = "valid";
     }
   }
 
   gURLBar.value = value;
   SetPageProxyState(state);
 }
 
+function losslessDecodeURI(aURI) {
+  var value = aURI.spec;
+  // Try to decode as UTF-8 if there's no encoding sequence that we would break.
+  if (!/%25(?:3B|2F|3F|3A|40|26|3D|2B|24|2C|23)/i.test(value))
+    try {
+      value = decodeURI(value)
+                // 1. decodeURI decodes %25 to %, which creates unintended
+                //    encoding sequences. Re-encode it, unless it's part of
+                //    a sequence that survived decodeURI, i.e. one for:
+                //    ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '#'
+                //    (RFC 3987 section 3.2)
+                // 2. Re-encode whitespace so that it doesn't get eaten away
+                //    by the location bar (bug 410726).
+                .replace(/%(?!3B|2F|3F|3A|40|26|3D|2B|24|2C|23)|[\r\n\t]/ig,
+                         encodeURIComponent);
+    } catch (e) {}
+
+  // Encode bidirectional formatting characters.
+  // (RFC 3987 sections 3.2 and 4.1 paragraph 6)
+  value = value.replace(/[\u200e\u200f\u202a\u202b\u202c\u202d\u202e]/g,
+                        encodeURIComponent);
+  return value;
+}
+
 // Replace the urlbar's value with the url of the page.
 function handleURLBarRevert() {
   var throbberElement = document.getElementById("navigator-throbber");
   var isScrolling = gURLBar.popupOpen;
 
   gBrowser.userTypedValue = null;
 
   // don't revert to last valid url unless page is NOT loading
--- a/browser/base/content/pageinfo/pageInfo.xul
+++ b/browser/base/content/pageinfo/pageInfo.xul
@@ -103,18 +103,18 @@
     <key keycode="VK_F1"                           command="cmd_help"/>
 #endif
     <key key="&copy.key;"        modifiers="accel" command="cmd_copy"/>
     <key key="&selectall.key;"   modifiers="accel" command="cmd_selectall"/>
     <key key="&selectall.key;"   modifiers="alt"   command="cmd_selectall"/>
   </keyset>
 
   <menupopup id="picontext">
-    <menuitem label="&selectall.label;" command="cmd_selectall" accesskey="&selectall.accesskey;"/>
-    <menuitem label="&copy.label;"      command="cmd_copy"      accesskey="&copy.accesskey;"/>
+    <menuitem id="menu_selectall" label="&selectall.label;" command="cmd_selectall" accesskey="&selectall.accesskey;"/>
+    <menuitem id="menu_copy"      label="&copy.label;"      command="cmd_copy"      accesskey="&copy.accesskey;"/>
   </menupopup>
 
   <stack id="topStackBar">
     <radiogroup id="viewGroup" class="viewSelector chromeclass-toolbar" orient="horizontal">
       <radio id="generalTab"  label="&generalTab;"  accesskey="&generalTab.accesskey;"
            oncommand="showTab('general');"/>
       <radio id="mediaTab"    label="&mediaTab;"    accesskey="&mediaTab.accesskey;"
            oncommand="showTab('media'); ensureSelection(gImageView)" hidden="true"/>
--- a/browser/base/content/urlbarBindings.xml
+++ b/browser/base/content/urlbarBindings.xml
@@ -242,26 +242,23 @@
           }
         ]]></body>
       </method>
 
       <property name="textValue"
                 onget="return this.value;">
         <setter>
           <![CDATA[
-          // Force load the value into the urlbar to get it unescaped
           try {
             let uri = Cc["@mozilla.org/network/io-service;1"].
                       getService(Ci.nsIIOService).
                       newURI(val, null, null);
-            URLBarSetURI(uri, true);
-          } catch (ex) {
-            // Incase the value isn't actually a URI
-            this.value = val;
-          }
+            val = losslessDecodeURI(uri);
+          } catch (ex) { }
+          this.value = val;
 
           // Completing a result should simulate the user typing the result, so
           // fire an input event.
           let evt = document.createEvent("UIEvents");
           evt.initUIEvent("input", true, false, window, 0);
           this.mIgnoreInput = true;
           this.dispatchEvent(evt);
           this.mIgnoreInput = false;
--- a/browser/components/feeds/src/FeedWriter.js
+++ b/browser/components/feeds/src/FeedWriter.js
@@ -815,26 +815,26 @@ FeedWriter.prototype = {
     if (checkbox) {
       var handlersMenuList = this._document.getElementById("handlersMenuList");
       if (handlersMenuList) {
         var handlerName = this._getSelectedItemFromMenulist(handlersMenuList)
                               .getAttribute("label");
         var stringLabel = "alwaysUseForFeeds";
         switch (this._getFeedType()) {
           case Ci.nsIFeed.TYPE_VIDEO:
-            stringlabel = "alwaysUseForVideoPodcasts";
+            stringLabel = "alwaysUseForVideoPodcasts";
             break;
 
           case Ci.nsIFeed.TYPE_AUDIO:
-            stringlabel = "alwaysUseForAudioPodcasts";
+            stringLabel = "alwaysUseForAudioPodcasts";
             break;
         }
 
         this._contentSandbox.checkbox = checkbox;
-        this._contentSandbox.label = this._getFormattedString(stringlabel, [handlerName]);
+        this._contentSandbox.label = this._getFormattedString(stringLabel, [handlerName]);
         
         var codeStr = "checkbox.setAttribute('label', label);";
         Cu.evalInSandbox(codeStr, this._contentSandbox);
       }
     }
   },
 
   // nsIDomEventListener
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -396,32 +396,43 @@ BrowserGlue.prototype = {
                      getService(Ci.nsIPrefBranch);
 
     var importBookmarks = false;
     try {
       importBookmarks = prefBranch.getBoolPref("browser.places.importBookmarksHTML");
     } catch(ex) {}
 
     if (!importBookmarks) {
++     /**
++      * These prefs are set by the backend services upon creation (or recreation)
++      * of the Places db:
++      * - browser.places.importBookmarksHTML
++      *   Set to false by the history service to indicate we need to re-import.
++      * - browser.places.createdSmartBookmarks
++      *   Set during HTML import to indicate that the queries were created.
++      */
       // Call it here for Fx3 profiles created before the Places folder
       // has been added, otherwise it's called during import.
       this.ensurePlacesDefaultQueriesInitialized();
     }
     else {
       // get latest backup
       Cu.import("resource://gre/modules/utils.js");
       var bookmarksFile = PlacesUtils.getMostRecentBackup();
 
       if (bookmarksFile && bookmarksFile.leafName.match("\.json$")) {
         // restore a JSON backup
         PlacesUtils.restoreBookmarksFromJSONFile(bookmarksFile);
       }
       else {
         // if there's no json backup use bookmarks.html
 
+        // ensurePlacesDefaultQueriesInitialized() is called by import.
+        prefBranch.setBoolPref("browser.places.createdSmartBookmarks", false);
+
         var dirService = Cc["@mozilla.org/file/directory_service;1"].
                          getService(Ci.nsIProperties);
         var bookmarksFile = dirService.get("BMarks", Ci.nsILocalFile);
 
         // import the file
         try {
           var importer = Cc["@mozilla.org/browser/places/import-export-service;1"].
                          getService(Ci.nsIPlacesImportExportService);
--- a/browser/components/places/content/utils.js
+++ b/browser/components/places/content/utils.js
@@ -166,34 +166,34 @@ var PlacesUIUtils = {
 
   getString: function PU_getString(key) {
     return this._bundle.GetStringFromName(key);
   },
 
   /**
    * Get a transaction for copying a uri item from one container to another
    * as a bookmark.
-   * @param   aURI
-   *          The URI of the item being copied
+   * @param   aData
+   *          JSON object of dropped or pasted item properties
    * @param   aContainer
    *          The container being copied into
    * @param   aIndex
    *          The index within the container the item is copied to
    * @returns A nsITransaction object that performs the copy.
    */
   _getURIItemCopyTransaction: function (aData, aContainer, aIndex) {
     return this.ptm.createItem(PlacesUtils._uri(aData.uri), aContainer, aIndex,
                                aData.title, "");
   },
 
   /**
    * Get a transaction for copying a bookmark item from one container to
    * another.
-   * @param   aID
-   *          The identifier of the bookmark item being copied
+   * @param   aData
+   *          JSON object of dropped or pasted item properties
    * @param   aContainer
    *          The container being copied into
    * @param   aIndex
    *          The index within the container the item is copied to
    * @param   [optional] aExcludeAnnotations
    *          Optional, array of annotations (listed by their names) to exclude
    *          when copying the item.
    * @returns A nsITransaction object that performs the copy.
@@ -210,16 +210,27 @@ var PlacesUIUtils = {
         return aExcludeAnnotations.indexOf(aValue.name) == -1;
       });
     }
     var childTxns = [];
     if (aData.dateAdded)
       childTxns.push(this.ptm.editItemDateAdded(null, aData.dateAdded));
     if (aData.lastModified)
       childTxns.push(this.ptm.editItemLastModified(null, aData.lastModified));
+    if (aData.tags) {
+      var tags = aData.tags.split(", ");
+      // filter out tags already present, so that undo doesn't remove them
+      // from pre-existing bookmarks
+      var storedTags = PlacesUtils.tagging.getTagsForURI(itemURL, {});
+      tags = tags.filter(function (aTag) {
+        return (storedTags.indexOf(aTag) == -1);
+      }, this);
+      if (tags.length)
+        childTxns.push(this.ptm.tagURI(itemURL, tags));
+    }
 
     return this.ptm.createItem(itemURL, aContainer, aIndex, itemTitle, keyword,
                                annos, childTxns);
   },
 
   /**
    * Gets a transaction for copying (recursively nesting to include children)
    * a folder (or container) and its contents from one folder to another.
--- a/browser/installer/unix/packages-static
+++ b/browser/installer/unix/packages-static
@@ -98,16 +98,17 @@ bin/components/dom_views.xpt
 bin/components/dom_xbl.xpt
 bin/components/dom_xpath.xpt
 bin/components/dom_xul.xpt
 bin/components/dom_loadsave.xpt
 bin/components/downloads.xpt
 bin/components/editor.xpt
 bin/components/embed_base.xpt
 bin/components/exthandler.xpt
+bin/components/exthelper.xpt
 bin/components/fastfind.xpt
 bin/components/feeds.xpt
 bin/components/filepicker.xpt
 bin/components/find.xpt
 bin/components/fuel.xpt
 bin/components/gfx.xpt
 bin/components/helperAppDlg.xpt
 bin/components/htmlparser.xpt
--- a/browser/installer/windows/packages-static
+++ b/browser/installer/windows/packages-static
@@ -109,16 +109,17 @@ bin\components\dom_views.xpt
 bin\components\dom_xbl.xpt
 bin\components\dom_xpath.xpt
 bin\components\dom_xul.xpt
 bin\components\dom_loadsave.xpt
 bin\components\downloads.xpt
 bin\components\editor.xpt
 bin\components\embed_base.xpt
 bin\components\exthandler.xpt
+bin\components\exthelper.xpt
 bin\components\fastfind.xpt
 bin\components\feeds.xpt
 bin\components\find.xpt
 bin\components\fuel.xpt
 bin\components\gfx.xpt
 bin\components\htmlparser.xpt
 bin\components\imglib2.xpt
 bin\components\imgicon.xpt
--- a/browser/locales/en-US/chrome/browser/browser.properties
+++ b/browser/locales/en-US/chrome/browser/browser.properties
@@ -128,8 +128,9 @@ identity.ownerUnknown2=(unknown)
 # examples: One active download (2 minutes remaining); 11 paused downloads
 activeDownloads=One active download (#2);#1 active downloads (#2)
 pausedDownloads=One paused download;#1 paused downloads
 
 # Edit Bookmark UI
 editBookmarkPanel.pageBookmarkedTitle=Page Bookmarked
 editBookmarkPanel.pageBookmarkedDescription=%S will always remember this page for you.
 editBookmarkPanel.bookmarkedRemovedTitle=Bookmark Removed
+editBookmarkPanel.editBookmarkTitle=Edit This Bookmark
--- a/browser/themes/gnomestripe/browser/browser.css
+++ b/browser/themes/gnomestripe/browser/browser.css
@@ -206,23 +206,26 @@ menuitem.bookmark-item {
   -moz-image-region: auto;
 }
 
 /* Stock icons for the menu bar items */
 menuitem:not([type]) {
   -moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic");
 }
 
+#placesContext_open\:newwindow,
 menuitem[command="cmd_newNavigator"],
 #context-openlink,
 #context-openframe {
   list-style-image: url("chrome://browser/skin/Toolbar-small.png");
   -moz-image-region: rect(0px 80px 16px 64px);
 }
 
+#placesContext_open\:newtab,
+#placesContext_openContainer\:tabs,
 menuitem[command="cmd_newNavigatorTab"],
 #context-openlinkintab,
 #context-openframeintab {
   list-style-image: url("chrome://browser/skin/Toolbar-small.png");
   -moz-image-region: rect(0px 64px 16px 48px);
 }
 
 menuitem[command="Browser:OpenFile"] {
@@ -336,16 +339,18 @@ menuitem[command="Browser:Stop"],
   list-style-image: url("moz-icon://stock/gtk-stop?size=menu");
 }
 
 menuitem[command="Browser:Stop"][disabled],
 #context-stop[disabled] {
   list-style-image: url("moz-icon://stock/gtk-stop?size=menu&state=disabled");
 }
 
+#placesContext_reload,
+#placesContext_reloadMicrosummary,
 menuitem[command="Browser:Reload"],
 #context-reload,
 #context-reloadframe {
   list-style-image: url("moz-icon://stock/gtk-refresh?size=menu");
 }
 
 menuitem[command="Browser:Reload"][disabled],
 #context-reload[disabled] {
@@ -399,17 +404,17 @@ menuitem[key="goForwardKb"][chromedir="r
   list-style-image: url("moz-icon://stock/gtk-go-forward-rtl?size=menu");
 }
 
 menuitem[key="goForwardKb"][disabled][chromedir="rtl"],
 #context-forward[disabled][chromedir="rtl"] {
   list-style-image: url("moz-icon://stock/gtk-go-forward-rtl?size=menu&state=disabled");
 }
 
-menuitem[command="Browser:Home"] {
+#historyMenuHome {
   list-style-image: url("moz-icon://stock/gtk-home?size=menu");
 }
 
 menuitem[command="Browser:ShowAllHistory"] {
   list-style-image: url("chrome://browser/skin/Toolbar-small.png");
   -moz-image-region: rect(0px 32px 16px 16px);
 }
 
@@ -424,16 +429,17 @@ menuitem[command="Browser:ShowAllBookmar
 }
 
 menuitem[command="View:PageInfo"],
 #context-viewinfo,
 #context-viewframeinfo {
   list-style-image: url("moz-icon://stock/gtk-info?size=menu");
 }
 
+#placesContext_show\:info,
 #context-metadata {
   list-style-image: url("moz-icon://stock/gtk-properties?size=menu");
 }
 
 #sanitizeItem {
   list-style-image: url("moz-icon://stock/gtk-clear?size=menu");
 }
 
--- a/browser/themes/gnomestripe/browser/pageInfo.css
+++ b/browser/themes/gnomestripe/browser/pageInfo.css
@@ -279,8 +279,21 @@ treechildren::-moz-tree-cell-text(broken
 #securityPanel .fieldLabel {
   margin: 2px 10px 3px 10px;
 }
 
 #securityPanel .fieldValue {
   font-weight: bold;
   margin: 2px 10px 0px 10px;
 }
+
+/* Icons for context menus */
+menuitem:not([type]) {
+  -moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic");
+}
+
+#menu_selectall {
+  list-style-image: url("moz-icon://stock/gtk-select-all?size=menu");
+}
+
+#menu_copy {
+  list-style-image: url("moz-icon://stock/gtk-copy?size=menu");
+}
--- a/browser/themes/gnomestripe/browser/places/places.css
+++ b/browser/themes/gnomestripe/browser/places/places.css
@@ -133,21 +133,30 @@ menuitem[cmd="cmd_selectAll"] {
   list-style-image: url("moz-icon://stock/gtk-select-all?size=menu");
 }
 
 menuitem[command="cmd_selectAll"][disabled],
 menuitem[cmd="cmd_selectAll"][disabled] {
   list-style-image: url("moz-icon://stock/gtk-select-all?size=menu&state=disabled");
 }
 
+#placesContext_open\:newwindow,
 menuitem[command="placesCmd_open:window"] {
   list-style-image: url("chrome://browser/skin/Toolbar-small.png");
   -moz-image-region: rect(0px 80px 16px 64px);
 }
 
+#placesContext_open\:newtab,
+#placesContext_openContainer\:tabs,
 menuitem[command="placesCmd_open:tab"] {
   list-style-image: url("chrome://browser/skin/Toolbar-small.png");
   -moz-image-region: rect(0px 64px 16px 48px);
 }
 
+#placesContext_show\:info,
 menuitem[command="placesCmd_show:info"] {
   list-style-image: url("moz-icon://stock/gtk-properties?size=menu");
 }
+
+#placesContext_reload,
+#placesContext_reloadMicrosummary {
+  list-style-image: url("moz-icon://stock/gtk-refresh?size=menu");
+}
index d0bb109d30788defe0900e0212894c6269759c50..b9d216a55febfa392b9b68a82f1b24ae29db5cc5
GIT binary patch
literal 361
zc$@)g0ha!WP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUyhfqvZMgRZ*+S=OS;^6c1^S8IRyu7@)
zxVU+Fd4+|AkB^U>oSdtxtE{Z7u&}VQva+<aw70jnxw*N!ySu!+yuQA^zrVl4#KhOv
z*WlmZ;Nal$@bL5T@$>TW^YZfa^78fb^Y!%f_Vo1j_4W4l_V@Pn_xASq_xAbt_xkzx
z`uh3%`}+L*`~3X-$^^u?00007bW%=J0AFc&`TYIsxxya+003o4L_t&-SB1{I3V<*W
zMA4g&DvgB?{Qp0*mS9Q|+_6w%)WRtbJHrNgu4LPR0E3eg%w3W}Ktc$Jagu6)c3Udg
z61ciDW>_B^%^LtgK)W|@;0wrP0xMwWWA46qZ+zgtlBjb49HvvwFNr<Z00000NkvXX
Hu0mjf?kB&q
index ecc33f5347042c0d12339c8757668f4d89fb2fe5..29c62941b4932f0ccdf1c782b57a9e97268d67fc
GIT binary patch
literal 684
zc$@*O0#p5oP)<h;3K|Lk000e1NJLTq000mG001Be1^@s68;SVL00006VoOIv00000
z008+zyMF)x010qNS#tmY07w7;07w8v$!k6U000Sga6xAP000mG001BWgMgbb0006B
zNkl<ZNXPAzJxo(k6vuz3eYIbf3XQR~C6tB1k%buJN8%ST#z9+UQQ`tLQ4<Ff!|3Yb
z0O{Jn2^L2~aB*;vnZby~6cQX56hGg+FUR4%(nlcH#L1+0IXCy7`#<;m|K}W0)jnVZ
z7zR9`348#)07{qT03%b+w-=XIf0h$5@hYRKjhQo<dZ|CU47~3KB&u31KW;6w4^$x?
z7khm)y*YC>Q!n*9OTZeia}bcI>g3R)j}24-LBzKJ$ryHGEYq4kmz~RJqpyP0zJ`H(
zfQM@h(cn~qi%^tQJZkQo$}}fWXXgt?oaKP0A02>u?;88FYX^~FFZ3lNX6pRF%Kh<y
zS>P@3Edrp{fVHSGsI|e~L#>Az3)TZ``MmQh_VmTp$tR0j&ww&O1VCI5i~(c8HNhhT
zt_5RJ*Mc#K@%<KFZ=VQc$MJt)X_H8p3{g<u>Mpke?%p~;T>~PZ9Uo9s1qrwaGg7^f
zTMdZx0mOJ{+eHM`5RxkG;F+{zrmq!O9#l%Rz<TEg#<oT62ppuL0*4b3bNkBi=H08s
z`9dzfM@ApOGlA|Q^%YXdsGYb}Xw@o1bNO8Sz(R6>?^q8-b`?*@qxQzd!e;GexjuL-
z`NvXrfadtv(e;;aK9v)PqF(iKaiex?xIUOq{&h3`Q#(hxIdogSdC;2&9f00E_|NCT
zZ>!$ckSw*Z^Z)<=B6?I<bW?9;ba!ELWdHzp+H*|FPfAtr%uP&B4N6T+sRRHooCVab
S45>{30000<MNUMnLSTZT2_+f;
index 3170d39bf295d1dd90b23bb04dd2500c71dd0a1e..44f0b702d9ac415275966a05d417ae3a51615218
GIT binary patch
literal 681
zc%17D@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3Qfx`y?k)^q@Y8vBJ&@uo@Q5r1
z(jH*!b~4)zBv@A9m=4p=(A+TFfPsOD&C|s(#N+teDYh9QjsnN)XIBf_FA@xD{cNDW
z(Q9!+j?UzQ)(EvQr6#j>M;(!k0vk6@ad1fH3e33@<8@JmrH4!Cg2^J+S=L`4Bo%f}
z|9nq1|GS~s`^WcK4|A3kG4HnCZ2kHE%$suqm7Iiw4lphd-_Xc1fjO*!_q9GxzsR+-
zAD+yPpZR7}aYnGW(%t>m_NCjhMSdi_P1qs-LVL~ZFHe$GjX!UkwPt71LI;*-c9ymm
zQuEmZ9M~`Hj{4Rnw@0tvHhR?(ncmipdaVTk3;)G62qf?)h}X}0=$?Oi`n)}>Z}h$1
zs;tnsPe}CRkxyxizZ-;w*I#?*qdSGoEb9_q(09#UHUirwvVOTUFHW|8$A&T!rtpcm
zcXehp9hPXA8>{p6u~dLoLAcUAe&rS}*=!z0LpH->{1K-2G`vi!);T0e=Q`wld2&$y
zQB}va2fv)RuqD^rW7%|V0q-JTW`}>*b{-C2*ITmx{hijnJ%(~S*tUGUo)91N_OxMx
z)`pTwmD0k0?>4TUdHJrkEa%0HUI~2$?nWE=8&?=Z)`-25U%AD!#Qt~bo0mC;p?ANm
zG2q?!<n!O74=NvQ{N-$Tb^oXSs9*O!*QBNGo3SRZa@v2DeQt?nwQMuoT*{=pT&!H5
z{Mf#z`0ueF&ui|lw45wcqbZ)J_uM7L!6o2-)VbWVYi0+omf!M=5s3b~+yCHQ_0pw%
zxpY$(Fli`Ng+!DD=ckpFCl;kLFjU+s_BrYA75d?fua7^km#@!C76$z}tXJ0Ytn>w?
NI8RqUmvv4FO#lUbAoKtL
index 8270048b33b6360d989c3fb90db0535954f0c04f..8218df8ed7b13d7fdc07146dbcba2a401b3a74a4
GIT binary patch
literal 414
zc%17D@N?(olHy`uVBq!ia0vp^0zj<5!3-pI!a4o{Db50q$YLPv0mg18v+Y2FWd)Au
zFx3pr4YLh^jGO?U5ZC|z{|ooZ0g>OTu<&(pK!)$iFo*~cc`gqOSrZerJ_*Q<-;|cT
zIV)vL4n)drnLm&OYKhyJ3S^{h&CT9kRIsZIXfTlLzRW*hbwtGagoI7$>D%&hca#+F
zu1LrXc?Oi0E(!7rX5ir$5KSm7t!ruRnmTjNyp6BkzWeau)90^We^e*`R|hI%O!9Vj
zk!DJ`vINLU^mK6y(FlHe!IQ5+LBQo=*^$UVndZ-b-)s0@VCdw&{x5cKD&wAK(=SJ6
zZkFJ`XuCJ(MrziwyUQk7=Ui96b8=DZg)>ncQ?eBWq!kv3H8^Jpv$&pNVK7fqQ}}Ar
z?*I2wKle6g>D8?E!Z(1HDOH6;lmzFem6RtIr7|#7+$#1t>F*W#;f$}3Kd+as&q@{s
Y{W+{x*72<L1*&H7boFyt=akR{0Ayd3DgXcg
index 9bfbd396c65ba4a25c13647105fe63b6cfbcf664..a94657c6655a1c642ea19fee4b5e5a6b1a7ad3e7
GIT binary patch
literal 412
zc%17D@N?(olHy`uVBq!ia0vp^0zj<5!3-pI!a4o{Db50q$YLPv0mg18v+Y2FWd)Au
zFx3pr4YLh^jGO?U5ZC|z{|ooZ0g>OTu<&(pK!)$iFo*~cc`gqOSrZerJ_*Q<-;|cT
zIV)vL4n)drnLm&OYKhyJ3S^{h&CT9kRIsZIXfTlLzRW*hbwtGagoI7$>D%&hca#+F
zu1LrXc?Oi0E(!7rX5ir$5KSm7t!ruRnmTjNyp6BkzWeau)90^We^e*`R|hI%O!9Vj
zk!DJ`vINM9_jGX#(FlHe;iQm*fq?79KFzeGWl8`3*Q;n=IehHi-MyP%Wi1MSc}rF7
z(5CCh95%1xJS)6xv6e-~9xYj3<|o=O7REHT91;E@+v3Y1na&ch<Bg4v|M>;0J+4{o
z|MI#%hx48E>O)<(I)PRxRfR;91m~xflqVLYGB8x!D)u?)?-lytjIWPBua~dSN)`tF
XIjmRK@vQU(s%G$X^>bP0l+XkK1gDs|
index 5fb9a90eee9fa353480970dfa7cff25f65a6831e..fcd938a233c71e3922ab1ff19dba82908859e4b8
GIT binary patch
literal 662
zc$@*20%`q;P)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzGEhuZMgRZ*2nYxW2nYxW2nYxW2nYxW
z2nc3oW}u*;wzjt7;^OA#>FDX|>gwz2>+Ip>>E!6^-{k4z=<WCS_vPyF!`AE9<nrh3
z^A$#<7e}TSNT(P{sTxYD8cVAhORO7AtsG3P98ISjO|KnJupUpU9#66#PpcnLupdye
zA5gO(QL`aZwIWfjB2u;@Q@0~jxFl7%B~z;=SG*=!vnW@wDOa*7TEHq?!YW|6Dq*@S
zVYw?|x+`M3D`LAXW4tY7ye?(EFlD?jX1+6My*FyUKXc4Nc+p08#zuL^MtR6addW|E
z$5DO7Q-RJ_gw0lk(pZDaScJ=1hs{}v(OitzYKg~fncRG(;+whToUhTGyyl<1<fp^v
zuDjN-#pb!q>b=0n#n|%7-16Dn;`H?N`1tq?-pxw@000<tQchC<7A-b8QDcdxwc6?F
z>FMg~>+ALT`uh6RI>H_R007oWL_t&-S8dNRPQySD1<*gUvl|-&mT5pK(!m7?5jUWu
z$T4XtC^-TW4WfY#Ly_R%*wOB0h8l@?gGT^B%mh<400e+NQ;E?uDL{Zod9(Y$arrRh
z3<vf{^X>P=$y=PQk{XkrTy6&B#JkPB@Z_A_wnn~N8z?SbRG3DvpHA@HVP6wFscI8z
zPw|vevLOmUuKy$;K-B?kWAo8+4IGrgPe&8Asu!Oeg1Ok3I`HfDs<?7E?D+hCp9vi5
w#e4CEGn+m3Q3((U%k7$)>MrH{Z|-mZ7qEO`!UzaDRsaA107*qoM6N<$f=(znj{pDw
index 8e3dadc8fc039297faaf264e16353b1cbe3a55cc..1939432b3a29b953270eb3b19eacba2ab3f8f18b
GIT binary patch
literal 821
zc$@(>1Iqk~P)<h;3K|Lk000e1NJLTq002M$000mO0{{R3kvWMQ00009a7bBm0000;
z0000;07l7cJ^%m!33hNnX8-^IKmY&$5CBj}r8EEl0f10UR7L;){~SVTN@$1`8z4MW
zYgKZO4HO#<6dYA@k6d??T6K~qE;d+mjz(pL4HO&-4;494YCm6qGFN;J6B!K?8VnK{
zOlyfTPi+kp8XY)NJY9TWdXz<Cfh9j#UV4-vE;>C|achXAL0olfiKB0XmT82aY>1&G
zGeS#cerJK3Xo8z-hoWzZp-pLrVS1E7U3hSbp>mC<H$qKwji+mboNR@jRAX{=fQ)s7
zlYWhyf{~s;Tz3Ef06<MyLQYviPh3J=c0^EIb(y_=pu&KiwSk_tgs#|!pR$Lh!iTNW
zim1hnveu5Z*q6WKovpi|!_%R^+M>thqrB0iz}ck6)~3hSr@+*w#owsP;;F*as>|A{
z%-XBN)vU|qt;^f5(BQDh*|5plvd-eN&)&1k-n7r)w9wzS$=SKn;JeJ*yx8Qu)aSp}
z<G<MEz}V)%+3v>L?8e;Y$K2+~-S5fX=*i#d$=~wJ+2qUM>doTp&*k>e;qcMo@zv$^
z-0b-0^7_sB((?cS06cV3PE!B`K0iZ9P*71(Q&dz{S72dhZh?V=g^G)ml$@Tav(4Ao
z+S=OP;Ns-v=IZP0?e6aI^Yiuf_WS$${QbKLh>ZXM00Cl4M?^fQYGKa+006^DL_t(I
zPh((!04`}&12rL5D35eLud+*GLYS+eAenql#hB8H%96rJV<xir3^HD6q0v!UML9uo
zWbqla{J|hTFGZUyK7&p`c5ZHRh<`?sDOr35O`n45;@mj@)FeH!_zY6cwRQDXx&DD}
z;$-m|c=SEXYVsp|y-hgC;xo%TSUbgr2Ycv>k;UgWcUKpXRnSn9WFd>sW|e8j52P8v
zJkt5>7U{O4P&PSyKFe}@VG8&RW`2$$l<*l;j3g-H0{{UZj+MKzXF~u003v!+Saefw
zW^{L9a%BJjc-nJJ$xljE@XSq2PYp^<OsNC_FPsI`t_-P700000NkvXXu0mjfHmi!M
index 328caee874a3b2ef9bb0139a95c419fa89f2a5e9..77a6ec5ab7443bf314b49f5998bf2b535825f569
GIT binary patch
literal 828
zc$@(|1H=4@P)<h;3K|Lk000e1NJLTq002M$000mO0{{R3kvWMQ00009a7bBm0000;
z0000;07l7cJ^%m!33hNnX8-^IKmY&$5CBj}r8EEl0f10UR7L;){~SVTN@$1`8z4MW
zYgKZO4HO#<6dYA@k6d??T6K~qE;d+mjz(pL4HO&-4;494YCm6qGFN;J6B!K?8VnK{
zOlyfTPi+kp8XY)NJY9TWdXz<Cfh9j#UV4-vE;>C|achXAL0olfiKB0XmT82aY>1&G
zGeS#cerJK3Xo8z-hoWzZp-pLrVS1E7U3hSbp>mC<H$qKwji+mboNR@jRAX{=fQ)s7
zlYWhyf{~s;Tz3Ef06<MyLQYviPh3J=c0^EIb(y_=pu&KiwSk_tgs#|!pR$Lh!iTNW
zim1hnveu5Z*q6WKovpi|!_%R^+M>thqrB0iz}ck6)~3hSr@+*w#owsP;;F*as>|A{
z%-XBN)vU|qt;^f5(BQDh*|5plvd-eN&)&1k-n7r)w9wzS$=SKn;JeJ*yx8Qu)aSp}
z<G<MEz}V)%+3v>L?8e;Y$K2+~-S5fX=*i#d$=~wJ+2qUM>doTp&*k>e;qcMo@zv$^
z-0b-0^7_sB((?cS06cV3PE!B`K0iZ9P*71(Q&dz{S72dhZh?V=g^G)ml$@Tav(4Ao
z+S=OP;Ns-v=IZP0?e6aI^Yiuf_WS$${QbKLh>ZXM00Cl4M?^fQYGKa+007EKL_t(I
zPh((UU=>m`P?hFlfB{nZf`+bP35hPsykzp3j3Wz6Dl1B36gkP_Gsp$y6lFz4ho*VS
zki}=vPRWb+2Lmm#_zb2=8U7*3xw+W^I%M$~^paBj<8q6u3w$)m;xmZ51^VY!)z{TJ
zOOeHA;4ty_jmWPl^VH`di_gFyrt1+L9_wW7AkRz|pMilzQb|KWRzTg|oSQ5@2rvRM
zzg?yk8<~6v5VcLWV5fl3z#wd2ZplXhpMgQd(a($$J_Cb<kqW7N0H3;!m8K3PQUCw|
zB6?I<bW?9;ba!ELWdHzp+H*|FPfAtr%uP&B4N6T+sRRHooCVab45>{30000<MNUMn
GLSTZM7LK(5
index fb6357ef9753122b44e6a292a6ff347e2406bf2e..2b754194e44d8bcea249597a723acd26f7dfb2fe
GIT binary patch
literal 682
zc%17D@N?(olHy`uVBq!ia0vp^4nQox!3-oPT6RhUDb50q$YLPv0mg18v+Y2FWd)Au
zFx3nJ9!pIa7#O(&d_r9R|NmdpysoZ&L;KX-oiq0__|4`Dpa1{n3I^Yq41O~hd}q|Q
zuJ4$>7pSJbb5rZ&oj^5y*_{D7-9VAX?kz17wgW|gY9J;+R5tZ(0}AG3Raa&g)#R3E
zWmOmC)|O|3Tostx9#+(w+djWGx2P_!XmVcilr48>?0Pg~|E-w^@60^(cJ{FkbB^9$
zc;)}X8~>JE`@i(o`(?L3EW7hz`OW_;uY6p2`~RwIpI6`gzxMU-4S69O&Og|6@zJIy
z|F_fy?|%D#|A+qvUVb|8>F>c;pAUZed+5vm<CPv~pMN;__y5J$UoZdvf93PP>)-y}
zZ?$>&|NqPH|6l+A|Ml<xf50GE?*sJm)0f8%1D&W+666=mU;_jWUcN!Wp)oOiKrm;?
z1t7Q%1V4ZN{PX9}zkmNWFbAao)iWk}ySu1tVf#4~$T{li;uvD#zx2fQX$J!&+8+8#
z@(Azk-uK1uh6Ib^qHeLkcmKVfB}`*(|NVWQtv<tK0S^`y;dvi#iLNX^ez)p~>lVvf
z32SQiyjz?$>ESw0<&}r^mdl%;<lwuqbJdrdAI&|Cjw~&^VCJ>lR?O2aW1;k}WnOE<
zl_ckN78>(?7R;{nXj9#0T;e-*maF~A1K~BhqWJf7FFkeG&oJR@+vLRc>-X&aFCS;`
z9e!TF{rZm+r-0;v^f<fw@+HjY*4Uihn|NU2sT&o4*^5r+)GkdCO$K^MsVXF*Bsf2<
zq&%@Gm4Tt+R<X}Xf3MIFXMBD9dA)pnR<bbY&tbi?j%TGWP&I?6tDnm{r-UW|Zw**3
index 5363d166eddc3c795f938b6023a3fa1c436d60d0..ae40b6fb8db56aef1c1ac746b9670a1aa30f7e27
GIT binary patch
literal 707
zc%17D@N?(olHy`uVBq!ia0vp^4nQox!3-oPT6RhUDb50q$YLPv0mg18v+Y2FWd)Au
zFx3nJ9!pIa7#IZud_r6UbKC#lT=D<^|C;7?b?qD4r|#~YxsSnbHdpw3pg4o?Oa{Lh
z48AjJTi16?-wRYz-?^!E@=l-{zwFL{oNk~<WA~Pp3EP1pKs68(AS#>swgClmvZ^by
zi)wPqv$CoSa%;=8L2d(D8dlVs+djWGx2P_!XmVcilr48>?0Pg~|E-w^@60^(cJ{Fk
zbB^9$c;)}X8~>JE`@i(o`(?L3EW7hz`OW_;uY6p2`~RwIpI6`gzxMU-4S69O&Og|6
z@zJIy|F_fy?|%D#|A+qvUVb|8>F>c;pAUZed+5vm<CPv~pMN;__y5J$UoZdvf93PP
z>)-y}Z?$>&|NqPH|6l+A|Ml<xf50GE?*sI5mcZ)eKqsn|1o;I6X&WGL@bV1`4vmTF
z1A;kAE&#!GAo%(7=bt}+{{8#s&Sd!msFE?s+ucPiietuBAm^H=i(`m||I~8_{g?~|
z8XmsfvZZ;Qy6~ewxhD39TX$AIU7)sx%}hw>=F;1n&Yif`@zJ9AmHFg9E1iEx23Ni+
z)@Jb9{pfa<+m-LWw=-jzDz-0(IsGJ2Jo2T`inM9w5)<D0&-a?%pkDbg*hDGrwa|iq
z$5V7Rsjl@_Naf71E%J(*?r@HcS1C>|DxQhySed!b8G-9-uRZ3^_<7`Rg4**fc6FI=
z-A@1c={##fk#)m0zC%HuvTY8$*Ldsp{_*eqyN~64x&5ssHsftr|KT+8^=xZn&)%8y
zA%Edl^C?Rb{J6irD+KybsVXF*Bsf2<q&%@Gm4Tt+R<X}Xf3MIFXMBD9dA)pnR<bbY
X&tbi?j%TGWP&I?6tDnm{r-UW|^eks1
index ca86c32746ed109136cd8c41ab93fca0013580b3..c9d9e3bf59748644601c5f2b71f9d3bc84089610
GIT binary patch
literal 76114
zc${RrWl&sQv;;cXV1r9=3Bg^1GlT?pcXxMp0)*i1lHl$V+}#Q8?hNko$anAaQ+1?H
z&5x<t-MhQjS|?0iRtyD+00{s9ph$>+RRjQ_Vc(yBAOPR5DUd6o_Zy<UxQ5gFUHrdO
zbjV8Z-%D3}VYC19*MOstXP5T}prMr5SHOSAgGh@X0E(tk;;XQ-`_f4pyn5om99KjE
zNqqcH#{4JAp9EfT$O|~R3tkW%Wo6hCVyzQ`76l_nn_E7ep$IxM7xuTWF;uwNI&VG`
zYiNSjTrvXtV|T9?%}H|U8cK6j`&pb;b2aD~;T?x>>(@6;(L3pgq(dEkPvVZUZ{qDw
zFBC)dG%e4opZ%0fi`>I%cuJH@c}mo>+t<c4>(-P;n=^b=J(^ltq(q%h7OL~8<+38~
zV_XJ0Ca7f6oISRB!_++98u{M}-h|>8lV5;Dr%266ad+gzLLPF4I?b<)Rc{~+5Quk&
zW<1n0{A!AXZA1M-wf5_)zy8prP<T)Vm{2%b7*Vv@+IzsRkG;og_+EHcc)LWcQqXKP
zg_X^5M;xEaIt7%`s6u3B7nh|pFS##Knm5+8JMG+SSS)1RzQ8wu(elck@0eYz*gkJu
zeab3f-7J^jxJqTb&@f-AHxf^c7<axC#xDU7V3qgwZvEZV#4TUe+fP74;TsyAfd?N4
zGGA%AzDnb?>JQj~Q7Sl6>~7XZZAo*9x;|c(^SnO6VVhk1M!;p6q@JVCT3QAjn5S0x
ziS|%sxHQ(=+k0m`lh5&B^4GlE7s&MsSf6ZpfYeXh@bUWa%i~VGob~;g(2d)zQ{=a8
z@wc%Kn`c{Gj@K+^fQSECpf28F#l<SLQCgti8_8?^K?h@pGV>!h$>EY;)j)jYa^=V$
ze=&&k1_f^xq%YjXAXB|jnk&NZ?_%UUTIw8!9;!TvyoWrDJRt=qOZ$kCbWhzMaH8<@
zujk7*HnPr7*&lWqeCE%d_L+g=;s-uqKO*9aQq;qKcruXRosIO3sO_c{HkK{7?lR4=
z$pQWKiNyIUze|led6*f#vg!2aFLTNAGwZb{h((h~eEs_UcPJXEq`P|)zxz43ySsbm
z^~DR*6Oy&k=A|a1yg!~93jzcfUr(g$=>UY01ntD_)&{Mnk3Yxd9n`l<dNMNWQA&I~
z=o|Uu@p_raFXc@;ZyP)~o8Gu{8JUiGvy=L@PXLEv0yM&;QxPaqs%rB|ZcPu@knLrl
z!*TCqslY~yR&mtQRCURIs~6GZ<|sey`9>`g0U=AktKeXxD=6%Jts$4~+wBfLK*3W!
z=O4tJmI)wILG7hRJJR($2a5GKGCXvOmjPkn^;fYI@D;F$2sxc)x6XROQDr=9fIG^a
zju|r^(4;G+{FnXDkM(&*zRD51nU~(78+W`b7RY-1#T%2wWv(<0;qZ@|-=j2q!!b2^
z(zIH`DK)-&5Bcr~vrqEGp-^Hy)Dt|^$ZFc2%+SnJ7e02rWmw1kyrwJ?`_kgxN-wI$
znAE!~_|n(UN$D1;p&smrpd!stCn2ulRsQJjJ#BLX-&Hd3@!zfvLMz2v_xXH{2q?Jm
zu1>4$9ac#`n8U(p;LbIQbf1Vr;^s$2N+tC5H)y5x$x~Lou>1*LY4u>=x!fHgU!k)X
zm{!w{;u-A3TJ0Umt$l8y;+w4_e_un?#STBe!FSY(xSlTI)R;|Vv8Qv{SZ1Q)Rl%IL
zIq#OFJ;MYB?o3YQ);NsdYE*mH|3*pwJhBD@zmvC)kJyaMASS>c?2+=Bv7J<s9SoLl
zzFKgmZb2dB8VvuyTmy@cLQMg-Cx13+zV3iSz|?I`pq{{@d|eD@fC-dLEGaKh$(<|p
z^M2^-xYuq{FAhW@;E0LKA7LDnB&;F^peGek`Ms!62#_^--jwKTOX6}sk)l~BTt^R;
zcX+WE{0f#nQ4~&MN}(J{W{h8~H5&<pL&m=Fo$3z09C+4XD+wwGm6(x>9PPXJv~FD7
zz(d18P>^a&Ms6#u7i-i8-|_NI`}n9>|5ut$dZT95ki*92{o>U`c%xm)J-p~JYqb1g
z^Kl4+9@eL;*QTN$cgwEpF<82HJJY-37kp3hdyE&!uS{ZFL%HG#PZinTmlmrXcq(wa
z9_xt7{1L6Mil;`|wGdjE;Xt-u)-)8u!^*x1v?fycN^=Q3CUPW1$OYRy+@^H)pnPP6
z<{SQ$TC2*SP++tGt<x(4i&Sm0c7jGY^YG}m*Q4S6y6M2|19w04tTMvm!R7+;gEtSn
zw`R9YIE5*=m5-RD0v-Z%#PT_vfEgCXD;8!CW0n*__{7&M<L>4psaz6+z@+OR7OwF8
zEk%BzevE4vAanj2SR{S{fm*#*_bCcqUd^-MHLMPHvz?PaPL60;1k`OA>;MD+P+Rso
zAs|bqZ>TVSXE8zN`Q>GIXDGgVme9}t?rfEwgoMO#qcb2r1t7!;59G30_T5|yvi}o>
zv!C_yWU@T2vlT#k1qOUyHbC2%dx75~b;b``5aF_04uSCPjy@o7d7ZVE>2`E6Gs?5L
zo~WOZ6GC;#<JUiwfixi0<E65a>n6I>J{O3GEO$TZ(mcRv(u))~RA(`o+YOR83WRw_
zRW6DagO>UDWMoxm+*Bgq&M;~^I?0a|647y8T_XO0_I1oBzIcxiL9lQUG~6K+w2f5f
zo$K%WHAxO_oHlWXF>@($3UEvqW0<spu_{1#*OKt0WIkdtYec1p?T_%wqhi_DKLr~2
zxnfWRdQ|N!0Km(v_#{$Z4g+)`QOe(4xllv4h6m;v;~~s|5ON(uf&vqgJ-F!Ke!+>`
zXhP316kfN{!+}R>ihYtkA#MkCYj*c|c8h-?1w<}riL->2!`FZIO^z~Z*<5aUCKs_e
zP>>m?-(MMz6_h%5KeZEaJBo=$3eoPUAo2^nT-P@Hv6i6F!47B5z8aAjtu6W0yQ;7a
zNBhX(%i|^>n&b`*Df>zm#4wsjYbfm{2n+x`9HdhS>4`*$q%5EVWp(cEAd7D)(&>I(
z3^JK+x>RF46h;ME*dIR2x$Ls9r%R#v{@#8Oc8^mRo8v?YP_wL~VUtYfMvg#{L&k1}
zgAvcoH`Bcw1hdO~j#uAPm{5gMd-EM+wIXloCH>7@Z(gf~2}3j?z}Cl{aC^Evl|Kv5
z7KjXU?nNj{p+e?>wWNGFg)Bk=J;Q3vKI0$EXk>WviMJCk{<TagtyU_O9g3w8GhT1^
zfwmWxM{oCidE7E>K)hY+`|5EqO}U6lwt+~7{>bu$1gwOP`=IW6w#d8>!#t$Z+VXUc
z(J7ol#Iwni-e3#Ye1jtdfXOW&o4xI#0YJ&ZiiDyj3I_p)1|!XkCkgcMtGdNJnQvk$
zkfSA9ctZ0Yu6?HMFPVzjebfKqwJDT<^r#b|fOH_uVh$KsSXE+Cvv+Y3^r4%I&fRsm
zHVX56R{xm$5en&Jd_CMr`qLc*Mn726-2BmBfAw+9@#6;1LGXoT9=PYG$(8iJ+uly{
zUX<h=d6sbeFXIGtP!e_#OaAk52r`}FU(KPjIuZ&eFn5P$_A%iZ!P44+{83@ag98iw
zVG*(CVpEv6ERq+4NMu#T@+KNL1Rd=R8qMC-iYCK2r59FXW;k?eC=3QBR}wXu!o_S!
zb0*e&T8Z@*YOP;W?ZyJBq|d{cvr32b{APblxPAE&7iL6`?7x95dz3fcu@@fz120*s
zT0Tu#V4-tkcDS6A14NKC`DS#*lz_ih<w0|KF_5i1{=Ozz%pK2#`2p>9)@zOq^GpJ_
zy2N~lex)hcs%0G?vCJOBmX(F@`5x*bx}RdPWQP#2wptY8y<_{;@=dZ-2rGZ^QRRlo
ztGFH4L+Cs@7)KJ?>z=>(y?kkTow;ALx4VDMZ@yezw$r1!V$JJmWWJuTyNYq#x&OGn
zpZ(UeS34nCiA<NE0`BA=l_J^6w+n3_Wo{SOaP!gW5TCkbR+`gUzh#zw6rD#^G9<07
zT--nL8r~>>_D+nLPFkm>G?MZCM}z_Bf$ze;kAkDIp+-N9h8W1qmmMH#Hhiaihy2r8
zRHMAfKl>;6>5U39ararzrj5=G7Cr6@nwvLLArGq@Xzo;K_G^WGGkxC+op|{r$|#P9
zdDAiOE7zMter6#>G-uz_2uh$Kf%E~8`!NmykG$Hpn0-0Oy^9I;iroG9LsToh2^_lj
zXO>>nPZsh8;DE|XI~!?T#EER7P`X<cq#L$uC&ou{?bhb-TDcGS2g?e;3=4X=TNA0Q
zYXl+$Bm@KmP-|P8o+0wDVni}~<j!Fsyr;=!x6`;8^@~uWFKym0A>T33{asJi=zTvh
zy)%UAj^x{r#=?j1qF=uR*&}HoY3;7`h2I;UQ_<M7+w{bci@+}9Y#klZ!DMC_5Ay1n
z!+R&V=IsC8p7wZEuwZxU;7D&4JCa*rs_(Z=vZR<3VXqRUL)E0*)p=D;gMuN$OWccw
zm|B~~U}9o^qM{O2aCVO12h!y9`=<ql0yt>vU;%KN?R9{z&>UwdD1Tz=t2;)DQvc58
zy3-u0u{7~zuG8#B>#4ojN=_>QMhhFIFHgF24RJ={NjBU4QQ2hdreiUtj9Plknl;V_
zN`e_1di;I`RB!Lw#82ja!b<PLw)vSBXlU7UM*27FFG3Q?@>f5FB-p<RNp2$vNxD7h
z<>~c&fxsfvwGrAb+qdjd0yIAY2pTP$WUjE6IqH_l`l$FPl>Pi(ZsymO#$Nh9=;7Y)
zrTb}E{%u-pog;2O{ljY+SZTfNrDV!@trp*7F8zt3YKe$#P7D}%i<^wGw#DDA1VsIe
z4$%>H-%O8|WH)@K#TN+c+^8GXIALx<T}g6if*`Chh|pL1gqr9OKaqyr1Nygy{x+`v
zBFt>5aG7hQCw_#A|HDb;^5pkSAy&|cmXhR=lFZMhgnQiE>@(O<16c_5e5j6IoIi28
z6)*v7$Ws9y9%wZ3ld>D*%7uNY6Gv&iqM)MSqQX$AE-4&94h#;``OvV8ODDD~1y{cK
zhzSOg6!OKtwtadX4iqfb?JBKT{dDlPZ5BT;WM-fac21qqMOp}+OOtH0ejZ5n7z%0~
zjBnKdju@uy-N&h`%`HYuGWHni{=p&g{j4D5aJh(p<V$w3rcJO%8O;Gyj;cCPJJn<a
z`CYI2FaMsplWolJAw?r)a*4ibB}(GXtXraf{kVRSE?6#_3J1H+vsMKo0ZbsL;da`K
zprGb}hA!zwgf4h&5@tV-#Q<H$=#ntzJyg>vZkv<SdfofwO~#%m-hbtyJxY|Jx<`wl
zSF4~&6c7%`&d%=4($9J2=;Fdd4>5upvw@b&jz<FV|M;o81eH(T`7*xx^oe_?;`<6(
z^3x>V3Or2{;f1)Z(2p3OP*i$(d;FuNdcx1aDOrN{{XcE!PtY@f*U7$7Rc`7&ijT~9
zacfet;%fc@u1=`Ke~I_=rgkzF2W-Os;tiDt)=z@)I{n8w^Z#?aHLC~`S}s0cWlk=*
z6*}W#tGOl6gOp&AuycrG|6=n0WLd)cPHBah66!Gn4LkJoWU2R7U-NrErLY{@<O`r%
z3FL55ZCHPkjE#*&7*9^-ZUYNTYmIn*HkLk*2@5lxm-k6U*U-?A?v?*r*CkdKl`%eg
zLQRc@YKtrJ;q;$e4)X<h$wa38gjOH<_8P0wIh%afRZqlkKe6?Ut&Cd!SS2$lju&k4
zDhU#)O=RQ$=ciHd%wgppW&QQV!wuuS*ISD~wz^+E=b6dcj`osuT`r|2mLBrOPWAG%
z%Dt!IzD9mYPJ0;4GgSpZd9J~NKH+zD(!&AGYccMwgL}b7SefSxN-r;qX4x9sp{>1*
zJRP;qw^}eNm8^M&EwX%3H>6wS$Bo_G=$0lGRG~(Wc(C;sU}=JvP|u&+WNwGs-d{Y?
z_?g-=q9o)BbElEx<6$a%bmYh);i>SM6U~|&3{#<X)7{oOKaMJ?i{9vkDvuTqzs%KW
zMcW|r2xneI-;>qZN>yDu31m%HUul|^+pO<B-=3<>o1VUAzda8>lD^&lKKj7ZKANhq
z&WbX_7M&$_+1Adm?KKzdVz?@(%(rNE!govl6z4PCZt_3!@nrlUOqGCQvZJ4n8b@p_
zuAx|v@Xt|MU2fxTsBfffEXZH>s82Pf8ig6r;gFgCHQfK(Ab@I6@5=_q1Cs~>ldr;)
z#NoENj`Xk2|3ym?^*-BiRtH91$|io`kB8@m$aJuyU8QXg)u>aAm=a50)l`%@5tO=1
zac-iuXWr{{r2odq&c%w`iyif0hX#%~M<88|@)7ymx3tfH%Y_hEjubIQe>pG5p&|Vd
zBBuSqFjdH&KMDwhc<R){gk_0Zdln5|3(OP@9CrsJ*Sd2=S=!&SQipze2Fu(LQa7Yu
zO3Y>k=bg_nSIflcT#B&EpNn(B0e|9kb>>S2V8U*L30#HQ$qMDN3k15fiOKAFox1d(
znc!$o0gZ?i@5(}w9{>$guHGigr0<B->MIo}(zA24`sB#7lV!c?1bz;(8y>E=+HFcs
zCKB`w)P$z?AtZXb?uy>CJlvj?^1MAEe|fuB)q-2aB}t6xAdQ=wMAi07AuBI{#HQtb
zmbk$<&fD5Z9MaD@@$dVOWWP_(IsCjmH2o8{+{qthEsy|?A1M$KiYO7}s%>(1rO?nn
z1qG<_vYczfz+3=G9V{>RKk2Nu#Bp4dmz;UDveNteyZp5#QD4i?p<fVW@elY~v?lW~
zkb6Qc`Z2m{;35?WtD0|Psamco<NHz{vXE4Xtz1$!CMM}5U-6}*U@R>>QRVP>QRwlL
z2B(GE_WVJ~tW^fvuE^;Gd&I>4MAooGM6D9F&tFb|&D^_dg&1gb8gzMOV1RZy4n}f8
zaK6tCe=6g4y(;j{<P(|<Obo`iJ~L3K<=>(U3gtGOj)}x$F{u$!2Atj3t{Ri{$g8D0
zZkpo;-S~B1A!Z6z3{b!2lt)7HHQ^Q$Y6?rUQF^`AI>mJH9me70RZQJ!6r4(-&UDTy
zs>PB+avh{vuX*zm-pnoGNyQ~9{yqf-byi&QLi*bGu#(yy0|Si^M@B|M&WF?aGauAd
zQlagLXVj+(G~u1u+V$8Us^uRV<!mY5b{nK^D{r$Z9d~P<H%lwq8@hT`kxEyuK?sZ~
zAr`4()iXE0=BT7rz2*X39wy&|ZZ)Kit6FZc@x<ts^C`opa_92`nb2?u+wU?O_TebD
zJO)~&;UqTIOG3jK(*MjD>;Q1!M_hIV8cz~;0e6EUAh0>Ifz%RW|Md}cAziQ*B#>7)
zf@raB*1>U9BQj^*QbvUxdB2jk%yh`VQ6*VAAq73L12yh70~zgU-7$#zJYu|97DVee
zm*^r3+3Cz}Qp-hZ)|Pv&xZ|8UNDi3Si@S!r|8;hUkH5St^9>9h!<u@Yz0e}{!F-~F
zxxqc7(hIaS6yS58c`#qhfkp2li$_SC0p>rh$`K6w5eydIbd|N%4(Q)FAf?XzY?+w$
ziJd7z1^E5J)l_X6HW<}RY7QiggjZyZfB<CbV)7?|HV0y}_#13?xg5{E^dKN`t@RFP
z7a|rBZ|umibe{UBFOW3h4u`!}I3MoP4EVh4NKdN30TGY_Apu`Vi=K$R?uMxF2p(b7
zV+z}e1)5#r^I5Ks=IX<p&;AM%y>^l!od9{q1@an@v{l_pjDnF-VSlU+-Y9w;SW@7r
z16iuR4s$cTJ2g0jC6Lt3w%54O<mOiX2sb_kMeLM=BPN|y#%PSuKy+<+jSb%`aIP$|
zPYQQrG?m?CWx-+VXp0UN6?MAK0*lA1pA>wUVXfZrZLWNoV;&nFuM>=UdmE`wc2REX
zzl4AS;*atuqdF`oER{;Xs*j^Si2y*U{U#uDM=9^L%Jr5A2oM%MzaU!j|E~OOq+qM<
zok17MfA+1<gakdI`cyezQ>7RvFF)K|W`$T<lf9%`##Jm*$TZz*A~lp=DWAJ@3X}d*
zz;byWgGfc&csO+X2>(b_KBuD{Oxji%4UK{hvNf1Q09l#>V8&&B4t7!n=iAh0*DCg>
z*FBS&Q^Q|h4i5UqTaX-buvugZcA~klmeC;Zj>XTjMaLd-rY--LNMD^Yvfr`Z>qcfH
ziXX~hRqqwfTp5_vX*S|qEWR_a2!&HF9f!~J7<id(I<+lcwXRjRsndO3v6slm$*&)9
z3Xf{Zr=X(RI}DmF!g80#k;$qxI2W*(!?##+RpS^LO{dPLJf5n)nhVy>9QXI+WlU=a
zH0b3NSNZNIP8{aDeM`;sI^j_$*Q~_!xY`rp6ZSya-JOc{?0;JM!+7QMGW%IYGJ)nn
zDXpFDJklbCOF)+)+@!|(ANOKxjP$A}E=$<1XdnKEf0RNAhj}}0Uxxm-?DUf@_k>1d
zIF2pfn$~D|iA>0i6UdD_7;hA0^xY`f<Y;+}wXZr68vR+*ZRFH7#kd8;oh6<5NSvrD
za4V5{ySy_Y6EH+ig_&*DxJozHVt@|S<_zSW+NTUKyF^3!A1#Z6_eiA=GO0x^3m0U5
zPex|W88KKszh2d_Iv^yU_I|9hAp*rw=pvg)-h3LReoswPC}fF_`6m_Byn1OSkdO_|
zZnhGOUvn7V2uQf!P{CbfTJY|1!XP*ru-(lAx`@?#L%**`G*E81s7~VL<I}*7fiWoX
z?imMF^ncJa+8S_@5=F!V&n8h%6#e}RQ30qGcB{=dW)x&iL_mrz8TmuKR_|}N`gQ^b
zw>p0SGMx{{pLe$+mmLu&bf6GcE@0eWk2wE?*#v1BpjGRf%i9`^_%8zm&Blk3o>@Xd
zgviL6%Iw5KT~CeAG8U)XZLBP2niHLM^xvJ}3D9*Ut|u9rY{74nsR3zD9Bv-Ru#^J^
z$f7@M);<kFN5{4k_%v(m*4s1iqD|I0al_|$sQKgh^$AjAKlSm!=S({lSjc&9Tqw)U
z-O?m(XHL)Sa>l^Oy2)uSuV-yzV{%vVvbB9mJrM0Nyu?WuBn{PN<#ICdmHqrL0&vR+
z2XBKGoq*Lb&ep3-mlvK>{!Tg>gUsC|!=Hl@Hd<8C7nWq%?L<}~iq_9I935n?1;mGf
z2BbFnA`CCd7AqIWDHo|@w8KjhGwM}e&hE*iOVm<D=A#(THEE2*qYyR{sm)gGRX4j3
zimS8`IDC`T$al=CK>?rB9^GS;b;5&3;kBS!b-#}dJw4J)0s@5T<*_xP{GrT&82})V
zgRU$BzE-`Teuk|sH#m*INhW8#J3t+P30mfw$nJ=NJ>OJCnfcoL=>ST&gd*%b?;hth
zkyg1X#zdInqFo|9(yyWO_OR6iYC-ZQQP>C(*qZl2^{387`eMaAxy2$}q3seR5y*JK
zx9l9MT;3u(JgZ47H3wVN@xuOr<i~aumSX9lsWj7*GRdAx=NIcv7P&sBov(Ttb(e8<
zr$AjArBacZy(=x}LzjcuuM4gh>P@sVfjF(pAZs+aTh(~{O7A@{r$f%8D34z*EiSp&
zHZqX+b#uabdpx!)n{H^k@BeAR))U@aqY-+2lrq~;9lfA-!d^~vOZk-GGa{&ZDUw|a
z;e1f|XC}XDD3~S?oBV&w<hzkv*udLVH%Kiw-CNkglLEr3SlW8dIp&1cxxULFt}JzL
z`?8=$4K1K__`rC}DX~E-?>*}6rDSOF6pj{RxKq95oc|Zc&@Mm9Ihj=dqaf)&3U)h8
zqD{%^j*URj?=PRmKYWw(9<UQ_2^_sAF^_K)+bD(bk$1#0g$icdu24-*tD`(#>E;MV
z@^lN;wqrZiU)H``$&eQhu`S(pR;g#xv@HH>{%BGmT_Pb}Iqt<6b5>GV97i(Mo;y|t
zr{G};BiVCv7`*dQCicKkI;qDNH<4H-@hBnzsunj$$V;bgy$LwnzAQ^mf4OrQ0RgjH
zANhR0M8%PyRn2A*m2m<U2Cqqi#a^sp1u?M#HEPT0HW1d(YeV*)!kY0b9b<Puu6i&j
z4^x-h*-#A*y}t2Hf<Kw?dXy?-+R%;!R-VaK!SrtnBaK~*3|g_TR;$cXD)ae@!<%mZ
zD#J8$mQ@FBvjH_NUQhk-aO+9*pGEp0L{UBCS^47ySa|XjEG9?T_(BGO5#O;0sTbIt
zkJn^0q0s*pYpF>l(b2M-Ju`()GMCPk3%64mXXspc4h*eS$;8~xnF8qb>t%8R0`Oq)
zHWK5V=SL#*CL(c<vNp&?!1@{fy3`i&<4*ZDMm(dX%mWD>K%ly;DFBL}+j1$uI$vrz
zqe3&kCV|#0$hRu#XcBv2agjDscuccCPk7a{X-Vqlh*Ni2waB}!DN#nli64rI5(*hA
z5c(xCE%5F}AqNWDCcG0L+*!=p1tvd4%k5HSVermoyY>Zgcubm-X&B`;gt;$Kuxd!<
zS}SMa0fgO0v6R3u(AeBOJUHDL)!mdoldJv~iI!I<9&@ffcEV|uV3}sccFD8f4H!?4
z;Ja$blQ$mv%BQ(5QQv4mVl`!4#cv+9dJFmqXf;g!jJ{n3Iy?=6k<}ihf_abgZNqis
zr65Wkd`4eRIM2UtN!(n0m3Hn~k(GQgUGCO!z1X5;3{R#pSZscYQj%r|hFE(N2n4$t
zQdggPX*ctdCY-|C6<NJ)4*d1<{XCYd@Mb_VU9f$|o>=Nir>$N8!DMro?Zzjk=qut4
zquIEfO$Zuc)`+wA1#t(?=K{_#y_G?&cMW=%Me_1T3mYS?>-TfUlJMz=k4o$JU()|q
z#-o4uHL-Xn=^F!Q@?}w8)H78fB!SXIa#68AfzxEXl?a9iS<-hK^iLg)LQIaI{Efnm
z81T^-RF}^gy!uuRe-&Qx>EqN1hm7AS?N@Pb)dt@nF`&$S9COWEO=QcC?PPyI3%T2y
zE^6Ho*4?mZVE8LM`z@KdCBUx$N;tswmD#DDkJ@vqr3^aITZg%I`l`wME|r$-e)_<<
zC|Cg*Jn?fiVxCE~#AroRyi3SUiS(ZzU6|IwjK8PSF(jDr-pQXqUkKeuNz(KYj8c3W
zX?5Hs^{4Pxs{oG3NH5$~X=eM{d>?IPRcu=7hzfgN@$lo>JR|3)sCXb>s5T1iREXtu
z0ocpS!N5YzSCkH|j0nlA+O3jXH9|1`%n_hB;UH|CV3r0H1O(a4s{y*_BsMybk`^+n
zBi>SI&%o*~ZUfrjHli<w43zLT@WvSS8I7Y%P3>sDJ~@f~w%8_6e*q;A4w#Wlf@@_C
zl;jyr#1t^29|J%MPbCFi`;$FIEMECu@*h%nHA04NVpw>*M@0%`(y3}Uiu!F@)6c&L
zi9iIWtBu60(KxWYyu3IM9Za+vv^9p(KQmhsKEnJxNi@KMAG%Jht;%QVN^9i=$B47U
zm`{TERnnk>d;)3leuS}?Z4lcvU?#T^&k6{C74_fXiJ0a7Q$-XAwGc@&-9UJ~n{qkd
z2^bjyk+~CL<yZ7cCNxy2|8Z0l80=jtsoNNUdoiFev7sZXWwK(&yM-N-(nv1VsHuyz
z37gLEkb^+19xit;VFCVR{#u-CWV(wX|3gSKOJIb4j!-AK0~nlV_Yye$ds+^n62b!p
z7s?^!OchNQ;dmlF{c!gW;I<S-bO*Sm><K%2H~Z(jXM{OQsienZ=~T8Pli`H=oqE|G
zp-ij4>%ce055@>oi2>X`vxFsE<Lbl>d&bjH@e-x0in&u<#oA`I>S`L~!6VE;Ldi~+
z-saa&(^raR(@3;>PHlh9n`CwkbYW<?OWfn`(D6#fLb6jdBO9eMLq;-DZfL9)>vsFU
zDO;fhbGBxw7y9;8@2=Q&Sg%>J5bW2>WD9I<c&cj;xEFI2JaAa9dSr80K8mTS$XXEN
zFK1tB;?kY-_bt_1We=n9u3w}lF{$Wctue%#6sj=KrMj3AF5vnsFQ_&wYPT$iozRz)
zoQV9VjOh$Q*B*pz&tzEt1;p!`-2X|31!bHM4j_AmPa|k9Tk4xBn+sESFax*)>TG0H
z6;-#lg`BH>-D^*bvzOn!nkWnvJd#2E4}O{|R=sB7l6-x?mxQZ}4g;=rX|DqRhl2&{
zDkSg1c+RE;99DJF*KzjHP@CiFVGLSG&P8(JNlz)=wO|!{?&nBdWh>%8H}tMh9kj~J
zf9jEG1W6z236skm&gVcMe3%rPmP~I62tBYk*doNd*>WlPVIgyM3<yAu?pyVbB@GKP
z<p`M>pT=T9CtCULFoQDblJ_SNXR^;9&~*sQc`<{J;RkR#SqOW%xRKQA#KHR8YE;Jv
z!~9(Jg2?<Gp1*bHq@K_bO4Hvzog5Q(Il!vwLsI}F^u&x=o=$SsR>07m?$-qVh^WLt
z^^D+XpO3NJSblRtVAZYA3vzJyVUqBvCTDN4o?fxejO>Y(a*suzj-p?;tHtf|xbj&<
z<@Y{`Wm>JjTmjRd>lBK<<_Y<KsZg`&2&!v9s{w+4dgg<))+yU<p;+}?eIj=VZFS#p
zx-7NbADM5kEqXq&E`AUY9j|w~R9}5m9;Q;6nNTUO`xBS`r<+UP{9T!KaCz6X3BAeE
z-_-5SCoB~7)>%+198AI7t0#eTM|{MOgIHSv0kR*V(NMBXB^iYie{Uy4w<-${n$*LK
z7SvtzYMk*aDG%uFBCrUTFBjNoaAC7yX4m^R$1`}Gb`Tru^+$3#9FaGDe6Y>^_4VT$
zH3NK6km*<^TXdl;P{HTzCMmY~{4-D-L8=?Y27JmEMp-3pVcfpvEL#y$ZX-FSV`-Fh
z%0=cH)rQ}stjE+<d)s`1T<EPh7sIv}%~*stvGG&`1u~-OpGt7$i9egSs9AC@)2bZX
zB-PBSO2l4Du?A$w7?g5)4QWWz`2A4X#Zj!r1vwns^{rhqSuBj__?`iD1-fcU85VSk
zDN|fjkAwxrYBb;#U#LdlIeK7szDtP7y;O&;wyz6obX-{?<vIv{K5kcPz83m1V@#s1
z;*~!vWjS-2!(raw8(>*mUG}rTAzoSNpxwan>5po;=3K${PsqK@F6*I)fZQqJi1Fgy
zQEzk2cp2Zaeua%S`?76XvQKaO^sotO4fA5*iPkOaQ<~3sdm)GhdH8$HuLv6YVQFTO
z;e?v}2wJP*jGF!bEo1(3o|`FCJB1LDsA^-deA&s7h#r?947bY*V?7FxqwOQE%y`&0
zA7+P_?Hb4V5{zs{f~?-uZh(lUk1qPV_3S!dyKWioY27eL`aG=sp8u$x|1nI51s#TE
za?{z6sVs$)ZgTvNQsOP@J-4!p2Dh03Lw7A*6*-PL9)1=p{0a_h$dPyoQ~SdA=6bVv
z9r+6uEppm1I-}*5b*jkL&o0dUl^0GWFwy*5PCHW0C0<p*dTH1B*9j4LgrsRqUwYM3
ztwvil{csW_L`;ya8;bu%f8?<wj^~3Tdc-93-{F&M3%#;w{#l3Sm#4c;^Hp4pddo=b
zfO7wqCq(EV#x#XZD09p?o0adm>@B<6=P3EaP0rz3aOy5byMEyf(C3N=aPpJY=|LHS
zehMUl{Uw|v^v~3Clt48SffZ<!-o%aL;s~VE66H7&9X_d>VVpe6-Aly}QK2UT)|h<m
zANk$r>EOr^B7MnKw3BJazz*iXpDyXN-<oBW(x9LNKaS~K`)}03i1EvfWwn4kZ;mLR
zP`7u!L}w|&s9x2dSV^7ox`4jty3`-fCGj>jR@yMv|DyDFsZg%a)+j40??pOtv?Jx6
zBcNrX&@tJ3&L`P;`2$2)v&F)@y)=sSdKjzj$-TW|=0p$OFl8glD+eJSGf+@?{?u~T
zOT}K-qw41#UZ8=;zpYAd`tB-U>ZJrmzZ<P;HseWi-4MBu1HwcbF_852Yw&wM5B|1#
zdxfd~c5Zsz<Zub!@YC9w&X!)YbyR457G`~CD4vp}kOu+!TFsWY^}n(VI%u-epTZmC
znl%uLgwq-+8|IPidcN#lc#;r@s+9%6VF?Eskl3D0oM1*^sVecdse5Y5#zfC!qpPcD
z)I;BxnMTdi@hfk+P`;9dPoVsRC2Pb3+B&*S(ZuJn>_8JW=gUW;LO8ah&yP7JRVRL=
z%>G0^rhP#DF!D<N&F0)q(V~1|!6xSCtyZ39kd0!?1CzzdTGjB$G$cjSgg5d!PGKQ@
zk1wfwHrKUn{dj($x9{@iFS4iuF)I((Sq&CJPY!lGUN)ig5|s_{t)$z&5nZ{(Yl8q<
zkG*$oOJ+3@U;OQH<&uDEGo|!X6hwL^RrjWsO{3w@ZB<1X`>}0>j5YnTb%nqQ#ciT0
z(^HJkkf6zWP4wct_rU*)nGrQo<WhtG)Q{F_xII?Emk5g?`+v=6`Yp^q^`nuu?ECBY
z`7SY9n<W3!KElJ`VSxAF<7Q(B0`lbSJZspB1eKr}#6d=o;GRWA_gwllXw!#oZLp`+
z)Z;fpQt_}UvGnD?CPUf)su89bj_qlDksj+65AW+Pf7~Ct(fFzA9=PQ%X#2K1v;-Pl
zw+T~Hc4;Jh&r9y>Ki5-4rPkex-Y6jccqNNMT)TD}S24umU?(a@A&Sij-9oa!01awe
z8ajw4+w9$IkXmu8D9Ml(@Eji<n~>1Vz5wf0{?AtAj~~(n_9weSWL-tf3=!Ap{sFfz
z_UzvD$`v{-aOpw%(kua0)J-3gE44#iJJHUfCyZ2Fc9L9A>_;jDYOLOb%g*P2l1|%n
zUQuScZlE@h7vUfTmj^I6pzyjtPzJsRU=rVb&6IYBwdp##Io|yg#nJ5LQON76KGaZF
zXR|0xx0Dcz#Ff80uR!QfXW#Z0zmXLmVRYfFuoD2u#3hzrhV5&H0Xe5q1@p=%{A1>q
zv5XskvVlt#LK0H$qo5R|LMU}6!|ux5+fI*+3dcmcVf_js<;{%ya2!S|I3(<t?5iCN
zbw;Uo&Du@3YfsYt;~4%F7Vmi8$-3CGA2XWXLKA`&3q&ZwcmKUi<!-$)Vh7RFYR132
z%7oO#|3YgXJ{Z(x6D+8djw1Ch&Gp=S3UFH{*O97!vqM5KbjZq#51$6>UrqrALO0}o
zhJ`h{6A>C=TyRhSzRT&t(iV&Khe-_H;xK1f!PZ)3*6e=F^m&OF?er?(`AsaQ>VwVF
z#ski=fO`ZWaN~6WUQjuh-g>-}4Vr_mdJ!hsMDT5<{x(#;AOng`h~;f4RBG3qJA~8Q
z*zij92gvyeP>qgt#i~ME^^U+cqeFStH=K$Hbh{Q;a@1nGpJdV@^beBEN!=#Nk{6ey
z`Nn<qDfar->OS$x-LS@?N(RaTpJ6Ipm*}wQ)k`u7-S}x3TB1tiY(_L)L^bAn=^EIn
z*achyk6J{sd#1~dnX2t-za`m$#0@yc%?RQfPa4#C4Lg=O{FZe?SsiTJOY5~_1(s~z
z8qkjNn&ui{x#j9jI^CXC2R=oA^n#h-ZN7VVpy_j=F2*_<W==K+go~;TsWzX-CIk)j
zW?AQgeFoc&vuo@Y2TrVRd7iS^au{f^{_jSGH0{ic<i7#E3D(Z)PS&pKF4peqZq}X}
znWvb4DR76jru71?{%)kBa3HV1V(PMT{o`(WEcvBeAsD~;khd(^ZYV~k>ryUx<dV6O
zC9$7_^uN)O^xg1(ad1asjUmXSTH485qKy97dYpACXz+t=u$KF$y^5g3n%Mhi8s3X?
zqmL`;Qa!DQyi}gozje}MKalQLxP9TMDMO=(aezWgK5gFj*u9NE{IqsO+;KR=W+%Q-
zyR-)g$f9DpNqmyiE6hO>1y>ynvsb%ZO5UtaxdbngV!NSLTBUQ@^q`G<E;c!Y$2J($
zcM#LR=*T}ox>Ny?aA^8{eh6y-H2S6b;~39IqbEUgT-T8TnPrph5S^y2l!K+n8s8pO
zqI6zg5hv+7!?C3pqcy=A0xcvh*V7PIa%=c602=#@bE-NRHv=#pE<Phh%6&0Dx7$Tr
zMjJYrg1c;I^nO5(nDS&UdatH>hlLZ}z*nw0%6tU@FIqDd?cpRkrdjlCe=%gUQ{HgK
zKzEDJHZ2KfjR<K0`Hl=^%B~qmT!8_HibYr0w37}s(;yn~q;n1ly7#vrE?(Won6FtI
zFOfh5P-$<Ive$#fR9+L5C0zC*W6%LC44FIu!ZX;MAP}vK^l25BbrSSd^qU6Ak?^w@
z43YR)%4bqBj$D)Zi(Cg4%UP!L?CbUHq-f~Kd+9AV%$al;SRjkMJkb$uOqR=mKTXG_
z=)%G+{8aL<4$Hg?*;0@aI41*Dm?}D(U(FZjUdQs0OBf%0+SI?D<SYmQ$Oa9IMI}u$
zU8G<n6-f|8H@lFc{(IOI@27_pX&HbAakeMgCwNIKUp?66(rHL&R}b#P;DUv26{%;2
zbS{<GpxL@y?1YnSJkk1CBGDh*!Q`ay-BMEAk&Y{-L<kaNe5)#bzI)$|A`}*;hwE8*
zt~K}LSWTJVDiuRZb%_|o$RkSgPO+vFyKE4#<Tu8P^w~0G)s}KDsoj1n17bh&{3-4%
ztNJynvCXA54!iKPP;>6r*6Qjpr2^?+WJ(z8Ru(`s0_~+b$i3`w?X|nPg*w#;S2^18
zU~`%k%yK_hO}TaLpLTuH>dFPPwC9CnNnifJ^?4eh>;FHu@)&Mv^8cw^mXW_v06z~G
zx2QVqKm?W0OUi$h&p*fvFLZ80Dr-V=2(hiD*#!kEh;e2f8PDAN?K^4CBBCF=F)M|}
z5taTQ6Io;Iqu=*mI6VGMEGD{e?Kg9~jrII4?3RhL(kIJ5HVlOJW|zs1J>J4;5t(0f
zy_Oxc@%viyWwfWYKW6Z7iC$XWQSnPQRX&+5R)X6N2BCj|#K?=H4`jP_<pgawHuubo
zC&0<Xj}VLF3xR$*8Hm8&9(FG*=E)#-5|uv$NDkcO*xph2+WM70qK6OmOY?`YI{BOR
zZn`(mlzUj>WX6`y!)rRBIACti-j}j9mx~4guieh-?cuIT+oCr_1Xr+?J)vf(ygB@V
z{Q;geh{VWi!$G^1h;I|>=0WM={4$nv67?P)_!Ax+%roCNM~NggW|`Pq;!a*or>YJ|
zzctmJ$~W<2wMs>?;LWi5tOZ;~v?md!>$KA-qq{(rQo#WO$0r-7w<II~Pt^itGT!~B
z76G~=^!&lQOvUcm@Jc-3=Ju5g!5(rOCxKGi)kDU#$caNx(Mx#~^UeE?40T%K6N;7<
z(p*mRE)P6nsNMYvp`e`#5$}mc+8i?zg=U8`A_fG`C@4s7C#m*8kw~OMtQqL?yXF;1
zzfcT$LN3>njE1wRvDS*r5e!}X($05iIba=dMf#(&aS-I<MpV00VQV73|0)SjUmkpO
z24~lKV}F{NNr?YEQ|Rb}0?uhb*oc)6fb#OB;E<o)TKBaFpOYKmpDeZ&YL6t9GiU{9
z5+I7shGoAsX*(vX)6Ti3e=^%NiF;WNzQj1#w)-$hy*{2C?KGCO884g1@|PrFUye1^
zJ49ml%8vDq_h-^Nc|nn^iFPfr>_9;U;|&qtbzDuRIZm!H%HhX-=2G*?%%a&si5XoF
z>yqwszPD^s^FQj(HQ4mse+*;YqClBPiPPpp6Sy4=(2P=vpS=QvG{&8LT4bo51&=!*
zE7i3n7V8%}s_s?NNtq>#WfVu24JhX6mK4jwT<M3%w-`^7YO){yw=_vTg6i`Yrtoi+
zR|KC{L-=3EfV=x^LjtEsg|S@%@qb-&gaM>~r15Ft=~smPJe+DK@s`c!C3)c!wr2rB
zrft3|#$Ll?d`J#1rq6y@)Al^aB8H%K$M^EqR9L`$w%pqxG_i04i+>{^fx~l;b+xDP
zHX>jYxH6?`np(MOj9O^8lOB9ICLaQ^GG4J%#)>ry`P(A5?Z|#nM5=)!%Q4N#$ZdHx
zpP`<;TZ4IJc?xnopS<uo{%jq4wa-j@*)d2F+NIvNmb7u~w!2r(f`=>GSwM!g0U&|v
zF*F#!K<NY|cax(TSR)Jwce(9~PKqp&w#$1)Sbszn$jlK~px&_|SUDi0`su?m`H^M;
z)gK*}5BiZn-XBnih=5?uj*f=orYxN?4MGRqlQm5R`*(5#5hl`Ug6Wo%Fmxq$;kzdM
zuh?iqU6T(x#3f-sc(Pcdv0DPB1fAghV#TT+<Dqri-#b?9x)wkL1SAfU9C%ovG-zl7
zWKX?z#>_WwN*LGn1fwc!o-m&ueY*CyY*uy3PS)g!Ej$u!Q|b9Pbvks6S1C}iLTyqE
zFtXD<q^@dD53Li@3@{a6cv6pr2aG5V^w)NBgXR6wFAE{ir`bH<$(h;Rc-EPM@$J|t
z4P@M2KD2jN36Ec~R(GfxD(KU3F9#F&5A|5t!q2jXo=*NbYMIcM;W=J5Fz5%GS04_c
z=X+It`p`eJDQa`FUCLHQykTbw`EAal67y=t*-!V?P*j-EmAAcF#MZ}^cOqTIvr<>J
zrdVH%#dj(3Ct_5KdN&M?NO%f2$EVPm&^IYMCa5zrXwAYI>)ExsTwJmcFt<&82Vj=X
zchRG}e|QrCPFzb^a73AfW74$jNakr})4dg%aETuxS)I9ZB<0rYrB8aC=6FqT*ypHD
z{F8=kAx08So`0o3%YV}Fd)#z6kgKGjW-MQ6-|Sr*>YA(27L!kAMz4L?ntqRx@zt^g
zmnDvl0T?KSB5<PclUAp=lj?4rBJu&SdT&)UX5)&bcUsI%l(Q4<ta4`ht$WFzW@S4R
z)dUL@ai6~qJO!N_ul^fSFFzl^P+<0)cRP<_QiRBB>XUKOfHn6F)<#2wbpLFRH#Y=5
zlW3@}Gaq8iu#{tfyt7hC{j0C|cW&eJu#IPKauxufgi{~w;cM==Bd<!|@Ud4gF}FK|
zA<W+=SZE{=EU?G^9M>A=Y;cV5E{8Rz4V<^qA;yAEVSr|6|F!@?unp~5IB(bfwzT07
zzeUoaX|0KqU<fxdoYe*&+$z&UYIMADtsuwD6GeJZ{{zrudCL2JyO*`k3BeLJx4Q)Z
z|H^$<1Ql?zK$T<auMgOamMg@0Z8F|`HZ;=t;!e5PyaB41QKX%j$ib(X^{SW#VMAD@
ze!6m6V`2Al3BTTA0e~x?<c_N)*>eEGxv!q!nEA0Wo8{?zsc*TlxuPPgPha{Westlo
z<X?7tVv(b>2c4y%<C7WD3nk9Ku^6N^F|APaY_i5$q>4?zY^F8F-?c~sGV<WpESP;N
z8pUUp*0Is$DKi%Ztdw5yPc2#^@M|5rekR&Gvbk#fIhq}@6LKee{0Ne70pXn=`x$+a
z9uW%=rKPe(|7V*7PXBz1d1J&YviP9_e&4l+#lx=$Fvp1LM}OF37CA(p2{5z-c{)QZ
zhP;k1OJ!eXfXj*|4gOpKTs=6S&PFyf$GBiF+Bv9bj#b#q8!CUc{lds*l&lmckydZu
zp3?~s>y+R_nc!Mpza-N;p9r~pwP?{%cXc!Jp<8;<70O1T8X104Qq1@1&pjsW!!gNc
zAuwAsQD7$g`)7+JZ#|jrEg8p65-~mTOh7pu<?rf(tL)B6=-ChiMa@0V+GNSiyHGCo
z=2yUgRu)0^zujBlzp?M!Gt=eo4JBM^lB*>Dw(sN5ltR}gT$Cb8i#DGJ{cCchX$S?C
zRAW*#G`{pp&J|pK9v){AZ9o_Rjhq>rz?bWB_bURRaR6ISa4tyo{OC)U=5@|NBQJO4
z=a|IncY6c8)wX3uzyTB|Dt<4Om)o}Qz*KIY95B=jo17*!V0sdJ2Ql1z&bF&LJ@hGp
zk5sij$jjUJ3FiO&Mr@m_%PjQ;3h(8K^$&h_Lf|kIy19OibfZXd``t+kOF1LVTVxeE
zLaQ@MAp!t45VGOE>0=JpWa97R<L@83@X`I625Ra#i`;!eiGQH<?wQ1qT06hP<>i<A
z$^z}F7v~2tcr_C@@LIvH!<T(JKT@h^WP3|zkQnY^lzZP1=kNd^Obpp0%^&!^4xhyq
z>qG__M01xLd=-Yn0YizjtE4=Bh(?<Z0`B2+z^uCHgDrqmG-Kd3RioYgq})VPe}6JR
z5itR>Dp(b0PN;e~7a)&Q+yoM9G%K?Q2j^v-w;Ff@eMP%j+cL%i-1%Z*Bg9L=wrj^E
zgM`urHcLkJ@k|CGwpnfRn@Wc}{SagI?*88QR*vJSDTu^z$rZ=t!R}LXb%4X*+KytM
z5J#|}{<9tQauar@A-6X?2u*{RoY=}uxANOgPfRM3NLY3EO*^#~^SNeWQ{7dCXtlx>
zPpmHb<3X20Q;0yol`B8$nFSf2cWHx~_Wn~TmMFm=rgO1(e0Goo`FWH%9&i0sCnoKQ
zwcn#Ay`<2)6l=~<xs{|%I5jT|S9$mb)84ph$?sV~u~+E}*7g-j?>5hv2%$KJx6hh>
z-`*;fubJ!0)fe-Ti6T!qDQ8~QYuqKEG72os-my7gw|ALBku+2@HY+ik=wiA$1+29Z
zNk{R?W@CQ(;gg>@CTOfz(*BvAk2&Z+8-7SeKg<veB3Bw#9a4{P<XLox&@ZzeRX^M*
z#28Sg1Lu6S+|5|8H*U<Giig=Uk=r?TqdLbRp19lUYp#+l)1rF&!Ch=Nv9ptvSXc1i
zh)4Z&d94KA|0Zgw@0~o5LM7EIHqQI8$9I`tgz79w*ml`L)`cEg)w-8w;pT^BJy5V(
zO@j3P5CS9g()Pq0s~Z)bCkA;i^~<sUsQ+L|0M$Jp7zxwZBW^!m0kZ%j@ICjt*soi+
z&`<#q#%rJld22Owl=7eLWe4t$ydPU!NtNS;u54FZ<=WP(ohr-Jt5sWD<(NOK6*xR~
z+Kh!nl85Rm*^?0Xqc=@Q{xTrGHR{1|-)CDT-{uII@}C@A;R?w5`C*iT5@{!P>(dH-
zI#lzgGn*=W8c~)>n`Ug;IgoyOPI)>sj8GTuM&TaCJ1+G*VbQ%2AEA`dl@knXg<W${
zb6&|l#8?sR7)sA{r4%N_iV0IpFt6jFJ0q1bmq%6u*`N^mO-w4668s1b<EYEU6rveE
zexzU|;RiLQu=&02nH+x>bvayrOMk;96CV*1X6q~bRPY&V!oRZ;p{NPp@`ikP@Y6dY
zXT1^1W?_Gclx4s-t2cw38=PHTtLrMxLu*aGl@SnbHo31VaTlOa+eX?;w;X;W+DBz0
znzxNMTFSHy`?jCX-Ry%1*(^Vsu%e}A<=3kF(vI5X+7?;Yi1Lt<?L8RnJ=C%2QQiB!
zyGBPI-t2F_ez6d)&o@2RG3NX{(}0lX*$^WlX-y7-{n_8RR1Ka*c1nIC1T)^EkEo?P
zid@LeHRUA?kwAiq5>jBh5B%K`O4V?=ooI_<_WHF&y`Z#j;lH;0N!?NY(P(omin-L!
zhF|3+W2Q@ef`)q46WSaP816Z8Gw)VcIMtbDaIoxzOo{T}x3scSu0#|?gzx+2+#UG<
z?m&tL82osz=hPBd5xC<cJ|MRiuby1-R!*ApCguF<E&m`Qwo>WgnI(CBeJOK!dn<K$
z!4vO%^!HDmQu}_qY<7Fh&i;P3^WNw;ZRQd)z1ID^c<Ko%4~p{S`NK~;a+l}asXJ$9
z@y^|=d>5Sox%1;$$TZoyi~O{m+d<c~U@?(vLG!$kemB{ILd5Cch7W#eN+-$LUlm@n
zm2*D!Q_)PB7F~kXL4rW{vKVSaq#pN}Tj-UKGzjJ3fPMgU<YPVnx;bo%;_)NkC1~y-
z$8Q>MlDpU`uyNd95`V_mZ1gEO_JfD-b%j3}1-vjsL}Ql}=LHYjWRqp#<_aUeQ2S8G
z+j#$N4^Q_0(%3hg5qGuj*v(6MpGG1s=ahWWj=5AN9=XGMG(oGNp+bu1I_IW<Aqv=|
z46nFy2#ibFQ@k+7<>I;c!$6VvgQN0y?@dpscKcq5>d5(D<gJ;~B3#<ZM6z9%(Xk=d
zqXW-7BECQE=Cv+021ep4PnzwM1iVvzkqF_wZvQPT-;gVqe@W=|UWMf7p3}}8wQ@6Z
zYBMhBakcKd&G3sp)~V#|Ftu+vm%7Fy5iaqqIO2^Enzqj01Z{dWnJ6nKV4c8SrdN{>
zPS|NSD|^V?*GMOg@#d*?>@?JWw$KW#Tkih{5YR30{}#^+X!!>J70s{NazV6G|FyH;
zQ8NJS|CfmVf#kntahm^z-D8KyeC7HWm-B+S*4M@(WJeK>|AV==jH<g^)_hs8fCa&W
zy99T4SOgE25Zv8@yIX?02Z!J;!QEYgySuwvhrI9JefK?g-*L|A9;5ps-x%v(bJkNe
z>-iO<=-v5~UWWF0<I|6P@3SPqJN4zJ*8Hj=@s2sS+H^0aNvFQZwVD}UE8_>RX0Ol+
zgv%~$AkjntiU&G2<?SU^0P|6=+9M?YlQy<+M3z1sO4!(sn@AFFS7gG&Utdl$MxT?n
z^0u;w`R{4t&q{%?dM~~QHoYsJ$>$rh%=+}b;e=nfVHC<I#|2wW*J<a(e`ya1-_2sg
z^aV=X>6yp6^K+{`!-`k6CcmYv$LbnH4%yi16|K<YzG!h5yrz+LSnAr#Os>3|L@anC
zm$xDZ7pGx|xR)4l*B|iMcSBZ7b?bHZHl7>CfjF)zab_Ja`KU~Q0F5LaDMVUEn5aMR
zYsc2-yvB2zbR7r9QFkkb=BSoJ2ZeJCb*^B;Q1*Dky6{g&Mh`J78-(FgxE(}bHUDkQ
z#~!xAmC&Xtfp?>^hN0C4bH&204nwvJzr+t|uM?-e4yCTCA2{ge{yzrXQgRQOIJm^P
zlwu$4J^GltE4rDlIf-wR5ya9r1fs1d+~2)CACdKQKat%X-$cBd`EhvewDKsEn7K|q
zu$?bovYoHxaqr6cWz1EM`M~yCb*uff69*L%g}i;VBM=z@Bq*F+I~Zu>5_jV@CD4;S
z{d8Tja78Ke-5{tzO*V-OE`I-w`X)mw{e4lz&1O0)GpclOd`g|CAg3%HmS7YgZTbM?
zL7F6>%ZIk<sUCd}Za$tET8S@~&(5;{I}~Tm*?e-eQ@bX0Ifod$Ia9W=z-#_~m}yeE
zyNPA0C@$wuGORS0KZbmR^;|Se%?_6%c}kvTvcFM#vzPtibRu;w*sVlpv1n@qr#J!>
zR<GuuT#;j1>?~=(Nbv{@z$6}?(Ea`6N`F~3^-nLQ`yKZA4eo6<uRS!i`ai#Fyob4x
zW8`Za;FD4;j-fb?eEc8tcyi1?ngGERf+fh@ucPzd1UYh6a$O_R__h|mO15f7N`8J^
z38Ii~iR8;Xeb&4yM=E}EaCsAP;^hy5fg!L(-w|%^zB56_u`Ui#Ves<$t;}l?azlv}
z2-r$pulDV{_Z6x1^6w2+n@ZNX++r?M8kBhC)W|J*=o50uFr}VIF1nXp!e_72spB4`
z<IbBYLM$RA^(H)i#2#>vbk>ZO(EYfVgghj~&W%U%l1Or5am5b}aXX-<`xnfHostEJ
zMKZBa3huy``_OEfd%Vm_aBu9VGUyN)^(IqQ&&RjBxDp<OjmiQ?^5e5cSl2AhM~i_>
z;Q*}_xaNr)VbcJC=i3dm3Do7J%YMrA*+<H1o)a@+aECMPR~rt!-fIHrT)AW;ZjXKY
zLDSE9s@wDp23p6{0_PjkzzU6P5zqJ1<?dh7aKUXzoo7eUu-d^_W6F9P051xyvh1dZ
zH`I-SN*^rXv5G7rvM)VvbGdHce;{-&7-uEAh>=UHK7Fa&NmQv3BzFm+PvrE#9e|E2
z;k%i!8nA5m64ZZ~w*^P^t?yu^^|)TU&rHiLo_R@Pe|c6*OYz~%a;-yDP`A=aq-)v}
z2PcB{)t2OQQiaYZGpJ9Xl7PG<aE<dIOB>-)c#r8Z)FMm%dhdN=@%<Ms1xFmg-!_Wh
zvC#6jjba=KjPbg_VRsN(wL6(OWpd(_wQMGP;<)<J1dWZgl8AiJ_NwI;UOL76LakNi
zuo2G&Uk1IwtTc-)Uv8c*u%N7?S6f8dBxMz(>6#Y!<0IW}wn*uwB3xVt8-~@7je7DU
zbs%DCB0nhw-3{8~Bv>wRo&B15B*PYD!A1`<_Hfz$4#@1#A@0u-%Pc=<@A_It_8)*C
zmo(rN$TG>Y6^ZB{Gc+RSQs34LO_s43V-!SMj6vmgh^W+Mq~%kFz?xv+uUS<1y3(Vc
z!qYw^6s`U$RK)9#xk>P=O1)JcNzq)WvIqf-E3y6@hv{1UND{z(cTk4A*NIFP4kmr?
z>g2Lwvr?xEm3~dY(-r<+;$W>aK<eT8Xd{`;a`S-*2z6pV04BQ~BJyUQ^&C0mj>nzj
z)cDA({M_Apj?hZi9o`iAej#0V%H+FraX2<bXrX6W&bA+?{LVU_sjXzT%_^R$`&l*H
zxtzSh!~5t-z8AF|eb;UMXT4L{&jTBNn|N-bwiqhzLoMyT!FEP3mXh~3qZe4)wqTVN
zJ4Qj!oK-tb<J_3apzlQrqG5)I-FANEq{GNb{JmogDJh{tkMnm7ytnG4SuOgnRDsU|
z!L=>LbN>HgTq_~^d)}jAR*SXrt2q^!jMhIc;gW(wE*LIME()$c7xCrMw#xeV4}j>;
z&V9+7b1ohBFS7&>mi?#^Znl#bOQz$owcg%0C!K%jGMv-Qo%#VmR)s6U(gT+j!nuZN
z#e}>~M9GtuY2qDgS_k?aG$Wy*FD{pz%70#=n8Q%<L+>0_>gp^b-mv-l(!CJ7^S&Dj
zzhrQ+;rkaf3HE!-<t7~4yYnp+ON=_gJz9ode1p{>%k|AMRZoqWRI_;$5uZ0gbsH$(
zc#wQx>rk9ccz>Es<WBE-0~`)d$K#63&XGaz(ZV45MpQtQ5-~1m5JT_{Ar~>_(}={c
zYMm~W)1lMZwSd>*``BYXj-`G}s7FdBS5+klz=Z)2#PF?EI^nq%LZ~Ao0mPje7#PG@
zi2$NeEUYP13R5e4KHI`FL$0*0kcY;>s5IEKeN#COV-A}i*_rannYr}#7OImL#y8G@
zyT$H(^YVT1zL8TOSFNv$0mER=SGCf8jwLY+WhOKMy#DmV@6A@k-A@ArSalqQ(f9t7
zqi6mu?HdQkK$vA5bRBYKB*E3smdkZ_2fom6=sy_`LSJC%FnWDDSTvm0rsuoKRp5L0
zFyNxca>gc2QO%^v*0BlbwA)MRiLz|jamp<+OwpjZ>!6edN29B|tJ@~bS;raDeQ*63
zmyoyHRGR+iX4wVHgejLhYCF;#Mf;+$<JZH2(8a+}H94So)O}GHSLE5TVzh%bs{II8
zqPaA5O*FxRd=VYcg8VrST2E7ja{5TPCeEW*U~+)H&#F`LkGJbZpfc-_`|rp?IConJ
zc*RTLe>MWN-v;%1;qyOV`U!GqeN`X-$nD&LK+qau<z)C$!Mi_T{BsYyL2*y{(ta*b
zVxPFx|JvywJ4lMx{}FIj<~E~>f}z<)PkJ^MGlRoR@%|4>W4KuVhoBrq@t1nGeN+k)
z$%yYpPHjI!?wxLD)(P6Zd&s0R+9oDgAG$-Z_;vV5Z>*13kk`yc(|GenDs0CGxuLuv
zblSE=<ZyQ96jR)JB-3Q(x>r`TWz+bmHJZ<0ollmVY0%GopkQV7ARj03v1h9+9{k*p
zJGOX~Qrxaj5-fO~f?z#|pa3YA0sJ3Pk)OUY(7phZ*V1(sMpA9JAEAMKJaWAvo~AyK
zT=#2)m8d8Pai5Y$2O_UL*PHgUFEzKxm$1?!k?bNQiV|V7`(yd#t=5qW*pakgQ4uR>
z)(L-2F|$Jffzt%N1|SgE8Mr&&S7?kr9|nnVoEK*v%TW;F$%!bV4TYVBADm$Uce^Z$
zzM>xFU-Scux)jHP`gcIHRFFqe2M@s$=WAGe)x1jTM=Binn_dEPRwy-9>e>C|E#{A{
z1OfJ9N6UJ%PaWb-4Eu!mxc5=IhvP*wo=%nY7gM&BbZ6C2XA__7z4EW^HSs1WiW(aq
zfX~*m%6Y&R8cLa836{fC3me5TG-vjfg$YEd_iqu&p)A^<Grk+1Pv(IVT)c8L*>&?c
zVlTb2w~e=lelIpa*GgUA7Sr^?6o0``waI^;bk60rU94ztAF8jXx2|RmRW)Mv!u-cU
z<gt6-O#4r-`zb?Z)?em!zY~Y^iT%EcPUfzP*nKPVyTb?UQR)q2n7-vsCxex!$*LRc
zz(XEqshY!P1}P^EMP-4D=K4#r-j-^T)u({f{)US1;xB5YA$at`q2m-IkouhykkD4`
z5aT9$iJYvZAv^dXg7QYT&K<R1kNX=@o((0J?n(~$c_Y7n%oPGqoVnMcc6mRn8_VgF
z`uSacqmEgNzs*&X^n7r0^!CwOKb(_+xwprpTtSMq66dJK-8MT!?-(ZJwiOX|hN>f`
z0%^B;df2co0NqaXel$7nMVrH-oB~lmqOskuztF#l3dE<nU3XHplLL8zA^0J=Krv+2
z#!YZqD@|(+v&e14^fTRA5I`<e1Ogrf7)0E6WSnVHLSNhs+u(`znkR)D82BiTwuwRg
ze^X4pp7ybeS;f+Hq5^|#kYP#`k^qp9MMzn!Kp=uC?$hilBp195;C}*4@ciRi0+_}#
zGxwk%8;}H0Pw_81oZ00w)?76jk==FcILX}y`y9^jvKDl65G7poCt;f6MNA;I-o1Z&
z`bhr%gks=rU1<1MOkxV8vv+#y<mb#aHl+Hic%*6_gksc$ssJDdMj>61*2YW%xl{t9
zQlWIc9=m7BUGe*^LLc&Ca{<X3Rw~7w@rF<f<DyEAqu>OpixSme-{8`8{r=?hvpZP{
z36{h+f+<MEx9{!Vi;RAQf<=l|DpAXklAdVTA05Zaj1Ke8P*7syAYzI4NlO#-dgibB
ziD@m*n&XhnKvbe;eDNetHX;?#M#;jV(X~}7agt05Wtp7*k!}43HIwu+#8FBag+$`m
z^LwpL)6(J>Lp8tF(dnqDsB{Ai6sF(N*{fZmne;e&6ALgDN;D92jAb^IN&I|`54G1H
z@fS`6oB!BEc4p0U2D7x8f){yFR+RU8C7%Alav+*s*<c_T%#DSeSt@llbn|GLWc=&Y
zt{*Dp#`H|Xtiw+7pFoi}mX{@8@^=f`@*jdC)??&hIXiegS!L2cS!W40Z_LD{S_`i6
z?(m+M#$td^m)cNxBeR7PA)#AZTB?~{$aNsV7!Ndlu8E`dm>%yKw3fQ(@<I?UkEozV
zs^TCYD#_(sfk;4TAn<qgSzczW@cT6hM5%+;*&+({*gXO<*x}MXTTACBl&wTEK|=lt
zUvle4{&Z^@;5XPT{t4uT?~M%`^@}*ABfdjP1l&Y*yu57m6%P@IMFcw5#=#-ZM^=`_
zAeFHSO5g+UFS{|DJ-(Oxs>FKjB$*|$D@w}*HGNJgb}rjOHiIyQZ)ADr)|(>3-T;))
z4;Q^otTn6>Dw4!Ws-Ztj=v7eIU?$P?KaRW71HeA<jP$<?6e>+Hgide&qsL$$4RJYx
z1#iCOPm1vxnTH*E^(vREFT-kbQfdqDPWIxfOEzbJ7%tRRY*6-vs<LLQ4o=U6#M5bV
zDGnh@pCZr>^}kFO#H@#$^%P-RsvsjtoWO&)+G~p+f5JVzqX!SuKEE4Af1(Pbeat5%
zx&ETEn+oAm<J4(^XF1aZ1WN(I8%l_^rfGV~{*HLrDk7po=3X(;(b4;BupagGME9&a
z9gdEBcDwSKt`Az1>Mp{$0eo+<3kDy>Nn?lt5qjnDJ$ca2(oQhNg3Y}(4~rW|<H+6C
zTpzR}VO^f4C}hmHhC9A#-9VYB?MKgOmv|&SQvFR3%c|NG|I4HzJC{c(7)}sQ^3#jf
ztb@?8Lzft(+cm{%v7DE@L>#?iir07RW=e>~b{YDt5jz}1BKr0&V6aXU%kXTQmL|-!
z<(a|wl|wLmW~g;e%-H?*AH<K!@Yks%hDRHfA=+Bs&J&7#N?8FsAs>=Q=HuZU-DUeu
zBJozU88hA6tP_ZSw)^G18vEOgwa%Plo3w;Zw7eLlhc4|+UeAfVDXO2|tGvB<j>P@m
zEI?@EkrbQFZ(?AuB9~B`0uiSPi~x(T58?P=mLHp-lBgLz{X0YCmk4y8XifO^J_^z1
z%6{MrfF_$!@fry2>FF6t#re@INe2%B)LG%X&Eb<bDhUlkC?ZOG<UNkE>bZ05frf9Z
z{Qfv#(8C1b7z%wc3_SD=7PS(23>6NZL0GfVaU)k@Eh4o-Zvmbcm<M>uNhdobP)d(|
z9&FCOiGDkdp_8$c@|DG*m)n%hC2!JZfs|d$wn&HmkCT(ty5Lnz{wnx1UwA-frWcW?
zESmBzFibzTLj{To%u8B8?u@QmMG2CcM*DqR<U)g@Z*Hbqp1&B1%5{p)(|n`=68od{
zR}^%hd;tWHCwpt*0fgYyA)DMTwyS~d-Z5U<bjX6Bg4+vp=t1MttYS!Cc_ofv6gkZX
z`(r9ZT#i`zoI!4KE27x4!}&r7^#aXWt@lx+-B@$;vzEv6IU%t>3+hH<k$a~ujQw9}
zPZCftxPaJ}x5U`vKW5cyyN5#tR<}j7ojiomyR-s*`&PyI6;89<$8+LIrUCkd-r~c>
z5RhUK(r_@*p*pK^kWf`~A4#G!D}rR5<H^C1IQN^{7l+^r+xSHkrRlxUDnWN`ie-1w
zWWAU!%1>Q4IenOQeChbn!~_xklH5B#J6?5!S9;6+3VHM6e}E+33iru9&CJZ{AFT#q
zRj9S5`No?g#X}#I4QzJ%tg{?7-KKeEP`nMh<+J>hLAQ*ZLSr@hY*kX~Vs)SD@_hzh
zF20*ZmE%AsDZ#-obwZ_Ey%5gp^r-9PehEG77C$wTEyCb98I?&TS6|_~@$%Yk=gL(x
z1Fpx3v!<AZ3$U01p)d+rq?4@FGk$j>QQiom-Kn{B-bX}^jDugn;6BZCV#8sr!%vkD
zSDc-Tl2{f=^42Hmm{ZoAb1SBh_l@LQiMC!capPuyQO0VNIXnV7v#*a-0wgqHYpgC7
z8<Z_BGe}2{Nf{QDGNN&s0MW&e;pn{pRL-CVMT~=ee3Xi{D6yEhp|x7c+cR}-uZ}&w
zNwiR^-{7OXtR~aEU$?o<HvVpKK3UsdAxHFRQW`IS)SPWRN;v)^XH~8E%VO=*-t7a4
zDdJJvRRG+$**#$aw`+_7QH3lGl2#%D%m9)~@hi3L()zoS_E{AKb@$o(%hYjnh)wVo
z2n?ndat^kDqStoyCdNT%8u#(p!Nm@Qy$$>vBS^V-zZ{nxWTogZx)Js}YZqr3U9_Du
zKx?*N`v4H$y}z;?NRL8E#}4A_AnY}E^{u3_`25qX+U)$GjJ>PIJtspx$0F8A?7$Y|
zp50<vqqz8k_UQ8%rD)ZqBfDo<sakVSfdYxA!&-oxUP>y@UREh!61O=o!WZ2e?Bo4|
z1++O|99YLjPj^(b({GMbR?TwDNakXK>m3>xMI*>Y{A)L>YzGtQ08Rh@2BymOc+uZm
z4gQX)=GvRPwFyYW>w%(vHoI=cMEHbIGGqO70xu=^kwwnu4D7(sC(2Z;T4*1d5&^~n
zJGs{X%MlViNtFL<2#Er)#4`luW`UJ>gyoU}H9~WP!x3pJuLBCK2+ko)qffXUazP1X
z0!G@t%9<|}K#$Y5S%I)&9t0B)K%k3a33LMwdqV;({B!Ql_;-kQt<S~{Q+|JuzFjVE
zxHxvG9eiHT6pJ{E1*cVUw-P$7N)@A#6zYwh@VClX$~M;4k-0L-eRHhO5Fd67p!CFw
z)oV>lsfn4qecl}&;kAR;)rTRfQE{=I@h?<l#%1J`6F7QQpi;_NA%Pk}X5OppRgh(2
z=j6~ZFgWeKb|z40@@EmE^){!YL{>mxZhP1`G|<qTSFu1zu@HbBTgh;s)=_wvSA$U`
zv;V6ggw1MB{(PHulFH?wEmtpM{@MX3j)9eUzE<bz-++p~TgLcH{Nx}D3<dnEj?D)7
zH3_H9+b)KbrCd_iRQ+hDIQEQ!UJx|j4`}9NVOcdu66XmUY9y3=On%NqUQhn|Qhl_4
zVRCy3#%W!(WeH2h`i4FDJZ`axb9RcTxNj78yJ*No*TkF{arYEmH;nutDq*tWr`7*?
zW&(x~uVtqqh0+Cr2ymk{l?i<lnNyAc0$)QMG@Bmgy=sdc3gi^Z@j5%lsP}2U%2;sP
zf@A~il&!>ua9R$M^Ep8iTlXTb-WAPkQq&+?`tf%;whPz$(L-6{-KKEU(w=r=<34+P
zuU57Y5X@J{)Y}<JJ=B!s$Q&q*JNO8(>XhTn(n}#}%X{m*_%+VbsE}c3C<m5|zf!dn
z)9+q^KW($H1wY=q-qxkR0p8YoiZf`wiCXb`(Zpm>d)GReN;|Py1(Vi12?uM8g|&xh
zA(}UmnnO;}1cSIAQc_ZKxLmF6-t@G2%PgnbXrv!WP3&9}{*-6}lZM+4b}xp6;)8xq
zCMG*>!8j|mLoCepK6em=(!?SQPQvsRC!-dGj5y+T%%kd!6|5Bn!Bo+I4TS)B52*_R
z4K4B%3Kb-26pBGBP&wi8Wh!@O7rDdPsxdv|Ff3mdi?{my!_>oz%#<%wmKqSV3pK;)
zNOOwiOAKlNpu%4r5C8!PJ%L%Y)hkkS+2t8=9~cmVn$M44@DK=K)>R-AQ^qG<L%#3b
zELw^2nFREco9z~mPnbwukdZpGH7?JOe($`IYt6n>kWvUCgEp-`o^n2wLHhPsxT9%e
zYQ~XBtwaz0801<xionpMQW%Eo@7me^-qxr~>eREz=PWtkj>~Ro$8rbjce6dt#OM-<
z<&s1j;-I4`KOOd19}=CpkwNq$y(uYSh2(VWCY3Qb?KXTR)Db%IjQ<yfRYaTeiqm^f
zGEF28fu%Z`jGPMG%bjMh2d>>WFC$^D9kVTCSTugbhl}v8W_SJgKMcfO7eYbLCN9sW
zH0w%|F+Bkg%_g|m|3rU%8$K?kCuMaEhG{iX(+G&H7=P(>;!moH(t%GDv()I+>8VpT
z&ypd^r8LS|ZlPlc1j6Z-L*Lp>(QqR!7uA?2urD}bx3$Um`taIr$>!TTSfi)^#CnIa
z0Oiy{r2B<L-V_xHznkW<&jzl=PR>s}T*mnWI5NXZya;pH;5-{{ywc^f=~z`o@i}ND
zmh4CMaY9bvfjsrrY2zPY#}{@LX+0bRr<?0AWcU_(WlR6ym3oL2$@Kp$Eg(EUD!_26
zfxWL*q^b@Emzc@??Yow0oHlqBi?=2^#61u&&Rg%6u58Kn?6UkCD4qLIP_QX8W+dmc
zFElJrEAY3c67&bOp`hp}S-l|$@!5~SHRCxJvdSg$ssph<g#=Zk98BO34-aE|GK@;p
z#xpGWHI8yzuW-vOXcYw176)>RxzivLXo{JHe4anZwEu<Xs1aR7AYPsPu9FdY88D_p
zi;dYLhvO;;mBeSl8d+TNX+ebVDC&E0&L<8UIRtNFzU?4t;#-{zodLE8+spI&1%(yO
zRvCUbmvO5dqE0(=w4fVz<J)ciBvYHA+4VA!mm|2dvgzmIfs?NgzVpLPZw1XlO=Min
zyk|!oWc&9!Ib&`<OS;$Ox7Ym=@Mp`t3sq<=kUJ+rIGOm6=NyUUoJ9Y|fr&ogx1?iz
z1A@1|@JcLN;vRduVu*pVdEmMhm)5)0I4TWjPY}x!rVmwv5HmS6YI0<jC)k*N5C2@B
zd_VhJ!ga<kM}P0)+(VoAzD>rM>fc640!Azv?fqotm8e|$2xSdC9hlOo4}yCjR63X_
z3yVzT6oXfOm|>1e=RIMhT;%^|+{G>k<aIm*gEpV`Cjo6j{D>$(jmA<6JH{8VYO_N?
z@luP_V<rjc8&=aG1XTMh2Qe|1!w6B)sro=Zle7hWSD&s45fYJ8g8HlgaRlY<7#lP&
z3~w?9^;Gazxt3;u_KcR=$ZTE>oUbltBqp}Cma9r}CJxmWlk$hll#*BJCW?yliBr`e
zo!M<!E{*c(-R(7hJs}!JK!i(QmFa{5CjL}inA6)dYwO)5aURFRz#|_cJu9m+3jWg2
z!FXC)my2yb3t=zsq-GZLb>c(;JIoq%3MMo?M?{o&XbA6c*`Va&jM{Y4b>Lz2))8o(
zdy`A7L-Vs5C<FUID0~4GxRhA&!b}j2sG{?ZUt91$KjUKSa3=zQ5&Az6P^qN;#U~$2
zr3Lw)Fv^2y@yoyvwPsC1O_hj$W!#ZT1nhROm$#26BE00vJ#>y}PWo~Yf}OXwY&tqP
z>r>_@+Dr6n)H4Vun@10_Rluxn671L+5k87^+WwsDc<g81+!1b~pEgqE&Z$k5oK~pl
zXopQoNJZ-#Z^<{2YI;}U90#v;5}zOZu(x%WTLJC=me@YMd86f>p`?E!p6&!j*cxfK
zDwt5*y+<{!-*Zs~5J4o3I-;f1ClQa>N_}fS^tMke%Ncr8s5JV&(P18FWAqZGG{1<*
zCn6_|x<s?zeISiGk+eMnfW#sUX#|i7q9G2OAmpXyP^u7f)xmA#;$<92*g?}~ga81(
z6L4nhd90+*5XZ9>Zyz=e;%dBUDe_%<P1IquZgn5tYJrfQo%`p$aBf0YK>#>~-+^kN
zW^@>>q11tCd7~1I4E)_tF(=J|R4&*Av{4mYZ-^d5NNp&di@m&yyO1}8y)h@~zs^^i
z1%7UAk#EdRot??|p8z&yKYu$KKdenHSj5qW3yG=uT$67BnS-;-EFSETp2-FUk3uY6
zxg4?-f8-|C=$0P+R*Q0tjaubd<vP#ahuwYQ`Y6X{qi4L_hU|97>fL2qZ-1HN(Y(sl
zbXVbw?0_;Aqi6_5cVol)ftylI$F$B~WgLse{*cY;QxFVj*$igc7x4Lu7e8Xdilmsx
zr37afAxc+gF9ao);>d)tncJ@L+018qjbc#+^Wp|Z)rQa+w97coo}e%b7jqo+H@>4j
z`zPnZz=R6_Uma&Q)TN8>owbReafz{KH%pW<v^#y_5iU!W!AVdkO;$L$>M*1B5W^W5
z&SomRR2D;@uNY8!krBmGY*go2`r_#qS}P3)wMg8q4>4>?it<<tlew;UoA++JaCXv8
zmc2fg!gMO$E;-lRlf#Sq5UmHEctD&s20NbwI0-2eb+#+<VFH-Bj_lMulRcifU1n!F
z>>f8`<PM&@^J%C?-PF&%21Lzh7kd1Y0sG3PG#2}JG<i6X83&K&adJywKOgBMJtAzo
zYJ}*^Lg0?OOnhoxgyQyw!TL|plLNgqG&2caQu4T$tE23$-&GI|@`Z1J>N3^mxM7~}
zr^cG9JNE5hgf?)%L{NRX-gG{gcO~K76K}5W{17(Abs7$Se9@fbSpLK&ZLXLfCdIrj
z#Sx_z+|lF0RKNtMKN=s~he3YZ<N02ZtcIs%^7Xp|bcKRmp@P|`3<Zd|6Gx`08#4l@
zkhB0K6uKPpN2TKVTFa%<@WC-*5+UFAqf!9MVx5g<!Fxt+BwtiDZ?(i!fuj(`q&yzk
zTCW!Y{E`LIBBhcj`f?0wCqW^da#2<qJ_wnPhOlIVi;*Q;hFkw}B#nmd63F6)it|=c
zb$~PVB_!4E?68n*dMgz&k^U5J1jchr9@<yh2trFAnDq~*R|;Z&j*2vr5v8d)u3PZ(
z)wV7LZ+eBV^*MqF_)yatG2$RmzKOL)(v%Ly8f9>?L3K9_$C7I1QNO}XqP7`a!KZUR
zWNCRuqngCcu2<0>0XDXo;&KImqC2(g>Kw;Z9+-}?hIxlCQUr?&Gc^hGztAT0KMB()
zm(nRsE9pTy)N>-xP!8k#)6I<#QVj5|T>$zwKdNkKdD<PG=0813A$F0}B_e=KX@xs@
z2Kxfj)-jiqDM$(ry0FD@@V1CM2_4@i{6aEwu!0Azr{O5w(1}kVxl=v&>#W*@c4y6U
zg@{KGsoEc{coEltmO}|SWuM!WqQYdlEkr{S?sj;~Oep2zo#}x8Z7+8QyYoN1+;3n!
zZ`T6w=YD!AU@FYS?oSahJ7f%It{Q$RYkQ!i2p;@oeT(7GOhD>}yv!l>z{caQ?jFgp
zt5&4}a(-9Dp@nf?h@6)0d9S+EiaiB`0ckk8&-D-R{S@cl;Cq1&o>p72x%edd14%4-
zhukoIA^IJQDr?y5Dj$S}t*sqOeK<Eaa?YqtB~#p+sKf-)Fd2x#>d6M1I@eOjSrTs_
z$6{g6&(>!ZTuKU?9I6K%6q=#}T!zm@RO$Ylg-yfXXMrt(pyypU&Eh=er&hgfJNw5$
zmv?q6-zl^71K!m55sobNeP*jPKcvn|SZ3pQysbWK!DwX;i*Gsm_#(axU{?6)Wj?S{
zxlO_w>Afwj<|)>Z-YhEwg!(DF_)%f`%AoM%3ARk$C5$h+7Gaf@n2LjAWL28-G1Imi
z4;3|0dTn;l3+($zTLpWM1On;^cGc)sDPN<}@eK!T`*$5kT{&w}2JL#JBX6QbqV(Rv
z{XY7m*|m60H-nkyuPSS07=qag-aAq}M{NY=!XIf-;MJkD&GGE_m+``bAjx@-gLo28
zLG!*-2Q$L#j%tg|O`i#Piw)G3=4;F;Ff0Znpp(bX5Awsf)atbMLl?dy0FBIVKI?ej
z$c7;0TlnfN0bm-WW8SCcQoWvpOrsH3aHRfSAz}nF{*{ol-vk657W3N7C%08TS>^f<
z7=}#BNQKt2kKMtTF_6&keWNbt632`2(X7U@ciYKj<jSRs>z?b`_<YvV*T>xNF18th
z*F>@bkY+GxyESlxcsJ(@4>R$WJx}gCyhjGRUrSkdDicB@_Gn`^U|09^)9yT1mmDQ#
z<d0sGA$?U+jCVGFu%Uc+XKOnnxsB1&Tc;=N?NJfo3$NPcH#r5)d?GU#S^pRF^udj4
zMVR-Ew4DfVc=0`zj;ozFcmn<sfMU($3%DmR(RdEHVd%7fvlE1xVd!6JTL?9V6XO1O
zMj2<f*%!4l$oOJvn!!j<@L+|{V}Dstj;Q{X{M0tvISrw6g$%#xsF_-Qt<{jsqv5cL
z<Ul6y<ksTg7>|bj!dX|ZKD6KDVB~;BFVqVAzYWWuvg!G+!SXE)-g|P!Y>Cg=Az0H{
zOJi^5opj>6aQSn^4?+4i$lP4g{p#1YJ#sViN85bhKRaLYm$<w6@lo{%FPwD*wGwT{
zi?Nw;<s?waRQdvg+KJD_`(l|+dy_mOPAqM6m_-G1kgYf2m07Zl|CT?{eNCy(Ph9Vq
zM}-<MXf)!-+Z7&)j^=u{q2yBiAL5Mj)i^F^pN?HAMaTy4DYGx?yaNUumoA!YANuXl
zPVT~2E=?0T-yN!2{QfF(ZxikZp7P2*e}pC@R&m%$oaJ%JxjzOKx&G8O<Zmjqn6E+<
z<T^0i=%E*z_n&%pEWUISI%<Vg2e4uCd1JhgI79Ijo6M97?=OWPJ!GiP(kF9RB!uBP
zt~E$a7cWsAaGG~l6l`#^^@`9=7b9|SACVPR<dhrESYp5Ja3ltLL-xX1z2~*Yg88N!
zHHPLBl%C{chsD@G_XdFGw*!21CggG#f#!!7D)zfd=E$>^Hqh6U$DR6_V5`)fV_vW>
zk9Y>>TxC67`g4{vFu`%6MrzM9Bm+l<rWf+PVQ+yB8TNMuKOVU#NCHaQ*G`-a>^`7f
znaw0?BL`V>6K;9M#JjEhL#R}BLOP~QFkXhz>2IYOD9Z!^nd8$opf-Wx4tkzFsR{Hk
zB4(i((2HECo5NcLoAor^as9xdZwx02E0QmA^m*BAv3xa1tg{BKNJ?8Fy)s^fZ1UB?
zuG5)NKOP70boCdAM6~^%3!{2?OIV}<KDIo-L_W`RjXRvxv5vr5pdnZy8F24fhfIpy
zM@M{ne^Az%m-G<A*g|(Y%=uC|nP0o1CO(6j*D<XJdCE%!AY0-!vz-kMGI$C<s6;zS
zm`ESI*HMLBVF;PQ4ZM+>(f+*h-RLPCuhJy}fQ`==4oZ8D$T(|c_}Z3iXtGt0G|yuG
zxXF5kAoDV!dnEIIu~FvSjm!Qv&Gg<eM_5pYrM4&A@+HD+v+wd6@Mow++-N{ARizer
zPU)K9;UlBq-;f;T^92Xt{>_rd(!?n3a#_!rxS_;^SAVj8$CQZYyKs_l^6-MmJOnkX
zhxBoWaBYSLR{0NYN{kpTBy?H5tkm{QYUf9;RCpQDt8t_5qbIp8=c)uUgsV+2DF1lX
zwbM*#+}0iYyhhQ>&J;QBz$^r4Nz5JXb2tlL$~-XVb*0>_5hPV5+1Az4m)NvF!l0nz
zrp}a$kw>Y88)&=_L~Luz-tsJHxv|l*yoTNC`*ia&rLDfQH4F}y1hHHO1qKn!b)8GP
z>8bLr3MwK~C@?Aj)#jXvREw0bXN>@oWGO^ME&tw1H_nS++TAyNFn$To@T9a8o*18h
z-BanL!FeIA*>-i-W=qF}bMgfU<jr8OLo5-ds)DlTvPa;6iKyT|<zmnZPd)X%e=Klz
zzU#v^fqjI6>W0ebNIB3uK=aEns{Wv-*c7RPL0jyLab~hMlxo~%IZH!5;Z>n>qe-lU
zbdfDm#(lm(!D#+gS~<zbmw>XL@rdG2x@f16{Vkm65kcHOUoM9^S0pYtQnTGd#`LBP
zeC_dBr2M6|={mPdB9Vk)0~J#T<g4@?DoU3mKTIA`4f8n4yIk`1y=`ipfbglG0J?{7
zY1NMmr0*NZ_G}Q|M4=+PnY^|07xRlq$Cd@<+p;MS{(`B%7rwI^WZoK$fwNLz12Q-2
z$vB^*<N9)ikZkmh!hfUeH!RYjg;W*m_&C))Y_aJz|BIHM2)h50ZEJJ*vOq%{3MHQ&
z()pc&PFvbC2vMQ>w)S^n`bepV<9<D7Jbg>TcxEwjLf85<4Yrt<sc<6Px3R%|tiDY_
zO5p!UWY=AX8PjQtokZW0&Fpohc;|74k=P6r(8Sb^Hx2PMpfQ>EB~J7?NHI)MOzO6N
zGs^cR?Cl$uyEKnLs{}v8DpSF3fjpWU^+D#1#ac!U4^d11t`^QE2$wYY7-~Dl7Hk&t
zQMUgg2H(=%+cA3f--7VjI;mL6c~J}{6Xk0@ct%!J2!;dB*Z+lsKVWX1HBfym&A@Y9
zsBrCNn8wf)4Znld-NPwVyp;7@7ru_18%EVyYPkHqbE6dqKFw75;<4MEhgDYb5@(Yl
zMnEDoN$}R8w*1yiX)dg97fp`u)y2&h+$c7muObcnUpHgS^pP#KAJqJkI)3*qhgcor
zw;&kcZWxT<@R0X7;a^4mDM$s2Owd~E*@?;R^&Cz562fPT9jbU}0oUS*rBqn1g&5>5
zBZS@t;Dh(?Ugy$dgMiY258(S&L4pqpy%L8fgly<_`+kqPGKlNa-uGH3J+ju+I_v9q
zs_S-eNQMqC#Cw!O(C!y705XMwm^fn?%%`yUiP`1@E0}5Z>#7(QB;*8wr9z<zpuk*R
z%$Yon2q*|OGMJ4&ubKNoN{z^*!zIHc9(?oN6ap$W??XFM47pchP;}X_^B+p-FK2H;
zlt&YIkO|$c$6by6^F<uO?45jgyZq+6YZ6SidZ`=LtehnMHwBBslKWxHbR~I5@}`Ns
z2*kI0ntC|a(S*<Cjq{^B9!9_az!>P)K;|LD6N0^<Afo?vzYr_vfo1YC1n^BOWk?TA
z<ZvL22pv%?Cth}$J-y}Xv%boespYxcd+7GUMakaEB2K(T_#1xFypR4-9k}!b&l^0G
z)GC2hM^P$&s6LhuwO$w%<>YGkNC|gMBlvzw{p>-b-m|Lev0eVtF%jJZGGEn{!y@$K
zsbD03!25DVCt)QW#X4Y=?oLS)DJzq%wEt*AkR3yRU1Ea4<s=wK;O<9VC@&)t*~ox5
z^N!)WjtMzmIqclj+V$XpMzr{&&2F$=9@8hp-ZQIsL#mna%Ce10inqoZ?oIkH^xWS}
zs!pU}QHLE5(vn$>2JX1>eDGi?YNK9k)hTL~-A0w`ZB?I7r<Ao9bo6NbrYv1yzG1!&
zyk*Vq-GBTNlXJ}f_h@v03E4xiM^DSdeAnN=rr&jUbMy-Q*Z=sGt<rCmBjkw>wb}iL
z6!T*<??Cu>zMu{-QSi=?jVTd~HM8z0>lp)?hW!dM+QaOiS$0SK@W;h`?RDPDAK&?a
z+#chgPoO$e)j=dK(!8s=($3o;(JXB0<1?87@n<U_-m~*oIPbwc(z%;~sz+<K`0syP
zjOo<H==rvH<RWrGE?PcPX6CCN6w}9=8yo704T-{&=6iaM2PlWt)rvsGk0)<IR7@z?
z2%YWf<%o4;oK}lpd%Uk9qikOY+rgpV_ygOY^r49B2$1wUA8av9zd{iPx;>gzm@0k@
z#-O8hyCy_G=RoudE%`bj&fmPr<(V-<3b|TXePFO7fd82<AVZ9ars<9KYQ#o3E{aNo
z#qU!If<bw{wO3n<kir~c<d`P^rW{=|Xlo)B{~^&6W*A(sY!_#g;T)kVUsa@=oIzXz
zcV3$g!L&-@q86d}$|l6Unt}3dvb3~Zh-c8G!41P_$K7AXV)1<WtZEOBN_rBa;ru9)
ztB>}*$=rua#+T6-ZlcR!jSvSZB1n3W&y^4~)0En@vela&bJ@mwlrwsTX{z>+3<+77
z&Dv;eF(8=5Z;`;Puf(8IArBKq&{(W-wZBzM#E0U63X`u1gK&G*%8Zk{l?Bd1f6E!T
zH~jn1TrZOLy<j3tvUSlA6W^j3W{ckI2c5VUqX;f`m;a!P<&@JJ<P+OJF7L_Qfmq2)
zKJ9EJqFJx5v-PWk*x#HREbTKWrsy61mM}r>!!mpHgDaw*D!g+IG_qG!wd*F&C%Y6Q
z8b~>TGs^JYyk`ic;9{iD-T>mu52hIX3X*As0_?aVUV03$Tx|Cn_q&D?9#l9W4d~99
zjtP(*@uNk%ryHrI(5Zh@JT7Mz@EJ}<W=P<)5~z9`JM&SCkf6Z0DS$w(rL6Tn_d^gG
zxz~rHliPpg$m^yGh%87P(q5}-DH;io3;uDS6mJFyXlHLass1~Zd@HRP0+of2jk$HG
zb#b}0N8=wm3II~RJ86Me!L}J?4>y)L21V@5W49<Bnf#^w^x5OCLbe$1;Cs7GXA0b?
zmSU?1W2O*=EE3hnwyL3+X*h2-HfWa)(zI&z^5g9_fsK&>#iLci^p)o}+CS3&drzIr
zsjAV-t@w+lv?XbvU)q1i-Yk|niqf=0owhOM=80VYwsd@@A)Jhn)A7TD)^PV&yW$+d
z@0;Hx<yZZ{N&wsoWC|`pXOw6InO22s*f}$Jee8W2MFxPx0w#0;=r#cfwI9)7El}ZW
zlp&Jo9z4MPL}D1z-p2RUD5DVxfoix7n1j=|U{?INXj}FAzO-qzn-2?&&-jo*kx`Q|
zLToI1{#*MoZ<9ylilxP$z=QC8lcf@*5LpmGb%G^F;>IGmkHa~VnIzb|hvS)YC($IC
zPV_0gp{6!SXH@=j-^*`Xt9kx-0++?cDXelix5i3+yGLpP;qvlOcv7#NB7rgfgMJMh
zRS0NRNT?VJnS1z`0dyLbzRHX!=asydsHZ1!&5uQ+h#y%QS3WRV%jD|jaG@@1innz)
z9^8hEdu>A7SVN;=TPvyA3sO7q0LmY}(bP`Y9(VPfd|{Bv1LQH+-xl!=@j{txLw_ly
zNz*VTylSBQT0UTqs77#)yf|xjXa$gLMDcUHX`ie*AkLa6C0;t#VNX08*wKU?&Qo?l
zT8w6%fY5?D($28@;(D{<m0ol^qwS?1S98?OsU#hPqxCL+n5Ue<bec89LjMnKNR9h%
zr_^hl8n1l$ckTUN=C+EA&49m1UMw;T!xi1k@$e{A%GpznNI#S9sdb&GQj)t`U5p2G
z@2*vlPF4c24mx-$EE6Be*0a<2V`AKt#*?-ObyE%pC*%OBSU3efXPSiiNpxp~+y{XO
z4;EzziFN8Q^%ht&73$qMN>@-iiYs2bxHcldR)N!r6<E)Ew;OHJW_&Ekh~<mnXYiUx
z+xZk5<hKY9Tv*G1sMS(U*m77`kT_h#`=b*iWH&ywUBvVE&iZor1-8Al8`dKBB92D_
z`4nE;OARjRuC4kzTB;R#CC)DCT9&2K8`nMyNr-sDNbR|+d~6UT);V~>ojixV{$!^k
zh7H0!rjS{H%;b6tNPY~)@8TcO`^dT_>y$a5>?Ic$bXY%z>SQd~Q>PT;v~dWjb3(&-
z`qH<_4U5wZL$rIt5#OR+Lgf?ZQ*|!-9)bzLPeKgDGi-g`-*dk*%Tbd>_==@zx6l&r
zqN`}D;prn9K%#^W4ro<Vzp#yy%c({DAXF6*5mV!H#<pZOe104roVE(xA8&o(e4z(N
z#z*)X1k3%dHYw5oKH8`sZCEGwg=3>6KSmk`2+PXK`dNz<GvN!WnoX8&oH+2@T!&}6
zI#Vi)(PkK>Mf4lYqlrZN!Mp5kLf|lsXuBfT6Q|y%$4xgsW?QNg70fRRhdVDyqJBKi
zpCK@vJ<7Is;zq8nY8^O$VZUNK{1ihuHJY-kWbr1x)Wcm*<)3hJZiB9ZBI%#d{^qXp
zO#xA+Wn^Fiidu4jEyrqR!-zIs_VPueDPfprz`WaPWDF-R`<`-Tof+dmN1WmQ1Nc)A
z+P?Zo%E~+f5eHvfCuhq>?RrmD?p+9;%NN7)zwE7oB^Kr(Ef(fq)c(YAZ~{|ozkq>u
z<=@LYF1a7H`jP)YBnBiHS^sAs=l)ff3iTuZwYlS;Z1N#G;*Ww7aZU&iPR~#`0(Z~l
zO{^YH#IMg&f4O;{uh~-_c)SGiA2Z30XZZN#$X#9UC|ukg$nS1bBzYY6HO8q|E+q5h
zv?b0jF64OZwn<B|rhYOmUp(~37{@e4O%EQ}qn%T_IHyS4I^9U}tR1I1ueObSF&>4E
zl`At(Lti};x<}8*B5@^R8#mnGrJR@mntrNy6db0$9+dk*^&&^}5mo<ftO=`v3o#uG
z5fq<NUkuPsmrueCV2O(UO(_Gc58)&BBo6^t5;;TlK=pnW`eOe}&=kQWWs<vH-58t`
zYTC-W{nXJH!YAme433QYnsJj^d>#?(i4a_AjeU537uf%~^pZ%R^1{mwA@855`z6@0
ziMHBuX}-arUtTbd`g2dEbYf+ElcUotceUZn#0QyXG%<q^PT-()e(+K`4}M3#0UJe3
z`%aF<3hQ{)f@#6n;%9T*y219hwQ<P6Fr-vaRIm(Rj!;0%c+Cw?T!0H=2C>B1JF9q`
z)mcr`fd0J3&hP?%*Vt<ORa^Im-8}$E*^3OC`KhTI6wZ0_Bc(+LWHoy5YYxkxrxL7M
zvz7EgKPjTh>;cgR*GAU$W{E{1?z5VB&vjl?ydONDT!rJ&eBM3%8n5TXc+S9=j^x*L
z-LA2uVmzH{q4NiEKWAijr1y&0as3OigMKcYjyyGp{8!5Uz{vZLe61Gqx_QZ0%M+g#
zpB10?-gEVJ;lx{%N0}F=-TSM?Ie#QP(-8iw7GloBDC&WP6D+8w=#?WZQRvW_$NrV`
z?I+P3Ljkmr<;JJSpFdiJ{Sj)LG2M9=UJjo0Lk%-1dx&qp%lhqRwQ;rQiF1dV3Qn(M
z?e4vFV7uZI==+$2Vm1dL^pCln>I7(gh4r{zp%eUFRPT*xSA;s{B(Z;q&;OYD!>~IT
zgMRI8XC>(|?+u@QxyQ=SfsYnA*TG)BAFSc^T0&E7BsDU49I=sxy(hR$$2O{FYcJ6j
zU??YnKO$({PPr&!-|Eev3&``_6~-B1<z0-seG_`(!)?m--QiOyXUvL+Fgq!Q8igA)
zB9Lf)I7yRmxFVJ2aZQTgKa9G7+}x}$N2gU6;FS@e+}MHbJ6Uan5Z{x&h}KxjShD7;
zlBu3kQ4-Z(kSrv!Uty|$(kN1*|1#0C!Rz_iMf(2Z=;w!?R{|_g#VY}JgyZ`cyoI5f
z<ZZ*(&tp3m@OQo%YBBnk#n8blQY6BC|NnI6RzUlT!K^;sO_V$98rj{A6_Mn~9#Owj
ztJk}FOv8lMhi$6?1PsPc9O7|i?BZAZ6ElsfA=7TbstG?wX^{PiMgmd1so*>@#oTqk
zw>Z~wjATh$ipwt;4>Qv>?m{Vg6;)8CGuN6+W!yqJL(Rsxt-~soDw?*2vrgH9p}$5X
z?W9rInLfpSMUH*ywag8qXnfg~si+Yo!Psw*x}p$}uN|f~U7V9s<4K8P7}@Ez$<~eI
zUalL^s9H-h@6x)=2*UC+{BpHB_Qm4i_-Ulz{E7`x%toJyn<re5a@mu*bKzo6cM%6i
zV8d5h3oZM1x+S_-hxn1z06UK}Six%A`dqlApQBD1$IP;vn9JI{AN2bm*d6I=sv1u(
zX(a!F%)9-8%xnC!g%QDN=JdB?<0D5bs-bA&Cr4@nxPOe$->?rv==*Nj{g$rQL*?cZ
zo~y5iVJKa&6(yg&Z_PuZcXW+E$btI5V4Us=#mRb)ij2o04KuPp6aJG^a<t$JDvn)T
z6;7>2Qn(7;RlpFI+YYzhj90G0F{|RhO%h!VKShwtO^|%)!Z(BkvD(VOeM-1;H=XZl
zJdY%%KDE0xObo{shhd?&1Om2t_!2A`PVgo%ig>=#^11u+9Ss^tjY$sSmj?@Su9t@x
zkPpIL9wzZB89K~G#gLF<-=yCM?xHJ`F+298@;Yt)$`md;`L?|GkXa>sI<2I~)1e+C
zaJTt3`6XLvN7DjiwlMPyUHX&$z}pP3z(u@lS4$Yh7^ZM_MOiDZf7XqV`3UVglJP@r
zyMKRIOLau-*AFf$QOPvtIbsjti;>an5g~{a2?K~tIcEAq(p*d&=0~(LOn~Zkn&?7f
z%2V9T5|#?zoca2b-H?vTgZ%r+8uJxXF~6E6k2qH~xeX@NurvZH*|)kRf|KsfZvM?q
zsrEuWI;{(AFXaV*@tP2)>}gBUYm>&O1%dpSb+rXF%dXE)@uvi>Q_THYeame>!;kp~
z4d!yMbO}_Ir{^@(XT@sbEQ}UpE`CPLDm#Qa=>B^?dT3=9!smg@-00WP`0EkG`cGN&
zCpH8&v02}MwntLcO~!tRE}{JDS?dYIJCR=9$k@2kYEr?P4ssauZP%`$!^SY;C@~d)
zDa*9M7`3UiBo9^SyFJF!PcrYBg%QLfBk;WU!a*?+^ILE_YVms3gOEjAOaO892L%WD
zIq?G3>z%Y2I^>_e=hYT3G;LWLg~G$ZfD0gT4CB7HN+;Ot)r7r8zS$*gzm00okU)Ux
z=0ZULVZcE3Kir@qLo$;foDr{19WCPYL!d~Ay@Z-BL!)G`3YS4%(w`=M>obuI)+$2j
zXGHZ+$aK+el9orkOCxC;VHe463T{(MK%J$5M+*O8{f+r&slC*H!fqWCdw+GLNak^?
z+l4A2B5}fS!h4LzX}&tqA{;RL31rIeers*I(&FJB(-Y?Y@>ORwRTfA3J5#1amRJ})
zyBUJnY{!FQ+%~A(U*GI!1?1+tN&Q`D)7fr08V){c(IVHr8^iE{X^$C{^+!n-i$xDb
z+s!#L?Z<Lt%66nd<-70!&bx@g7xZtOb7+*CJGRI29V1dSoC4H{%p_5H3;6hk>NbjT
zidj!Mx^rQQ{J5$$CUd;npNn;1FHExF>h=8g*$9i4+VgS>vXF~6PO=fKB6ehjM*>-u
z26A0eDWO@qo(6k*IOGyp{6GvCXU*|Ory1=zG7sS=RRU5G0rCEZm4^yfLcfE}&O&G5
zPq1;!U>%ZOV?0R55IxBEBmZ*=)c^Cc|5HQDGphgnSpAP(Y=$;NCg&3o)ZrBh-a6NZ
zbAqJLZoM+e9NcZnH*ToT+`G3eoPxjOOrL<Y@=?62w&@nIll?d<jnDf?Il&@_DGU5{
zb;=2%)<C0;m*sK_C!5z7zdTv-q6@ll@3oTF2f|Jf;Nve&mufD|XxwfL{i+r2IFvYv
z#_Ii<1cZS}>i}Z<Ui<6VzNvS)FzVYHOc1V9Ty@PZtHZa8^r37BiV-)yvypKuG!;gH
zW&o~*3#06F0SQ;%uVx-07>w}{FlB@jXf@a>$~*&vgls{XhMc6t<M1NF@5V&WmZ4xb
zvsZ9{rywx|z$iilf#;vj|K5oHMCu_&n-^pjj1e>nlbo3M>igS4`#rBWDDRq_gCZw_
z0>9sq4ti(E=a?0lP32$h6KQ*9{>Z~%P%0$OdLK`xX(^;M?|lS;Vf#JicaDf6L}3CY
zm<DbjumOlRoY#nA)V*$uq=nxk&gS^iX);O0GpbYE@_#x*lW5Yevd(;D_KFYP*P;Eo
zui6)R&%MmV=<NRF(*}+gYEN5o8>lv)8>qy{&xzV+yK=n}B|*N+2~L<a*`O7its4{<
zB#4U;O7|9c*b8)zJ|P~-)Rsk+_vB9#>@|pniW$HX)V0041MTK-g46KpJdy5)B+{|(
zo)kue&8n{A9;psia+<#V&WWZAmS6!l|JvGXCb=BhHqu)r1xZ-LtK~1hlj6qQk4ff8
zw?cQKxNDujhlG2_WZ7N!X|I)fePhMnx}&l9R40*+*MWCYQFFKkVDZ_)Kz(8t_8Rq}
zFizI<Z@G~|$E*MH8IwEo_e~dDO#F(F(6AzX4L{{d&Vg`!-@oe#v6%FhC47Bqi1wjG
zR>5>;eKC)eGKV(gR@IK|)pGq_q=2J^+9KNYi4Si)k$9GgzEK|ZyfQ_*@dAT_s9~#E
zhsMTi5GEU@#sSd(gSod1itAn5J-d;{B|(B~g1b9S2=49#4X(kpu>e7Xy99Ta0D;Ec
zgFC_9g3Cbud++nUb<UYnGxKG>LKRg!>(;fN>vtievY@?ubt4cF5jP;?R_7Q#g=K?#
zb+$M`na}Hbq)Yn1zrlPNX#ft7d#AX%yPN#5-W^5)pmxOAetf_zzdZQynQo7q`ezzD
z01*JvmA{Dd%h2oYFNocki_^P*c!00^5mdtc2smD9)(CnpWWNfPl7(cZz`~~1+qBsq
zi|}-~EXN4mT@BW!H)G~cO2GUt<=Y`6&Ol()$Rz8xkJ?!PvM|p+aWIRjxQ!6K==5Fa
zd2#H7YjUE~N3ZvMLxL1#pGcyqR4yfdhVti5^SBXz;OHt2@dRu1{zApX)O00^B_~_$
z!otDH^A`~l7m@}cU;vRj##<}z40qb@0PtT5zwH8HY-FHUF5j=0r8#tQeo8tFo6C?>
zf}=wjLuHjr)Bz%!mV^hzGqNs<YUS_a`_cAhB%nEtay4w?Q7{~AU6n9^+mdg1dWs5K
zaB#dkcB=}(Mr`#r%+)6Sul>G|>lytO%x^kOJpGJ)|HkKVEIa32k+H<{amp>_2sixs
zW}PQEnH0k67Y{YjIjbz4{mf}<?k=DcxBAwbV@YZ#t~&lSrlL3vJE3gv{T^R~QFoJm
zrPl>#wu*g)n=(T&ncXH<wUMv=0N?5yjL0!Vu?PM{^2SrkG;NjL2FcvGX5_Sw&HL@T
zfFr?4IC%Ie_Cx;G$!&$OV0HB8wp=vd`5Y~36Xq!Mh4aPpF?_-=l)9;Zc<i6*pW;ht
zYF=CP)ovID{I9v7_I27s^!5mDt86le?)#Mvzr};6N;LTIPkTxC2FzNy6G`rgoLYnt
z6<+W6HRYf7o?}JAqKPqhaw|W#px&&SAwL*+&~=1G?ZuD`3BDh&G>P9Zp0C<$G{g4z
z{i<R5JC;?CQS`S|aTbaYDS;ImIM&tH>$%A!Nkei$!vT}VcdbS0F)NQ5#0FW3Jf1GG
zenRQp{S5&d3*Y3*zWgBI53;Y3h$K>awG3cFMDCcW`1o;gh^u|MIf;f@zv=A)5KaIH
z_x_dXDUbu+@LQDWcE-brls%GPBn3DMfZnlzxQK7(Kf`U;$aD$IB01=MN&^7O!-)o?
z$BP7j`uifxOvVU4;#YP^crgEoE=P%yYUT~jz4<?jz84e2e5~z(L_v*!Zy{YbJ4z<i
z^$_pQ%84sXaXt<XZ!mbKof;-1Kp(F{9GOEm%IeCG8TBeZ&<_6xlaH|ze`zgH$}W5!
zG82O+2MzmR4wKRLVQ1-sJ51uZ!x&6g7kS19*_IDNJzVl8s9vHUWM(^Qx+&=)(ERuD
zrc+k;x78-QXWi2Av>K&76`YxBg}R)Tf$_uC{Vt%q0Zr}1szYnF>3qG@*QTwUC@C!M
z?4>N!FD~UmD@aIERG-&^CxLJu&E-ROlAn{@Z=zVO#3|H5TjN3NmO{1q6=vMP*PboW
z9yUZIB#XryPmIB%ERrQp?Xy<-*c^=~y%~&87jI?x>g2<M1dsM1dl{^l$5uxE#cS^d
zF_xq8nyR^8XEItEnc79Q{2BQw)_HC;4sjYe(Y-p*A=yBAoKswGJB=`P<(@833+6lw
zTks4Mn+&5Z3Ke$qlOX=6^`%-lu)%EZvQR_s*N;>9+$)9nr&RInT=g7E;Qz!FHQ&=t
zo_n;)`@ds~a!dVJrf7YW&nFYtX|jKYhih3akx!pYwK@mMtW<6YP0jEqqe%yh=LEwa
zvi_jF_=G?|T<_YoJxmA2vQe9;bVQ}Yf=WA|3+t3RKs{m)8N2N7%c~QovGh~9SZenj
z_v-Lkw||k-&wFDPQWqzI@SoZt;yq*C7B<XYpYN|vx02$-U5=NR4)tj1A*;=P<St}V
z0c`NdUf$kT#%I!5K-8$-ou^aYneS0u-6hRDcTV5@T8T}e$@R(xAL}=yqM&|R5C{Yc
zU0Aq#$H6Nn2k_GYs6V#P1}{ghvK3UVWAp}k+}xreQIY`;XMbwkV+I|&Xf`f-Vh5e{
z0z(`yk<dD5t!b^r;JU)rj}C3P8por_MODH08X6k-I~#9Br*Gc#ujbUk3cevu9667Y
zPEEecoBJiG?7Qw##OYF_8bDbfEjleJ#^XqbAtC<@6%Wu}$l>e7ZOk7K2k`wfhDZB#
z+8<uT7%b<9{H|=~H2~ZEW&#F|)PDjV4&ahDw9*j%yh`m))CZ(+SW(z4)cP)0i=}F`
zO_%<u&8?HGu5;B|kd9>3u8$z(_wgS};uKA(v-bXJ-aiqf(!B_U8?Ed}yH`l(qiw~r
zYq4DW@@ExtQ4WD%c?}K-r;aI1!2D`iSD26;kD6%gh@yLK)b=H4841(elY6m#&1F~y
zQ2PPEVLN4?x<y-WVcsC}RZO+(;+BxCR&1p;GJ$~Ce~(+(el@r!iDh2*br>$tXq*ib
z9mT)v`=M!-ImTWfj<FeKU3){q8x#D+6GtMeTGZ_cMs4E`%P6m<s)0ivJ%*;W`I{7S
z;hSjEn;7AVhp~f}N^1#YJ%ZX<wp}y%z@Z%KErjE|VA}#jyHT?+szO(pxP`T^Rgp8w
z<5%W7hg6>Rd;|+t()kZnCZ{nl*Jb~EI;pX*i}VuJb9~bU-H#;}9}f>4rHH)1&O4n}
z<&yKF$xWo^=<u!1xTyIfU%iz7pZ6SpodFaRx7**AsPE+0T29dg3qRdY8ZNiEr-cw#
zzBvR0&?A&$$Kyh<cqWs!U=<M3mBO`JUv9sN{g<m}9HlkM!Wq8r8Et0@6f#+#w_%sb
zkkOt)*e0|4uP=hAidQ^Icb)feFf^fuU&)u6oIg*7U<uUX2Cyo*1RyVG1pd4ddj79&
zYY9woF}=3kI?><aD}KpZeV&yfi3H%_RD-bKWdAq>d|IWX#M>eNDWENRZmfpM{5?8O
z@LpJXN79AXiy{^K&j1zHJwjo0tLhvU_VvvT>-R<QgN45h3mIxJa>@c+h7dIlo*O1k
zSuL!zDC91^`AW*ZPY>w_DbrOpYa@oDJvR(17RiS`p$`&oX&O<T59cFNm4k#`dcNAw
zA7G||E)snrD_u3cm2a7^VwPp(B{d*^E}zi{ei3iyj&GzZ_u7R0!s{>duN!;O+YLkW
zUi5b00&$Cy@~Fa4!3=#IhZr)hNF`)rv@F13NNxfky9w<Q&aht_X3KE779eu=*g8Ms
zTUNSb(I}|{KM)A$!ldBkQo}Q11S@%9jagBWNgB#PT<w-y63FoEC)|+-f4`ztc~po~
zQuasoiBkhB4h-bum&WDEY)4LH8H&=XHKnPXU5eZcl$U8Y#LqkLzr&_g_WD*9aky2k
z*CffC`gLFS#$H#@_fygfe~H5&>lJvHALvic`1Pl=&SFa;s;&M9j~VU{A_qY<A*epT
zMB#-8sP!!Ijfh#cfNsBrkjV@#`r-`8`Vm3;v@GCMG#m<ig4CTrv)xN>uth8^0=hOY
zhEtUj{*LwT!GY0S<DZcgABzw*gB6`5mdf`B&RADT(V#`Klh8Zxn4!Hp0Tb?T3QR^c
zj(d{jm6$vd3}tyEw|cyAuN;T;YeWlD{4>^nlBrE4<lcXZeb7aOI87;W&)N0(nwy$v
z+mp7R_LpJ<lYMxARM^^~d)-bTQZd3F|7s+8goP00gX(rThh>#J%R=$Mgn8Cl@vY(N
zf@^zw`~PFCsuGr;kerH39K0#pJQ-z8b%1RA%X?rx#yN-ZEL$RW2A!2)A{`>*ehA>M
zre38$-dVHWS_|3VFfFClY&a#4%1zb@{Te7kC1kAdv20%M+`k~e_KADSb<0ryvw#-v
zU%9k}{)=3Clqt*gc-ffGd2b{CRpx1cPL#=!4(Jk;Yj=_}C51szsHE9oo6g?qaCV!>
z>h|h4ImfR8_Pim0|FMT&9c*ZZxV1-N--Y00e(!!q5K2ws=!gGD+Ivrjfl8DVAa4X7
zTqSi<2`rqv8Pl~4!03%4Kh(ybehfQM!XgU_rdO|sMM+A7saT0w9b@_7aV7Nr?TTnz
z4eUCpmx`FA0D9&HYOHL=Ef>$_ZUE`<)I@J~;>E$7=<U;PSv_(SqW~STukhQlY~sd8
z77=Z^6-rJCyO=%7X{qjZ`q*~x95Cz!UkxEapWLI*z$MG$(GO`=Nr8c+^-03OSR!?(
zSQ9??7Ff7`gVlI+RDl^NSO6-KmU7Q4HFH(|R?e%W*ptNWC0>a+QxOteX?Kw8G4u&W
zW!ogX|BLjV08=x*zDTQ1oAc(+41tkOtFmIz1lIt6j`I)XhZHU=CUy0^3bUu3SPE^A
zW`Z_xjWYe;s&t*ade>{QcxDCiw}n=KI`QM(95Q$^MY60yRG1%J^b|~TC^C0@?rb_e
zR%NJ<gOVgEATmm$+=1s_Ls0ZT__FCuWyQv73+#Noin2n+EJ)!#A^nuf4EaI{)}M_w
zes@=$&7JY|S8?gLF5)q-Sck_}B#QOTv;_}XuGpKt$r&F|Sv#BhZhzw#KrVRxk|&w#
z{H*UC!+$WF?s;@q9;|hu{-IHGf2teRV?C7(lb0Ie#=j9aHX<OR2$RPv$E7?b{5!-@
zdJFNWN>2&6lxbx0zC%4Ew&e}qL}OpxzimGeSbROtPkk@G$!#neow-u$RCJbdVw%j5
z>MU8}({Dp)F;PEm(GcO?)oO(QpDS<AiSie>xoax^Z`Ni3Eq^3h_^Zg5J*4ayA(HXM
zBoQE5cFPmI50F_fS-<fmdDEpI23y)pY;f@#g7hx=TEKRZhqH*iOo$mtAQlMxm()9$
z_r(^q20j0;J>t(;*u~eYA22$RxFafkg}>zb_HtOv;wMc+(RfA+F@pyUDDlSXncZqD
zzY0b04j^KBt#FQ^zx5!f5|Yg@v`c!?>I}v9IFu_GDmJEL5o%<y^4#|J??h<lQT2zT
z7{>z*Thr&JxJ0r$=VCZvV_`sagfP#EQi+oF1yZ$zgleGahH0=vDh{qZrBZ(skOLnA
zsD1r`wg`(|m(V&z`Fqzq8D<IIqkU>K|8hDOup*`x2KFs@>3FtT0sj3NLM54kH@}C|
zK9!8&&QzJzo885t03Nad1MXQgr!-GV8=S_{6V+biH$;e-&ENL(&c>$1St?Nt3_{~X
z7GW(x*ktDH3{z3ZyiefZutcWcCLh8-i1+qO6_(=jY|ozlwl1+=XoVG?w=zAA>4sta
z7EZ`7udAmEPc4yaF-hfk87>T&;GKgcz1p9)NwGpkL^U8o^1KsgiN0262ipXKKqS2a
z>ak9flT&#StkVGMgKz*)<2wPF8(JCED#uI8&rd}B<dkS05~zA_tYk}cf8I+7^s}(f
zaRQ3qFUYGEtHoOa;PXlcn-VJN?uu->Eo1qd_9%vR>f>5&kU6E7g({0?Va?j$|G&}%
z!hcL6uxLNLsZES*d*IsatupS>jwBYGc0?@{4|wow+jkWe(vFfcP%8DRMvd*eb-VG{
z$LjyVFT!vo7@vtD6#p?&DAB(+QzqM3;oZ}td4CP3ELR$LTE=PfsbUkUFOB=<2dUQ1
zf0LXy?oK1AW2{!?43mu&5tM)CTM@U`T*=*fiKTh9QVDUEff%FWN8gC`Q`dA(sR>p@
za%V0}K24s+{3>iPCK<%DVi>e1&Y2&+q;BhdDAQ>mfN8l>unIpToGkQVKbyFX7Enp>
z^AY?1MhQ+pMXaP=jx6>(TC?hk1)i*K0^X#f&sKZ}7f@kkI@rz_J})Jf%G;LunTc>2
z{Se4i{z`JNdw)R7P<(r}7Q(bx<_i~wolm|mltlf(n9pfv^;6_EW2^y06|u*f(q4T|
zj`CMksuFuv-i_9iAfq$}=Ek1=^56Wr&3N155$k_F!a;nV0)+d)l6+?cSw&}97kz*9
zcH#92AH8|_1S+=wr>u}ysQ0)VUr%});C&@u4}m|hJT4%Kiagq%{{lkWo$=fst>NGj
zI}P48BGEmBC06vI9h4y~wbH-ILgMj#$k%Og&|zBpK@afb_W_K4{7J=KWn)i&KwghR
zGQen!Z@&QD9@5hCBkdVGL3sW<e-3xX%F~C^*>&a{Y#42{8)C{)P*Z>bOHf-a$Lkmv
zxI5;>ZuNG8qSdDN*72X908r`ekjBe9fF2=99Gr>H-UnSW=;$AQ$6f6ZgF%V^22wcq
z4@d!CRg9<nmofoIA#;6weYNL|&*|x9?C)Ly)5DYqk$lK%9p9zdcYHTXIM~xFWYiOE
z#0WfIsfM2h%;^EB<A}*jl;D#A9-xIbB1uH<J)%JU@of5cB9+HQT=M6FhROy52Vk>%
zz>KR)S1wY1=SQe|O+w>b>(xD=k;-jDHJrkcz!k0a`xB!Am-V8fu3B?S@7}ZxncAUc
z7Y?nd+F0B+7eE9@8;=Z%03JfnfoahX9Pa-|+%7_|h^-BT0L?*Z01$|St~4B>Mze>0
zlC3r;C`F)AE^DR3PZRJOb%AR%vn?9#WKA7y@<Z3#9iZPFW$3lsfzRFa;cYCHY;~7r
zZ5oF|jOlrOswa-MJ>Qydy-<QLrK;<Q9?}_XxjVXW?0wSPukP=pi(*5S=ed=vM_REL
zK4-Br=hm8)V)NsX>oAFj<R}Ej@esVr^UjdoRrz=Ntr#m0)FH$wh_=B!??qCkCAJHX
z>4VOkNO^Kdp!vIvLvOy_&%-U$-B!f>D`i(P)x~K@U+OJw<XbZh8iW06aC{beL{SuJ
zhc$_={~J5Hl8Ln1<|WtEnf~?ZGc}&r<i*=Q4#!k{?mzbSTPD5#GBo_&udpxra!nO`
zEy}QPD!s&3evCkgQP|_cd=nNRtlHmYCL6v-sBw~i!vQmD0)~2iwn$18=nE4Vj_<ZB
z4YLrM=EaH(XkEtzUY_+P$qzhlM&ix>L(k6>==?NWZ?n*30jFwew@5WMvC)Am@$rQd
z;RHYA@2BqLLN-2GDSRxsILQ4ebVYVDHaLSioGk2j?>-VW;cLdNfUNiEU6$8ERJP@c
zycR=9BsKupj5$;B6Gc-g-z!_133&3MQ`Whkp4<lrm&J^*+JVM@?qL={>f+#NOpp#l
zSfeava`mU>po><GO)wC3@hx5>rN&X9v<8C2DX*spOqHNL_5G`QT#9(yHK<Z)M-)-w
zD*u(L+s15Q0UR9CtxK)txGa@I3K?T6cRa2f;UHbqsw^*s_P&o+aT8O#GJ4xzGy5v_
zfbO>mA}+3WE7w`83yzzg3a`^qpvf0nd)9n@Ku#EyeEDyuSX6zIJXH?<f}#yaOSw1z
zk@P0#Jd>grw$DAsAq4K4>Sa0sUNRrTtg?VGom?X8I;p@?$P||!2xNq60MU@2&|~I~
z5#rV^^z;u#1^PL_c%<jb@r_R5z8W;t_vX#N=VXC8vcV#*wku7do6zgcZ#hlT#plWL
z5?%z<sRrjmM@Hl=P%Wp6-=XbIcTVXSYgC-h*T3J)=`OP#NcoLqU(|t&_1wIEVgDoa
zG}nO}0l>&dAc2sjeDTog{SDXd;<B&Uv-$(LVEYLO>*Ts7NkaRz2~2a&x&VkB#u-U4
z{;F93ENy%Seer|Y)*R@C#Uw+4Lb@%l%^t_W+VRrG;Hm-b#?||?X5qvR66W08C=iUk
zl<AX(GAEgoCEPoyrIL!g_PVzg_M7puAHC?Nyp6k$WLti<T)#hni9RxlkskFLQV{9}
zzhg3p!FLcXo>^$NxaEjLv0U^}t06rUr1YJ`DI2)Qj3dP|&WPM5nX#z001PJCzIC><
zX09lHaBHw%`<}@%$G^^9`ceGxQ_>fU<X)(&HgZP(X4PLddiH#8t5IgvaqZdcKc9#B
z;t$BM2E_Xj|J!ZCSyh)}1=fG_l)d|^x}IBBJPan;h2fRU;XJQFwRAq0%{))7`FMxn
z=0H69Y?LgO5VyrdSGHEoC-ji$IEttY=%mP-R`y}17dKFga)xO?=kaYrJ+19h0L+HN
z<YY4dW|lBq%zKH$A9)-b)63F{Pj#peo-BTPNr$i<TwK}szhzx~;rueS{hOw)ZHQju
z5y%7MwrN?p*cIrFQSxVZM!au`kTR&`VLz#FH2o?O>xiU-eLaN~=KAaZFHskWwTf&g
zk(P@+%}5G7JQqilvq$ZhVD_qp28~z}jULm%`1lt0^N#v#Veqg%K9@tZY$h*?4l))V
z5^FOE@ih|YHCl>afi$~8r2-2)EUUv8oR;6i>g$dT|L;H-WN~!2o#F%Ysyv_cra!S9
zAf+T$GilVASP(9}&Xe)YTwZzO6;4)a-vR?%EItLD4siXGPCP2?25_(sK+r8G&0FvN
zH*vV}J{}cpLqHflZ)HG)c#wG6n98g~7c6SmxKI!T!64Xz<U_9+BBCU~4c1_2{vRy4
z^KM;vzS>m4c39a@W*p|9F^*<fRhAsGR4$3ASmI%+cDbGD+!KdKguA{9U91-oJnOB;
z=`&xOAbf!>O1nuJH%V>lK^n>rd-SwOe>etrCO+#8^Vaw_yp5-6bC$?h!5lwvi5YqV
z{F*xsz29)!wTPczpduUq-)#*knHKG*tuX#Mq!Rleu!joaqUWNj{~+GB@}iwE9*{Vl
zPUKv$AN}vjiQ8}g(GV4xAj~<j4t)La?>3Y&5cyYK=Wi_9U-4%1s($H(9ZmbFeoY#=
zQr8K$3qZLx*_*E`fu#a-0w=3UlVd|i({i(2G<Glkdovo;#eZJuSQrCd#=RO-XsB>m
zJYSos=^%j21nyUtErCdYVUwwW^b^$NK6YGXtu5R(d^mr22`YNQ;dF`?>T$}a(p8&(
z;|zfY^{(4O`=Yu8X$U$k%yyA*5z%cs8h1fEd=t9u$U8=0$f}cn%Jpt|h%kiT<)G{F
z+9Qu~^(&I)GV6ST-y5IV$G|rouq679m-A>p0E}ShFeZ}!A(V3#Wf6+&x4p|gQ7)r!
z3f=HzrjRBP@0B)T80qL0`X-qcD!flhMt|CQjhWT$G??X5MzH>?qT*M%1@$Fo@ft@v
zQ<1P?Gsm5c8J%m7M#p;YVH~4nD%b+#G4#!7$&BVj5sDaFdS%pLdY3VNv|O+eI3vX)
zhnygs@IcFg7hiw4AoIH?BG2%*_{r#s<c?odEU8zH@sti$i9SE=$LtntMs@7ty{{F=
zT64%c0eOS!1GPo$y?$5J&)ZT7z8eZiw(Q{#$Bqv*{;P4yB@PcTCI%^NnyxCZLT1rn
zHb(bHg>i=}T&1e2FHqLJK{rN`kM724v$F}k2_jWw*F=SnOe3x*qSlCvM5Kx91B`)J
zf0VL-{(f@HmhiWn424keu?KuEFQEM{;rUUW$RdoPYWo#{MAh;l+>4jrtzT!ihp;ns
zGQ#F0WD)s53l>`(&S&6JaJAnDnEo($gc<B%Y`A37A3e_)UPH79mns;UYKWDhmc{jE
zb%&nlE_R4fC6m99()Uf$bW;}H7|TRI%5?vZ%5@X0@MJJ<zYi*I8K|2^d)SWhTo<}I
zTJ;R7o0)8Y#}FvAZgW0+Z;THzB7CE5xmkR<?mji3CT!R~d((aX#@8rqX7~WlSbNJ*
z|7`5au(%rh+(x>ZybE2bM`v9RM9Xvo?puzk{)*_Xz7hY&P1-PeWkF~IZ~cYD506-x
zsNeRn%?BM8gepnZxaz#h|M>eYYGN}wk8+}{*H%~fZx6cv)tiJTO$3!kuU<YgI1tnr
z75XJr{Q6tLiXZlI5><_OP^BjxoXzvkPJ#?9Rm}~*Gt&6~BzQv<ON2^_42Kak=@^yP
ze91aqXzObi>h{P7ueRr)NarF<g9F}dCYJs4Q@eNR`*t=goQwrh8&1jP^P*Ss+wnqC
zGTOkt*$M#1ZL6zMJT{mZU=WC#rT(cv;m#<2t0;2vaHS1HV!ytxSj`G9GRGj$*&k{U
z_DR(ZkP_%j$lbq{-n^-Mf|f_z=oF>{ujy>O=^IuLbE3QhuQ*nf8jvRBt3)EyQ_M+1
ze^0IO4x~XMxCn#R6~DS)6pnmYtQte2$1n3|04LXS^Gx|oWbi?+^=p1N3ISJoI(Ra~
z2p@7a-9*}9u!A}1t8*%?Sd+ZUi{CB9u-*k^wFXu~Kw&te8O)MzvSOH~yECq03AJoZ
z@U|(^D~R;7uPt|3npZ}+x~x0Q<En+@wETq$r|^p2ioVLfX^{{VAG;Nfo%pT1+Wt`)
z<BQldpnbsxrc>Xi)PcE;*TwCZ&to2F9dl6@6j<9$>Sl(IKd!R){chmxth8LXLtK>-
zI@^IEw*%5)mikpbgzPBU(0SC6;}9CWo{0(~>D3hY8d2kRas5qf=J5f+C~S3j$Km$|
zhBeOItm>kAty{8hYYDf|J)@L>{AWzKor*=ie?T>4cv&BT64w+v#&EC#mb2JG2p6V1
z6<VhOS=@B8ZiWE!U&wfou{|a9nIAC?z*Z;o=2s5F@5m%)@>qSk_#vZ>Pzcn~m*J+<
z5h-M*Nv;8nPI>fBe<}x~`_C)&Xu~W|I};kJu+t<CDq-woG~bwWl02%HOftT8cx7jz
z`-`w>)9=CZ<n6I=_+|?VqkB|KzQ9NZuT>BwG?It426q8aR>L=v^mj8Ca(Y;fpZ&Mt
zy4#yMrL8!@UO?~rSLye)e2xe9s16KyY|u^LBy1br-HGebI1uF{ui9f;%Ps?=<(bJk
zJGFVCs><f?z;c|9e{h{!Zq*Ebzb=KoKwx2E)2`PXhU6%PV6$f^lkXCc6i?6=>0LXf
zpYuR2mCL!4RdUieIFs-=?3{4YeAiHb_bnM21f(`6ccU{cV1n>^EKO=~RPwrJhBm~&
zU^<lW>p*kHb1poss?k+^lQ>HNdV%1&dwTHGb_0b~%iSm`C}L@eJZ~^0S@uv+C<WmR
zvK|17s4K|vRx`HkTV!}xvSbHH<$as<Gugx^0e8R8HPwiJ<Pq~PR$E0K%===}-`A}N
zI}x6ENfi(`2G}54!oN4PS`D)akYDobWL3)g&?~4!jYT4&Q|a;G!5c~$aiqUo6iKXJ
z%}8&f!xj6L%QV+t&f>=TmpBolF0*rwjVuU;z5b4t1?pKKhVY9^r0NI&tCug8Ew2*y
z2?EJdWH%Ee>#Opb`qGOKc}texVF5@8OFG#v6tpKPDACRP%9ccrpvFV}Xe1UU<p%@5
zu`S^K*40*~KbgJ2>wI`7hF-(gLD)eVorH(V^NJ|O{qvh{dx{AFkP}wHX#p-O!t>_v
z!Agevw@>SNx(nNdhz36KoJ>#eMSTA$ti7}9sF(1GEq|_6(dCmIP=sNm=Ch*`0ivuB
z!Rj^UJ(}6t@Bbr{Bi;KU)&R_~72-mq^+ySMu?6tU$Jv1;TYVm|F8Ie9?=g<`zU<<T
zU{QhxQB5~h5$Xe45t1~aQp0gB2S}He^Zk_7x3`$duWxnhDG;|OXuc&Uao`HD31^#k
z9q)g0QAq2HseGes#qNIzc|jxY`zEU!vROqOjw)3D6Ue_SrkUh?4m<~5JU-bd`TvSC
zXgwqSE;f2uyQ)lZF~N+P!LgO8si|7uNr7ooP7r<t91}!(=}peD?(S~jw~nE$?Bb8~
zf&U>e#&8cBXfd#t-By;D*6{XzU?Hmd4OgLYc#gl_7fXzFx~xmEB{$0Y3Zx=Mq=G+D
zs6@#fk)`YsuoBqLBe8_G=Xx}=aGr5|Eti?#o}E8xhmN^pv9A2_$J2!~a<Ks%TuHeA
zmJW4=>I$);njKeZY4A*)Tx$Iqg4s{&#l~*Qh06Jr$oNO5!iOsZdPt8yLgl(JoE;<>
z=WyOx^5;U8Hz@~7v*~31VYNdildfxjN*$r;!<RB1F6a9%TS?~KDRtz%E#4-a_1N_X
z^JvEJXVC)zimN<pa^?s}9S{}<Hf;))Qx$gmqxE;Zp5)-~CutDUQP|+9!Ym2$kh)5r
z$t~5$Q0r0|=^T$s<&omXI7T(yVsas16z<5pGp-KY>4fdP3+<BKD-KwhO-*p&0S}Hf
z9PDJC;x?^v)^C$Md__psE?AK4`YXuBspWz^RG|Hi5DgPgJ=CG-@@(?ElmqN9WT6@z
z&^QtZoW+5usbxjrkI_zgw}i_&hWbHVObgYKklPcMNOCxdn^b}$$8_d2$3e|<is>Zt
zVly)#3MS%O_Fpn+5R0NB(H?GehVu@DrtM68cJ>nCMO$Z?dn#XossheRLl>cn$`sJ>
z0lC$(P;iOhV@`a6w2~YJAcCr45G8q}wK0Tu28SQUGOv6q?M`@BQn{9xTlUueC|-(n
zkewCveRKP^#L80Lom<5-0dCoD&bf9$wm|>zQ#IkBe(B-kw|@cRL;nKey?e3UqyHNq
zJ~E$Dcp!l-zm)d#fRNyg!*f|p{xjG9WMFbdi<(dH`E@>g8}Ii#VQOO%c#~3~{>{*H
z7*3ujJclExKXs_HiJq3(=khSaz@2>RG}JLD7<s1KtJf}nm)%hhwX<n!Og_BJr&>on
z#64*S?=`QUXAqK%y!6gwE_RoV|5>?^5iARf#gC80$KGj)sShH&j=vrlsO`%S?2P@z
zC1I_x0!3gkBcTGX9EBNP&-?X`k#+TThVZy!zhZuc@%sebFZxJ~f>HIMp>m*&gi1)H
z*L3hGqS|%F5FRs<#6h^kRj<WnRG-)WpwW?~mT=D(#-DhMVDZZ|Ircn|kBARM7|=UQ
z;zsm_xmVr|?ER=J(Bfr+Rtx*+=eG`2G#qiRat`fKuF-y1MW-)W`V~jL{i|E8{niM(
z5w~@G+-{p@=^Ya$eXzUo_Zgxao7gw?Ncr@`;P%MajYJo$za`WFi~2dz5<r1zP|n+}
z=cUU%RbIKZ+q}w>O@t3U`JHG!bAsWyx@2%RY*(?oDXn%@ljh9P+jn~|ai56!iv&DK
zUU)4Q5a^->j8Ly*g|6AAf-@WSZ-=P6zK~$S+E8B6oQ_@vRBAX?-jotk^8n4r?E8kz
zq_ge*KyEq$|0KOCDgk$7G?BFK=+ob3@Ex%m)oPVEehid`g?sB;TxY_>i`4&TPK8&W
zCg}J*j?dEgcYCcg@b#Y!<2$hi6B9D1PS@wt?salJ>PWk{q1T2b4z3$0_*mGC&IyaS
zFE<OjJ9=Q|Wi9a-SJfYVBOVw0av!-D2L6g!{+#9fPXghe_sew;{oIu)%p+60OQ2Lr
zK1BbusFb)}LdZW3EdqjBzaK>YUO?h3TNUTY=iwk`i8iuo$Hr!{`{Yk35<8CcC6aP~
zs$@F>-{@u5ri^k5TK|8?f6%a9Mh-AEgtJEe4nSX3Vqw7TeU$^mTUF-SAP+}d<Dt1O
zUqtkvx$Ar*9raDFE4u)z7U3?iMJ|Alxa&g|21pwYegTN-Zy*8w2#bul$^irdZ9wbU
z>yckWpGQr9ASoPo6DDTTC;J>_F%(JD1-1_QqI<Gye0zPW&9Ni4hc{9d5MZZ;Kd*92
zuPiLyj({4nOA^D)f?S-JP0!yKihez?&%>&O3K(oGay;0Ocb-{c0v$<oMD=u{uEMCA
z9n@<YC19K)(vjS>l~=aA_+%kylPEnX@CneaaQu1@5_@qHyfoz_bj*%52q{sN-|`qc
zokiqJ;=VB_|Fx2TzuOGHGegI`aB{ve8LBNhcQbLC_J=<m>HN~$EApj;+oowMTVaLy
zaZ-4~;)X_&N+{quz3aKnid68y|H2iyng@}M)on3Pz?X-XVBe`<nC3QGnrx)&<NJyg
z8@1JitL3G4BF8N^b6!2oEW1Lty}X|YZR*T-8?d8Z2a<)ptv=B6oGKT5|DJ;UGXGNE
zMlAljs?{_}-Bkt-y}BhzRcOZ3op<Kw_G$m`{*H!^K2OvYGk1Tqt};B2dAUb<uNFN=
zoweQH>eWwiE1PQHrL79CoDxp5Fvh=%{2<Xa@*n`a>03<p<janTc$U^ufJzgVJ8&$w
zVE3a)ulcffHuGcXHr!AeFT4CnIFLki$jWOMJh}qDD;xXANxuAdRMpQB!hO^xV`*|G
z<5ip-$P0b}%k!R99I<X~d`G)TIS+X1XOYBJ)dNBPBj8h$)<%kjBE+a3h7k^|fJChC
zHXOwt+xX|t-ur3Sd365yxVl_Go)zwwv!==8hHeGR)HlbTxW>Bb;g{;T$rj;96MD~&
zeAO@vYQHJbw00AFd_R9e={uOeGq<k79L2MJ8nfwJiaSv+^oXZ|&^%)|M@M)HD~Lc1
z7)fE*NGOGJbwBX@LJUJ@?%?4GJdA82XTg|+yFeYogP!&_|K@va1nWzjp4#K+Bdv_#
zpCrg)jgr-vK^YCw&QKe#Bfi};4o$+jv&gN^nv;e50oN7VGS5(H0<t_jb3~$H^@~<s
z3BPx`*jqw4TBbfDhVhVH4#lFV2q9|m{wV$)2{l<r={<-Nw;lRw!eYX4*DvISy&z6-
zV!}vqICE2w8*^lz{jF9|k9uV4aT)~Fn+Q#>sn5?GOLH+_X%&`ByNPu=nz3tgEm97`
zEz@`2X2H$k!a!%bv%8n<#mNCnFm$7_{A3Ksa(0)0#nZ|G8b}_c%Mv-^8VEt@u?ao3
zp|9<XeBv|`G+0~E&>Wfx(Ro~T@uXxahxi>4P8$F9u=6|oQdFf$fk08m`_5<^!iJob
z;J!W&#0*x7CRxxxUR6xZ*Cbz>8y&5no<_Z(bQ^WO@8Ou|Xh#Uek<L8k?wi|5(meSh
zl0^uc!8p@$_S3mp%0UjFC?$#$P9iG3g9!!?X6;So&lBVpm^3zMi%>YkDv6@e;WrR{
z$SttblVqJ&`{(vm2#SW<?dO7u{w;QyT&2|c*E=gxW&C6|`)7q?yaOMBLB5zG5nKj?
z6rHa|(;jNRvV!fc$X&7Qf#fr&=96%~U8bmoluqYc*sg9M-E>Dfx8Qp+eOzOMmO1vZ
z0RvQ;Q7Cv5zfY+m)1+cS!X0Fe$)k?KK>$aUMWcvyjcX2a%8gM#PLdduAy_fzkgKr5
zybhj8*y=5&nkQSmuN5Lq$1L4lkj5Gm9m_U0|6LD+r(n{PovyN5;k$Dn5sUJJEx6Ya
zR(9y78LN^DC~rw#P7&|y=uc=7Sf$}AzD?@V{Br8Ca$+4=#uj6MJsSb!U-k}wK-amc
zOONbE&fzN24(ot?kDwI04}ZM{8$NI``~cdqmpQj$aGEMm204G8TFw0_Q;{e2`cU6^
zTIwp>S8_&VF!vlHHc_-<H}R@uFQBTp)w?0{9VYd4omkpqeaIx~m``ynQW}E~5X<@z
zY$yQ@pVNg4!MoEXYD5f!OJvdu;vM6hm2M=leUb~Q>@5pgfRynpyP?#p+H^ETAbzNo
zPhiq1ixWP7yxd3r<8vA#Y_c`PTkX7XgkL}KD<1=Ne?NF1!l|iZ4<Lac22Mn*ckm7M
z>UX#EQ{$oIHzU=;2f|v*Vd1UC^or<y<_|&f^Q`*>ArFNevI3=9pw<%6x-(_~WwFR;
z-bVOYYobJ#xiD|yXR#WXV&=kE!?;841-5W$&^SQzu-V`O9?arAi_%SpN%M_y^L%f;
zfUMndI^~c2R%EY0B2T$PYC4lql<8s?OO4KybAM8~V;{T^EvpT&sP6f^m+y6k7aA0v
z>>eb$adM#kJF^BJgxmOICxZx$v*4c%O5zj|{=QRqP+pc@0Cg6gBC$E#wS{@^Px|~k
zDKm|)$GDF+H*;QEdD1x4SwgE%R4ilXzM_>(@|Wl_PDDKREn_Lpsq!{+)#tkjWz9zQ
zHVara-gnDM>HJr{2aC>RpRSGqSUoR^zRopYv6Kf-oinv;UlH?Pc3X?im+83nlKBp8
z4f7ju+02uiZ|B=6Xq0LDTCO}&2CdVl^20ZJN3+7?nTL!caHfqd2WcKtg`kW?&UK`H
zHpPPPwcg93$dFr|&r1CY-U-KpT~zN&hjXuTi{6Ll5sOC9_gmyNKvc!}YKn-5EhgPV
z0T5cVbXrwm0{x2P!)cL#v7emqDcY3F8K)SIdk*}!*kn6$(W<u%M~fiacjw0wyT3C;
zzoc8Q<Y?6R)?oan>^wAU_Ov0DcCrD*s%&cdTinm@UqyA1k`Jj#x{+{3sck*Z!j!nU
zp3b@-U8HbWC}Ta(CU<t*&E&%WRZsXYk80X|?)c2~o2Oof+l%gvrKYPhXZyZ!bi8Ov
z3HhKj-p|S31|7gmL5uTK<7bQ#k-Bt@=dWfxg~>c!f?S?E*NGsGkI;?hF$H_3sR7(5
z*)>EY2rmb$a&k&umv9ODa1TTI$b6B#;QBpgjibi|sMnm24z`Zw(&H<*<sOWp7Z>qz
zdo$>!Bbgy^v)vzCK$Aux_LZVhovp)UK%20=hVS|gA-oHp=%EtK82$A{Bl@^dZ*$&j
z5%GvflMnT5?X)O-)P(j}t<F{%K2(-@zO^tJO!#>jOzNY$ODu{6U6XT{Bp@hrE%x5v
zb${Wp#)VR)@@)Rct11?B=kNS9b}MUmN!~1C5KQbcdrCrSHC<Yyk}J6juUh@3q{Pa&
zOLaFug%{y>Wj<Ng_mkc!QWUa>sthTc!>uXAR?4I=7FCB4IpbspjRdmVxi{kyMRY%n
z3jsVp+L!_1t?@H;x0(68!KjzEkD}+(lxE!@rJ?7OG88b2;B+&$M}HuCAmb7Mjr2vc
z`#fMU>zXbDe2|H!!}$VG*rPFmtBgVa?HdcNLdpGe!aHGo!eBAx`^9VW^H<efK9K=e
z)Yyqb37M+;&OF6b^7VagJQ03SsOzAgQDPMFF{RM;YJeB1*NI`(uOb!xT)DfV{_t9=
z54wN4#f!Lv?@vTo;yaq0_f>z*{P?_GtawuMX;^vH&q4fz_>HykaLDrrr&}Xt8W<GY
zeobm6I?p^<Ev~IX@S8Kj=Rwueu9e$Yp`_gF>P$x)h4?d{myEHOPjawiI-lG~l<;F0
zwOVl$Jy0q`{1eI6JG2S5`cBPHDI8V%wxw1nnl=iA%||`;1y$=2*~HUiQT<kbCnKjD
zC9XIn-7`uWV?CcZ!8^bm%w3?Ck2p!bivg+8$7(`2mwUo55N*{)^WAEC1a#7Nd4GCG
zVi8AMu_ZC5=7rY|H(!Z*r2nAl)b}rbe4{Tr^!+^nER-Gr{~gZI@mx#W5?ST%pQ24p
zyKLjb=~Qy_i@TG)wiA9fvl)o+E1(6v0Q;RJVfnXe1Afwh(g8Y6uf&%~R~`!F(+N-%
z3HDxwx^ot0dA2{j8E&l@d-HWVgbCS+!LYktcYpRt@0VOxoIQ1R78*W6GC%IG_qcQi
zlqznKDDG_v-@JAHUV!n!ic92pt%AGX)%0_?KE`#!(E7$XhZXZfM(kDnhJ=>ZU=&;3
zJK;;<CHy7QC0fos;wAazyGz>V@a*-S#8X^Ak4nFnp?#w4jT$5%V&o@9pcwA52!RvD
zeyXyJKbWo2h|EOp#fQ;(z36gXF96Gdh|INb#*KL3b{tKoMu%}9-TZ0jB#+iuoLxGB
zA-=)5H!_0Nm8jZcl4?^ZU)f+0mkyaOqCb}Ub9=I|dUnaG?TYWyPh>zZef!lvE}Xd{
z+PXtrE(f!i3GLNvg^uhgC%VqFm4-_!uWd+4NRFQJp%$@+m}XRsoY<Ai_2Kwztt|xe
zr7OO-yJjSrUNQL}Qhr&mzwP4BH`Lx@ov2(S9GqCLVJgMizvP;i)c<C-LF}H?P9}Vo
z)DkJ<6ZegYS<fZz-HJ-RLw}UFzqe>&X4UY4%z?^F&OD{CR<2%&AuvCAtI7YS+1#Yp
z7&w+m82HqcDvS)f=C!f1*VQT7t5A3i*G3`K{`{-HWmp7<)o~z*Y91?52?7@O|G_#;
zwnO#PcZphW`|w+2jf-USu1?-moN(T0qx17JLs!IW{X><cR<rdesxW{DtqN{L(4f%R
z<9V8K<Jh%&Iob+HEN7d4NrPnmP;y&`5o_%Ggi<OZ*pKjE9BDLCRDfgNL*o<@v6|WC
zaUdK-dCNbfoR)FI6z0VMJG`P><8tkwufZ|OE6IO@Lo)31FP(a8!zRT9Q>Gb{V)e3=
z&&SK&{#oHoEf(SU#JaRmA$7nA0<N>_+HbyEvI&=a$2WAJKdDTQ3dwB4c5i(dxAj6n
zjQz_}q%d2}UZ#p&`v)OsSK_^a<1W6uYeS*Xuk(Ds_3wlSzOa4&AMV{g1>rV-k2%2m
zL;omL^d<Bz8UF^Kams2`m<Gk>NtJOm;uk0`9!#SB!1~Gw_J`#bMwx_)53>HoJUcsl
z_OLx7xuv2!zu`k}>(R2quAnR-^iB?TcrXHvxUb&jecm3KuzJ+ry+3C{%J`uNlW&uN
z8_OlxS;?vFxq)27Wm2Ttb=qfoJCwLCXpi`MRB-1$_6&85%-(LX*A{d3R39k3ID)6d
zw`t#J=r{%uGlu7P-ou8`aL`HXD%R~GB9~8Q6N?~X-BU#lFzYl(%@vL`x;kEIYvU7$
z3?6WZ=aWeA>M^vYa}s#YWQ%BA3riJD8!g<yp|$AAE)TMBFEyHB+w*N^M3b9(2<B*l
zm_y4MZ+R_ToEAVn$VRo+yee&WEzkvqcW9FrFDv7eggSCd_Dbt^y}TTL9hG;~?m10P
z$Bnf9UaKvY@p6`vUg)Dd`zkP)JuqbPjnrL+WFdys^goxNPLu!5(RqFvWp<hyX4c$y
z*mnspmCA+?4mQ$YgVblMl%Zpdt(kSb&EqaIjmKM@!U7WzmiR#KX^*^e(^ukn)5A#Q
z>jh^<v>1qBNS%-E(}@%kY&uzQ!-c`!A&|tU2uj!H3k;N;`O&;eJX_uZTSjdc_X%rS
zCSaUCZ~A0Y*>sHJrfH=@`L$o#SC<E^uVm3G<ZzDP&7jtp7xm9&w}l%*af9lcA@80h
z>&|f^#KKYu689lr^zRwZDwlP`MU{wXB8R?uhY=LuI!sz_>>G~#;NVsBbiO_Mpped&
zr#m8`o-q*Q?qugzt}2<j%laP8Fxi8cfXjNr@2r_@!wXTNxDIqR`dKKI$(oM+<sD%C
z#6ILTDk`G6PS5Q0^%1-2z(EX?p2t<=jDD`GSxVO!g(lZN=11b#d9JgN7K+ge$3B^}
zxE9U<g)3ym7x9iLzLI(z{-nykubDL&LR$`C#c!&jDk~~w_g!l2s-ou5VEC8kZT(lO
zASZhfsg@}QgO|huc-ME+#GAy5BruE2TJ`TcD4C?Y;!7OiNdo9ukeT#*laYKsCgSiA
ze-m#<O3UXqd-T_c6h4~G4!Hl~j7Z*o_>QJBJ#b{1{Lsug9#Z5hje-Y@)~P;t(tVeA
z8~sk%0s5YHGE4>j^C~_IA*>K_KJ6#~4F<$nJvbbB1&=s)6v$}guBWFf$5*UYmcacs
zSJX4o=tp%LlMx*i9abdvuF+Os%z%GEAH_t8ucBhK@BVaI{2f8>sy0A0)o?AIKgB)i
z&H0FQQ8bl>%D6}oJQxXHO>B;d30{_|yqs#x=1VQ{kAWq`^6>4QI40}qV3b9-Jfq*9
zJ`E!|0j8Hb%Q;%7>+gtkRXvq(%NZv7VBs}1{xFJu2^Z>%olAMqP%&w1@82^K*!)CI
z=&#laZrm$qh_GR;kFbd-vDtX#zPWD66f5wSxnJc>J(1L1etG{N23jA@f8j<=Z}#3+
zGVh!jlNx?B%rsnKJ%f0Mc@MoLc|EFs^iKqg{#R*w;A21ml6;4X{htI|>?GFDm%6+m
zOYjm3nXxA_-_B;b>3Jw_s_*N);)#%jOXMXNLy|58sFFD%OyTNn!t9%B^2&S(EtcjL
z=ARnn<Zx=!YV}jR+Qj!d`R#A#VT-sOf5h$AfTjPW(Tg?Ro3Mgf{0nGa9)>ti?cayN
zvow_h1~yn{WMoh&C@^DH@W}t<SscxFLO56C86lihlQr$QG1W`9cS5R2@dbk+!e=yB
ztRps6ka9~pTsq?XIxb|%*jg=+Mq8&I@j&(PpA$Ct28{Br;}+C92-8Z2G3eX9_*zjK
z8J2@Lw&jsg$1MDfouc;Ar4@7qSwQVO<BvaAVO;HdcJAUChn`Q~qe<gTd;C)}1AlA4
zwWe#m-``_5O|_{D6QHQL@Q4oHc;{}(D4fFz{)aAO8b|z>j~iE|<Z}Q!eP--&iC=TC
zf9CgJ4*SN8^=#V~#si`7-U8L0Z<Qe*L0<3sdK=B~0^C54o~Oz2X<HmCIEU<>&3@O;
zx$Qa%XOApbl!ZZZQuE8l!2~v&Jynaj?>{)K<~8pf1`K3M3C-DTBU0!P(|?HB(5E%-
zg~T0kDtvWLEyIVMG(?rfQAqOyk3!fG37i`KRu>wL@-(Zp4l!A=uh^_Ops%Z~dJ8U`
ztP!|FVs=g_pPdHcw{Mls(mrk#zS_5m^VH%7kqCL21GihU0S`A4SL{1CS4T@an|XK1
zwUV(pvI*_q7|cNpVsoXiKruB`+x?O0g|(#MBP%9z&$EqCc(1K>9`6rw4fW3YFy)S@
zJ^{srTvnzy<MZ+~LU^qrKTMx)_bUWT-Fsc{^UpL-$0SvrUI0pEd{yO5y#Y3rQ(X00
zA5ZPz+&}2=ZpOSEx%4ty6qE2-23r;b4c5RH-{<1~DK6U<Tk&Pr7<sNcP4}8+3GJ;N
zLX+~bncspBj9(_022;$mkS>aLc>7&aAqV9VgR0fj^EaDh0zd@$%=k{TkwI3028c){
zQtv*=^?qDhcWwKRKC2|AMyhQVQ>aD2q32b<EK%v_-MtkKM0vbH^To>Sa1=uNh}JS@
zw7r>FT&&>?;CYjuDVy^lt0`uwfZHn-cww0}dG>A%chFD|#B%{@fE^qFF(aMb{M35~
z^Ks?9yL3FA4ISFf%;n(%cW)tk^m%8GyICY^Q7KPDsV69f+pZk9RZK!c2fF=fIOV3n
za%zCo(D5N4AYjUfbBSh5qdJyKB3adPaR6kB-&g&|gTrF63(a$<xzdYr=XQ(Et*Hv1
zrnj)`dWfy?nrGtEb0xuh*KmkAku7CWmNub&$gTg!Gu%n9?D_PkcS|e8D`gXGN(4*k
z_lKGmEU^{_xE3ri{_DZV^ful1c`o5){Ts7r-5<j?EeQX-KtPy;y#*2Pknd0j>$hO<
zlKys8d^ik>D%{mxts0Z7(^xjEHHw>?tL{(6s|*o-D2`_x?=03xX%?=C<8qQn8twmp
z@^NkHm^+I95SmUkMZES|tL7uQISL5oKqSE%EYv7SK*bkO+?#$B-}6!t{bYl#pi1_g
zH&tFTRDQB+_{nn<KTBj)w<7HC>LC(zhU2JKs5q|rsxS*EyeEQ(1hV%@q6E{?(@`!>
z$(s7Zn^>y$i`lpyFV{gv<(?NNH-tiKo{n6r`5liff3AsN63I^d0X~4i^1?k8Kl)AL
z?Aj*9Q#=t@PKiQQS>0D{mQ%%=(&3|;{S^aa4I}u#yzrZ&Xz<S^<jwKRGiG;1*6BL`
zBF!qJ3R(OU;x@I~fgHtU*_!WbFNC7$e-Vn*|4k?=JCBvvP!lU-+8}qA%Gg^bK1(sh
zEAV)UaJGq`aB=C3$!CPmtMtAKLT-O+JKL<rteIv#C&paw0mzToZkUY6aj#Z+O9z8E
zey)u%fj2B+fZPo+G9xS+iv`rdY6A{1*nSjsBs%_4$f7LA_@Q6hT2QyyAvUe^0%)=5
zdw-1+kR?7fFoAW7P^?z|R*fz`u_;Hr(8AxolrUrvZ->XG%ni!Ex+N^Hs}rS`0VIIC
zabWwdXY10!48`zl-J7yXa{2{Woj(dEeFBV_?SCF6%69zF|IKJJU+&>mx_kt(-Abzs
z5C;>z^|V5@D2DHQ>vK#$)>%#|Td+nQJRLTy6pvHkU|M{mviNM9W-1~AUwJ@KOfn_6
z;-#`r-?HB`UdYLlGTks_cr^d?y!I+mU+k{d*kaEPgne@;Aka?D?rX}EirvCF`I(U~
zv&{tm64iX8>p9s4hRF;IO+rnq1|?|LsjbeF>iYiA6}*pK&*yJc6KqN>tAOI*P5<kC
z`8=iiIL=As%YThA443$NK0QL+LZ4pt5Gxgs4lB+H<#){T`4+XybUsRiHFzFJuJ@6~
zhfvzmH#`Bf{*296(w$pnrst7@jyJcAKU}uU7h4F?786sI#;cFVUfm$6fM#r$y-WwP
zI%Z7YzAa2wrP0tHNTdy2f|JP`fQl(w?Zjww;Ae)nP_Llt6y_tvnL(Ll({v(~Gk~U;
zt4Su!iwABWE4}6%kDHwLllOqmoN(|U=bk8EfJ7MH=?%B}81yAZ9}zu_MK%ZGrxs5m
z2)P+n*~N#Xi&)TbWFrVTf2jpO>KBN1cd=>WVylA52B!BXvwQ+7vP_!3ePP7I!ILQL
zX*x-Ep58ZriznT2VXG&kJh2Vww*zKItRyn%D|b8(DT&ww&olUfCBnXC37R-8J(Ezh
z#KzR1qd#A4;&Z()PG1qn-x=G7UNMBR)xOgiSe!-BG`mF8^EqG_Nx2U{{6t#w(wXYS
zf=ak-5`LV&>8p@Q=zlz6AK<q?ASys+8ng(%A9W}Le8;v8QX0$6Yda9K*DPO(jNu>0
zTU+s^QEGJDU+d@&+cde})xgC`VA5B;*XD>-?najRzc_o#pgP+oTNvHA1%hh`!QI^g
z1oz+$!6is=cXxM(;J)#VyIXK~cZU!1yziWunp0Efn<{?s^WNQ8ukK!Jb+EpF-UkSj
z_|s+q3DOViFLn+3I8ccvJkcBJ1=M3+2t1IZv|^HNn51#WUI4+ih3xlQaSMP!#-~{X
z{zOOjCUO{Ew3F9E)f@+}k4u#ImKU@!bUI#OMYxm7SIC!$cZyG9ZM)yWqe=uzC_8{)
zv0mv!%Q&KQIG8?f0Em?gi}if%alSrKMz||=rAQj(qK_wgfk-vk-aFn^1IsLUR!WB(
z|8tgM8bQRb{f_vIhl#L|TJhh&o@Jc~QTC!4!eW2@f*FD!VYG^iR=@B?439L;s~X!|
zl+MRc8WALV=i{jzG1D{$&n8~o)cgx(*LV3#CJs%;moRo_lDbBu$LXB84X+UZy+i`9
z;59qdeYKL<OctoXyn`bK(_L?8M*Z;4Fo!ePWq%#5(5BW~xf(6%$?MSH*IUt2ZfsKe
zyTeP&uUuBu*<>gk@vrK`hN;(z;Xt;aB)3RNqjNO)Fpj(Vaj+5;yw5?>%p7X}B8{M+
zprZA;!Le!hGxM2+ZdZ!(ojXC4Zt-7F(JE`ag6zy4u2d9M1Wk#gq@=WK%**3S-|+=)
z{UpvZ7$(Pu)|i(jylI-_zY}#oI$mC09==mwJk6t!_Z9WD+uY_M_-eHC<}3AtJvE%=
zWfs}W7Fo^}E!lG8XMX`3nxj$5Xii7w5U}W`Yjy}$ai;coSf-rB6=B}q-ui?0Gc={m
zWo-K`weg8>Pl0_~^j|P1`Kt*(%$CG`a5#a6(qMK-{blyq*FC`K(bR4HzVlzX?;ZT(
zg@;_ftNxhD^@K+aXpe)5u751hO=iIv7FTnItl16G*`MmT#f8Do3;Bpb6zdKX*-y*E
z?{xL`dzn@tGH(dbUTuf=?m8aym5&fQ&t>~!<M`y0wiTVihh20V^Yx_sM+Om8S|l-=
z7$3pdb)2LxcoCX0J=|Ta2D*71tax7<QxWCg-vGC%j(1qOvi5L&=&(?Sz_Jeu#jsHt
zOmv|;inY1LvyHsNtCDT^l8i8He})&2vzrwDR<D%4KUhH$EcN!f<#k!-N#eEy>LdJ^
z_g2>e#v?m(F-M{ekGcFr;ft$=b}O*mWN*!wb!LUiE~WBTcP-N!i7Zwu*lDxfmJl{y
zIVWhJA2dLCPyXMrqv*5g?{LkdX6DOVml#6Ee-^`2N5)MX3H>ChHXlP`R6_q@Mvs<z
zHuUz0S@eEi_n)+%8SiPQe--|2`KJg1k=FMy6VRdWgfwd4x=!W<gKc91Ig7p2dj&dn
zov2<P8?j}7$hKH%(((v!TpORrt;P}cFB|V6EO*Y=9LU)?+4y`i>O7+-vZT)8GN4Vl
z?4ICMpZSUK_)AFhtJ6<Q^e@6#7CkH--?nl3rwl8%%sAxUmt|YUIQs8Dtu^Y$kIHs4
zzh_PexcyRuxb3^eeY5fPFs<Ke7=-{?8N}QkHvl-9hIRzh3NM+yjz5qZI%^Uo>otD)
z8Ic^i3A<z9F*%{qaCmi&HCQby9~e=D5T~p>e*E=eR@YfcDs08^WQo&ZCJerAZ{#~6
zK^C6RQ=3Hzm82NVrSf@p*N`KJbS0H&qq2pQ%I~vO#<Ef2A#P!ux9{7h!v5FoHSFE(
zb%(=gBKWNh7h=7SP83~HACgIgG3w&isGb^{+Qv^jQq?Ii%G8?|C9M8;+g%`-h0Lyw
zl;5s@tZsxs<Ku0Ee+Y|hE`S5|NBRwtngeo(_!2baZ{HrlUeGUmEBmwl2@Vu?+o4R2
zkb4*Sim%zDLCoVno19=?!3=b(G5i>HSENzD(0SyJ^a|9h#}uBU{<PruX3KUb^Y?p}
zqgnj@o;Jq|*Fth&4$Y2-R+DHS@MEy}uLR{VmqdTa6KkrCg0U{S^v0heDs{Q<LkTY_
znA(Ic++Xg}>e}G%7^wT)CuQ2-W!SU&ql5W>@H1Z_Tpqdh`d|@o!EGCwhBn;i#ib<m
zwCUmca-Mv8zswbhTo04GRFIvWjz4^StamVa(PVxL;7iJMO|n{U`si~F5y3W#%5jmJ
zaT4G1-Cpg>&<}!*->ZkU;cqX1D!^Hc(5z+aW{|^3?2OmQFb>D4-z~0~ZWU<Q*Vb`U
zSy4Gwd5V1xYWo)iSQHgBl_EIOZZ|5i=q3@d^SBrJF_KIz`MtFJmoUDWpNKz}9zK3&
zaNz&ElHWjQlIHOp&H!)l`Z>tFw!toX(ZC>!zSY6vZIJ8D000CDKYI)^XCe9=93Q^{
zy;CGQ?Up;vdLT410oPH9hx=pl!}Y%L0fIpGG$_&y_9IwF>!A`nqFFAHQ*LHJp|$6f
zEce#FoAFr2^=iFkDtumU9|7@ISJbz_t8a<USza7weclojM4$~8lrWcOfewEg$qZTs
z`grtstO~aX>N4awv>-G~oP-Hk>LIt|l7*2Qjg?J8(krtdm~lS3mvg)+iZ;_)d%~C>
zM@$bt7qSo!qvUvFr`gWl2SxTT(TQ7>&UlGOS3szL`L8~h2KHK}{2Y)uB|4&(@Bk22
z%U1m>PG6`+!Nu;Wv(8XHL7fMTq$+c4B-eO;X9U1n(Qa8m&=GH?fLo@lMFPXXJ6Ww|
zeg+zYW+)4N9Q#o=j2HpEsl1S7h`nAHh=@uV-uTxK;x|q1?`7TFpiba@vg!&=QTKg!
zEWLusX-ya1<4)Qa2B{!1i+HJBsn@a?%3h?ivQFtkFEJ;gjPRM0riX!gK!*_s7ci{{
zhF35H3D1bMA4S+M+yR1IX7e+uwtygA`Msnww&y5ij4*5-4xIdeEe+#!(y-io+h070
zV`5dZ@?+>(;PQEABz5`p?Y{&qU?Q6v1nrDSQz@nkS;iEh|DIgxFG37ZUr5m>wtSWy
z(BQ48JAxeySfzYlA{yWhDkPRLV#mq<a%tBk($ksPF1(C#4{?{=jepJ@iFlp8>hQ|+
zOeU%Vn8PE3AW_k9f{T3~ZBN&Q8(lU7(qK^%`KwX|Gz2(6vn<|dbk6wQtPQ?ERG^AE
z06T^Q)bazA+$%5?9W%Fq17hiDfQ(~|Dw81^_}-j&@fNg|?{BoVm(b<cuT2@DShS<O
zw%xE({p+OCqydo(_YLP2ox--*!kHmnD!dm&AECQunJAFr;e@v?vhbdR47K+6Okr0J
z;REcG0_J4WxeQu;JmaHD<><VeZH!ChQ2cTZI+<1h92?s#?3gXiRbkP%)2*}G+RBgT
zR+D)H^I1obL_AKYP=sWWft~}&@3K89$FDRgv;UIq)h~#>Z!*%g3EzRdvn4IJ7F|>4
zTqIio4W;7XY{F5PyN|n{dr$v=ny|N5KYA^~;3#@|2VlF)b-^8L1zlVD0N0L^Xoopf
z*yL@73y`Tc=Ap`wnu=llMuQkZmi|lPQCOicjoMy{P|j-~`?Vkg1g?pjN#24Ase2fu
zx9wI`&!9_+%jNnY9gBJr?{<Hg+%Lo@S2Um_-*!A4%t~_8%${&)sL_Pbf5_JgND;n<
z&(Y4DUaos}_pHQXqXttGw!-VWjfD5u8f>ys>a0Ah<ET+@q2?-j=&C5tSl6Wwys<IG
zVo&tG@%JyTo@PCAjjdYlzCL76;dQw(8D1`GE{8jhFilEuF5RbC=&kNeIaPc2q;<u!
z{QTDHT*&N_I{)5+A&i}S;Dnv6&JDA7mj4w;VkDlt5JT_?_UMy>EVQbNb41<ytA@Tx
z7U$mZRjj59nfu6zzXfXL4xH%M&G39RI=KuJ$yS-^hF>s#nXA6E2HsH_ioO@_Gn60|
z9MuOZR6?(=O}j)otq1tKjMe0b{p3jbQ>UIKdsNL4OV!?PxL74;Y~IJ&3Kf2A*Tv>m
zS_W*?k7u9D5Sjn<ihpU<oYCePdocaZ_I1bnX6rnb=ybJRhqCJFugYeU;o>a58tm`2
zsueSh4(<!Nw|pUs955$6)lvENFc5ZxaD;w@_v5~Gi{ugY@xx=>GI1p-=H#_3<vvV7
z+$*9qC5~u89DTbiWiokTWn{teHw;b9Rs}42wQ|SQ`s4bU--@1%HGz)zd6R!?O=Ca%
zA>pxguZgwpE|zk?DCo6aL+vQNZallLk(nS8Uh%tZ72TpJdNN2uJN5ix(~&NQdY@&P
zL5bUdFT{{Z#$BvYIK1^;6<(+J>HA3;Vh0~=SYcwnn7(GkUvecq0G!KAj~1K9o=4M*
zK!viIqa7>)&v_S-e|J-dmUE{L*+Y>$bN8=Y)l=J}e4sYnxJ+%a8-g2>n|zfQA`8Z{
zZxd1L<>klLyQAn7))46{sgrtIs^pK6r=Bn@0ImwSxCnEIyiFH=xRr5DDdv?WVy9F^
zKv&zLCj6exZ>3^}QbbIP8nn{d`2Sy<Z&f#Sqz|VFkmweRp;+`=FV8R+V26Y!{9q@k
z-q0NIm8IUzKAar>etTtFx5l0V9|T_K)|r<Ap23}mzA0&G^0p`@(y9E^l4~YDH(&me
zBituf{JnK{YRNfmIo1rdo5z!mk#WpGht*=WO{<buVzyN6a-%aJ;dmv6G3v<|h0ms^
zr4*IO<1QOz^||3?tU57yDbooZH<E~d^y+B7CRoXA7WAuDWNl28BKBSmBir-kzK}m7
zesV3?tsWx;*(0zc|9ds5tQbX-&bLq&%lK>lUK)y;2X^a~Cx+rD1Hv7$aK|#OrYDva
z$2=N}*zW#_e+bnX?!<ieRVY>TWG1K>bd!3je2L@6*QsF%9=;xN9=^t32>KJbWurQX
zVO>bo|7yX=6waOsWuiesv2)_)>GZ5?U^Xbm%30n4zZbY+XpyFV07Af@vZWq9=ZVL$
zKGLZ-9SwSSiB-m~g=n@rBm9Ip8NAkLAltb3$mzC0KVNB-I{fUg-qTG(mB$FyVjCr|
z(D9Tp^4Pb?Mn(A41*;kA1FH=mghiKR7u){&qJc`MRIb@blSrq7X)z}sV)pvd8sjBM
z4EJnms@+E%B(h7ik?FYweZD~yEbl}zW}w|)v&(pa;dDVGO33d@7n#8qtH=?3QBkwI
z)ty{pd-y`y=x~~C!h%lIoaLzJ_tlaZnbTI<hv|9i5)nt8<?cpfVE2fRi_#K=lFZ}z
zB1P%BsSJYzF$_*!s@?jqzdu!&+HTrjAzyZIBN~pk+CydCL1iKM8Mv3i`up^O9v3oa
zJv_`ODJf}iFO%8gd0cp%_D`eTF4eG#wSRRIa+^Osr){_ASO)KlMuXM0PP<1d|6L)-
zwQaH4vEp?iSL`{O9_qA^UZ>5C+B9mmxqu~;$C(KL-#V#rR;%=>%(2Y9>EAqgid^8<
ze~?r9$ob!sDpj;P-Z;xrdv`5Rn+)dLeM(pU6FccgDmP}T2{~u8h^VDTBtnR#%VqNk
zg{y$~pSLOkj$$7XCF4c$U}*%KYMTbGjL+z=0jqSLp1@pAS9~)gQlGU)W&KD?QU9l0
zYf<A<yJOA{*S1aef{8HSHk@Xic$v@>f|)R%&yE{mTBMTb6|q<Zg<rU4Whg3PDH`7Y
zj!eTjer|k)Dum}MGbhi+d&=+1q$M-7W4=Gw#ju|eE!ApfgGi@=_-+oRsfe~$<cfxo
z>ml@?=?f{>hej`*{(oFJG`vYdURCQPejUwI_sRMXJ&gPp`T|x(weOJhnL+etUoYnm
zOt8q>?wIs1Du51O@-dsOE5%?@*!?_QD3Q>Fv}=dticHTKw(y0%w7Gd&6lB$C2<TSw
zFZoE=a2>F&zvJ4^e|MRnK3&i0_;^r?pFz2e*U7vP1x&wQWVX%33}o&28!dD*G8sJB
zcXU#BwETuRC6`V4%rAva+KTrmu{$`BXC6QO%0O?D=PKC?(qM%D0AZ*L5%NjX65Wd1
z;4?23Dizk1+Q*xlKUD^1P=g|-n$lzMtchP^`>&Xy@9dU;;O5^Fr%)evz8JMCIVLc1
z!>PIC)0vKN6*H+UCXsBGn=f@;rI1jBRv=fffbE7yN>-9o;Wpc@Hc8BTxih-FqKjJV
zDL%&K?#3c6ncK%zWmQUgh%4sX2E=^+l(o^V;b@Bje7Wj<#%kSUgpXqcu}BT^3`^p|
zF&rCYtwnMZ4wrEs&mvKn1fxjR9QEgR^*Y{_T&DDT$&iYRb|lbhDB$zCIWa@X^&1^M
zuGTnK94)r%j90}?4l%$3z{9-9`86a1X=y(jx+?xujS_l8{hzsi9ic|7+(9C$#Ocyk
zfJEvb;m=4ldO<#`SOhIkx5}L1XuB8j)Z4dYl19uP!;zf=97OjGT<2%w=jc>?9Th>c
zXOA&t)wdu)d?$M^@8FwmBaEyrJ7hIx*e3B)om=raXV<*VQi4gVhwrAW+p?xSR_W7t
ztrBL)8g%h6v<VfDuV3<QaP{HRTtRYuZ=DVCnaL!(ps!a5%wpWuj`T)A4+jvCyGFHu
z<xKYBsTm@7ErtnxgBkXU(pzgcbFkb_c0|RWys8{dn)0(D>Suk4Px8QI4Bsr(0Ue1%
zDn~8P8#+z5Z!=WN-Sab#sd-oOPn82Tg|fo{uk+vFq&ceJas;DrCA2)Q91}e1?BFo9
z;CK+vecrK85*Euvdt?Z7;buN$nwP$SLl)XvVRrOQc~ZicbS<3MSK9W(a{h{};Ks`U
ziHVD@eAS)_g&bS#xGN`0Wd{fbc?qRt3K1&5VB=sk1(0iH)5TkBsReV%P+@SAc)sEM
z8nZG~3pbUfoBe+xA>@0e+hsyIhuv*6Zle6zB(?x9FYjfHC`5+0j~-smoHKIc1F^yG
z&;=JrCuS)f=MAAE1%3Qri6IcY+pRfCHX3@mh$OO5Q;3Mq_H~U!j&vYwwa|-kT$Ibo
zl#-yHJvK@!oNRYv%Zz1s0((ie+G?3gtxDe?1k94R`B<W^W#LcP1}oxx_lHppN>~>G
z(OYt^eCU6oi?ly~SwwAeLP7Ke3Sr#_kO+u)^=tSP>HcroBIJU;V00plc8?KDZFU+~
z%Wbsm*2{kKHd7n4#MU-8@Q9_7w)+ZCfQ}{S_Q6asLP*)#l7QTuL(%7#J@m^~*0XSy
zx8T_O_@~-9a~==%GI9sWi9~iC&glXp!>ey>YdyEnmWU+xv;zUv0cBVGtH{vEVp4A-
zj{hH2$IllFv?8RG0B_m#jVZ}^%EwZH4xv%2jFnNN!30+&plWb#`3Yaby_O2QY;0hm
zHM1jqW&mAz2971JwA`6&CeQc5Ri~MbT?8~V%u4#t9mL;+^JQ45Qx#E1m2ECGT69w$
z$f_lqe>>azf@moTQ|G+3z!%Qj18!sqp7Ir6K$4@-4?&K}6C01$9F&@R)fmNhz8J+U
z1atdNfdUL|x!pZ>QTBMXQd;-Jw@=!&7l^dSC<;YSpRu8`0lvgatyBBOwZU1%QwDFq
zZ8rR`01FR^Dz$2gjPaA>DYdNi*FNlUh#E#O$EP3Z87v#g+BSDTHLf%(yj2L@=Ffdv
z=wkFy-R4PhScrcT%ZqlDYc*2|IP-!&eE{lb_Sw>3a$au5eQ2tSw_jS(<T^6@)ZyA5
zzeF9Q5l4swgA2_9Yl5v?HN-4M;%49uoIneE>S9D`HQ85~4@Y}drkF-A9Q*be2}1Y0
zn%{6t(2pUag(}f{sq?%~%%-<P+6ncSzQj6vnwOI*o8{t<OB+(Z6$~jA*qlJ|z$nyx
zE=Q~u$i;Zatn01tNsCSwQwEp(Y1}r=--zm;b#5P(B{rP4a<n`XKBXIrXO9!b|E0i0
zT=rp=*!hFZ3_HAu;8mk(8uT#64FqJtH$3`oK7c63FMEtoTadcVQ9+ftOrBFrF=nVv
z7+1%dHQ%N0>jiWB91dBWwCk7VP!OE%RB!xU?=g`|6>k?^pWE;#a(lyK)Ey2pM|HAv
zwavMd&SVMs6$U+bM+vGCp2JnzrdILJn*iV+-In#|%c7(Y!0JK`W7Xkx#KSvv#7iz3
zKNqD;nd3k`EFl$Ia%f#50u~gpP11g^vy2E!P1!61e%^K%ymy$*2B<)1sDK@N3;GlP
zz)<6=stqmuoVz$5eR^hLH_2Cuww^*kdD0JQeFFP@hGhyE%YX`R2%;|;B455`PcrA*
zs6Fi^ba*r8|6G$A7>J>EB$tHQ{i}5;s_p;F49pW>pz$@TlKSiYREqxBhQG8X9FY7e
zHv^@AYI8#|cVnyO2ZkY;lQlKc+iQeBEJ5JB>)hoMTfTC~bl0-ik728g`)YH%P%C{~
zpBCiC6_eD;`@pbzp2}Dj(TxkG1IVC6`UdfBoC4$%CqTu53uW&=1&iJ04#opX$!Y+S
zU9c!8tz*YXWI9amHb2JNsHOAYdS-6iT20Xe5W*+KlFL#h@`gju=%baA@98c{pK)WN
zYWKjVOhIYXpUU-uRvS(zPQ5Nr*E|NQKYk$mDgUWlGoJbkThm+K=KKK(-@{((`<ne%
zTxjyO@^og;4(dK4$L^qG_EKS3I4gQVZ`D%<*TCA$DrJa*7fM=PL>5F1+Agfq!~@}k
zZ$01$`BL;UABVl)f(r4@KI!jf0(+XmYVMjV|4%NCG8#ABi9Wd?#xFFAT(D!HIDJR>
z;ew0Lx6ni{=OlJIUl3D!#m==(k@A%$u)hvI4h{+RL?4LduCnAg^btYcG4}%tthNb2
zu(S@!>2{2tev1RsMjtJj3MDi|J9|tEgXXoP3r3s`c4^7oOu0x-K84-<lX8hNdV|jj
zNy5IbP!HEk$!nQXk<z_jn;TuMyStmG<wQ%P(<4T*xpd(3!8vKo1-rJxUVt|;c7BBs
zs(sleO~T{CeZJ(e+Xp$ahT7sS3QH<3i9`5^4Hc5a+9$3;7MMMG6Ky*3;5f+;L9kH`
z97x6##xqSENX?p`r|am!K7Bi*zGAPezFCIF<2g&&+sEiF6C=6L_fMmO6EZS_^sp<J
ze}_|FT>D;L9Q^Mhp2?Iwtb2(250`$K(iM&>fb8;|?!wT=gcQ3=U@=@Lk~fr{Qh?5p
z@ot2^*+6!EzUu;Lw_n#U+WD81Y<P2-N_;zG`+w#qJKhTCj;#7ZGF1g_%HM;d$}r(y
z{s~$;{9LD4g*&ZL{%5AW(!I6IbQs1>IE_^n-wuqi9HGE-^V8Dj>Sfc3Xv(wND{UuI
zh}8pdPVmunn=9s-q*2^pM%XrsOBGXru)W5$6rXF?g7C=M4quo)8*}{SH6;NhWX3yh
z+{VK8JGy>KvIGwCmDNf86k>mlPUa|MEn6eRt*J0?gT4rO86-u7<~5wCWe#7kL%3d?
z|B)F5yKR4U#R=DrLFuX0;zJrkKV&_mGLU^%bKut<uF>$@AVz%ZPXMUi@;sMQW8tA8
zdbaF2?>TaDT1jw7{4jsu);y1|1+uV$H_C-HQL>Q_Ax~+nQ6X<g7SjMk?G*A}S#|xo
zfKENj5MN7={nyejFhKo!M6Km5P$~w}czgG66_chHWarCxrpgY;(Q{i;9L$tx8m!Mz
zuv39^7&{IZXM|N1b02{m;{NsYxd3Ij7o-SWDccvzJ$l6bMtbqfKIdbct6-)rnM6Wd
zwb4+Jb#_kQGW<iHQU>H{r{L=JZ`zX+XxYMV_j-K1?)ywer*Ra@KMGk1Ts#T0J^4JY
z<bGvk9xqjCX+@5kUj;D2>*GKT!uHdrd&|^ai0`pG=gU(Db|;(*(UbBS<qrwpf_?VW
zm_S)=5|k_b+P9<4*Kv5+T<f{Ev#fZ)ic9JK@Jcb|`K0Wj(}DqbwoPU=&qnN~D;FIR
z3suR^*a-Uz?S0og9}9<M2cZ6&z~T~b>sAyXIJyL0XuEqzRt_!r#~dHy)bO0*YXt}e
zyCV{fyg_i%6qGq=`P+BQc{x!3#M1|ZCTzlEJ=2RQpZEf3;QjL^jh+{(WtZE-;BOO0
zhNMyZcS)e6CHJq|ynFWxc?o#i;+Qc$CENa$iJ*}y%|jIX{haz2eKDbIwy95~;UU0t
zzo9u61A$f1{xbh%ONt}aZ~esm(;Fu5G0I7=K&WSxwAOm<xD#x^Jtw9r2Mh`cCmpA-
zc+O>d5DQl@Fr4o2Fay^cC8L~X@t#`P!W;vwkrGVfLf}HGF8}6%Izy!B0z*JhAr0Fh
zPZ4Bzr4fBul75TPc>Zv38JM)5D^Rhd(i2v`bE?2R&^+>p_a%`DV1nVN1E6~@JHdLb
z5+d-khYf%>#a&#VtIn6|5~@g`O_8iA2=93f<kv&Ai2AZQTU6{bo~$ul-x*vI@oiuG
zGEcQ(K82BipckZc-rWdu^{x^WyjAgVyCvc}@Vxs2cN7*Blj?XffDA0HVisnzSn97I
zJPpO%6myM`O6C$lRn&aAJ)}<;;)cud8em_Yj&pZK>5yBXZy(m6u-m1>Hnv1f3irky
zJ~r<KO(kZ4yO7!&to@p{%+G6|*OI`+zgx(uL}!BK_%MUygLMYqGQK5=&+DSe%tzRT
zceeKN!BPICb<g!T{v^=tP<sOjLUy&FM=~KQh5>$wr-iGr$<=*JBX4W1S2|VlxXFP`
zOs4Q4VIMN{lgGzF6$}gIG>i9F7wtea7v$s)LD*^<2C+=Mr_gtVwx>B{foNZvEXy@L
zOud>goDs+L5=@Qk(`E;vi1fp>VH!d575l>2j1ogG`{I1DMG0T{EjkCbJU*;HVVS&p
zq;*{;j4<;f^%T*ef5AXjc1^zUZt>)_b&FC3x5VIgoZq0wA5K^cmMMrtoEk2-kMa^K
zcQR?|zM0XY5o!KHd{1Y&5~tV_V93_L@5F_3uVv~YdC33coK)@)wk@&u2A9!DI$7~1
zucJ+OnZK4#G0B}m#+O(lg3a-g<2Lr`gfz>hJrP1X79$NI0!?i0^mEbJgKDl5->xl=
zS2Pb6qzoE65zxTBpiAN&{Qe6yt`4Vt?Nip-ij-ruMDFA#l*<@^={%LMQ4O+-`#0ae
z$>3Lyt}ww}_j+hr@V&1G^Nu#U7fim+WNd08S)CA_U}|=GA;%eT#nKbDx+&xa5Zvj7
zk$}|yIyRrU-Erxu?|oW2#aMylOUxX1PqIu5^!j*?hK5CB4(CK**HUqT$kD+ZCCdy5
zAUyr78bratrqt<-iiY`0t5&Uq1GVG;wz<ag$-rn1(FZ+R^)nER?zxLxW)Nq%jELV;
z9=Q|UX6;Ii(`}~(zsn8*8!Gh-(rK+i(H3(Gu=}Y(uW2nMtt$?^5UKujnVk8&%jsXV
zzQqZko-hs;+jm@d4ISL+3Ub;nDZG$74v<5J2MY#+#H!9`p9<hT5<1fv-1B)Le;9yT
zkD=aqXP_FC()(Jg%Nyy($j&=XcfpAC5Y%pnMDbYiq1(;g0a&Oq!Oz@vUD*aEMNlA(
ziCQ&gL2QL$^}3L|hlj!Hd}^b|dfw`vU6{$2mrt9sfDVMZ<FP^JGdX5J&MB3FSF->x
zC|crS(RVw4{`~hr#{LH;*bH;{Z?{4==AXC4x(p^ZjH(8!3dT&)a3LS!1cd<Lh&WyP
zhO2rap_uWVA|b>#UW*SxA|cPpkE!YkB|nf%!IEc+lpV$Da2*~KDYUGF^Cgt?zwR^L
zUNkoDRuu#*E^Uz<+@Xqseqrk`GLnG~^-4LNr?8=$1a)uVw*pnbdf$K`2?M~VWLG&9
zCRVlA?vUxK%)g0;Ls~bj(_2;db5fxtA-~5b6oEiRRw+B)1MdmqAV*34*-|ydw+xv?
zC^8IpyQlJRY^n!t9Zia;-$lkojq-m>571MnJ(8o;{1Jpf$%}~nTWjQ2WC#(`hL-#5
z0UL6x%yOaR;!SL2YDsexrm4r3{O`B)paPQ-2+6~R7|z`;J1eh~OeFe8hX!YqYpArN
ze19(S?{QxZ%HBoIjLM(DKZzE&P{}p*!9VTsNMtfL$ue)122LMI8H8<}!_eCK4jFWC
zO~Es38n3X#C@$ROjz;}|fY*$iJ&Rv#YH3rv(9HYL@>Bd%FC<;I$dD#KNoyGWT}!>s
z21}_A(}F;PYNtz{d@B>Ldo@xc$f0O%ebx(2KHc4fCQ)6ddzVtu(K=nhl96I&Q&29r
zx1;>pd}dMx2zMnWQ`kifg)GFP_OItYORhJO(r2j-E|UzCOTeGG2p%mbiu0(NjGp*(
zTe;XsI^G*Qu<;V4G%b<y*neV#MExBVsrTu%Tm0<%jFumed~~r?`OgAVnASpU!ZI>-
z7eHFfu!LXrX+e=SKL)JEGwN)jpPnA|YZz@3dO^^f&g&nz%(5(29pxhQUDi5h@RHPl
z#VxQUvj!M#R=IvUz|sh@w#PLRBp;aGU(+Ruk^zW>6b|N|qz-MxBsFY-<W#5=Y0~6*
zU&*Ch?>#I2l7bE$&<tw1h<gewn{y%qGZSNt=?5~N#VX0&!xmCyy1WRz^|}HF93f#O
z=%K3MI$Q!0%G4!zv7tUvE5|@sK^tBbof;wCF`1u?^|QzODelRi77dR~LCNZr<A7jQ
zrP23#1>)wh*Wx9bdV&uoZ=?tuWH(6!eFYQ+==JUMFIA<{s_=JM6AYwv*a50C`iKx;
zZKhix2M{o?=CyL17|*Y6z=?SBFnFNzB@@3B`r7Jv(kfFc_tv$<Q7P~ETd(UMYAw09
zSWNi+q(os55q_%@`GsrJ1{iw)Z$6Q6v;cu`NVt$PlZ2swLp{Cq)HuB`=By!Ka{vt?
z9;<ZsGNCN3Hg28hcH2BL5Z7UKfjDT2Lcp-+zi9>we6&Ykw(O9B+XwUL5_&1q4{TB`
z61vg9CP>bDk$n>#C|XLpywT2@%+`2UKjH?k2rH@Y6i-n|aor|)JG!q0Sh<GQ>LeJ2
z*A}q!n&Un{6yL14S-)g_*SbI1Zm7lN+OfY&=)HSlLW$;bNJ%5|d<vHRtwf{(k@nU{
zGyHw!aTfJxn59$xIIz#MN|)9bhHE(*EKaGO_l_f*NA-owt-VV;TjEwx$#Q|)?9(&`
z(*HLBp((0ca=wGq1r0A*axuTucn9_*3bW36xk;CZ93mR#8K>HgZWh8MqR_%R2o_15
zZ+yVe1t%%!w#r0f5`}$=n0CBY4fD{b6n(Gqtw+#D@>!xq;T>ACX~*tx6laCCt>?H~
z`nK8KBQ^^VRHxmOBN#y#hcGGDN;NMklBVs>$=pso&If1Ad91bjaDA2O)WI@)|7~cE
zgo4Q1Qr+yz`7z<5?QAgm70m*i=UxSv=HJ;CHu2D}$ZK?!tlc^BVoGuG41+w7naYN6
z8+7;+)+Q-{ST1_ut?Xn~TcP4}I;c}#mIX!(9<5>yrHM#xqw+wBp+TQQg?ZaZ;f)jj
zX?#T$UEiI~>HNl8he~F??ymYDWZS;Tf;vIDTr;En;5*0}DwP<j_(92KdFp8vL5^9Z
zZX-ndwEFKnYdAK(Jx2>JrSH8!zfMEV1o1aUv!go;jbBI6XP1fF_FwZ#mn+q50F7aS
zSt;PFZw;!=8Hx$DbP7wyl>jZJPFstD3qFpkv#WRnK4)cpHg8x8f8Jx(D3k3KwiG4e
z6|v<qv6F<sTJii_opA;XAEK9rdl$Lxpt-HhyL@n|3T`Syi;faJ!w#J((o{tb2QS5w
zA1}lU+g6>L3kOe##rA!}XSA1aaplmwAsEz{ia1Q?HuMzbbmeP-kxus*D{Jf9Q_zQS
zX3fq{iPUoAeRFlX9a87do+C+&!Y5r|S!kf*6icuQi>}mOig6^Lh$}>sUIABZNI~WF
zJgs;hg+h~hcB-xfK~R?LpulF1&<OPv>LF>49^%sG0|qV+!>^>BQ|^giCfLchqz$$@
zVKJTDk;#0qi$z8mD@aef=)ykRqorMtNl=Iv74OKA`yetb(Y@^YnL%Qyl>z#Y6<39s
z=61zE2^S?ZS|O?z{34;4Nn!y?Iv%3U-M>~XKs&=aI|1^7yTS9SfMh@1<`-Pkrbf~A
zSA*sa!S57yC=}NhnQk#$6H_q%%>08XL*IAPKQsooFUHk9wpg8IR;ceONp<tSv@=#2
z{b(dINGOY0wIQ?HF(T5{(ao$(AnM@jZtLc|4iSu^3|(E0oA3KpjXzbHwMK4%kmP%4
zA-=-^eF@i<|1CD&c4rs|;V$i{Bzv!QGukSF)4jYAH0G26$E8SS@WXS6AMx~F#@zrn
z{#OJiy{T8i2$Nj>Z^*-($=AGt{-)|tI2oKJ_u0kb`?kX5!xK!6HTDAWqd37T<iK3!
zIbm(2sqfl#8BCSEyM3gDw%f*f#8_wInx-{M%QT|)skWk4yw1@S3}p@;zJjQOmOqUv
z`y<zcnCSwhZYQTyvwqrOhNg~!6-MuT78MAL#78@lkqgP}2)cs=I-P$QjvP~5frv<2
z+c_?g#j)r?S&R%40-9ZZpLaY6!}r5l>z{|^jHrVwtkhmZEP$;)TA@ZtZAciAYfG$H
zjWKsT860W;gW!4Fw$z<*=N=f*FMFrg0?6%g`QLG;r}qt6VEI&mCeE4Ci@ydlH5`de
z6o5|*&tj$#GiR%8W}jKjrlZVQf0OcgI_N?1QMJQ=q|%+%K+av6R4B3`dGg)uYnG@s
zpX0knGDj+qeiau*Bw8k_<)23KNzCw0?De`f^CaccF{R?Ic<f2-H9`GK+6xvRO0~OA
z%F26HzlZm8cV*eI;bcYm78>5gDji<iQkehzoYrq5=<;VbKE*YcT@%Nz?<aQZ2<A9p
zDl#N3|Fk1=m-#BhMe2k`h)_zSv~_x@Ev7iLihxK&K*~Jz*?5bbva<o<Z%5gx=kb=H
zOYNKjM1_2bZEqsmxiFkI7NcR40CVpJ<ut8l*<FVdDkKf5PUQ0F9klieD=0ZrKT4qU
z2Lo`aE|-YTh$#6WiU9|MKdt$?-|2=WdlaB*Q|fwa%c&!<#Bj>3>PigdwtuiVJ42Ta
z9WJRoAg0~#+?|Mp1&JACI|Ul^wUv<{SPmtTYz~!Vk32jVW_s+L50INm<cX)V2@5@k
zzVB+nSZHp0t7~ung_o>z%eHWw#Ry~G8Do-!v2$CE3I}cU;T(ejObUNJxckRxh8RNK
zMtalLJdPm$A$v%8>{0i!y)#x?^-&F3>bTDJ=qNOH!#SEPs6PcCfgH#)8gvmlZT)b&
zZ_3zGtFDjypxtB=jN3jBwU4IFI$)Le?}pvp&kcIEUDZ5won@R(vlqylI;LFu1V}GX
zD8`R)Q9N)DI|#q4H8`~mh~aw$HkW0Y4Z2H79lNx~U^lr7^cK2ls1UIU2$LIUktZhX
z`^67M{0B-~pjq*dxSWgU$J@)p(>#NFg|C5~q{hXSg7!*g?b7A^9%u+6&)+4ZznA1Q
z$Q5lLsI(<oR7-`iAObpA%KcuEa&J~WH1g_)7==i}q3r%>)d<?`44ZDl^Zwl6z|1C)
zC#_j-cGQcj7qKkVXtaf{pQY`ln#+Xlv(!hM&16BuJP3tX>4;@;e1W)k7+{(w@(^`~
ziAdj60vBDzzR%oL2meaB1fQEFF6lY%zE-K(94>FpB6@dAB!N-B<N`z`42oSZ)KODX
zZE})7H=mG__()Ad7V<Gh0+vUq?G%DC{F~q7*m8&ws%F#W*AT~)avn&!GenMtZZ&LL
z(RXQ|k6WE^I6&~X@?rfEKDSlQT9Kk!6(%><le#2MY07Jp8+5T;RSwP{b(L%d=;ENq
zi;shn&`xlJag?MzAs^8lQ5=5;HoM_rDj_2ul4ZAY4dlU1vH9NgH3^>Crhs@7JylYN
zD#CFHSu;ILf8Pbp#jFKc=bIZc?>n^CAp)ml0AdY^g7V&zrwQ%$?XwC(^sL`=UCn*h
zR!A@RGPd_tyc<MT^%0jMBz|q4v>LKot$v%$aeqWk`gB()`}%SLSrFpp7V?y_+H*NI
zr?urDJO3HCnbQOcyCRLt>2D(>VBqx=8UigetLz7&P02cY5T`Cpmy@&vKGbGTCyeYc
z0Jjxl=QwZTU~re5g<*}=DZA_u_+gQ_(iAbP!W~-0I$A23+0%&0h?UZC0Nyw2`T)Pt
z_pFOw9^R7|P;Nj0X&pw`IwG+$f^ObWc{4aeDy6yH)!pM>y44qFu07|yvA3ji0n|-T
zSY*h<$(>|+gKwf8LZo@B{*05QBT57D<f^I(jhe9oLxu9bEu+UoKr8~{{1QY@%eYB-
z=OQ51KDqNH4FAQA=|tD0=!+4f+CoYDZpm=6v>N{-O*#rjDxPTbIW4hN@B30aB+Wa}
zB~>cmwiNQPldH<gg?BZt?7zy~zl`a`uVRz^R~NWVm94-w5MM`I2Vc&X@fykFhewRZ
z?=-$^p)|CfuN-6c;wSDxF^?J1TmGYvXgej=z|Xf!WCI8SIQ}O-)f^V!nXy<)5iG_d
z`_9+*k}<9XF;_V1sxNv@V~z)@jI<XEdBN36$u!*GwML8n4wTatk#jR{Mm0Pi6*q&D
z#~gDq!^th&4Kn=d31pt0Cl_dD8iJ4&!)Ygt7t{_d1NUnmU7mVbTpn<jk(dAc`W#|)
zgHpPmI#@=D1dGb%)T`b2uqQ$@j*We}i{mep{;TDp)jd&-szS7j$;c}Syzg|S)fl<J
z?m7j&$MyL^8lhaD?$sJ1^x+d}usH)Z&;v{_U`#7Uv2avxM34hxSiY2;gOXe(BfwD?
zrIUyVRAjcy>AtuwWZ|#YWXmdgXJ?2q`Ruc605}CfO9_ut+rXJ4{nA^=GA#jv`ocx!
zc(Sa*jcx_fU~paGnfIm*|6i#!@DB}AkQLumTrzcBxJW+J%s-xOU1uJSITZES5fi%P
z?mo`ob2LnSq}JA?O}Y%AP77J(Y-jGY-Ay<`Mvfs16=yQ+C*Gebj2%v{=`Y}S>_1S(
z+lt&aH+%vP$SZw)%Z)LRdlyTGr6pbaL^k}SLh9J5Q+BrfW3&HN<Gg5Fs2RC%j_*$-
zr7^eFb$#Kyl9HX*G9;hoKVvf6IXtLxd`%taY<uYP@)HAAtKkyAo^M7B!PA=&kEWXo
z{iKuq8VBjH-GMp-rw8YvdWx=}TncDy2*eZ&Fy8&b1a9GL{Ylm;a3I6D<#Od_+3C7m
z;CI`8WRU@a=V!c$tc=4b(rr1m7&uLAE=?9l#OPkht^8p=)w*J1fG8*+!Z6%9)VDB?
zt0dGogiW{T82}-MESQEU@oCPkk~chB`C7Mi8;WjR8LsPRz>W=}o(*x4E8e9sy)0JI
z2^tL~jUh=SH0AFdKS((7ZBtYueKL+`ckK4Pzg34>aQA)*QNj18sL9PU>4|=O8UC0?
zVVxXr#Gkcx+6<g7KqBBSraL%R$Ww?#q?wRMb!le!f*;_Vp7SR$FB|WNHaB7RW9|m0
zz2ASqBce^{VNzrJ>p4-1cWAOa>bHp5oc@-S3BvKoQ+ZBs88Ho8Rcamv82|nL{Cjey
zJ9G&QSf?GlRnvD>;ah?R@)`WKMR-q8{$zDPp#%2kOeJ3OOr>_3%;`Hkpqc3Pw|n5E
z$UX3m<i6jr72~)@5*hywy~x8+TqL|@LZoE6g6Xhng_kJQ<SSX`OJQ-o?_Yn~{E7Wf
ze|;cg*xns)r-W42t?icO-cQfge@xmtO_c>~mDSvvCWK&9ny+1kbIa-gzI3*hu?*u`
z>*nCe;<D{I+=(U(dWIk?#`EW^y^_uq(6_d1Z{0tV!o6><aHg27zi#Ei*CRrZ0;Cto
zR0!LG{5w+w84kBd&ynUI25$vQe>XUn9_^GBV$$3Z@N--mzC8Kkdi0riqKQ68uHWcH
z6ob)WYWkzS;(mqHEUC2L$Gx^X&-r*pLlX;)fI0A_ld#dG<dMOwv-5m`S1)bJlMC}D
z<^D1)2x+l?$U=&eMzaYq6t3zQF$4g*9zDa~aqSZ(s_04!>0I{RKF%M{yQCv-r>|D)
z_uw8pD*uRqKxzn=m`@K9x}S(5Arx9|ozH(cqS3QsQ3hYa0qbmrC*6}i1tkQKVv2WU
z4V)oL#UhE(4Q!;Zr!X=oq@^ImE=dPayz9H$_I2Mt?WPYKK-(piSbAKh0uO3Oexp@o
z=VG&S&9%b}D)SGeFE`3C!23c#*RaeLb_L)*>_{H!W4yLgrZK>Uvd4de1r>$M>H$%2
zvJ#z-H@8at;^4pZI?}rS?)=ta?6V42&|vgFrsvtvp=_uv?+5!DL4~V_v|6hFR`_PJ
zry@!a&3y%+34EliRy|8M5N*uYubWY(A%x0tbV~!N!NR@$5Pdp)VLSu)Wea&^3V3jx
zGFN-7Lm_=?l}mZS1sAhg+>84erFU2fL-f+rl7ZpzEp()0vM=i~)Tg=wCx4`?w-C|V
zN6lxhCO1A7q8=InFr<hm66I6m8Du8T&Ik)lTrdeqXK<ww(ww<;%iBkOv?8zY(fX!e
zIJ(LgE!`^Ac5>*t(O^)b2<OmX;P2FG@wO|zdy#S?UAjf?GO)(bLSZ$ae4paxazI5H
zW8=qJ#9ehSkV@8i>oJLTy??${ir{RKN{d<VcOyIY*=UEE#blesFl_QIG-r{F{q3lK
z@GJGbb7Uyl|J@8s^+H%j?m~D~_pcvAl@<FV=3`P1@wdzYdV>WiaASVzI>kvxAlbff
zu2(bt#Cb#>LJLXe3_qpm&}sBW*KN_E@wII6?UR*^qsAn(POSa$r_a(4q6x^Of2oDR
z(wA``M`Ei?)lu^g{vigGjrXVxdaJ!9Sfe~UKtGVKK;FxGb{`#Hi^pz0zp+iap0{7Y
zBmFb<a97JhbpLs|3O0vBpr#8pIzrkPifPm4I}kQDkHHxA>f*07y-OIQ<p=4<A`oXa
zKMHg>DH4M;DjW((8GqPLtNiPVpW_-E53IcH@dIz;PhRzMo#sGC4%qz*={*0ESA5a?
zLQ<p0^YCh$dAECmeRU(^Qk@3VOh)_j)1lWWWjwauV8TOdFNK1Y*xJ6AXIz>-j$Yt_
zY`WncmQpB7ZCJE;FH4BG_rmin4$V)9r=aXyF(c+Mc#Z5(Ud>C1#u$;F<sR{+^vmB}
zA#dq(71OHF^hk4V5eZWMe^7z3z%to_lY9h5T<uRu9s{KF<<j{!wC%E3_PIoxBGNuB
z_l?E%F8lPf>N5`L<i$BDnNXF-r+h2>BCSkFiZlszOz+?enze%9Tiw=d)Qjg|9#HCi
zwr+^en0vDCNn6Y5T)Z9OhEn2mDKc{MRgGwTO59eR+8y=toHm8kx9fgbdl7bmJs~@M
zSavjs_!P5srKU;^p|;X3G&2qk>GIs*+tdB-?-y7V&py@u;Q<%mo$^WGtB?_5oH2_K
zvjou4?GVth$TLLz`Exg%M)!sOM1i;%_$^?jX4m2x1RbsAo^3JQ3v&8++Ecg2!Ky#3
z0TwvS8R;j4LxbG-7)mK-e9xqj#R8{pI?pJ`f}%#NM$jB;@S<ndT`Za^M|Gl&jv+ls
zhuE{T!>MG;0pPK@ysJ+Ml?0CsEulumT@T>2%&b=IZaA7wq+o`gFe1<5!@hP!j2eYZ
zC@yKfWw_2*O&$&0myrEXp|JTg0SUvRYF)Kv99<E{vcd_Y^x!0CA+*}YC|Q({q7oVS
zqd#h*Q0$hlf@XGy+rw^RQhnEP!sO7X@;|X&9!wlO=IiyoTjCLxSaS8_T?Dl#@Cd7I
zWp9u<Nvx=E!DPhVN_a&5qwN+={*OawajZt=Z?z88mNgXV?&t3B9^l^B4|zj-Q>7Y+
zm;Wq#S(VxNLX0D}92;gpDA8LLsc&!vIlypL?lwWKz-R3$@lNQXpIS;pB(;(Z=)j)$
zTmVgWIRAAI70)U5brAZ;QMN1G%>Ss#h^kd0$Zck}3)|_#?Yih&?RIh5kse+b-P}pn
z*j+Rk@})7F`=$?i-*V%IJ9&b^NG(ud5q5X`&?7>)09qi~2UPehb?ymKpL|D%;%3a*
zv@>ppgq(CEDDk<5X#>}>domKwrm(h;8o$xdv_!B%H|XLM=jd)}S%|ej`ht`Ala}jM
zkwC!s>%=klRSXQ4#CBJxNS|91K%92KlUN>hg?|^8F9ku+;zEb&665!ALG<Fv0l<Hu
zj}xz@c$)x$)*{RAa1nCxCvc*JRBV%Hsh`%<igM?WvgLz67wM>g*w?nN&Af}U2|f&f
z;bu4n*#q_k3q%$?I%ixIw7vk}&&Ix|e>K)8xE-RtYt-hxUZKzp=^XSU9&U6Uk{JVl
zQjB?T=O9WAcJUHM_dG*g0?JvYuT;19$_J6EzbBa@k$j0457UeU$d)(NsaZ3}9=p?w
zK=KsvjT3voG8}?o^Lh0kB6RbIFs-cDc_vtONBHN;)1dXuMkD*-?%)Z6=G&k)7@Se<
z$~Dc+`s2x`1|%P#K87mD*z2FNR$H8;A&pl1TbB(=J#L6>1T6&!v=e1aKs)>`oJ*jC
z^GZ8ip|kp5J!(eF%X*FPf3wQ?Z&RR_>#YX=FaX&>=+}*73n1d`uE%tlW*OQYQ72bj
zKZcfC=6j@W4~FLD3WDGV?vyJHN9MI`w{VIswq~@(Gtg_jYz5X&^M%TaV`fO?G~sIr
zjmrbE5M!fe?hz1`Pb^k9U>$Ux#Go_vr>ZI~c`&w7_nF4=Q!?h<PF6`UN4}lYF^RZ^
z$cXXz70~wv)#8&GC>?U+=4wdEasWuim50E8r}+R(jw9W#eGry98uhwF>1JCtxjm+)
zT4Uxy*oKsha{s-%`dwbcd^pNhN!wdrRc67wSbpivLt@=edLdB(<NQrKrf{oF-eXks
zUhtoLo;XHg{~Ys_QaijDvZm!<WtdU<WBkW4%uRPypD5G_)$PLh^2oFrig0AwDUpN5
znGRV}rzM1pF~)s@dEn(y(P7)J^fdI`avgGj?Y6)zuAqFIDB#wu&sr+>b4r5!n7@Mo
zf!Z7}g1^n<P+Z{StEJ<GvNn1m<JoU{ulJ-0=6$&<?7`acSacpkQY?=DK$H|<%4)E-
z+5H4|h1ae&x*8b_orzh}1JmoJ0unvH(zqSGWfN4ico8U5Z(V<&w>h0cmFopf*wEnf
z1lECLZ5<^KonhOwf}|U5lY0f?zP=FnKQ8|8U3*fdVQcy1Nn&{y-EO3KWpQ4dD3*5V
zG;qQH9l=zC$TO_iclofvB0l`iJHr<p%=oV+R5x|Q<Ns(ve~B%lCIy<lCAJCT+TG^z
zPXbR(;)>imCm?)<pEbqHgit}SanwBX8YY8`GeGm{Y;3%fM>+~-3MwKT(20#rjC}n_
z`40JhH?ZSEaRLyr&mL<{r@o3+thle8xPMwLbEAlL-0<tC{sd#aniwqyAzUCE7u69Y
z!eHZPpHi#oLahI3iYYQ05Mi$Ub)g~`tSFCL)8w<I>|C&2U3;CNK%%|=ZfV&*IZGkI
zLc^&ny79~B^vCPe6RqD$*&-z>%ba1*MI*kxLoaynjOEzST>6w&Ui+3fP-R1QA)xbo
zM!8Y9@8C#24f3Lz3|5j-6r*0WanvfKbvEmt3O<R1BvoegC_&veUOrf|azcq`SN!Zn
z@HpdjBj4;J0{4fP@ngCpL>ON)8)a9j-aVmKt9Fb-RD;YCNcg?~nZV&WK`6U6T1t*W
zXZy%EdIxME9z~R8X*zFR-6khTd?CaCi+;IVh~e0b_{A2&pJ6UktBhmO?Vp5(Z!xze
z_R&lmh5a-v{w%$H5tVukKl8H5Jy5{TAj<-cqx1|hFWvjGI7OkmDbS~@GN=lj2fA$T
z|HZKAKYFnDNqZ^xqHc+$MGfJN4mi&`^M7{GIk>Q!*@pRNGaW0AV{aKZ9LDr7o38gu
zB9k_ZgDA(ke{H&|c1RvoX?z7N&F@Q{OAtp%Pj)hG)p&l1$E>%JiY~G7$3U1{55W|h
zYy2ICyj7kG;Zz6xWz{~Ydb}S_XM4`Ymx)A5(%qxrMi>mVm)&)c#K^MV!dus3NaUlu
z&GnYAkkMqg)*-)W+7JFMODTX;AiIId8oR~Yvapw;aq1!-4+kGhFxS3cX<E($79b*z
z^x^vC_Q~jBfg^gKA^g#Hg4PC?!O_(w5(TkJp)CQ=!3ytrJJ)$p&hg7uE?v9*OQ@b3
zr{)YVlgTEFq%GmDPV;67qUs%-mG<zrE4(`SgR(^NDvhGogN#RC)OxUqfpt;Ma6qpp
zb3m=B5B~-eV7fD_g|mks16-vr4St1$KPa&W8{7H@v6cxNa*&zf4ZYb;ACk`>-pIdC
zG$Ljo!U5iJYuR+H-qzkf1jMNB^SqpETk_7sMW?Qs0N$QXmZl!1W;sX@qq2vW6L1|V
zZDlM~JWvE&0c=)ya>N^xJ%$92H)S<MyYg4q95#dPtU?jgqTUgfxc1v4R~2Cx2;>?U
z7hbu4iVh4u7~u3Cx_8x})enC2kss%$bar<~*!G4QRKgvvK<0d=+p<5PTj^o-1sR8g
zKph@2%A{%b2_z%NTgag%*97)s6|gCk^n8*cU9QdgekpR{oWK^-G5wv%eFi!tr_e3F
zgdejMNhu_V<=YSvi}+#<s^~!e7s-<+>|n0?=Bzo$%i|Hd?R}JdNPle;E(YN)`=33X
z9OMlhlU1t$|6g0@9nXgP{c)p}wyG$us#&W=)e34w(bnFZnlX#2J!3StRBJ|z*sfI+
z*WSBDVwQ>#d!=>-vFj)9x8GOq@AvyZuUC@uoaZ^8bDs0Ok5TsOQCdM8(bMcNXvu_a
zK*B6@_C`PXYFGrgg+=g&NhW_ug6?F|SyypTOkC+YAL;d`N)3C6=o{M#XS5vukV3k2
z6(M~PS$|cm?#zdA?gy+GN|TiBxg!Z25-wLHxYh{ASZX8p4*-qu-lp8<`maulbsS$-
zFXb<Fl|s1zF1vF@#jn6cj4i(Vb2r`COsqCN81^SMHWM}U;{-Py#|Xp4n<NI`x$Hw#
z*IBI~h`hv}V0PYp+6cWZWx^}E>ii9IAq`?Ez2nECW{;s^&Is=^q4nI8A=zBM=s&ll
zE#o}b4pKco7ad!EDsr9Ow7>rOdXNisK`Z~l9-u0d*M;Q%2aC2Vsj^z*)Pi6!dSdo2
z5Ix{g2YY*-s-e{_Pl}q`rQw)h8ukr0r+G0;zG(58H~jjkKU_FSs7vDWdJXuN2b)^Y
z8swWTnwBUL5+2dc(=`EMCBoIKP-5A0VOeVmG%ZsIfQ=;EGpFwFTf60kZa)UDhbeTu
zB5@&}Co&zm^1N=zjcRP_)`I+;c?pB1(gM+L3bFlNQhuRuyPcbsDRUTN)SaHNYNCmk
z2Ra1RWk4op!p0X1=otjR3LSm|&XS?J;rX64+a#sSghf2+IZKq?<e2ES6qXY9{pw1x
z+g4P2ny44mqGykXjp67hQ*oGCtDnfk>{ux`qnK4k*$B43b+id`vUi>+M`ajELjD&R
zy6Tc<|D;oZb<Ub}f95$u1n|c3eNhVnMav3PT*$5^2jvM^Ke<)k2;PfW73QVcM&6;e
z9+dbaQ9?3C3&r_C!G2k%bY{ti&gZG(J~ufRWW`{-kdBR^G7OcZC5C9}uvQ2MsSry%
zrqBU?V;3Fr1Z=)}o6l?LH_&vpT+9^ul};bRo7@CRrSs?+B}K*0FBcRI?Y)|jrgAO1
zA)YzN{DFb`t=QjV4MsVRAQ2l#P>i;UBi)Y_68eLu)ej!EVqW)!F9wS#t_S!x(xGxT
zmo0Ev)}NfN($o;O3fs2%oEm)Pjgj{g>3<(~@DDQdzkNE+jr?c&rW1BG(|u4@TFuKW
zqUhu3+kd!<XtQ_=ka`fD*!DL!hg&%#ewNy(BkT=zWjXXL*wpb9cxpTyo&nG7#8MG6
z0lfB(wlEd1x#QO96v9a{OR~@PtVr?+1>u@@R4Pc<5vD@#C6~T|)xXaSxWyz;WjCF#
zYg)4r*kHR}n(TtXe|Da25x2t*oC!(!Fu$8<KC$e}kO{ZOZ^=ZiTkSWIZy!Orqai|=
zSnqZ8v``OgrQdFJvU+Mw_i4Q&W<<XjojF;1u9SU<TG1eW#cHEQOm^3LPmbb#mCrqN
z<Mo9%mEamd?2Cz~?Lw)NAK%&2)QNr1XQz_n=pw46bH6WV{*YzKpIC!>Db$e7hvE*&
zDAbyPgzQ-yto&MtX5C%pL-+?`(L9Z-+i^rwRaF)*{YD(Blth--?_Rln^_o8oXTr}C
zsoGFe<Y}YlaUC|+>OSV+`{>5(Mkk?^M6K#Zs&@V;ai`(pc(wcm52I>0`$BI#+4<Jx
zXL$iTio(zh{o*lN+DTmbz&188a@vfmcrdhf`~B4~d;>7JV^JH_)C{CHq6JdJ=z)%_
z5^_mE%B*aTEe?FEB5y4R8l)Wd4S|J2kLB^a(pR^oz$^`BY83i0Yxxz+Ys<%|Y;yR$
z1xDY<?rV2F=3eX51g@OC7=Uo4>e7FTwqTF~%4B#*QtCM-3&=jNI+}V8_WY1ec63tw
zV^6e7jFM3-^88a-$o4+aOwxzPp<k+H#P1JQ3Q`NO(Qi^<@+B#zORQz7{V4^_Lus~{
z9zI;;a_ldbp54*D;U%s7-$kMvXC5b1T7^BU<!?nItJy-U@0wRmjMB(Lna_P*|KiAh
zX&LcuBig9c??H$pG1M~wmUMbb%$WIS-IsduhJ{%}n-54U><t~ps+}ljb?341t=p$x
z2ZROR*i!|zWywcsXYm{!#+s;}ga!qLQlHZw4{b_mBVXSISA>+B=>j}g7iRNSv3lor
zM;Gh%j&j?Yp{#k+{Ws*8jqp)xNVndw&COV~i2$WF0TNEXwUrxpq>0rzpG`LCd^(LO
z?`Ypepg6hUC_rKMi(w#f%3?jwOlq8byIT03PViR^VTrxist4<xo+Vtm=(an}AUa+#
zRDy&Pz*%1bI5~(RzNUNb7fUt+u$;9}2rLtLRy+{FoWe4Q1i2DdjSh3j(ppyR1;L~t
zB7e5JGJ~CKtL3qkJ14L&swzgi(c3V2=w(0~eOAq*R17A^xIDq=F;1WjCucQw!lc>D
z9xjLcT9ZE};tm|mQP7J8fq!DFgr~?^s@A~kVa?o9m8X6GiDio0ivE!COYolexK+2*
z_Og^wjoTtOHwo4;Ib|*dxkR6ilidVzeM75IJKlIG1Lv;^q%Ra^Y<xRl(uTEJEzC`w
z)UvLj`k3(50Myq;ogZ9PL_Vimr(Z50oWp{UB%OBSrWnXTPN_C}cgjihq?Sj~7VfKV
z4DI=9;JHvgg|DnOwDu|7%}T)aUN|>|ri7{aA|hd{%jacA=92L!LShI0S?BP5`J>>^
z2PdO=Pw_E2ubPQJs<f*UT*PosoG!VJUiT=Gs_A7B@p2)?cCqO$2r=Q_DQipPUV$fs
z^ex2!qU<Vr$#T3TL3D@iK7V;wjT5ORIW?&k+hM_UvxD@)JLFbvLUG7p`Zi*BV=}gl
z)h8mpWwd&VJTH9i)lg<ugbX5ueZ;V$6z%P9ouW5IWmCzTbF;tW4FLU+<a$8<&B-*^
zywPrCp4W##;j4&Ui0BRMVC2<~*D+4$d+$NL@99!9Z0+Tm)gWN({C@G*wV_5zZG-$z
zB^oD%VyRzMoTTU^j)qXUnZV}P^YSuIGdt-*Q3DDhQAt2A0?`sw<yxgb{T#6#*?@Va
zE8vmZT7e>+iB()m7!b$BHtB^Q@XXw`6<3N!4kft@A^emP6N$Epm7hwM%f91BaXLX}
zb^C%Hnv2i@dc4rD@deSO0NAMG*rTCb4yvBDA^(y4`9Vg7ht0-EHkt3BbFV{QM6b5R
zOlEsj_P<X4b2}&Rb^PeKdtk?#4t2vt)8r#9DaA;4W^8KNal1#Zg8y2q6q7twP!5EY
zBr2XUb-nRz4aRR+{IyUbCECk3J#m(p`uOg{s0&LBu0VIX99OHM>$E{=RQjVrwaE0L
zm$q4Gb0?!+@EW|Z-px++UvREsZ$6fv&L3x;J<^SRs@m-^OkE7OP6PbLSqVO18-IyD
zTiK-Lo9K_=r$G@0o?9cSg!7yeBE9^&VbgjZvs#d)0IN*o%h=3YznOr8m$zu8NWXYm
z%KMt=Tkr1<YvV$+@9Wf!OlY1%>azvi<*b%|n!zOI1?!reUOP->t|-j=zDvUdSqjvw
z&doKPs^)49;m1{O4kFXy%7{w00I~QG3D({CTdNZMP@Rqk-&TE;$=|~GlY)&NtPN3n
zA(N}Wti|{OAuJC%o3u2J(4>t0h6P+78A;yBISK(~%8>5z<;y=uc}t=xd}Bzr(+pHz
zMrKql<JLQCiYh!k1uf`UC7S~2Sy;^Ja;A92n)vh&`;!f@*~{tKmwaV_K0TVpfO#x+
zeLyUWzkD*Rrbvv@udQm1;=)vM_Sr>D=Yki?S9I4KK{3HB*qa+-{9McyfZ!!)-hI9b
z(^p%JMKOK!1R20VIZ^xDA#saI&EQ(;cEfa|m-y=IgO{eFW-D3W;Ya5ox5vry${A6M
zv7CIq@-V-*#hr^fv>*YV4`y)6_ZIM&_nAqQ<l9M<&2B8}WoGW*hlt7F?@e*B9&bIB
z^zbJz$F%pRDCH+M;^2>*I3bC14vEt_jrA;<whp)BhOeW#n3n_oJ_W=2c5@{%yRE*F
z-yf4Kqnah!6-BJu?FIzdHyAz6#ufA(ga@V|W&e_2wiNdW2uN<IY}%S^4y9bdvgDiA
zzItof9Fh|ydL{ZazaW6CjLz)RULK~--*jD5i}f)#jH;uKkTgHSe$lip8+nR-oprsj
z3C<5Va{B%|77kM(WwXWjonwP<L*yZ*2Y~1QeP4CMgM+XG>228x;gHcXS6SUw(3u(}
zRG_kE;)h#?1gz=1qu1?ErB6W*{gid|fvh)^@_&jdWA^d`C)e@=(F-YoChNJmJoOaz
z-5UvKCkLnyi-ULIVi{OIN=O+ql$Jr@iuI|iq;U%PnS(-gzzB#ofIT(GLaRtETR_Ku
z69#Wl<g%R~fmJwMd96*lMV_fWtK+-*Z8)u51^oG{vhh+{?i-8@v~U#ozpz-{wT7M7
zGdC9(SX+gn7E+(9V(&S2J<7?9Ajr)RMe+R&-1#olb{RhyeF^R)d49=J=ZbMbMGJ@i
zb~USmq^-z{bm`TQ;<|GYbDmvJ2;lkMOe{nyC8I|k*y5WkkH>)yLu?~+a!~bp9NCq;
z{>c-!qT7l~IVQoXMYuRv!ymLtos3$yA3Ho+Dh-_3%s4F=lsU4d8bC1IxY@*UejUWO
zy0)EkdlCO$H>nxcvZ{TgnN*C+%vjm$>ps0Wn^?s=94ixIdJBwCr0oz7Qx6}4<Mj)1
zkx4OpOo=gk;l1}q9~q@<Ie|tEvey!l4!X9{j^w2YK*VJF1MQleGG6<v`V#+C{sYqf
zgH&->@9wyT*>-X&ECcYg3#jIl?+DGvet22Zzm67fso7!pr`GshdZd?&Aixu)Yj~u3
z{_jPa3o;razfZAuA-m0jBq=8f#%ryagPp@K_gf?R1EA*T((QWRuM1Ngijjg*OrT+)
z_2IP<dc;{`Ucam<XgydJ<Pu;CBJbcSPv1_73c0tUu+YMEZX~P;;mtQ5<XlfHfO)Nu
zB5!-E3-3#CAjqC8t^6$ob37$Ia-RYxTsqRQSG#g0N6wONQvJ1;i?z;6*Wl!jR}RXO
zcy;HdfqCLR1^gPwf)W9gJ+a|(rT61Fu^$6Y^CPJH%kgOnTXt>^BM95bZ&_Q_cwEtB
zj88nb`T&_N>)~8GH0w|KZz6=*5{RvLM!=F@FtZUodesY)<4c?oD}H&~80X{f_s?yk
zxoPh$;cRDkB-_7CRASrRl68FLnC#@*$@{o)!Z?o&Q*UV7MKu3=QKq9aoDy1Q-aPrh
z**RG`+;BdcPWI%l(H+lc=kUmQ36rL9?Hpr-O^UU_oeBCcN&^W3pWXV&k&W7)9nZ+!
zOlUYXiZgkZOpestOW$d)CTAS&jW~#$d0Gr7jsJPHZP49(!|T%>F?;|`+{$iPu}<S0
zu$f_gK?n=;{pqjJl=Sq&U`6;s<*6GiuK3(mIX$>zaZsf8F8C4YCONsTZK2cn0XMiY
zVtvdN*twbx-g-XmrT)%`FdPM}uJ~0fQ4}3GNKo3C^{R*_wtvz#_Q4*h^qBv25FRVH
zmfHX(w4OIK!8g#Ummm;y1^BY{*78zV3)Q4TA|Sj5Sz;%$DVKf|Fwga)i}LXAO8bGt
z^v7;6$A!-k`4KeSDHYgTH-7@1#+)ny8%<kGj`b?~!h{iL!&F(gwhj-s4~uh;3B$2R
z5_%2E-EbQX_OSA0kQ$w5<4TAyw?=X<s@L-6g!q^HqAdAJ`V{w8ok*&w&0A*H!}1Id
z+0=6wS6iG#{b2@S49<(3@#dv31v2c<fP9!JM)4FGztbf}Cej!G9|_C6*32&Bo5-%x
z&JAhO?H+~Z7XYr-S7SYdF+agH6WaJ+osts?r{=g=$h(XGi+V*hZgsIunljDbbZI%C
z#jr@MoppX=RnsLlSC^Q?t2nI%ZT99ja-9=Dfbq9=(Jxd`6b$M3ZBXw_3M@e8^nb{-
ziZG8fZbI(8>NZzOY?Hz9IKc3fCK6@PLf6=_l&+TMld0{gh#P^&d#g-pq~A1o&y&Ob
zl%Z8K-e>0YOG19?8Sw}3_Vu1<;ew3`z&QQz-KB!DI7s-#??a}@;)8`R9JDj~;L7h*
zr^BFOJhR^mz${X4gOaE2XAN8$%3&Du-gk>`N5axH`}^F1b@$VvG{p=TA5PT>eR-2y
z$Kp@tLUwY9(QaiZD|bRLVXV&1Z_k62t!)$;bkT4L+d&Xj<|*M((64|U5J^B09m-`|
zt%nEgqAU4&4N}}d(2?=vse1vrUD*L|o~;dY%I8|w8Mhy@2tyA7$4>uJ8gyd!ik>m#
zn-F>Y_Dd|8W3!XWE;9Z;IBSTn`KqQW*RcQC<bh6*mC%21({9KZLQ4Q4;fv7>+K}2%
zs5!Jg2V9cZ4rRmOjwZm*5k9@T_G>}nAGUA1rF-hM%mkPozX;%NmA-9!Xq0>2Z?Cg6
z#LOeO54Yi|(j!1n#3!V12d=xDW=9{mWPAQKcLtRxEQZ>y#<-qi%P+s9HG;M<^(6l=
z*Z7>4RopD@bg`=d7CiM`1E&{dP3s%ubDBTQ=2GFav3+g`eR8f^bUIUah7Z0=Sf9&N
z<ed2NU)k=ZK$#pOA|iHwJtI$DS36H1D|cHWBHu|5HKeAB{*OL&HBAZ?b+y7PL;`77
Wzm?uBRKNH%k@7Q*r={|iZ~h0)dpX4b
index ac5c12305f678014fdd7ff2e924227b4c27956d3..79e113af753d7c9e848948e9726e3ab9ce8c36e3
GIT binary patch
literal 21161
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
Zs?u@SFeh~`mC;91U)x0Mt;Wsp{{a1(8=(LI
index ebb1fbc41af9775b12dfbdbb4c52effd55ef4470..da65534fa8a48de6ded4ad43c59d3578da0e7807
GIT binary patch
literal 25087
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
index a25aea80abe7ba002e0b2cf395ee844eae43b5c1..3e6e60e2a2c15fed7cf95258ad09a2c8672565fd
GIT binary patch
literal 69200
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
index ed85732ff7303e144928b2ca7b7a5f57816955c8..b4d5994995f24adf40fe10f407c9644e802b140d
GIT binary patch
literal 1885
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
XG|FRzKBMO&00000NkvXXu0mjf#Cwmi
index 399f098ce7545225f445d3abe886c2556c0fadad..e69bc4496139006ad20e34db308bfcc0cbc396c2
GIT binary patch
literal 1833
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
XOnJek`nEGx00000NkvXXu0mjfe*|f*
index ed85732ff7303e144928b2ca7b7a5f57816955c8..b4d5994995f24adf40fe10f407c9644e802b140d
GIT binary patch
literal 1885
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
XG|FRzKBMO&00000NkvXXu0mjf#Cwmi
index 399f098ce7545225f445d3abe886c2556c0fadad..e69bc4496139006ad20e34db308bfcc0cbc396c2
GIT binary patch
literal 1833
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
XOnJek`nEGx00000NkvXXu0mjfe*|f*
index ed85732ff7303e144928b2ca7b7a5f57816955c8..b4d5994995f24adf40fe10f407c9644e802b140d
GIT binary patch
literal 1885
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
XG|FRzKBMO&00000NkvXXu0mjf#Cwmi
index 399f098ce7545225f445d3abe886c2556c0fadad..e69bc4496139006ad20e34db308bfcc0cbc396c2
GIT binary patch
literal 1833
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
XOnJek`nEGx00000NkvXXu0mjfe*|f*
index c3dda613f6e9d511f35ce4750d9abcd47ec051c5..99588b83f0770a65d7b03d23767b5feede207f5a
GIT binary patch
literal 824
zc%17D@N?(olHy`uVBq!ia0vp^5+KaM3?#3wJbQ|PfiWz=C&cwX1>nm4uR!wt({DiX
z@WuC-3Z8uU^YrDnr>}lIefJwp>gvO9S08=9`t;|ud!K>axraZ^J^E$d#z*tlJ(#rf
z-J}CwrYyNLWzD1hJ)b5nz1y|?(X6e{XYG13YyZdD8y+t_@@eD6Z$)cA7SDZLz3NrX
ztUFQ7*HULaO<npvz2{~|{n_ZrkE3V4h;6+VSAQ|C?Ydvt`H)#}LZ?0tueuOXeA2S#
zwN>RU>--D0(ff^BpBpzlF^f8A7IRpx=7mD?CB=ku%C6f)iyw=YJ{2v0E|z*-Ec2FF
z?me-B2ja08#1k)zXWbIdyC)HNR3h|*MC2JsryY{6yCgmLN%|g?vfnD@wNJ|LV99@x
zv%r9kEeY}qW?*Dt=iubx;TIH<kXKYv*Eck`u(Eb@_w@Gl4-O5F1cLa4#PZrMAegZP
z2zCO&u3ZN~;KGGVm+s$x^b`nQfWRvd_yh!BfZ#U}s7lMQ1EbQ!)5S4F<9u?0g0R7+
zj~t$-PI_{E++bML&9&k1k(rfGdSjTBm6>CEp0r+h{FY_GBb}zIeT4xJvbj}K7QABh
zbxsa!Fgj8rcXvZd2*bpL;7{IOUS8ifT)MRBqlZ5eV+TurVp3AltY#g3_WgcJEDkCy
zbA*M2?xfz7+;LTC0fUmF<dj*nvQC~ppfHPzS%7oriYZe>eEHbe7=Mds2(){+q^G84
zGN|5QO_>rJ5;|q-(VdEJtm$cKQ6HTC9MM!dbDZnz_6gZ;Zf(nTENX5noxA7k(j5|t
z=S)wYKCNBCVl}-v{MtqX{qyckoR1t`|KGWDhe<y>H#d7dlfvcr9!@EhUxJn%3QqIe
z1;skj9^Nbv$WuFUhJnAVxuHgb!$2U#(M7?yziDH%hmTLk?2SzP#_Lw7npZL~^t}!*
V-Fh~5IWVFaJYD@<);T3K0RX&2zgqwR
index 5addb8fe70f6de4fab6f57dc7f927f4c5a6b6f81..d4769c3b8e44117ee7dd50730403f56cf7abfa9c
GIT binary patch
literal 861
zc$@)U1ETziP)<h;3K|Lk000e1NJLTq000;O000;W0{{R3*Qw3Q0005DP)t-s|Ns90
zF}46X$^a~=J6pI(XT1O~vH&Wj05P^BN3c3txBxV~05`?}ET{l6wg4}(06EG;W4r)1
z!A)wvO>My|PO|_ltvXt`KVP~^Xuef(!T~X~Crhz9T)6==u>(NPS#-kyEv*4EumU@_
z1wp_zTe<=_x&%MJ2S(2~V!mB_#{e&~MQy@Hd(1^_!dZOCS$)X@KeP-{*$Pt53{})H
zVZLRF&rf~JSAxv}M79uI-z#ImYLU|lTFnbx&kkYKM1RjshS5!s*aA<z17^$vY0d;!
z#06!}25iy^R?7)k%n4%831ra=aM%rI)em6T4|3cPXxI>H+7f5n6m{VhXX6!l;}&z{
z8Fc3veCZi~>K%CPAA;{7fbt-P@gjxwD^<5EVZSVB#4KyZEPm50fz>ivxif9XGj+@}
ze9$w1(=&zEJ8i@~bI3e^(L93EJcQIdir7SX%S3$5M19Rfjo3tw*-d}VO^ek{k=ad@
z+D(+(RfW%0h|yJy)K!w$RhQdUnA}yF-Cc{)U6t8gmf2mG+FhF5U7g)sp5A1P&}5F%
zWs}xro7-ia+hw2LWuf0~ip|oZiroMJ07G<APE!C13JVPm6B!vDA4Nq}R9042Sy@?M
zVr6A+Z-0uAmzSEMqNAgwtE;QAvb43eyurcE&DGV_-r?f$@$>io{{H^{{=dtlPyhe{
z6G=otR4C75V4yx=mC`b^u`$z<Vr5{MsDKa`*6-=<pD>}nx5q%FyRQo_E@{!)(Fq0}
zZ7uDc%`kC6^ZLey`nuZMy84DDAgF<gv*=Y+RXXZOaB)fKI#mNfIaETtq_osQ7R)Rz
zEdzogsDx@>VZJ7ql~Yg%0=ZBL)2!?aQ4k|7GaC%jp%T_9smYumhD>4-7$iU?EL~ik
z*|GWB(A~q07sg>ml92QE^-+d#6qUr_68v5P0d~?5wzRFEr#2f@f>AvvEW}=gkAs6x
z#Xck~P>m6$h1)nhDl$CS-#<7!GAi7d8)1u(NkmK>7{o-F2q8O+M<X;kHa<Q!I#h!P
n)yYf(@<vuxM)CqoR8Io{I&(+96FF>c00000NkvXXu0mjfsil87
index 00d235e34d9efe5081e165ac013aa65cdec603ab..376872aeddda79363a9c8f3d7f61f455276841c6
GIT binary patch
literal 13247
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
index c22a43d5977260a29d98c63ffc7bc923f5d9d1d8..2b08d68474a40ae849b31b8b0ba621537ace6d4c
GIT binary patch
literal 14240
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
CF>;jv
index 5ab4b46ee7e4cf1d07faa993b2b9c04171e1b728..7a752b87e70850f7be748ecc16cc34b6727e0504
GIT binary patch
literal 505
zc$@+G0S5kwP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0002_P)t-s|NsBh
zrX9qI5Y?s~=ZYfej3nrdCg_eP>5(ewlPl?!E$Pl!>Caf{(Oc@2E$Wpn>X<R>m@(^{
zH0+)@?4LO7p*rrQKJKYQ@2yAhtVi&#N${~t@Uu<vvQ6>1RP(x3^TAv6zgqObTldUp
z_s(kf&}{h2X!+4@`O|Uv)o}UUdHLRX`qFRu)^z&WcKYCb``mi_;(z<)f&1r#{NR86
z-+uk&g#O@v{@{TA;eY<(f&S%#{^y1M>4^U7i2m$~{_KnX?TY^IjQ;P9{_>Ch@{s=X
zkN)$J{`Hdn_muwll>Yga{`!{w`<MRvnEw2i{`{E!{h9y&|AeG<DF6Tf0(4SNQvi<(
zlv9ZS006B?L_t&-S5?jD4uUWkh2dg9XPvnB-g~m#H~|&7|BKPkRO9>e$w>}Eh{G%n
zIbqAmCKmpO;1^!cm-#ep@?fAFx?vbL(HUrbveeV=<j&xhjsj%n<i_B1Igbkv>0d+i
z7_0fpOl^7tQ}yU<@XinJ+P(ql!;Zps)k#2gn}hC#!g^R=#66P{6xS3KfL0sIN|;wD
v$N+<-FDs{FG6hi*L_rXwPY!UdUmSV^Fvc2`VGY5#00000NkvXXu0mjf{sS7R
index c76afb2fbf09a3a2dd4973a3e1cd33559f5485d2..ea942642bdaa4362fd82e2d7f46badf5a8466f4a
GIT binary patch
literal 467
zc$@*#0WAKBP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0002nP)t-s|NsBh
zrX9qI5Y?s~=ZYfej3nrdCFqVO>5(bvlPl?#F6qu#>Caf{(Oc@2E$Wsp>X|a@moV#_
zH0zu+?4CI6pE&HIJMN=B?y5xYt3>awN${&h@UKbmwNLQ2Q1P-%@w`^^xKs1SVf4US
z^ub*B%V_t|Yxmc4_{wMb&usbCarxqX`Qv~3&u#kEa{AeI`saiD+<E)#i2Lq}{NR24
z+<X1!g#O=s{@;H7;C=q$fd1lv{^NlD<AMI>g#PD*{_BYT?~MNMjsEbA{`!~x`<DLu
zm;U{k|NsAIoN-0~0007XQchC<j|-Gji2wiqrAb6VR2Wx<&u0&UFc5%Yu;;|RH|~KO
zM+?fR*5d#FMV2&>_{lf9FHbI)oTB_qMKU!4^pT+$f?9L534%hjh*+l#&^0+{obxvl
zz}RsJrL88)Yat9KXSPh|OeRkunuX+yE};FS^hE{uH=_YlzYm5l65#IVmwM`S0NwRG
zSHJ^cwT7`%tU7nw7GMGFu9+TbRWQaR1Z)u!jwL}&{1m?w_XYOg82j`y*H-`l002ov
JPDHLkV1h_e`6vJY
index a2ebfad32dd4833b9a19f242132b0bac2223659a..2f99ea7a52e54f072e374058096e97a8d3c53351
GIT binary patch
literal 435
zc%17D@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMft^l79*Z+7y_R0@=trzk-E-BW%
zP^x~a>c3CTW4l7dBZcax3bij3^KK~?-&ZVtpjh!pDdnP4=2fN4Yf5>yl_QQT$DL7*
zKck#-QN?SQivM1f;6o~r$3+Vsik3VPEqN+h{#-2aidgy$vGki_Id{bh9*Pw{6f1oy
z9(GDR=A3xUdGVyn;z?H|0**+8os<YaDG_~M(s8?_+ipqk{gU1XBm<5}Ic?vwB#9B|
z3zd=}zhDMlF#}6ypMt`Ud-v}B0)pR|Kr8m`8ld_XPZ!4!iOb0e4NPicX>M#P2acRO
zeY8#G&=JKo>&_kRIU*hudiim(;|JE#kdmV}XFjMg%+1XW<YS4C3ib|WIhUR=^^$?n
zv?nc}B_mXMc+NhZ$TGts<?C6Wrxp`jr{wzhqy)H3S+i#Clp7OWMRav_e@0H2yDlO7
n;NhM}mW+93A@7~`@-zI^<9xYpcg-Q7dl)=j{an^LB{Ts5T;|TA
index 1b19b4e12b37c2664723c06034d4c9430575c9eb..ecb8ccd1a48561a91b7886d5ec05f37ca12e681a
GIT binary patch
literal 341
zc$@)M0jmCqP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001%P)t-s|Ns9?
zO;AoxP>6_#jEsy-O;1iwP*PJ?YHM$8Zg7#3m3Vo3s;jJ#k&}~?m5YmumY0~BnVFlM
zot>SYm6esCp`oOtrI(qV#>U3BxV^c$zrVr9#Kz3W$<EKv)z;YC+1c6I+T7aQ-rL*T
z-QM5d-{9cj;o;-x;^N}t<?Q6<?dj_6>Fe_E@bd8S_VV)d^!4`k_V*xtO^W~k02y>r
zPE!C>RBCLyyT8A`zskzY%+1Zs&(F}%()s&8tq}hJ0031<L_t&-(_>)32}D>>`C`fv
z%*cFE4MPQfB)*WUftoN9UqDG;MG%S4E3d1_hs5WW)6?cbHjrIfN1Y4BN)8z<Sxz!U
nG^N;3MI^<UP(8!Sh~3iwQRfBTVncG700000NkvXXu0mjf@)fbz
index 8aef29675cec71767c5a7858d51880c6c0863880..82cd8748308aba98d718599b31d0c1d57d23fd78
GIT binary patch
literal 434
zc%17D@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbMft^l79*Z+7y_R0@=trzk-E-BW%
zP^x~a>c3CTW4l7dBZcax3bij3^KK~?-&ZVtpjh!pDdnP4=2fN4Yf5>yl_QQT$DL7*
zKck#-QN?SQivM1f;6o~r$3+Vsik3VPEqN+h{#-2aidgy$vGki_Id{bh9*Pw{6f1oy
z9(GDR=A3xUdGVyn;z?H|0**+8os<YaDG_~M(s8?_+ipqk{gU1XBm<5}Ic?vwB#9B|
z3zd=}zhDMlF#}6ypMt`Ud-v}B0)pR|Kr8m`8ld`SPZ!4!iSW?#$Hkfq1XwS4PIP&*
zx0|U;Vs}K-umAg>^2Mc@f1jh--_bE+!kh&&o|}tweVDvtxns)bEq6;CcSy-Tc4l|w
z?=f_C|Mk*t?!plD@3-@!7&+pupWeZ+ZhHUo%D|oi+w+_9L%wO9v9F9+H$^x5t(0HK
muix7bU7s1AZT)c0kNTe*IA7X}2sHqm!{F)a=d#Wzp$P!biqjMT
index 7c14a8128bc68fdb5ff6721c3b359b4f65316503..20834927a393556ef5bf506298b0c88abe51c596
GIT binary patch
literal 343
zc$@)O0jU0oP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001%P)t-s|Ns9?
zO;AoxP>6_#jEsy-O;1iwP*PJ?YHM$8Zg7#3m3Vo3s;jJ#k&}~?m5YmumY0~BnVFlM
zot>SYm6esCp`oOtrI(qV#>U3BxV^c$zrVr9#Kz3W$<EKv)z;YC+1c6I+T7aQ-rL*T
z-QM5d-{9cj;o;-x;^N}t<?Q6<?dj_6>Fe_E@bd8S_VV)d^!4`k_V*xtO^W~k02y>r
zPE!C>RBCLyyT8A`zskzY%+1Zs&(F}%()s&8tq}hJ0037>L_t&-(_>)33Rpx?`OFf^
zVkiRq3Wge@C?djY2C70RB7!RVN&+Y%e2TjAyeJ|(+In)_$O2sII@0V&d`?*{84eQo
pY*Lyid<G_QNe)!cFtRe>1OQJ|1>RKTfKLDb002ovPDHLkV1lCYuCf3C
index 7e19b476e048a0059cd43aa1c2aa41543ebdc9d8..7544cb78e1996a35bcb82135a4321a21c755a1d8
GIT binary patch
literal 8628
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
MQc9B55+<Sl0cHiHga7~l
index c97b37c632d9c5405d3ce461a470bbf2d18db88a..b5927fb6b8300de363625431583f902596c9a67e
GIT binary patch
literal 8458
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
Y_B_}*2uh{$e|%JsmsXL2NSKBF4_X3Y@Bjb+
index fa263c400db4e3d3d2f8abe5c0aa1e92bd2a57d7..14c9601bb1ee6b7fa657a0f30d947b7ceec7cd57
GIT binary patch
literal 346
zc%17D@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G}
zXKrG8YEWuoN@d~6R2!h8oB*E?*Z=?j&snr+$DTcRo_qw7UX!lp?Venlw+SM6@#ekT
zPd);r?mYW+_t~d=&%fMz@#Vp*Zx3F7een9*!&hG)zWVm)?T;t#e?9r|>*@PnPl4oz
z-_Jk&dHxxQ{=WF~?<Ej@{rBn{(4PN_*BjOY?PV<q@(X6Dudkok|L*#Epg^&wi(`m{
zB<n%PEG7pYh65*s4t8-UId%W9pV=X|r$Q*w{H4zy28Q`>xOb=uY-DAyldNaBbDw8j
zID?0)y~4Q(*Yei~XK)4C%C^hpI?lSnoy4ChSC!}988_iq>T_)`N3Cn(N{VZHr4kM@
iFr3)Qn83tvz+U99*7v2eysiPQXYh3Ob6Mw<&;$U8&#GPk
index 258c069b7c11cbf61ff7cddab403e83e568477c8..b76d849b91f3927f3d657063dd3571c641d5c6d0
GIT binary patch
literal 371
zc$@)q0gV2MP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUyeo#zQMgRZ*+~o1c!mmn_*KWI$eQvUx
zqN1*<nYg^X$HK4J(!JW;+uY>w^78KU^Y8QX@bvWY^!4%e^zrrf^Y-=g_Vx7k_Vf7n
z_4xSp`T6(x`S|(z_xbwx`uX_!`uF?$`TP6&`~3R+`}zF)`uzO*{Qdm>{rvv^{r>*`
z|NsBrz{*Gf000AYQchC<f3kPJb4LIG0DMVAK~xx5ZOhvZf-n$8(UG=dy>StXXw^}H
z4*&myR?kBd!kT0rc5-MtL;3W#-ouLW8M0GiDYBxJgdie85Jshj&ChN?V17N{%%7ea
z!5ee!x|@I8J;KG97LyjiHRr}TcZv_8*19UoDqf9HXkB1(L^veNA+t$F3%-Eb4P}Ss
RFo6I7002ovPDHLkV1fr~%xC}r
index 62a4fb0c3de0c4184994f80157772fc0f9f1217c..1e36e1177e846b779bf7b59037ba4732c1617746
GIT binary patch
literal 272
zc%17D@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G}
zXKrG8YEWuoN@d~6R2!fon*g5>*Z=?j1DQ82?FFJwpWXqvlX~mn>}884wpGub)V6Bf
zs+otjUp=&U6;SHdm4^`7UwbCD0X1`%1o;IsD5cfc*Uva}=FBx+uQhf+;b2b}#}J9B
zt>;hjH5hQX2F_{cOZxf0ekxPcqh;xppPiT-u6NusW1Lj3Qy?msyzbjf=7}w{uTJ1v
zq}Q>DEqcobJ*OYKZ!)5599gb5Jv2~xAM^XX-Gc<KbH+Q3w1CDlc)I$ztaD0e0syPO
Bcgz3)
index 81951d8ea553c2ee478b39ffbf2599880639a4a7..40058739b13ac0ce1bf4a46d3aabd0799ea3588d
GIT binary patch
literal 316
zc$@(|0mJ@@P)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001NP)t-s|NsAc
ze0+O+d;kCddwhJFnwp!No1LAVprD|+xw*Z)y}!S|!otGE#l^?R$IHvh&CSiw(9qJ-
z($v({*4Eb7*VowC*xK6K+}zyW-rnHg;Njun<KyGx<mBb$<>%+;=;-L_>FMn3?C|jL
z*DR8|00003bW%=J0BgS|q1dkg004YRL_t&-8HK^I4#F@HM8S7w0}@SumjC}W6bVHF
z3JM4B8oHFsz&{a@Y&>e5Pi&r#no|QJ@c^b*We8$_<GKzQB$8ZadoGqlqONl9(C<ZE
zBvLG$-HyJ5L}DY#G!=wRMP4u2-W(5Z78Tnce$)U{-41M;BO=*&@Yffrbw^?J8t_m6
O0000<MNUMnLSTaSN|}rR
index 43d78853941f7e1e21c3fdb9313a5d54d92b0dfd..fcff99520cd98a3d3bf1defe7985c9070be88638
GIT binary patch
literal 335
zc$@)G0kHmwP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001iP)t-s|NsAl
zi>Z{EvX`B>n4h_*tiY+Q!3u2HHG$JShSiwA>#E4=uCvLn%<QqY%dyVwv(N3cxz4%1
z(7eFXzQWVM!_vUS)WgQq!^hRd$kxit+0xhL;^y(>=<?<1^XKdI=<4t4?e*>O_we%g
z^Y!`m`1|<z`}z9(`uqI*{Qdp@{wBObX8-^I2Xs<SQvhpgzrVk~Y9*)^0001XNkl<Z
z7#W4n#}b1u3`NmL$28MBgkbvre_(7fcwohuk#x5LUa4kLONFVz7`8*&1_Rl$-z*ub
z^%RExTcMl<N(eopL_Tpo;e1g!QpT8T+pZX%DUxw?EX%oeg82IoBj`RiT>!mld#P=7
hD4G{Zo~FG1iXT2H6bb%zJ?j7f002ovPDHLkV1m#0vM2xm
index 2699ea34118bb481561435bdda37e0659a2a852c..b5d9d66736b86378cc673e956807934894f53849
GIT binary patch
literal 325
zc$@)60lNN)P)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001TP)t-s|NsAc
ze0+O+d;kCddwhJ9l$4yDoSmJWprD|+xw*W&yuH1>zrVl2!otJD!^OqL$jHdc%gfEp
z&Ct-$($dn?)6>+{)YsS7*x1<H+uPjS+}_^a;Nall;o;)q;^X7v<>lq(=H}_?>FVn0
z?Ck9D@bKN<Hq8J400VSVPE!DDzbB#CuK)l5e@R3^R2UhB!Lbg4KoCXIJG(<+10>k#
z|9_W_u`xyqWFx#;jm?&v1AELY(L{AS4m7X3r~X6JKN7K3?@Y4J>lQd6zmQK{#aV%)
zEoJG3$m=E&Qkk4}#it^Xh|n@-$m602oDgVuGQ2AUjs(mH<_ZXpa^TPTDPd-bCMvtW
X?X5uIH<;ST00000NkvXXu0mjfIG?8e
index 8efe1bd3b92f4caa728fa3884c2fd363e5aac514..c0f8678b5ee20c7615fb035940e1651fceb34517
GIT binary patch
literal 335
zc$@)G0kHmwP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001iP)t-s|NsAl
zi>Z{EvX`B>n4h_*tiY+Q!3u2HHG$JShSiwA>zu>!s>tfDv&pZ_?6J1XvCi$Zxz4%1
z(7eFXzQWVM!_vUS)WgQq!^hRd$kxit+0xhL;^y(>=<?<1^XKdI=<4t4?e*>O_we%g
z^Y!`m`1|<z`}z9(`uqI*{Qdp@{wrZxp8x;=2Xs<SQvhpgzrVk~Y9*)^0001XNkl<Z
z7?p+3#}b1u3`NmLk7*|K-eL&w{~w4Ag9lce8A*35;FW4-rIeW}jDFdqr8khw>&={?
z_&*fLrzs#LxOR?|G3FEEi{Y6f{&DVyb4A67M!~i$`-lkPaB!UShM-M%(@^MD-AZ+(
hL(#mi<Y~(LvpYY*6dmqoizWa7002ovPDHLkV1f$ExZeN(
index 6d3a2170aa7117dab07f6b34a4fd7268726a0dd7..f141c79d1b5688f171c3e4493d971a94c05d4ac2
GIT binary patch
literal 271
zc%17D@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}cz{oc>;M1%t7~e22q*v~ckbM|
zckkZ)`}ZF`di3<^(`U|{IeYf(g$oxhUAlDT%9R^8Zrr|o`_7#^ckkZ4ckkZAhYue;
zdi415<EKxbK7aoF<;$0^U%!6y=FNu>A70o${slCVxg^Lhm?3+=`obIQf!q{N7sn6@
z$<~A3Vh#oZEC<eIsCcj`?)z@9em<*gRYSaAMo06K+a64DM|W_@-L&AyTlKka-?zw8
z<sC;NR{3`pDq6HoSnbc3sI=l<`Qu+w*6*h#Wc9iftmti=u*_VlQCRBHhu4hWFFDS}
T{k^0Nw2#5l)z4*}Q$iB}E+>Uc
index dbc60314edf65c015871788160e0ee42c781a825..508606ae4d51df73dacf53784da3201206e4d21f
GIT binary patch
literal 293
zc$@(x0owkFP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001QP)t-s|NsAl
zi>Z{EvX`B>n4h_*tiY+Q!8L)?JciY-v&pfx%e1-9xxUc6z|y|L)4;>hz{J$U#?-^d
z)y2rx%FNl)*X82o@#N_8<>~Y1>-6aA@9ORK?eO>T^7!-h`S$qx`1$+!`uzI){QLa<
z{r>)Xg3O@+000McQchC<Yiqy1zrSiFs1^VK0A5K%K~xwSg~7=dKp+4G&}WKLNMt7Q
z|KF%%(b3Aiz^|Cd&XXiYHrv~?bB5YnAEt&n0}AaCXwmFW@!FjR)#l`{&8Z;PfB;_t
r9Bi0A28OiPqo?~6Q9?_PCJ}x;>G~0uT<US$00000NkvXXu0mjf3aFm#
index 149206d98833ae9b068a13fe75c7f9d130b85cd7..a7a3920840a470f5b8a5255a16a44623ec2ecaf7
GIT binary patch
literal 307
zc$@(<0nGl1P)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001HP)t-s|NsAc
ze0+O+d;kCddwhJkxw*Z)y}!S|!otGE#l_3Z%goHo&CSiw(9qJ-($mw^)YR11*VowC
z*xTFN+}zyV-QC{a-r?cl<KyGy<>lw+=jrL`>gww3?CkCB?eOsM_xJbu`ucCDHL3sr
z00VSVPE!DDzbB#CuK)l5c}YY;R2UhB!Lbg4KoCXIJHsp$XhmV+|NobXg(ZYY(AkHH
z&6b=4XUxoLbc9{5H1iTZ?tlj=U|a(Uh$puMM4+TA1&Y3vjzCHO0v=2|g`g(lPf4Zo
z{!0$i!rixn*aHczg82=IpbFRqHUSm$=xIJ_W=^AnQ$OXsG~*AvKXm{A002ovPDHLk
FV1lkRn+^Z~
index 24a5807db96cbf5b78ef86ee59f71d2b14f3c51a..2ed4bc477de5087315c305f5002317299a515543
GIT binary patch
literal 308
zc$@(=0n7f0P)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0001WP)t-s|NsAl
zi>Z{EvX`B>n4h_*tiY+Q!31Z~5Od!(fzv#O)vmM2v9`;!xz4%1(7eFXzQWVM!_vUS
z)WgQq!^hRd$kxit+0xhL;^y(>=<?<1^XKdI=<4t4?e*>O_we%g^Y!`m`1|<z`}z9(
z`uqI*{Qdp@{wfJ{8~^|S2Xs<SQvhpgzrVk~Y9*)^0001INkl<Z7#W4ZMG}BO5CpKs
zVQ_bs|38tfK5TI#0e+co*=VI}!kMl|yCw(uaeo{+>XSrHs!{DEvQvd(Q-n69K(;CY
ztxAS;A<tVVMKY7`&y*nQ$B#aO-FAc4wKfbZjJ41*@aqLeH4;ZnzsqL;0000<MNUMn
GLSTYQYM)I2
index 1b804b612de8728491d584f5f397b6b4fae1a2d0..f7732541510bba79a92307a7f008c751e7cdf0bf
GIT binary patch
literal 393
zc$@)=0e1e0P)<h;3K|Lk000e1NJLTq000mG000mO1ONa4wfZ;e0003{Nkl<ZC{uNj
zyGjF56h&_rw6aWR;TQM=f>j`pCjX$=SZ5x&a}!iBh@h2?sF0*cmDWlF7NQ`e%)<vr
zgrw0-CX>uKj>~3922oaZ4y!o(Y=M}g60$0*DiPm__@HmrsG)EEBUp>FJD`v3T8n=Q
z+C~L{3fjgmK`xjpS}NCi0^pHcOG}w6ash!5YO8p&`+PjTpg~AT$QM_fb2Qy~F5IXs
zk$<?x!2{rnfPer9arxkq{Da7+4<>IwK)@$H9#bYv_~wcIiA)QGk=gfpz?3mggwG>;
zo|%b`G_nWID`V`4F)x%HBO8mU-QMBy5#e%=ejAHvEfoeGY~C3$;vJg~g@Ls+|HE?0
z?J;6VlO{t(^eDM<c_x_aC)l(pBm1&nrj5-B=K5UNKBZ34*AK0vmDCT5ew|ay?U|s~
nRKqy4R%f-X8fU7Z))0svpsHEHIhm+M00000NkvXXu0mjfrXH+E
index b29218fd62dcca4025f35886c725e20803445c3f..744a0780b83c9cc4d43f8a4ae7c016bd1d86bc5e
GIT binary patch
literal 352
zc$@)X0iXVfP)<h;3K|Lk000e1NJLTq000mG000mO1ONa4wfZ;e0003eNkl<ZC{uON
zu}cDR6u|M{COSE~Irta&4+u_z;Nt(FxHx-v-tT^DQItr~Y=VVQ{sp#_<lyAyAQ;yo
zan}@xr$Y2?sPxo&Z+h>2hWDO8Y*PhfM|M=e-xK~q&);#2p8p3}Avtw%kW(x4C(v>o
z0B+E8dq4)uF)dY^ya4b_X`-dfm<%EiLKP~5WBYP>%@g18$pcqhERXEUKox{JdSuQA
z`?2Pod&(mr({=ClU<@$h%#&$>FfymBLo(xJWn_MqG_v*i+s@eKd~RfYXKKUo4j7{i
zeP>$Xs_X0khpKCZH^7Y67ajmMHUJ*=g&ExdBiRHTx=2SlT^yi^k=%k}n;x~b*03U0
yL~GR6J=z$>4NwWy*IP3F`+phNTdJ=T2*ekfzg(BV!qFrE0000<MNUMnLSTYjq@5!G
index b00e040de7edd398b670b9041380981070be48f8..2f7e878a7366e37b4b92887de73813c36672dcc6
GIT binary patch
literal 1911
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
index 0b5e5dcb7844b5d266b8180bf4b7fde0df621b21..bfa14599a1975cfff55b9e3eee899221bb5605c7
GIT binary patch
literal 1785
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
b?D6Zr)k%``@Jo#x00000NkvXXu0mjfJ5FJn
index 8f938e4ca317d08c98275717deda51dd7aa9b7a7..da906245de7889f992f374c14b64c452606d58c3
GIT binary patch
literal 676
zc%17D@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G}
zXKrG8YEWuoN@d~6R2v2cMy~*$5ZC|z|1;nKVPT;*HrBIe&73lMQdf6pcXwxXV^eig
zQ(aSYLvw3GOG{I0YioO3YkPZp2M~3vS-mR1v^=l0Z0?*{vu4hiyJXqiCCk@r*}7)y
zwsqUKt>3n7(~ccG4j$fd=<v=%M|K|pqN96u@7#Ovz`mo$4xTu1`1IMMCr=(bdgS=I
zbH~q}KY8Z#$xD|{U$}7Q+Kn^UZ=Ahy?cBBN7jECZaOdu&n>R0Cy?W)^wJZ1TUA+dR
zFJHTU_1f***Kgjq{_xTDhmUVOcyRO4<6F0H-G2P^_LC=f@7}rl=+WILPwzi^bpP42
zhfkh7dj9;$ix*FyJ$(iQFJC-={`|#@XRqG8diCb@>v!+o1JV0;A3lBf@af~Hj~_pM
z`uO?Nr_WzLfBy32%U2-!`t{3aApZId2)}*<lHb35|Nd>A($8dIsL7QC`2{mDaq!3~
zsB4&51U9tw_4UKS%(?ScuKDn2X(>?UF;5rA5Q*^Q2iJ@Y3@$uMOiF2BTKi_njFuAl
zxU?A^j+1nz`&6_ox9~ZlFs-}yvZDG;S01gT2^xnrB`3|4%2#I+ym+dkfXCO*d*fGg
z5vJ}BKT@79JLZ}_dsV~>jwY8GKjtVcKGZZfv}cNs2}^@g&l#a(jRzeW%}!NuJuA}j
z;c*ZQti8`*pYQFe9jaND#x|j&W8LoQ?X#!uGGX^%^>B$ee(!3O@2qCgS7L5yj=sh!
ub{;M9aa^7JLWzm#j*pmKXUtGkWMFuDN!C5KrCth@WISE{T-G@yGywqE*KAz?
index d3833f1d7ac3ffdf53771f26548882f9e2e30a84..4c876b92b0faf34c5a01102ca80789a1f169e8da
GIT binary patch
literal 517
zc%17D@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G}
zXKrG8YEWuoN@d~6R2!h8O94J1uK)l4PX~huEB8-WwSVerAUZH>-TqnY4lLNXf8oac
z%eNd@xBbAn9S64V-oJJCf$e(^?Am)^&%OgdaOlJtAXt0l+qx^?w%+)*?Z&tLcfRkx
z`|Z@j@24MryZRi6zCU>L{lVMsPv3oi`u_XNkKbN>{QmCq_fKEGfBE+P>$mSfu=UQr
zo%jCjy7zD2ga7*<{M!#CAO1V?=--jYK=l9Qvwx?a{yX*T-}x6n^#AJXe^+1szxDRt
zt#|)#zx)5-!@ma~{y+Ti@7ZS{`v2zZ|2N<Moo#-j1@xVENswPKgG0j>bg+N_7i^$w
z+MEwSZIe7*9780+V^5vsYcddUyC~_=6T+f$WUkt~FMsEs^0<EC+<Z-^#rMuWv6gJu
zFCcK)G<spnBfA@0r%zyPUoQUKBF!M**iLN`ub$QR<;&*I41Xb8X1;M&hd9H^cXKyo
z`38z{*qAQLdSwy8)FITTb|~g$3TK0cOv_of|34WLl$Kjn-DOaD^>1n!U-@&Pht@iE
b<?ncJC<RZOqZ=FwbRC1ItDnm{r-UW|0#Y-#
index e05bfe885a4c8f272a615a0cb37cc111dafd2036..f37258ef8df0a113708156e8e648693dabc41d54
GIT binary patch
literal 181
zc%17D@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGaEOCt}3C>R|DNig)WpGT%PfAtr
z%uP&B4N6T+sVqF1Y6Dax8sHP+`v3ob3D1=><v0CyNp!j1yeT8|wL#&uGHW$Z0b@y!
zUoeBivm0qZj;5!JV+coda>4<IGi*&wO-xNp9D-u(C4$!&N(3zuf*htFGMS*uIK7NP
X_$l)P_2jt2Kurvuu6{1-oD!M<Xm>Xr
index ab5345a1229575a8d549c332ae265c1bbae1d733..63982ef413109e2c37990341e43946848b2cc729
GIT binary patch
literal 181
zc%17D@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGaEOCt}3C>R|DNig)WpGT%PfAtr
z%uP&B4N6T+sVqF1Y6Dax8sHP+`v3obnev-{yCk9~J?(P6c~eH_YlFg0<B1=D3K&a*
z{DK)Ap4~_Tax^_%978ywlM@aw_;4LNc8u*98;776dx_vRh7v)G1QCbnhfF5uGEOgJ
X2t3FU%W_#2<PHW;S3j3^P6<r_3Vt|(
index 97aa8add452b4bd754050797716985adc66bb213..47e4aee14393f2d62c0734330e78626adfdb4438
GIT binary patch
literal 9205
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
OM@ddywp!Xe^#1@xDVzBK
index 2f1f462751e2f011a235efca49d923ba27b41559..9ffc64e8a60f2723fbc8d01d2852b1e63c9e844d
GIT binary patch
literal 9438
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
index 0f7d3ec1ec3a06c00e577dff5f617ea692ce9741..ddd4cb2130b28944644838a11f4050da251dfbc6
GIT binary patch
literal 446
zc$@*g0YUzWP)<h;3K|Lk000e1NJLTq000mG000mO0{{R3C@l|D0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUyu~1A@MgRZ*hL56~sJ^Sd%>if34{y&l
zhSxWT*ie?;VW8lAujYQS=7x`=iM7?2!0emC?w-T$r^xZI&hWL-@VC#{yw>r()%U>H
z_rcip!`S!3+4siV_s84!%H8+M-T2Pm_|D+?&fxja;r7zw`P1Y1*X8-w<@(p=`rGLG
z-01q?>iXd7`{3*P;OqP3?fc~J`{nNY>G1pM@cilV{Oa=h?eqNb_5Jbn{q*<!_xb($
z`~7INcsKw600eYWPE!DXzu%b;G{pb_0Fy~XK~xwS1;If|!%!3ez)5)sF@dTp1;HD5
z|GShfnvI~F7Ji^j``>dW3=;s>3ez{XldmWKep;aFaN#_@_X~lleSIEpx84!RdY!Wj
zJrSr!*73f3$&Ns;N8WcIm4!fVS@V#YiNKaUo2jx8oPXacr@R7TU7(FuScPhH_GN5<
ofWC|kAmH@e00dSIfItDjKePZ;0q=p3p#T5?07*qoM6N<$f+EuPmH+?%
index 36e800a1137c757c4bbcfca0c0d58fae6c0f4a25..c2bb7225f3ab134547b35acdcc0e2056bb91d1d4
GIT binary patch
literal 599
zc%17D@N?(olHy`uVBq!ia0vp^IzY_L!3-pgKhNI_q&N#aB8!2v2N=7Z%(epwmK8Xr
z!&Ec0c`WP)GM)$cgt-3y|6fc@OkG_)DJdy4Gqb3usI;_{fuTS}MMYIrRa;wIPfyR(
z)YRVI-oe4a(b3V#$;rdR!_(6<ARr(pC@3T(Br7W`J3G6$xVWsWtf8Tyt*x!2qocF4
zv#YDCudi>ygb9--O`1G;^3<tQr%jtSZ{9pXp<3V2W&Q~pL$daS=k5nOgh9H2LAsGa
zy`5RRlgDtPg!L2&>p4>PQ>5*uDml+pcAc&4I!DKIxt`xbL;t1TshfOKw}<C%iOk=h
zTD?D~=|FzdiGtQcMJ*@FI!{z|pQ`LWS>1P{ruS@Z@7cPEC+jDk>704-iR|1mphemx
zL4Lsu4o==aKECx0ctOjw=`&`s)%r&QwJ|1nySr$s?0muj<n(*GIEF|}oqFP^SW|$A
z+r$46D<nGZhUZMbd$;N9zw?i$Xs0iz{<4<$PxSJ$7oR`X)4MKqIOyi#m>K7jFM9@_
z-M#<a%R=L|pYyIxh%jhbA!5uqy`->yKi}-HNmoMOn7rB=qqVaAZ_54~`O_cYtg)If
z)AzWtVQjGHE{2AOEy)_ICVgIX{ka5(Q1QYIDv#csuVuL5D7P$MOQ;FxG^MJLh?3y^
zw370~qErTkid)4#C;h!bKb-OP@#ppO^;yZnpg)K8$~vBvzMx?DboFyt=akR{0F?9Y
Aw*UYD
index d55d9287c67eef2c272b0f2af8b3d9ce65e8ce7d..dce94405548389b84d9e43002f8c06a257bd8110
GIT binary patch
literal 509
zc%17D@N?(olHy`uVBq!ia0vp^IzY_L!3-pgKhNI_q&N#aB8!2v2N=7Z%(epwmK8Xr
z!&Ec0c`WP)G8P5+gt-3y|KHHi(89vP#l^+T%Zov4F@xD^MxR}b;fHK&Z0zjpfZ}d$
zZhn4#0RaI)K|$f+;jyu?$;rv->FJr7nYp>Sd3kw-g@wh%#igaCH8nMTeSMQBPu{$F
zGtdSG+YJnkn?R-o>}8BU&X|0XG5rj8!~wy=^CD3Pq~Z?B6`#|sxu}<a(xC99VdG_!
zwrghPr)_G_dA3}NpK&W;!Tkw)UY?lnCKG6sTuG2$FoOdS)B`~SHc-q}bQq|TG0EHA
zMXrcTK^w?v_jGX#k(fI5#BHfY2MM=_?~mU|G27&ML^(M4o65WY*XEf0;*W5Dzqz4a
zn$P0ft~*DcUQD;>wmRcls_ioSW6;IxwpY);ig^}RF-Prng<zKFJ=ec=cfFr)3Ne|P
zW4`)=glNF$M+LTGGf%JeH=eJNx<%zZ6N8TTO4Y6UWz~I)4GqPcR0YfH-!Xq|7k(yW
zuYVfoB&Dj5h?3y^w370~qErTkid)4#C;h!bKb-OP@#ppO^;yZnpg)K8$~vBvzMwGl
MboFyt=akR{0Fi9K3IG5A
index 949c36ff3e7946333b7c3648f8579b83c6826ff3..e9ddb34f89f5b5bcb62d431490358ac5241d9e83
GIT binary patch
literal 624
zc%17D@N?(olHy`uVBq!ia0vp^IzY_L!3-pgKhNI_q&N#aB8!2v2N=7Z%(epwmK8Xr
z!&Ec0c`WP)GQI`)gt-3y|6f8vLRwl{QBhG{T|GEBxTK_{w6v6gxtM{yl0l%2L2?pM
zRzX2QO-)TpOG{f@TVG$_%*@Qn%F5Bv(Z$8Z!^6YJ$H&*#*WceiC@3f-BqS^>EId3s
zCMG5}Ha0IWub`lywY9aYtE;!Scfy1TQ>RXyHf`GU>C<P;nl*d&?74I2>U*sX%h?~E
zyPpB<R0hF%2H7?SwGIaLc2><^Uc<>krc)(tX3E+vP<EZA?zT|VW4^ZMVm+TFhW^Wp
z0#=#?tg#B)XcfLDAaiR__KxiOBLyudidv7Bwx6!(K3Ug)u6_a#oo|?UzIEEUwrLkS
zW?a0gdBOx}mwri*Uoe9M5V-mH)&oHU0njsJ=H&|B^FXbPN#5=*`pQ=n1c98Xo-U3d
z65+`S3ZgGwCM9p$oEZAxZC~rjb<28u8{-#<t4)q|ju!1^y3bJ0FJ8^<ETXo1*R*Au
znznH0cdb~rynpuU&2xLF8X8UZb&d55^z(A+k&m3x=y?3(#e=u*TsgwfdQwYYTUk#>
z<3O|0sRIXcGqd?hg@h)%h6G6jPibsCeTIX3a%2a8w+1t_I=h*gu(Da;B1VShze=65
z(y#9W9jH_l5>XPIpH@<ySd_}ZP;sl+=cK<^=!Y}DKK{I3zCJ5i81(0`URlSp(iap5
Mp00i_>zopr08TyMF#rGn
index c704f6c973805c02154a285c64b47ced6a7253d2..e965dff87e35574e4103656fd3651f7d1903ff26
GIT binary patch
literal 527
zc%17D@N?(olHy`uVBq!ia0vp^IzY_L!3-pgKhNI_q&N#aB8!2v2N=7Z%(epwmK8Xr
z!&Ec0c`WP)GFAlmgt-3y|KHHi(89vP#l^+T%gf*2KOi80L2EIC*=ok{LyU<hn0$6I
zC7m!cGqbU=adL73Dsyvl^YilqDhmn<ij9p;PfyRy%`Ge}EG{lCEiJ99tD8J|^7QG`
z=g*(Nbm`JHYt{g*VlZ04V7r0Qa|ff(F2;bpjPb`AlTR|HpW%);AXs=_x8|Z={z=2e
z%O-8tY--Ng)SmO`xRS8oe)fX9Wy>Gbt$W<Q_1Wax+Z2H2D3%2I1v5B+K|L5WU;#QO
zjO2id8I!!-T@;Vx@QMLB6FglULnOkJ6BI-X3X_sIZAuV+YIyPJp_Iv@hnF3=az|kD
zNwwt)ouQ2z`=)hu32_Op2y=_+m_J|Kb;{`zXCmUGgM))vXP(s3)mK*4Qc^n9uXF0a
zf!qbl*REr`)^Q|d+7tm%A(q)aDnQYNOBb@03JFd2^oS4$p3>MD8!E{?Ik17hTVulE
zzTT53I((;OFfb^65L550+s_Den^ILsL`iUdT1k0gQ7QvN#jRqWlm1?zAI|vt`15-C
c`mAJO(4WJ4WgX8-Ur=Cry85}Sb4q9e0C*t4OaK4?
index 8623424ad7451dcd2924fab5d29979b97d0c024f..d32b79cfab76093c36c45e7b643ad9429925b3f4
GIT binary patch
literal 294
zc%17D@N?(olHy`uVBq!ia0vp^+#t-s3?%0jwTl2L$r9IylHmNblJdl&R0hYC{G?O`
z&)mfH)S%SFl*+=BsWw1Gu>n3IuK)l4XV6;AptF?0avh`hE(W6&433)^J$Eqr>|zYq
z%NT#0G5I88`WZIgU7RjkxH3<3=bq#B+bI;jPb}fEOzvs<;&aM1msK;5Y37|YE<WYd
zchjxuV#K8Dsf!<U?R>Fd`QMvBi&#s7{DK+kf#6vCgeIVXpQnps2!|}|!FI+&20RP~
zGv^+=uz@M|PraJZo@=SQ7_Z$ovu8MM_FX$+R<$+rzP+i9hyQ-gn|b)D#GCoaY1f1{
mXq#qpDx3;nQt)GRXs}nXVvfGr#IqG>GJ~h9pUXO@geCx0muqPN
--- a/caps/src/nsScriptSecurityManager.cpp
+++ b/caps/src/nsScriptSecurityManager.cpp
@@ -1373,19 +1373,24 @@ nsScriptSecurityManager::CheckLoadURIWit
        return NS_ERROR_DOM_BAD_URI;
     }
 
     //-- get the source scheme
     nsCAutoString sourceScheme;
     rv = sourceBaseURI->GetScheme(sourceScheme);
     if (NS_FAILED(rv)) return rv;
 
-    if (targetScheme.Equals(sourceScheme,
-                            nsCaseInsensitiveCStringComparator()) &&
-        !sourceScheme.LowerCaseEqualsLiteral(NS_NULLPRINCIPAL_SCHEME))
+    if (sourceScheme.LowerCaseEqualsLiteral(NS_NULLPRINCIPAL_SCHEME)) {
+        // A null principal can target its own URI.
+        if (sourceURI == aTargetURI) {
+            return NS_OK;
+        }
+    }
+    else if (targetScheme.Equals(sourceScheme,
+                                 nsCaseInsensitiveCStringComparator()))
     {
         // every scheme can access another URI from the same scheme,
         // as long as they don't represent null principals.
         return NS_OK;
     }
 
     NS_NAMED_LITERAL_STRING(errorTag, "CheckLoadURIError");
     
new file mode 100644
--- /dev/null
+++ b/content/base/crashtests/324871-1.html
@@ -0,0 +1,14 @@
+<html>
+<head>
+<script>
+function loaded() {
+  var node = document;
+  var handler = function(operation, key, data, src, dst) { alert(data); };
+  node.setUserData("foo", "data", handler);
+}
+</script>
+</head>
+<body onload="loaded();">
+<div id="elem"></div>
+</body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/content/base/crashtests/377360-1.xhtml
@@ -0,0 +1,19 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script>
+
+function boom()
+{
+  var div = document.getElementById("div");
+  div.textContent = String.fromCharCode(0xDCBF);
+}
+
+</script>
+</head>
+
+<body onload="boom();">
+
+<div id="div"></div>
+
+</body>
+</html>
--- a/content/base/crashtests/crashtests.list
+++ b/content/base/crashtests/crashtests.list
@@ -1,9 +1,10 @@
 load 308120-1.xul
+load 324871-1.html
 load 325730-1.html
 load 326618-1.html
 load 326646-1.html
 load 326778-1.html
 load 326865-1.html
 load 330925-1.xhtml
 load 336381-1.xhtml
 load 336715-1.xhtml
@@ -14,15 +15,16 @@ load 343850-1.xhtml
 load 344434-1.xhtml
 load 348049-1.xhtml
 load 344882-1.html
 load 345837-1.xhtml
 load 354645-1.xul
 load 366200-1.xhtml
 load 369216-1.html
 load 371466-1.xhtml
+load 377360-1.xhtml
 load 386000-1.html
 load 386794-1.html
 load 395469-1.xhtml
 load 395469-2.xhtml
 load 399712-1.html
 load 407818.html
 load 410860-1.xml
--- a/content/base/public/nsIDocument.h
+++ b/content/base/public/nsIDocument.h
@@ -46,16 +46,17 @@
 #include "nsWeakPtr.h"
 #include "nsIWeakReferenceUtils.h"
 #include "nsILoadGroup.h"
 #include "nsCRT.h"
 #include "mozFlushType.h"
 #include "nsIAtom.h"
 #include "nsCompatibility.h"
 #include "nsTObserverArray.h"
+#include "nsNodeInfoManager.h"
 
 class nsIContent;
 class nsPresContext;
 class nsIPresShell;
 
 class nsIStreamListener;
 class nsIStreamObserver;
 class nsStyleSet;
@@ -75,35 +76,34 @@ class nsISelection;
 class nsIChannel;
 class nsIPrincipal;
 class nsIDOMDocument;
 class nsIDOMDocumentType;
 class nsIObserver;
 class nsScriptLoader;
 class nsIContentSink;
 class nsIScriptEventManager;
-class nsNodeInfoManager;
 class nsICSSLoader;
 class nsHTMLStyleSheet;
 class nsIHTMLCSSStyleSheet;
 class nsILayoutHistoryState;
 class nsIVariant;
 class nsIDOMUserDataHandler;
 template<class E> class nsCOMArray;
 class nsIDocumentObserver;
 class nsBindingManager;
 class nsIDOMNodeList;
 class mozAutoSubtreeModified;
 struct JSObject;
 class nsFrameLoader;
 
 // IID for the nsIDocument interface
 #define NS_IDOCUMENT_IID      \
-{ 0xd76acf2e, 0x4b55, 0x420c, \
-  { 0xaa, 0xbf, 0x5c, 0x4d, 0xbf, 0xc9, 0x81, 0x08 } }
+{ 0x0cf9986f, 0x6e27, 0x4c24, \
+  { 0x9f, 0x43, 0x87, 0x01, 0x52, 0xf7, 0x4c, 0x0a } }
 
 // Flag for AddStyleSheet().
 #define NS_STYLESHEET_FROM_CATALOG                (1 << 0)
 
 //----------------------------------------------------------------------
 
 // Document interface.  This is implemented by all document objects in
 // Gecko.
@@ -112,17 +112,16 @@ class nsIDocument : public nsINode
 public:
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOCUMENT_IID)
   NS_DECL_AND_IMPL_ZEROING_OPERATOR_NEW
 
 #ifdef MOZILLA_INTERNAL_API
   nsIDocument()
     : nsINode(nsnull),
       mCharacterSet(NS_LITERAL_CSTRING("ISO-8859-1")),
-      mBindingManager(nsnull),
       mNodeInfoManager(nsnull),
       mCompatMode(eCompatibility_FullStandards),
       mIsInitialDocumentInWindow(PR_FALSE),
       mMayStartLayout(PR_TRUE),
       mPartID(0),
       mJSObject(nsnull)
   {
     mParentPtrBits |= PARENT_BIT_INDOCUMENT;
@@ -626,17 +625,17 @@ public:
   /**
    * Flush notifications for this document and its parent documents
    * (since those may affect the layout of this one).
    */
   virtual void FlushPendingNotifications(mozFlushType aType) = 0;
 
   nsBindingManager* BindingManager() const
   {
-    return mBindingManager;
+    return mNodeInfoManager->GetBindingManager();
   }
 
   /**
    * Only to be used inside Gecko, you can't really do anything with the
    * pointer outside Gecko anyway.
    */
   nsNodeInfoManager* NodeInfoManager() const
   {
@@ -961,17 +960,16 @@ public:
   virtual nsresult FinalizeFrameLoader(nsFrameLoader* aLoader) = 0;
 protected:
   ~nsIDocument()
   {
     // XXX The cleanup of mNodeInfoManager (calling DropDocumentReference and
     //     releasing it) happens in the nsDocument destructor. We'd prefer to
     //     do it here but nsNodeInfoManager is a concrete class that we don't
     //     want to expose to users of the nsIDocument API outside of Gecko.
-    // XXX Same thing applies to mBindingManager
   }
 
   /**
    * These methods should be called before and after dispatching
    * a mutation event.
    * To make this easy and painless, use the mozAutoSubtreeModified helper class.
    */
   virtual void WillDispatchMutationEvent(nsINode* aTarget) = 0;
@@ -996,17 +994,16 @@ protected:
   // A reference to the content last returned from GetRootContent().
   // This should be an nsIContent, but that would force us to pull in
   // nsIContent.h
   nsCOMPtr<nsINode> mCachedRootContent;
 
   // We'd like these to be nsRefPtrs, but that'd require us to include
   // additional headers that we don't want to expose.
   // The cleanup is handled by the nsDocument destructor.
-  nsBindingManager* mBindingManager; // [STRONG]
   nsNodeInfoManager* mNodeInfoManager; // [STRONG]
   nsICSSLoader* mCSSLoader; // [STRONG]
 
   // Table of element properties for this document.
   nsPropertyTable mPropertyTable;
 
   // Compatibility mode
   nsCompatibility mCompatMode;
--- a/content/base/src/Makefile.in
+++ b/content/base/src/Makefile.in
@@ -112,17 +112,16 @@ CPPSRCS		= \
 		nsCommentNode.cpp \
 		nsContentAreaDragDrop.cpp \
 		nsContentIterator.cpp \
 		nsContentList.cpp \
 		nsContentPolicy.cpp \
 		nsContentSink.cpp \
 		nsContentUtils.cpp \
 		nsCopySupport.cpp \
-		nsCrossSiteListenerProxy.cpp \
 		nsDataDocumentContentPolicy.cpp \
 		nsDOMAttribute.cpp \
 		nsDOMAttributeMap.cpp \
 		nsDOMDocumentType.cpp \
 		nsDOMFile.cpp \
 		nsDOMLists.cpp \
 		nsDOMParser.cpp \
 		nsDOMSerializer.cpp \
--- a/content/base/src/nsContentSink.cpp
+++ b/content/base/src/nsContentSink.cpp
@@ -160,22 +160,25 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIScriptLoaderObserver)
 NS_INTERFACE_MAP_END
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsContentSink)
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsContentSink)
   if (tmp->mDocument) {
     tmp->mDocument->RemoveObserver(tmp);
   }
-NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mDocument)
-NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mParser)
+  NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mDocument)
+  NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mParser)
+  NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mNodeInfoManager)
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsContentSink)
-NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mDocument)
-NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mParser)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mDocument)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mParser)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mNodeInfoManager,
+                                                  nsNodeInfoManager)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
 
 nsContentSink::nsContentSink()
 {
   // We have a zeroing operator new
   NS_ASSERTION(mLayoutStarted == PR_FALSE, "What?");
   NS_ASSERTION(mDynamicLowerValue == PR_FALSE, "What?");
deleted file mode 100644
--- a/content/base/src/nsCrossSiteListenerProxy.cpp
+++ /dev/null
@@ -1,969 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2007
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Jonas Sicking <jonas@sicking.cc> (Original Author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsCrossSiteListenerProxy.h"
-#include "nsIChannel.h"
-#include "nsIHttpChannel.h"
-#include "nsDOMError.h"
-#include "nsContentUtils.h"
-#include "nsIScriptSecurityManager.h"
-#include "nsNetUtil.h"
-#include "nsIParser.h"
-#include "nsParserCIID.h"
-#include "nsICharsetAlias.h"
-#include "nsMimeTypes.h"
-#include "nsIStreamConverterService.h"
-#include "nsStringStream.h"
-#include "nsParserUtils.h"
-#include "nsGkAtoms.h"
-#include "nsWhitespaceTokenizer.h"
-#include "nsIChannelEventSink.h"
-
-static NS_DEFINE_CID(kCParserCID, NS_PARSER_CID);
-
-NS_IMPL_ISUPPORTS7(nsCrossSiteListenerProxy, nsIStreamListener,
-                   nsIRequestObserver, nsIContentSink, nsIXMLContentSink,
-                   nsIExpatSink, nsIChannelEventSink, nsIInterfaceRequestor)
-
-nsCrossSiteListenerProxy::nsCrossSiteListenerProxy(nsIStreamListener* aOuter,
-                                                   nsIPrincipal* aRequestingPrincipal,
-                                                   nsIChannel* aChannel,
-                                                   nsresult* aResult)
-  : mOuterListener(aOuter),
-    mRequestingPrincipal(aRequestingPrincipal),
-    mAcceptState(eNotSet),
-    mHasForwardedRequest(PR_FALSE),
-    mHasBeenCrossSite(PR_FALSE)
-{
-  aRequestingPrincipal->GetURI(getter_AddRefs(mRequestingURI));
-  aChannel->GetNotificationCallbacks(getter_AddRefs(mOuterNotificationCallbacks));
-  aChannel->SetNotificationCallbacks(this);
-
-  *aResult = UpdateChannel(aChannel);
-}
-
-nsresult
-nsCrossSiteListenerProxy::ForwardRequest(PRBool aFromStop)
-{
-  if (mHasForwardedRequest) {
-    return NS_OK;
-  }
-
-  mHasForwardedRequest = PR_TRUE;
-
-  if (mParser) {
-    mParser->Terminate();
-    mParser = nsnull;
-    mParserListener = nsnull;
-  }
-
-  if (mAcceptState != eAccept) {
-    mAcceptState = eDeny;
-    mOuterRequest->Cancel(NS_ERROR_DOM_BAD_URI);
-    mOuterListener->OnStartRequest(mOuterRequest, mOuterContext);
-
-    // Only call OnStopRequest here if we were called from OnStopRequest.
-    // Otherwise the call to Cancel will make us get an OnStopRequest later
-    // so we'll forward OnStopRequest then.
-    if (aFromStop) {
-      mOuterListener->OnStopRequest(mOuterRequest, mOuterContext,
-                                    NS_ERROR_DOM_BAD_URI);
-    }
-
-    // Clear this data just in case since it should never be forwarded.
-    mStoredData.Truncate();
-
-    return NS_ERROR_DOM_BAD_URI;
-  }
-
-  nsresult rv = mOuterListener->OnStartRequest(mOuterRequest, mOuterContext);
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  if (!mStoredData.IsEmpty()) {
-    nsCOMPtr<nsIInputStream> stream;
-    rv = NS_NewCStringInputStream(getter_AddRefs(stream), mStoredData);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    rv = mOuterListener->OnDataAvailable(mOuterRequest, mOuterContext, stream,
-                                         0, mStoredData.Length());
-    NS_ENSURE_SUCCESS(rv, rv);
-  }
-
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::OnStartRequest(nsIRequest* aRequest,
-                                         nsISupports* aContext)
-{
-  mOuterRequest = aRequest;
-  mOuterContext = aContext;
-
-  // Check if the request failed
-  nsresult status;
-  nsresult rv = aRequest->GetStatus(&status);
-  NS_ENSURE_SUCCESS(rv, rv);
-  if (NS_FAILED(status)) {
-    mAcceptState = eDeny;
-    return ForwardRequest(PR_FALSE);
-  }
-
-  // Check if this was actually a cross domain request
-  nsCOMPtr<nsIChannel> channel = do_QueryInterface(aRequest);
-  if (!channel) {
-    return NS_ERROR_DOM_BAD_URI;
-  }
-  nsCOMPtr<nsIURI> finalURI;
-  channel->GetURI(getter_AddRefs(finalURI));
-
-  if (!mHasBeenCrossSite) {
-    mAcceptState = eAccept;
-    return ForwardRequest(PR_FALSE);
-  }
-
-  nsCOMPtr<nsIHttpChannel> http = do_QueryInterface(channel);
-  if (http) {
-    PRBool succeeded;
-    rv = http->GetRequestSucceeded(&succeeded);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    if (!succeeded) {
-      mAcceptState = eDeny;
-      return ForwardRequest(PR_FALSE);
-    }
-  }
-
-  // Get the list of subdomains out of mRequestingURI
-  nsCString host;
-  rv = mRequestingURI->GetAsciiHost(host);
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  PRInt32 nextDot, currDot = 0;
-  while ((nextDot = host.FindChar('.', currDot)) != -1) {
-    mReqSubdomains.AppendElement(Substring(host, currDot, nextDot - currDot));
-    currDot = nextDot + 1;
-  }
-  mReqSubdomains.AppendElement(Substring(host, currDot));
-
-  // Check the Access-Control header
-  if (http) {
-    nsCAutoString ac;
-    rv = http->GetResponseHeader(NS_LITERAL_CSTRING("Access-Control"), ac);
-    
-    if (NS_SUCCEEDED(rv)) {
-      CheckHeader(ac);
-    }
-  }
-
-  if (mAcceptState == eDeny) {
-    return ForwardRequest(PR_FALSE);
-  }
-
-  // Set up a parser with us as a sink to look for PIs
-  mParser = do_CreateInstance(kCParserCID, &rv);
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  mParserListener = do_QueryInterface(mParser);
-
-  mParser->SetCommand(kLoadAsData);
-  mParser->SetContentSink(this);
-  mParser->Parse(finalURI);
-
-  // check channel's charset...
-  nsCAutoString charset(NS_LITERAL_CSTRING("UTF-8"));
-  PRInt32 charsetSource = kCharsetFromDocTypeDefault;
-  nsCAutoString charsetVal;
-  rv = channel->GetContentCharset(charsetVal);
-  if (NS_SUCCEEDED(rv)) {
-    nsCOMPtr<nsICharsetAlias> calias =
-      do_GetService(NS_CHARSETALIAS_CONTRACTID);
-
-    if (calias) {
-      nsCAutoString preferred;
-      rv = calias->GetPreferred(charsetVal, preferred);
-      if (NS_SUCCEEDED(rv)) {            
-        charset = preferred;
-        charsetSource = kCharsetFromChannel;
-      }
-    }
-  }
-
-  mParser->SetDocumentCharset(charset, charsetSource);
-
-  nsCAutoString contentType;
-  channel->GetContentType(contentType);
-
-  // Time to sniff! Note: this should go away once file channels do
-  // sniffing themselves.
-  PRBool sniff;
-  if (NS_SUCCEEDED(finalURI->SchemeIs("file", &sniff)) && sniff &&
-    contentType.Equals(UNKNOWN_CONTENT_TYPE)) {
-    nsCOMPtr<nsIStreamConverterService> serv =
-      do_GetService("@mozilla.org/streamConverters;1", &rv);
-    if (NS_SUCCEEDED(rv)) {
-      nsCOMPtr<nsIStreamListener> converter;
-      rv = serv->AsyncConvertData(UNKNOWN_CONTENT_TYPE,
-                                  "*/*",
-                                  mParserListener,
-                                  aContext,
-                                  getter_AddRefs(converter));
-      if (NS_SUCCEEDED(rv)) {
-        mParserListener = converter;
-      }
-    }
-  }
-
-  // Hold a local reference to make sure the parser doesn't go away
-  nsCOMPtr<nsIStreamListener> stackedListener = mParserListener;
-  return stackedListener->OnStartRequest(aRequest, aContext);
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::OnStopRequest(nsIRequest* aRequest,
-                                        nsISupports* aContext,
-                                        nsresult aStatusCode)
-{
-  if (mHasForwardedRequest) {
-    return mOuterListener->OnStopRequest(aRequest, aContext, aStatusCode);
-  }
-
-  mAcceptState = eDeny;
-  return ForwardRequest(PR_TRUE);
-}
-
-NS_METHOD
-StringSegmentWriter(nsIInputStream *aInStream,
-                    void *aClosure,
-                    const char *aFromSegment,
-                    PRUint32 aToOffset,
-                    PRUint32 aCount,
-                    PRUint32 *aWriteCount)
-{
-  nsCString* dest = static_cast<nsCString*>(aClosure);
-
-  dest->Append(aFromSegment, aCount);
-  *aWriteCount = aCount;
-  
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::OnDataAvailable(nsIRequest* aRequest,
-                                          nsISupports* aContext, 
-                                          nsIInputStream* aInputStream,
-                                          PRUint32 aOffset,
-                                          PRUint32 aCount)
-{
-  if (mHasForwardedRequest) {
-    if (mAcceptState != eAccept) {
-      return NS_ERROR_DOM_BAD_URI;
-    }
-    return mOuterListener->OnDataAvailable(aRequest, aContext, aInputStream,
-                                           aOffset, aCount);
-  }
-
-  NS_ASSERTION(mStoredData.Length() == aOffset,
-               "Stored wrong amount of data");
-
-  PRUint32 read;
-  nsresult rv = aInputStream->ReadSegments(StringSegmentWriter, &mStoredData,
-                                           aCount, &read);
-  NS_ENSURE_SUCCESS(rv, rv);
-  NS_ASSERTION(read == aCount, "didn't store all of the stream");
-
-  nsCOMPtr<nsIInputStream> stream;
-  rv = NS_NewCStringInputStream(getter_AddRefs(stream),
-                                Substring(mStoredData, aOffset));
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  // Hold a local reference to make sure the parser doesn't go away
-  nsCOMPtr<nsIStreamListener> stackedListener = mParserListener;
-  rv = stackedListener->OnDataAvailable(aRequest, aContext, stream, aOffset,
-                                        aCount);
-  // When we forward the request we also terminate the parsing which will
-  // result in an error bubbling up to here. We want to ignore the error
-  // in that case.
-  if (mHasForwardedRequest) {
-    rv = mAcceptState == eAccept ? NS_OK : NS_ERROR_DOM_BAD_URI;
-  }
-  return rv;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::HandleStartElement(const PRUnichar *aName,
-                                             const PRUnichar **aAtts,
-                                             PRUint32 aAttsCount,
-                                             PRInt32 aIndex,
-                                             PRUint32 aLineNumber)
-{
-  // We're done processing the prolog.
-  ForwardRequest(PR_FALSE);
-
-  // Stop the parser since we don't want to spend more cycles on parsing
-  // stuff.
-  return NS_ERROR_HTMLPARSER_STOPPARSING;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::HandleEndElement(const PRUnichar *aName)
-{
-  NS_ASSERTION(mHasForwardedRequest, "Should have forwarded request");
-
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::HandleComment(const PRUnichar *aName)
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::HandleCDataSection(const PRUnichar *aData,
-                                             PRUint32 aLength)
-{
-  NS_ASSERTION(mHasForwardedRequest, "Should have forwarded request");
-
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::HandleDoctypeDecl(const nsAString & aSubset,
-                                            const nsAString & aName,
-                                            const nsAString & aSystemId,
-                                            const nsAString & aPublicId,
-                                            nsISupports *aCatalogData)
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::HandleCharacterData(const PRUnichar *aData,
-                                              PRUint32 aLength)
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::HandleProcessingInstruction(const PRUnichar *aTarget,
-                                                      const PRUnichar *aData)
-{
-  if (mHasForwardedRequest ||
-      !NS_LITERAL_STRING("access-control").Equals(aTarget)) {
-    return NS_OK;
-  }
-
-  nsDependentString data(aData);
-
-  PRBool seenType = PR_FALSE, seenExclude = PR_FALSE;
-  PRBool ruleIsAllow = PR_FALSE;
-  nsAutoString itemList, excludeList;
-
-  PRUint32 i;
-  for (i = 0;; ++i) {
-    nsAutoString attrName;
-    if (nsParserUtils::GetQuotedAttrNameAt(data, i, attrName) &&
-        attrName.IsEmpty()) {
-      break;
-    }
-
-    nsCOMPtr<nsIAtom> attr = do_GetAtom(attrName);
-
-    PRBool res;
-    if (!seenType && attrName.EqualsLiteral("allow")) {
-      seenType = PR_TRUE;
-      ruleIsAllow = PR_TRUE;
-
-      res = nsParserUtils::GetQuotedAttributeValue(data, attr, itemList);
-    }
-    else if (!seenType && attrName.EqualsLiteral("deny")) {
-      seenType = PR_TRUE;
-      ruleIsAllow = PR_FALSE;
-
-      res = nsParserUtils::GetQuotedAttributeValue(data, attr, itemList);
-    }
-    else if (!seenExclude && attrName.EqualsLiteral("exclude")) {
-      seenExclude = PR_TRUE;
-
-      res = nsParserUtils::GetQuotedAttributeValue(data, attr, excludeList);
-    }
-    else {
-      res = PR_FALSE;
-    }
-    
-    if (!res) {
-      // parsing attribute value failed or unknown/duplicated attribute
-      mAcceptState = eDeny;
-      return ForwardRequest(PR_FALSE);
-    }
-  }
-
-  PRBool matchesRule = PR_FALSE;
-
-  nsWhitespaceTokenizer itemTok(itemList);
-
-  if (!itemTok.hasMoreTokens()) {
-    mAcceptState = eDeny;
-
-    return ForwardRequest(PR_FALSE);
-  }
-
-  while (itemTok.hasMoreTokens()) {
-    // Order is important here since we always want to call the function
-    matchesRule = VerifyAndMatchDomainPattern(
-      NS_ConvertUTF16toUTF8(itemTok.nextToken())) || matchesRule;
-  }
-
-  nsWhitespaceTokenizer excludeTok(excludeList);
-  while (excludeTok.hasMoreTokens()) {
-    // Order is important here since we always want to call the function
-    matchesRule = !VerifyAndMatchDomainPattern(
-      NS_ConvertUTF16toUTF8(excludeTok.nextToken())) && matchesRule;
-  }
-
-  if (matchesRule && mAcceptState != eDeny) {
-    mAcceptState = ruleIsAllow ? eAccept : eDeny;
-  }
-
-  if (mAcceptState == eDeny) {
-    return ForwardRequest(PR_FALSE);
-  }
-
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::HandleXMLDeclaration(const PRUnichar *aVersion,
-                                               const PRUnichar *aEncoding,
-                                               PRInt32 aStandalone)
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::ReportError(const PRUnichar *aErrorText,
-                                      const PRUnichar *aSourceText,
-                                      nsIScriptError *aError,
-                                      PRBool *_retval)
-{
-  if (!mHasForwardedRequest) {
-    mAcceptState = eDeny;
-
-    return ForwardRequest(PR_FALSE);
-  }
-
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::WillBuildModel()
-{
-  nsCOMPtr<nsIDTD> dtd;
-  mParser->GetDTD(getter_AddRefs(dtd));
-  NS_ASSERTION(dtd, "missing dtd in WillBuildModel");
-  if (dtd && !(dtd->GetType() & NS_IPARSER_FLAG_XML)) {
-    ForwardRequest(PR_FALSE);
-    
-    // Stop the parser since we don't want to spend more cycles on parsing
-    // stuff.
-    return NS_ERROR_HTMLPARSER_STOPPARSING;
-  }
-
-  return NS_OK;
-}
-
-// Moves aIter past the LWS (RFC2616) directly following it.
-// Returns PR_TRUE and updates aIter if there was an LWS there,
-//         PR_FALSE otherwise
-static PRBool
-EatLWS(const char*& aIter, const char* aEnd)
-{
-  if (aIter + 1 < aEnd && *aIter == '\r' && *(aIter + 1) == '\n') {
-    aIter += 2;
-  }
-
-  PRBool res = PR_FALSE;
-  while (aIter < aEnd && (*aIter == '\t' || *aIter == ' ')) {
-    ++aIter;
-    res = PR_TRUE;
-  }
-  
-  return res;
-}
-
-// Moves aIter past the string, given by aString, directly following it.
-// Returns PR_TRUE and updates aIter if the string was there,
-//         PR_FALSE otherwise
-static PRBool
-EatString(const char*& aIter, const char* aEnd, const char* aString)
-{
-  const char* local = aIter;
-  while (*aString && local < aEnd && *local == *aString) {
-    ++local;
-    ++aString;
-  }
-  if (*aString) {
-    return PR_FALSE;
-  }
-
-  aIter = local;
-  
-  return PR_TRUE;
-}
-
-// Moves aIter to the first aChar following it.
-// Returns The string between the aIters initial position and the
-// found character if one was found.
-// Returns an empty string otherwise.
-static nsDependentCSubstring
-EatToChar(const char*& aIter, const char* aEnd, char aChar)
-{
-  const char* start = aIter;
-  while (aIter < aEnd) {
-    if (*aIter == aChar) {
-      return Substring(start, aIter);
-    }
-    ++aIter;
-  }
-
-  static char emptyStatic[] = { '\0' };
-
-  aIter = start;
-  return Substring(emptyStatic, emptyStatic);
-}
-
-PRBool
-nsCrossSiteListenerProxy::MatchPatternList(const char*& aIter, const char* aEnd)
-{
-  PRBool matchesList = PR_FALSE;
-  PRBool hasItems = PR_FALSE;
-
-  for (;;) {
-    const char* start = aIter;
-    if (!EatLWS(aIter, aEnd)) {
-      break;
-    }
-
-    if (!EatString(aIter, aEnd, "<")) {
-      // restore iterator to before LWS since it wasn't part of the list
-      aIter = start;
-      break;
-    }
-
-    const nsACString& accessItem = EatToChar(aIter, aEnd, '>');
-    if (!EatString(aIter, aEnd, ">")) {
-      mAcceptState = eDeny;
-      break;
-    }
-
-    hasItems = PR_TRUE;
-
-    // Order is important here since we always want to call the function
-    matchesList = VerifyAndMatchDomainPattern(accessItem) || matchesList;
-  }
-
-  if (!hasItems) {
-    mAcceptState = eDeny;
-  }
-
-  return matchesList;
-}
-
-#define DENY_AND_RETURN \
-      mAcceptState = eDeny; \
-      return
-
-void
-nsCrossSiteListenerProxy::CheckHeader(const nsCString& aHeader)
-{
-  const char* iter = aHeader.BeginReading();
-  const char* end = aHeader.EndReading();
-
-  // ruleset        ::= LWS? rule LWS? ("," LWS? rule LWS?)*
-  while (iter < end) {
-    // eat LWS?
-    EatLWS(iter, end);
-
-    // rule ::= rule-type (LWS pattern)+ (LWS "exclude" (LWS pattern)+)?
-    // eat rule-type
-    PRBool ruleIsAllow;
-    if (EatString(iter, end, "deny")) {
-      ruleIsAllow = PR_FALSE;
-    }
-    else if (EatString(iter, end, "allow")) {
-      ruleIsAllow = PR_TRUE;
-    }
-    else {
-      DENY_AND_RETURN;
-    }
-
-    // eat (LWS pattern)+
-    PRBool matchesRule = MatchPatternList(iter, end);
-
-    PRBool ateLWS = EatLWS(iter, end);
-
-    // eat (LWS "exclude" (LWS pattern)+)?
-    if (ateLWS && EatString(iter, end, "exclude")) {
-      ateLWS = PR_FALSE;
-
-      // Order is important here since we always want to call the function
-      matchesRule = !MatchPatternList(iter, end) && matchesRule;
-    }
-    
-    if (matchesRule && mAcceptState != eDeny) {
-      mAcceptState = ruleIsAllow ? eAccept : eDeny;
-    }
-
-    // eat LWS?
-    if (!ateLWS) {
-      EatLWS(iter, end);
-    }
-    
-    if (iter != end) {
-      if (!EatString(iter, end, ",")) {
-        DENY_AND_RETURN;
-      }
-    }
-  }
-}
-
-// Moves aIter forward one character if the character at aIter is in [a-zA-Z]
-// Returns PR_TRUE and updates aIter if such a character was found.
-//         PR_FALSE otherwise.
-static PRBool
-EatAlpha(nsACString::const_iterator& aIter, nsACString::const_iterator& aEnd)
-{
-  if (aIter != aEnd && ((*aIter >= 'A' && *aIter <= 'Z') ||
-                        (*aIter >= 'a' && *aIter <= 'z'))) {
-    ++aIter;
-
-    return PR_TRUE;
-  }
-
-  return PR_FALSE;
-}
-
-// Moves aIter forward one character if the character at aIter is in [0-9]
-// Returns PR_TRUE and updates aIter if such a character was found.
-//         PR_FALSE otherwise.
-static PRBool
-EatDigit(nsACString::const_iterator& aIter, nsACString::const_iterator& aEnd)
-{
-  if (aIter != aEnd && *aIter >= '0' && *aIter <= '9') {
-    ++aIter;
-
-    return PR_TRUE;
-  }
-
-  return PR_FALSE;
-}
-
-// Moves aIter forward one character if the character at aIter is aChar
-// Returns PR_TRUE and updates aIter if aChar was found.
-//         PR_FALSE otherwise.
-static PRBool
-EatChar(nsACString::const_iterator& aIter, nsACString::const_iterator& aEnd,
-        char aChar)
-{
-  if (aIter != aEnd && *aIter == aChar) {
-    ++aIter;
-
-    return PR_TRUE;
-  }
-
-  return PR_FALSE;
-}
-
-// Moves aIter forward until it hits a subdomain terminator (* : or whitespace)
-// or reaches the end
-//     access-item ::= (scheme "://")? domain-pattern (":" port)? | "*"
-//     domain-pattern ::= subdomain | "*." subdomain
-// Returns PR_TRUE and updates aIter if a terminator is found.
-//         PR_FALSE otherwise.
-static void
-EatSubdomainChars(nsACString::const_iterator& aIter,
-                  nsACString::const_iterator& aEnd)
-{
-  NS_ASSERTION(aIter.get() <= aEnd.get(), "EatSubdomainChars failed");
-
-  // Make sure to not allow initial hyphens
-  if (*aIter == '-') {
-    return;
-  }
-
-  while (aIter != aEnd) {
-    unsigned char c = *aIter;
-    if (c <= 0x2c || 
-        0x2e <= c && c <= 0x2f ||
-        0x3a <= c && c <= 0x40 ||
-        0x5b <= c && c <= 0x60 ||
-        0x7b <= c && c <= 0x7f) {
-      return;
-    }
-    ++aIter;
-  }
-}
-
-static PRBool
-ACEEquals(const nsACString &aPattern, const nsCString &domain)
-{
-  if (aPattern.LowerCaseEqualsASCII(domain.get(), domain.Length()))
-    return PR_TRUE;
-
-  // Convert subdomain patern to ACE
-  nsCString acePattern;
-  if (!NS_StringToACE(aPattern, acePattern))
-    return PR_FALSE;
-  return acePattern.LowerCaseEqualsASCII(domain.get(), domain.Length());
-}
-
-PRBool
-nsCrossSiteListenerProxy::VerifyAndMatchDomainPattern(const nsACString& aPattern)
-{
-  if (aPattern.EqualsLiteral("*")) {
-    return PR_TRUE;
-  }
-
-  // access-item ::= (scheme "://")? domain-pattern (":" port)? | "*"
-
-  nsACString::const_iterator start, iter, end;
-  aPattern.BeginReading(start);
-  aPattern.EndReading(end);
-
-  // (scheme "://")?
-  nsCString patternScheme;
-  nsACString::const_iterator schemeStart = start, schemeEnd = end;
-  if (FindInReadable(NS_LITERAL_CSTRING("://"), schemeStart, schemeEnd)) {
-    // There is a '://' in the string which means that it must start with
-    // a scheme.
-    
-    iter = start;
-    
-    if (!EatAlpha(iter, end)) {
-      DENY_AND_RETURN PR_FALSE;
-    }
-    
-    while(EatAlpha(iter, end) ||
-          EatDigit(iter, end) ||
-          EatChar(iter, end, '+') ||
-          EatChar(iter, end, '-') ||
-          EatChar(iter, end, '.')) {}
-    
-    if (iter != schemeStart) {
-      DENY_AND_RETURN PR_FALSE;
-    }
-
-    // Set the scheme
-    patternScheme = Substring(start, iter);
-
-    start = iter.advance(3);
-  }
-
-  // domain-pattern ::= subdomain | "*." subdomain
-  PRBool patternHasWild = PR_FALSE;
-  if (EatChar(start, end, '*')) {
-    if (!EatChar(start, end, '.')) {
-      DENY_AND_RETURN PR_FALSE;
-    }
-    patternHasWild = PR_TRUE;
-  }
-
-  nsTArray<nsCString> patternSubdomains;
-
-  // subdomain ::= label | subdomain "." label
-  do {
-    iter = start;
-
-    EatSubdomainChars(iter, end);
-    
-    const nsDependentCSubstring& label = Substring(start, iter);
-    if (label.Last() == '-') {
-      DENY_AND_RETURN PR_FALSE;
-    }
-
-    start = iter;
-
-    // Save the label
-    patternSubdomains.AppendElement(label);
-  } while (EatChar(start, end, '.'));
-
-  // (":" port)?
-  PRInt32 patternPort = -1;
-  if (EatChar(start, end, ':')) {
-    iter = start;
-    while (EatDigit(iter, end)) {}
-    
-    if (iter != start) {
-      PRInt32 ec;
-      patternPort = PromiseFlatCString(Substring(start, iter)).ToInteger(&ec);
-      NS_ASSERTION(NS_SUCCEEDED(ec), "ToInteger failed");
-    }
-    
-    start = iter;
-  }
-
-  // Did we consume the whole pattern?
-  if (start != end) {
-    DENY_AND_RETURN PR_FALSE;
-  }
-
-  // Do checks at the end so that we make sure that the whole pattern is
-  // checked for syntax correctness first.
-
-  // Check scheme
-  PRBool res;
-  if (!patternScheme.IsEmpty() &&
-      (NS_FAILED(mRequestingURI->SchemeIs(patternScheme.get(), &res)) ||
-       !res)) {
-    return PR_FALSE;
-  }
-
-  // Check port
-  if (patternPort == -1 && !patternScheme.IsEmpty())
-    patternPort = NS_GetDefaultPort(patternScheme.get());
-  if (patternPort != -1 && patternPort != NS_GetRealPort(mRequestingURI)) {
-    return PR_FALSE;
-  }
-
-  // Check subdomain
-  PRUint32 patternPos = patternSubdomains.Length();
-  PRUint32 reqPos = mReqSubdomains.Length();
-  do {
-    --patternPos;
-    --reqPos;
-    if (!ACEEquals(patternSubdomains[patternPos], mReqSubdomains[reqPos])) {
-      return PR_FALSE;
-    }
-  } while (patternPos > 0 && reqPos > 0);
-
-  // Only matches if we've matched all of pattern and, if there is a wildcard, there
-  // is at least one more entry in mReqSubdomains.
-  
-  return patternPos == 0 &&
-         (!patternHasWild || reqPos >= 1);
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::GetInterface(const nsIID & aIID, void **aResult)
-{
-  if (aIID.Equals(NS_GET_IID(nsIChannelEventSink))) {
-    *aResult = static_cast<nsIChannelEventSink*>(this);
-    NS_ADDREF_THIS();
-
-    return NS_OK;
-  }
-
-  return mOuterNotificationCallbacks ?
-    mOuterNotificationCallbacks->GetInterface(aIID, aResult) :
-    NS_ERROR_NO_INTERFACE;
-}
-
-NS_IMETHODIMP
-nsCrossSiteListenerProxy::OnChannelRedirect(nsIChannel *aOldChannel,
-                                            nsIChannel *aNewChannel,
-                                            PRUint32    aFlags)
-{
-  nsresult rv;
-  nsCOMPtr<nsIChannelEventSink> outer =
-    do_GetInterface(mOuterNotificationCallbacks);
-  if (outer) {
-    rv = outer->OnChannelRedirect(aOldChannel, aNewChannel, aFlags);
-    NS_ENSURE_SUCCESS(rv, rv);
-  }
-
-  return UpdateChannel(aNewChannel);
-}
-
-nsresult
-nsCrossSiteListenerProxy::UpdateChannel(nsIChannel* aChannel)
-{
-  nsCOMPtr<nsIURI> uri;
-  nsresult rv = aChannel->GetURI(getter_AddRefs(uri));
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  // Check that the uri is ok to load
-  rv = nsContentUtils::GetSecurityManager()->
-    CheckLoadURIWithPrincipal(mRequestingPrincipal, uri,
-                              nsIScriptSecurityManager::STANDARD);
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  if (!mHasBeenCrossSite &&
-      NS_SUCCEEDED(mRequestingPrincipal->CheckMayLoad(uri, PR_FALSE))) {
-    return NS_OK;
-  }
-
-  nsCString userpass;
-  uri->GetUserPass(userpass);
-  NS_ENSURE_TRUE(userpass.IsEmpty(), NS_ERROR_DOM_BAD_URI);
-
-  // It's a cross site load
-  mHasBeenCrossSite = PR_TRUE;
-
-  // Work out the Referer-Root header
-  nsCString root, host;
-  rv = mRequestingURI->GetAsciiHost(host);
-  NS_ENSURE_SUCCESS(rv, rv);
-
-  if (!host.IsEmpty()) {
-    nsCString scheme;
-    rv = mRequestingURI->GetScheme(scheme);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    root = scheme + NS_LITERAL_CSTRING("://") + host;
-
-    // If needed, append the port
-    PRInt32 port;
-    mRequestingURI->GetPort(&port);
-    if (port != -1) {
-      PRInt32 defaultPort = NS_GetDefaultPort(scheme.get());
-      if (port != defaultPort) {
-        root.Append(":");
-        root.AppendInt(port);
-      }
-    }
-  }
-  else {
-    root.AssignLiteral("null");
-  }
-
-  // Now add the access-control-origin header
-  nsCOMPtr<nsIHttpChannel> http = do_QueryInterface(aChannel);
-  NS_ENSURE_TRUE(http, NS_ERROR_FAILURE);
-
-  return http->SetRequestHeader(NS_LITERAL_CSTRING("Access-Control-Origin"),
-    root, PR_FALSE);
-}
deleted file mode 100644
--- a/content/base/src/nsCrossSiteListenerProxy.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is Mozilla Foundation.
- * Portions created by the Initial Developer are Copyright (C) 2007
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Jonas Sicking <jonas@sicking.cc> (Original Author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsIStreamListener.h"
-#include "nsIInterfaceRequestor.h"
-#include "nsCOMPtr.h"
-#include "nsString.h"
-#include "nsIURI.h"
-#include "nsTArray.h"
-#include "nsIContentSink.h"
-#include "nsIXMLContentSink.h"
-#include "nsIExpatSink.h"
-#include "nsIInterfaceRequestor.h"
-#include "nsIChannelEventSink.h"
-
-class nsIURI;
-class nsIParser;
-class nsIPrincipal;
-
-class nsCrossSiteListenerProxy : public nsIStreamListener,
-                                 public nsIXMLContentSink,
-                                 public nsIExpatSink,
-                                 public nsIInterfaceRequestor,
-                                 public nsIChannelEventSink
-{
-public:
-  nsCrossSiteListenerProxy(nsIStreamListener* aOuter,
-                           nsIPrincipal* aRequestingPrincipal,
-                           nsIChannel* aChannel,
-                           nsresult* aResult);
-
-  NS_DECL_ISUPPORTS
-  NS_DECL_NSIREQUESTOBSERVER
-  NS_DECL_NSISTREAMLISTENER
-  NS_DECL_NSIEXPATSINK
-  NS_DECL_NSIINTERFACEREQUESTOR
-  NS_DECL_NSICHANNELEVENTSINK
-
-  // nsIContentSink
-  NS_IMETHOD WillTokenize(void) { return NS_OK; }
-  NS_IMETHOD WillBuildModel(void);
-  NS_IMETHOD DidBuildModel()  { return NS_OK; }
-  NS_IMETHOD WillInterrupt(void) { return NS_OK; }
-  NS_IMETHOD WillResume(void) { return NS_OK; }
-  NS_IMETHOD SetParser(nsIParser* aParser) { return NS_OK; }
-  virtual void FlushPendingNotifications(mozFlushType aType) { }
-  NS_IMETHOD SetDocumentCharset(nsACString& aCharset) { return NS_OK; }
-  virtual nsISupports *GetTarget() { return nsnull; }
-
-private:
-  nsresult UpdateChannel(nsIChannel* aChannel);
-
-  nsresult ForwardRequest(PRBool aCallStop);
-  PRBool MatchPatternList(const char*& aIter, const char* aEnd);
-  void CheckHeader(const nsCString& aHeader);
-  PRBool VerifyAndMatchDomainPattern(const nsACString& aDomainPattern);
-
-  nsCOMPtr<nsIStreamListener> mOuterListener;
-  nsCOMPtr<nsIRequest> mOuterRequest;
-  nsCOMPtr<nsISupports> mOuterContext;
-  nsCOMPtr<nsIStreamListener> mParserListener;
-  nsCOMPtr<nsIParser> mParser;
-  nsCOMPtr<nsIURI> mRequestingURI;
-  nsCOMPtr<nsIPrincipal> mRequestingPrincipal;
-  nsCOMPtr<nsIInterfaceRequestor> mOuterNotificationCallbacks;
-  nsTArray<nsCString> mReqSubdomains;
-  nsCString mStoredData;
-  enum {
-    eAccept,
-    eDeny,
-    eNotSet
-  } mAcceptState;
-  PRBool mHasForwardedRequest;
-  PRBool mHasBeenCrossSite;
-};
--- a/content/base/src/nsDOMAttribute.cpp
+++ b/content/base/src/nsDOMAttribute.cpp
@@ -71,16 +71,17 @@ nsDOMAttribute::nsDOMAttribute(nsDOMAttr
 
   // We don't add a reference to our content. It will tell us
   // to drop our reference when it goes away.
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsDOMAttribute)
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsDOMAttribute)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mNodeInfo)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mChild)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_LISTENERMANAGER
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_USERDATA
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_PRESERVED_WRAPPER
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsDOMAttribute)
   NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mChild)
--- a/content/base/src/nsDOMParser.cpp
+++ b/content/base/src/nsDOMParser.cpp
@@ -215,22 +215,31 @@ nsDOMParser::ParseFromStream(nsIInputStr
   if (!NS_InputStreamIsBuffered(stream)) {
     rv = NS_NewBufferedInputStream(getter_AddRefs(bufferedStream), stream,
                                    4096);
     NS_ENSURE_SUCCESS(rv, rv);
 
     stream = bufferedStream;
   }
 
+  // Here we have to cheat a little bit...  Setting the base URI won't
+  // work if the document has a null principal, so use
+  // mOriginalPrincipal when creating the document, then reset the
+  // principal.
   nsCOMPtr<nsIDOMDocument> domDocument;
   rv = nsContentUtils::CreateDocument(EmptyString(), EmptyString(), nsnull,
-                                      mDocumentURI, mBaseURI, mPrincipal,
+                                      mDocumentURI, mBaseURI,
+                                      mOriginalPrincipal,
                                       scriptHandlingObject,
                                       getter_AddRefs(domDocument));
   NS_ENSURE_SUCCESS(rv, rv);
+  nsCOMPtr<nsIDocument> document(do_QueryInterface(domDocument));
+  if (!document) return NS_ERROR_FAILURE;
+
+  document->SetPrincipal(mPrincipal);
 
   // Register as a load listener on the document
   nsCOMPtr<nsPIDOMEventTarget> target(do_QueryInterface(domDocument));
   if (target) {
     nsWeakPtr requestWeak(do_GetWeakReference(static_cast<nsIDOMParser*>(this)));
     nsLoadListenerProxy* proxy = new nsLoadListenerProxy(requestWeak);
     if (!proxy) return NS_ERROR_OUT_OF_MEMORY;
 
@@ -249,18 +258,16 @@ nsDOMParser::ParseFromStream(nsIInputStr
   parserChannel->SetOwner(mPrincipal);
 
   if (charset) {
     parserChannel->SetContentCharset(nsDependentCString(charset));
   }
 
   // Tell the document to start loading
   nsCOMPtr<nsIStreamListener> listener;
-  nsCOMPtr<nsIDocument> document(do_QueryInterface(domDocument));
-  if (!document) return NS_ERROR_FAILURE;
 
   mLoopingForSyncLoad = PR_TRUE;
 
   // Have to pass PR_FALSE for reset here, else the reset will remove
   // our event listener.  Should that listener addition move to later
   // than this call?  Then we wouldn't need to mess around with
   // SetPrincipal, etc, probably!
   rv = document->StartDocumentLoad(kLoadAsData, parserChannel, 
@@ -330,30 +337,42 @@ nsDOMParser::Init(nsIPrincipal* principa
     principal->GetURI(getter_AddRefs(mDocumentURI));
     if (!mDocumentURI) {
       return NS_ERROR_INVALID_ARG;
     }
   }
 
   mScriptHandlingObject = do_GetWeakReference(aScriptObject);
   mPrincipal = principal;
+  nsIScriptSecurityManager* secMan = nsContentUtils::GetSecurityManager();
+  NS_ENSURE_TRUE(secMan, NS_ERROR_NOT_AVAILABLE);
+  nsresult rv;
   if (!mPrincipal) {
-    nsIScriptSecurityManager* secMan = nsContentUtils::GetSecurityManager();
-    NS_ENSURE_TRUE(secMan, NS_ERROR_NOT_AVAILABLE);
-    nsresult rv =
+    rv =
       secMan->GetCodebasePrincipal(mDocumentURI, getter_AddRefs(mPrincipal));
-    NS_ENSURE_SUCCESS(rv, rv);
+    mOriginalPrincipal = mPrincipal;
+  } else {
+    mOriginalPrincipal = principal;
+    PRBool isSystem;
+    rv = secMan->IsSystemPrincipal(mPrincipal, &isSystem);
+    if (NS_FAILED(rv) || isSystem) {
+      // Don't give DOMParsers the system principal.  Use a null
+      // principal instead.
+      mPrincipal = do_CreateInstance("@mozilla.org/nullprincipal;1", &rv);
+    }
   }
+  NS_ENSURE_SUCCESS(rv, rv);
   
   mBaseURI = baseURI;
   // Note: if mBaseURI is null, fine.  Leave it like that; that will use the
   // documentURI as the base.  Otherwise for null principals we'll get
   // nsDocument::SetBaseURI giving errors.
 
   NS_POSTCONDITION(mPrincipal, "Must have principal");
+  NS_POSTCONDITION(mOriginalPrincipal, "Must have original principal");
   NS_POSTCONDITION(mDocumentURI, "Must have document URI");
   return NS_OK;
 }
   
 static nsQueryInterface
 JSvalToInterface(JSContext* cx, jsval val, nsIXPConnect* xpc, PRBool* wasNull)
 {
   if (val == JSVAL_NULL) {
--- a/content/base/src/nsDOMParser.h
+++ b/content/base/src/nsDOMParser.h
@@ -88,16 +88,17 @@ private:
       *mAttemptedInit = PR_TRUE;
     }
 
   private:
     PRPackedBool* mAttemptedInit;
   };
   
   nsCOMPtr<nsIPrincipal> mPrincipal;
+  nsCOMPtr<nsIPrincipal> mOriginalPrincipal;
   nsCOMPtr<nsIURI> mDocumentURI;
   nsCOMPtr<nsIURI> mBaseURI;
   nsWeakPtr mScriptHandlingObject;
   
   PRPackedBool mLoopingForSyncLoad;
   PRPackedBool mAttemptedInit;
 };
 
--- a/content/base/src/nsDocument.cpp
+++ b/content/base/src/nsDocument.cpp
@@ -876,21 +876,16 @@ nsDocument::~nsDocument()
   if (mAttrStyleSheet) {
     mAttrStyleSheet->SetOwningDocument(nsnull);
   }
   
   if (mStyleAttrStyleSheet) {
     mStyleAttrStyleSheet->SetOwningDocument(nsnull);
   }
 
-  if (mBindingManager) {
-    mBindingManager->DropDocumentReference();
-    NS_RELEASE(mBindingManager);
-  }
-
   delete mHeaderData;
 
   if (mBoxObjectTable) {
     mBoxObjectTable->EnumerateRead(ClearAllBoxObjects, nsnull);
     delete mBoxObjectTable;
   }
 
   delete mContentWrapperHash;
@@ -1020,27 +1015,30 @@ LinkMapTraverser(nsUint32ToContentHashEn
   return PL_DHASH_NEXT;
 }
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsDocument)
   if (nsCCUncollectableMarker::InGeneration(tmp->GetMarkedCCGeneration())) {
     return NS_OK;
   }
 
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mNodeInfo)
+
   // Traverse the mChildren nsAttrAndChildArray.
   for (PRInt32 indx = PRInt32(tmp->mChildren.ChildCount()); indx > 0; --indx) {
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mChildren[i]");
     cb.NoteXPCOMChild(tmp->mChildren.ChildAt(indx - 1));
   }
 
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_USERDATA
 
   // Traverse all nsIDocument pointer members.
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mCachedRootContent)
-  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_RAWPTR(mBindingManager)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mNodeInfoManager,
+                                                  nsNodeInfoManager)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mSecurityInfo)
 
   // Traverse all nsDocument nsCOMPtrs.
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mParser)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mScriptGlobalObject)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mListenerManager)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mDOMStyleSheets)
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mScriptLoader)
@@ -1111,28 +1109,24 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(ns
   // In rare cases where you think an unlink will help here, add one
   // manually.
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 
 
 nsresult
 nsDocument::Init()
 {
-  if (mBindingManager || mCSSLoader || mNodeInfoManager || mScriptLoader) {
+  if (mCSSLoader || mNodeInfoManager || mScriptLoader) {
     return NS_ERROR_ALREADY_INITIALIZED;
   }
 
   mLinkMap.Init();
   mRadioGroups.Init();
 
   // Force initialization.
-  nsBindingManager *bindingManager = new nsBindingManager(this);
-  NS_ENSURE_TRUE(bindingManager, NS_ERROR_OUT_OF_MEMORY);
-  NS_ADDREF(mBindingManager = bindingManager);
-
   nsINode::nsSlots* slots = GetSlots();
   NS_ENSURE_TRUE(slots,NS_ERROR_OUT_OF_MEMORY);
 
   // Prepend self as mutation-observer whether we need it or not (some
   // subclasses currently do, other don't). This is because the code in
   // nsNodeUtils always notifies the first observer first, expecting the
   // first observer to be the document.
   NS_ENSURE_TRUE(slots->mMutationObservers.PrependElementUnlessExists(static_cast<nsIMutationObserver*>(this)),
@@ -2702,17 +2696,17 @@ nsDocument::RemoveObserver(nsIDocumentOb
 
   return mObservers.Contains(aObserver);
 }
 
 void
 nsDocument::BeginUpdate(nsUpdateType aUpdateType)
 {
   if (mUpdateNestLevel == 0) {
-    mBindingManager->BeginOutermostUpdate();
+    BindingManager()->BeginOutermostUpdate();
   }
   
   ++mUpdateNestLevel;
   if (aUpdateType == UPDATE_CONTENT_MODEL) {
     ++mContentUpdateNestLevel;
   }
   NS_DOCUMENT_NOTIFY_OBSERVERS(BeginUpdate, (this, aUpdateType));
 
@@ -2727,17 +2721,17 @@ nsDocument::EndUpdate(nsUpdateType aUpda
 
   if (aUpdateType == UPDATE_CONTENT_MODEL) {
     --mContentUpdateNestLevel;
   }
   --mUpdateNestLevel;
   if (mUpdateNestLevel == 0) {
     // This set of updates may have created XBL bindings.  Let the
     // binding manager know we're done.
-    mBindingManager->EndOutermostUpdate();
+    BindingManager()->EndOutermostUpdate();
   }
 
   if (mUpdateNestLevel == 0) {
     PRUint32 length = mInitializableFrameLoaders.Length();
     if (length > 0) {
       nsTArray<nsRefPtr<nsFrameLoader> > loaders;
       mInitializableFrameLoaders.SwapElements(loaders);
       for (PRUint32 i = 0; i < length; ++i) {
@@ -3509,17 +3503,17 @@ nsDocument::AddBinding(nsIDOMElement* aC
   }
 
   if (!subject) {
     // Fall back to our principal.  Or should we fall back to the null
     // principal?  The latter would just mean no binding loads....
     subject = NodePrincipal();
   }
   
-  return mBindingManager->AddLayeredBinding(content, uri, subject);
+  return BindingManager()->AddLayeredBinding(content, uri, subject);
 }
 
 NS_IMETHODIMP
 nsDocument::RemoveBinding(nsIDOMElement* aContent, const nsAString& aURI)
 {
   NS_ENSURE_ARG(aContent);
 
   nsresult rv = nsContentUtils::CheckSameOrigin(this, aContent);
@@ -3529,17 +3523,17 @@ nsDocument::RemoveBinding(nsIDOMElement*
 
   nsCOMPtr<nsIURI> uri;
   rv = NS_NewURI(getter_AddRefs(uri), aURI);
   if (NS_FAILED(rv)) {
     return rv;
   }
 
   nsCOMPtr<nsIContent> content(do_QueryInterface(aContent));
-  return mBindingManager->RemoveLayeredBinding(content, uri);
+  return BindingManager()->RemoveLayeredBinding(content, uri);
 }
 
 NS_IMETHODIMP
 nsDocument::LoadBindingDocument(const nsAString& aURI)
 {
   nsCOMPtr<nsIURI> uri;
   nsresult rv = NS_NewURI(getter_AddRefs(uri), aURI,
                           mCharacterSet.get(),
@@ -3555,17 +3549,17 @@ nsDocument::LoadBindingDocument(const ns
   }
 
   if (!subject) {
     // Fall back to our principal.  Or should we fall back to the null
     // principal?  The latter would just mean no binding loads....
     subject = NodePrincipal();
   }
   
-  mBindingManager->LoadBindingDocument(this, uri, subject);
+  BindingManager()->LoadBindingDocument(this, uri, subject);
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsDocument::GetBindingParent(nsIDOMNode* aNode, nsIDOMElement** aResult)
 {
   *aResult = nsnull;
@@ -3643,17 +3637,17 @@ nsDocument::GetAnonymousElementByAttribu
 
 NS_IMETHODIMP
 nsDocument::GetAnonymousNodes(nsIDOMElement* aElement,
                               nsIDOMNodeList** aResult)
 {
   *aResult = nsnull;
 
   nsCOMPtr<nsIContent> content(do_QueryInterface(aElement));
-  return mBindingManager->GetAnonymousNodesFor(content, aResult);
+  return BindingManager()->GetAnonymousNodesFor(content, aResult);
 }
 
 NS_IMETHODIMP
 nsDocument::CreateRange(nsIDOMRange** aReturn)
 {
   nsresult rv = NS_NewRange(aReturn);
 
   if (NS_SUCCEEDED(rv)) {
@@ -3797,17 +3791,17 @@ nsDocument::GetBoxObjectFor(nsIDOMElemen
     *aResult = mBoxObjectTable->GetWeak(content);
     if (*aResult) {
       NS_ADDREF(*aResult);
       return NS_OK;
     }
   }
 
   PRInt32 namespaceID;
-  nsCOMPtr<nsIAtom> tag = mBindingManager->ResolveTag(content, &namespaceID);
+  nsCOMPtr<nsIAtom> tag = BindingManager()->ResolveTag(content, &namespaceID);
 
   nsCAutoString contractID("@mozilla.org/layout/xul-boxobject");
   if (namespaceID == kNameSpaceID_XUL) {
     if (tag == nsGkAtoms::browser ||
         tag == nsGkAtoms::editor ||
         tag == nsGkAtoms::iframe)
       contractID += "-container";
     else if (tag == nsGkAtoms::menu)
@@ -3852,29 +3846,29 @@ nsDocument::ClearBoxObjectFor(nsIContent
       mBoxObjectTable->Remove(aContent);
     }
   }
 }
 
 nsresult
 nsDocument::GetXBLChildNodesFor(nsIContent* aContent, nsIDOMNodeList** aResult)
 {
-  return mBindingManager->GetXBLChildNodesFor(aContent, aResult);
+  return BindingManager()->GetXBLChildNodesFor(aContent, aResult);
 }
 
 nsresult
 nsDocument::GetContentListFor(nsIContent* aContent, nsIDOMNodeList** aResult)
 {
-  return mBindingManager->GetContentListFor(aContent, aResult);
+  return BindingManager()->GetContentListFor(aContent, aResult);
 }
 
 void
 nsDocument::FlushSkinBindings()
 {
-  mBindingManager->FlushSkinBindings();
+  BindingManager()->FlushSkinBindings();
 }
 
 nsresult
 nsDocument::InitializeFrameLoader(nsFrameLoader* aLoader)
 {
   mInitializableFrameLoaders.RemoveElement(aLoader);
   // Don't even try to initialize.
   if (mInDestructor) {
--- a/content/base/src/nsGenericDOMDataNode.cpp
+++ b/content/base/src/nsGenericDOMDataNode.cpp
@@ -56,16 +56,17 @@
 #include "nsCOMPtr.h"
 #include "nsDOMString.h"
 #include "nsIDOMUserDataHandler.h"
 #include "nsChangeHint.h"
 #include "nsEventDispatcher.h"
 #include "nsCOMArray.h"
 #include "nsNodeUtils.h"
 #include "nsBindingManager.h"
+#include "nsCCUncollectableMarker.h"
 
 #include "pldhash.h"
 #include "prprf.h"
 
 nsGenericDOMDataNode::nsGenericDOMDataNode(nsINodeInfo *aNodeInfo)
   : nsIContent(aNodeInfo)
 {
 }
@@ -74,16 +75,29 @@ nsGenericDOMDataNode::~nsGenericDOMDataN
 {
   NS_PRECONDITION(!IsInDoc(),
                   "Please remove this from the document properly");
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsGenericDOMDataNode)
 
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsGenericDOMDataNode)
+  nsIDocument* currentDoc = tmp->GetCurrentDoc();
+  if (currentDoc && nsCCUncollectableMarker::InGeneration(
+                      currentDoc->GetMarkedCCGeneration())) {
+    return NS_OK;
+  }
+
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mNodeInfo)
+
+  nsIDocument* ownerDoc = tmp->GetOwnerDoc();
+  if (ownerDoc) {
+    ownerDoc->BindingManager()->Traverse(tmp, cb);
+  }
+
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_LISTENERMANAGER
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_USERDATA
   NS_IMPL_CYCLE_COLLECTION_TRAVERSE_PRESERVED_WRAPPER
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
 NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsGenericDOMDataNode)
   NS_IMPL_CYCLE_COLLECTION_UNLINK_LISTENERMANAGER
   NS_IMPL_CYCLE_COLLECTION_UNLINK_USERDATA
--- a/content/base/src/nsGenericElement.cpp
+++ b/content/base/src/nsGenericElement.cpp
@@ -3501,26 +3501,35 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(
       static_cast<nsISupports*>
                  (tmp->GetProperty(nsGkAtoms::contextmenulistener));
     cb.NoteXPCOMChild(property);
     property = static_cast<nsISupports*>
                           (tmp->GetProperty(nsGkAtoms::popuplistener));
     cb.NoteXPCOMChild(property);
   }
 
-  // Traverse child content.
+  // Traverse attribute names and child content.
   {
     PRUint32 i;
+    PRUint32 attrs = tmp->mAttrsAndChildren.AttrCount();
+    for (i = 0; i < attrs; i++) {
+      const nsAttrName* name = tmp->mAttrsAndChildren.AttrNameAt(i);
+      if (!name->IsAtom())
+        cb.NoteXPCOMChild(name->NodeInfo());
+    }
+
     PRUint32 kids = tmp->mAttrsAndChildren.ChildCount();
     for (i = 0; i < kids; i++) {
       NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "mAttrsAndChildren[i]");
       cb.NoteXPCOMChild(tmp->mAttrsAndChildren.GetSafeChildAt(i));
     }
   }
 
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mNodeInfo)
+
   // Traverse any DOM slots of interest.
   {
     nsDOMSlots *slots = tmp->GetExistingDOMSlots();
     if (slots) {
       cb.NoteXPCOMChild(slots->mAttributeMap.get());
       if (tmp->IsNodeOfType(nsINode::eXUL))
         cb.NoteXPCOMChild(slots->mControllers);
     }
--- a/content/base/src/nsNodeInfo.cpp
+++ b/content/base/src/nsNodeInfo.cpp
@@ -125,19 +125,29 @@ nsNodeInfo::Init(nsIAtom *aName, nsIAtom
   NS_ADDREF(mOwnerManager);
 
   return NS_OK;
 }
 
 
 // nsISupports
 
-NS_IMPL_ADDREF(nsNodeInfo)
-NS_IMPL_RELEASE_WITH_DESTROY(nsNodeInfo, LastRelease())
-NS_IMPL_QUERY_INTERFACE1(nsNodeInfo, nsINodeInfo)
+NS_IMPL_CYCLE_COLLECTION_CLASS(nsNodeInfo)
+NS_IMPL_CYCLE_COLLECTION_UNLINK_0(nsNodeInfo)
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsNodeInfo)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mOwnerManager,
+                                                  nsNodeInfoManager)
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
+
+NS_IMPL_CYCLE_COLLECTING_ADDREF(nsNodeInfo)
+NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_DESTROY(nsNodeInfo, LastRelease())
+NS_INTERFACE_TABLE_HEAD(nsNodeInfo)
+  NS_INTERFACE_TABLE1(nsNodeInfo, nsINodeInfo)
+  NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(nsNodeInfo)
+NS_INTERFACE_MAP_END
 
 // nsINodeInfo
 
 void
 nsNodeInfo::GetQualifiedName(nsAString& aQualifiedName) const
 {
   if (mInner.mPrefix) {
     mInner.mPrefix->ToString(aQualifiedName);
--- a/content/base/src/nsNodeInfo.h
+++ b/content/base/src/nsNodeInfo.h
@@ -50,17 +50,18 @@
 #include "nsIAtom.h"
 #include "nsCOMPtr.h"
 
 class nsFixedSizeAllocator;
 
 class nsNodeInfo : public nsINodeInfo
 {
 public:
-  NS_DECL_ISUPPORTS
+  NS_DECL_CYCLE_COLLECTING_ISUPPORTS
+  NS_DECL_CYCLE_COLLECTION_CLASS(nsNodeInfo)
 
   // nsINodeInfo
   virtual void GetQualifiedName(nsAString &aQualifiedName) const;
   virtual void GetLocalName(nsAString& aLocalName) const;
   virtual nsresult GetNamespaceURI(nsAString& aNameSpaceURI) const;
   virtual PRBool Equals(const nsAString& aName) const;
   virtual PRBool Equals(const nsAString& aName,
                         const nsAString& aPrefix) const;
--- a/content/base/src/nsNodeInfoManager.cpp
+++ b/content/base/src/nsNodeInfoManager.cpp
@@ -47,16 +47,17 @@
 #include "nsIDocument.h"
 #include "nsIPrincipal.h"
 #include "nsIURI.h"
 #include "nsContentUtils.h"
 #include "nsReadableUtils.h"
 #include "nsGkAtoms.h"
 #include "nsComponentManagerUtils.h"
 #include "nsLayoutStatics.h"
+#include "nsBindingManager.h"
 
 #ifdef MOZ_LOGGING
 // so we can get logging even in release builds
 #define FORCE_PR_LOG 1
 #endif
 #include "prlog.h"
 
 #ifdef PR_LOGGING
@@ -92,17 +93,18 @@ nsNodeInfoManager::NodeInfoInnerKeyCompa
 }
 
 
 nsNodeInfoManager::nsNodeInfoManager()
   : mDocument(nsnull),
     mPrincipal(nsnull),
     mTextNodeInfo(nsnull),
     mCommentNodeInfo(nsnull),
-    mDocumentNodeInfo(nsnull)
+    mDocumentNodeInfo(nsnull),
+    mBindingManager(nsnull)
 {
   nsLayoutStatics::AddRef();
 
 #ifdef PR_LOGGING
   if (!gNodeInfoManagerLeakPRLog)
     gNodeInfoManagerLeakPRLog = PR_NewLogModule("NodeInfoManagerLeak");
 
   if (gNodeInfoManagerLeakPRLog)
@@ -119,16 +121,18 @@ nsNodeInfoManager::nsNodeInfoManager()
 nsNodeInfoManager::~nsNodeInfoManager()
 {
   if (mNodeInfoHash)
     PL_HashTableDestroy(mNodeInfoHash);
 
   // Note: mPrincipal may be null here if we never got inited correctly
   NS_IF_RELEASE(mPrincipal);
 
+  NS_IF_RELEASE(mBindingManager);
+
 #ifdef PR_LOGGING
   if (gNodeInfoManagerLeakPRLog)
     PR_LOG(gNodeInfoManagerLeakPRLog, PR_LOG_DEBUG,
            ("NODEINFOMANAGER %p destroyed", this));
 #endif
 
   nsLayoutStatics::Release();
 }
@@ -155,43 +159,62 @@ nsNodeInfoManager::Release()
   if (count == 0) {
     mRefCnt = 1; /* stabilize */
     delete this;
   }
 
   return count;
 }
 
+NS_IMPL_CYCLE_COLLECTION_CLASS(nsNodeInfoManager)
+NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(nsNodeInfoManager, AddRef)
+NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(nsNodeInfoManager, Release)
+NS_IMPL_CYCLE_COLLECTION_UNLINK_NATIVE_0(nsNodeInfoManager)
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_BEGIN(nsNodeInfoManager)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_RAWPTR(mBindingManager)
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
+
 nsresult
 nsNodeInfoManager::Init(nsIDocument *aDocument)
 {
   NS_ENSURE_TRUE(mNodeInfoHash, NS_ERROR_OUT_OF_MEMORY);
 
   NS_PRECONDITION(!mPrincipal,
                   "Being inited when we already have a principal?");
   nsresult rv = CallCreateInstance("@mozilla.org/nullprincipal;1",
                                    &mPrincipal);
   NS_ENSURE_TRUE(mPrincipal, rv);
 
+  if (aDocument) {
+    mBindingManager = new nsBindingManager(aDocument);
+    NS_ENSURE_TRUE(mBindingManager, NS_ERROR_OUT_OF_MEMORY);
+
+    NS_ADDREF(mBindingManager);
+  }
+
   mDefaultPrincipal = mPrincipal;
 
   mDocument = aDocument;
 
 #ifdef PR_LOGGING
   if (gNodeInfoManagerLeakPRLog)
     PR_LOG(gNodeInfoManagerLeakPRLog, PR_LOG_DEBUG,
            ("NODEINFOMANAGER %p Init document=%p", this, aDocument));
 #endif
 
   return NS_OK;
 }
 
 void
 nsNodeInfoManager::DropDocumentReference()
 {
+  if (mBindingManager) {
+    mBindingManager->DropDocumentReference();
+  }
+
   mDocument = nsnull;
 }
 
 
 nsresult
 nsNodeInfoManager::GetNodeInfo(nsIAtom *aName, nsIAtom *aPrefix,
                                PRInt32 aNamespaceID, nsINodeInfo** aNodeInfo)
 {
--- a/content/base/src/nsNodeInfoManager.h
+++ b/content/base/src/nsNodeInfoManager.h
@@ -39,36 +39,40 @@
  * A class for handing out nodeinfos and ensuring sharing of them as needed.
  */
 
 #ifndef nsNodeInfoManager_h___
 #define nsNodeInfoManager_h___
 
 #include "nsCOMPtr.h" // for already_AddRefed
 #include "plhash.h"
+#include "nsCycleCollectionParticipant.h"
 
 class nsIAtom;
 class nsIDocument;
 class nsINodeInfo;
 class nsNodeInfo;
 class nsIPrincipal;
 class nsIURI;
 class nsDocument;
 class nsIDOMDocumentType;
 class nsIDOMDocument;
 class nsAString;
 class nsIDOMNamedNodeMap;
 class nsXULPrototypeDocument;
+class nsBindingManager;
 
 class nsNodeInfoManager
 {
 public:
   nsNodeInfoManager();
   ~nsNodeInfoManager();
 
+  NS_DECL_CYCLE_COLLECTION_NATIVE_CLASS(nsNodeInfoManager)
+
   nsrefcnt AddRef(void);
   nsrefcnt Release(void);
 
   /**
    * Initialize the nodeinfo manager with a document.
    */
   nsresult Init(nsIDocument *aDocument);
 
@@ -118,16 +122,21 @@ public:
    */
   nsIPrincipal *DocumentPrincipal() const {
     NS_ASSERTION(mPrincipal, "How'd that happen?");
     return mPrincipal;
   }
 
   void RemoveNodeInfo(nsNodeInfo *aNodeInfo);
 
+  nsBindingManager* GetBindingManager() const
+  {
+    return mBindingManager;
+  }
+
 protected:
   friend class nsDocument;
   friend class nsXULPrototypeDocument;
   friend nsresult NS_NewDOMDocumentType(nsIDOMDocumentType** ,
                                         nsNodeInfoManager *,
                                         nsIPrincipal *,
                                         nsIAtom *,
                                         nsIDOMNamedNodeMap *,
@@ -153,11 +162,14 @@ private:
   nsIDocument *mDocument; // WEAK
   nsIPrincipal *mPrincipal; // STRONG, but not nsCOMPtr to avoid include hell
                             // while inlining DocumentPrincipal().  Never null
                             // after Init() succeeds.
   nsCOMPtr<nsIPrincipal> mDefaultPrincipal; // Never null after Init() succeeds
   nsINodeInfo *mTextNodeInfo; // WEAK to avoid circular ownership
   nsINodeInfo *mCommentNodeInfo; // WEAK to avoid circular ownership
   nsINodeInfo *mDocumentNodeInfo; // WEAK to avoid circular ownership
+  nsBindingManager* mBindingManager; // STRONG, but not nsCOMPtr to avoid
+                                     // include hell while inlining
+                                     // GetBindingManager().
 };
 
 #endif /* nsNodeInfoManager_h___ */
--- a/content/base/src/nsObjectLoadingContent.cpp
+++ b/content/base/src/nsObjectLoadingContent.cpp
@@ -72,16 +72,17 @@
 #include "nsContentPolicyUtils.h"
 #include "nsContentUtils.h"
 #include "nsDocShellCID.h"
 #include "nsGkAtoms.h"
 #include "nsThreadUtils.h"
 #include "nsNetUtil.h"
 #include "nsPresShellIterator.h"
 #include "nsMimeTypes.h"
+#include "nsStyleUtil.h"
 
 // Concrete classes
 #include "nsFrameLoader.h"
 
 #include "nsObjectLoadingContent.h"
 
 static NS_DEFINE_CID(kCPluginManagerCID, NS_PLUGINMANAGER_CID);
 
@@ -347,17 +348,18 @@ nsObjectLoadingContent::~nsObjectLoading
   DestroyImageLoadingContent();
   if (mFrameLoader) {
     mFrameLoader->Destroy();
   }
 }
 
 // nsIRequestObserver
 NS_IMETHODIMP
-nsObjectLoadingContent::OnStartRequest(nsIRequest *aRequest, nsISupports *aContext)
+nsObjectLoadingContent::OnStartRequest(nsIRequest *aRequest,
+                                       nsISupports *aContext)
 {
   if (aRequest != mChannel) {
     // This is a bit of an edge case - happens when a new load starts before the
     // previous one got here
     return NS_BINDING_ABORTED;
   }
 
   // We're done with the classifier
@@ -403,16 +405,27 @@ nsObjectLoadingContent::OnStartRequest(n
     // end up trying to dispatch to a nsFrameLoader, which will complain that
     // it couldn't find a way to handle application/octet-stream
 
     chan->SetContentType(mContentType);
   } else {
     mContentType = channelType;
   }
 
+  nsCOMPtr<nsIURI> uri;
+  chan->GetURI(getter_AddRefs(uri));
+
+  if (mContentType.EqualsASCII(APPLICATION_OCTET_STREAM)) {
+    nsCAutoString extType;
+    if (IsPluginEnabledByExtension(uri, extType)) {
+      mContentType = extType;
+      chan->SetContentType(extType);
+    }
+  }
+
   // Now find out what type the content is
   // UnloadContent will set our type to null; need to be sure to only set it to
   // the real value on success
   ObjectType newType = GetTypeOfContent(mContentType);
   LOG(("OBJLC [%p]: OnStartRequest: Content Type=<%s> Old type=%u New Type=%u\n",
        this, mContentType.get(), mType, newType));
 
   // Now do a content policy check
@@ -424,18 +437,16 @@ nsObjectLoadingContent::OnStartRequest(n
       break;
     case eType_Document:
       contentPolicyType = nsIContentPolicy::TYPE_SUBDOCUMENT;
       break;
     default:
       contentPolicyType = nsIContentPolicy::TYPE_OBJECT;
       break;
   }
-  nsCOMPtr<nsIURI> uri;
-  chan->GetURI(getter_AddRefs(uri));
   nsCOMPtr<nsIContent> thisContent = 
     do_QueryInterface(static_cast<nsIImageLoadingContent*>(this));
   NS_ASSERTION(thisContent, "must be a content");
 
   nsIDocument* doc = thisContent->GetOwnerDoc();
   if (!doc) {
     Fallback(PR_FALSE);
     return NS_BINDING_ABORTED;    
@@ -1720,30 +1731,38 @@ nsObjectLoadingContent::GetPluginSupport
     return ePluginOtherState;
   }
 
   if (aContent->Tag() == nsGkAtoms::embed ||
       aContent->Tag() == nsGkAtoms::applet) {
     return GetPluginDisabledState(aContentType);
   }
 
+  PRBool hasAlternateContent = PR_FALSE;
+
   // Search for a child <param> with a pluginurl name
   PRUint32 count = aContent->GetChildCount();
   for (PRUint32 i = 0; i < count; ++i) {
     nsIContent* child = aContent->GetChildAt(i);
     NS_ASSERTION(child, "GetChildCount lied!");
 
     if (child->IsNodeOfType(nsINode::eHTML) &&
-        child->Tag() == nsGkAtoms::param &&
-        child->AttrValueIs(kNameSpaceID_None, nsGkAtoms::name,
-                           NS_LITERAL_STRING("pluginurl"), eIgnoreCase)) {
-      return GetPluginDisabledState(aContentType);
+        child->Tag() == nsGkAtoms::param) {
+      if (child->AttrValueIs(kNameSpaceID_None, nsGkAtoms::name,
+                             NS_LITERAL_STRING("pluginurl"), eIgnoreCase)) {
+        return GetPluginDisabledState(aContentType);
+      }
+    } else if (!hasAlternateContent) {
+      hasAlternateContent =
+        nsStyleUtil::IsSignificantChild(child, PR_TRUE, PR_FALSE);
     }
   }
-  return ePluginOtherState;
+
+  return hasAlternateContent ? ePluginOtherState :
+    GetPluginDisabledState(aContentType);
 }
 
 /* static */ nsObjectLoadingContent::PluginSupportState
 nsObjectLoadingContent::GetPluginDisabledState(const nsCString& aContentType)
 {
   nsCOMPtr<nsIPluginHost> host(do_GetService("@mozilla.org/plugin/host;1"));
   if (!host) {
     return ePluginUnsupported;
--- a/content/base/src/nsSyncLoadService.cpp
+++ b/content/base/src/nsSyncLoadService.cpp
@@ -54,17 +54,16 @@
 #include "nsIPrivateDOMImplementation.h"
 #include "nsIScriptSecurityManager.h"
 #include "nsContentUtils.h"
 #include "nsThreadUtils.h"
 #include "nsNetUtil.h"
 #include "nsAutoPtr.h"
 #include "nsLoadListenerProxy.h"
 #include "nsStreamUtils.h"
-#include "nsCrossSiteListenerProxy.h"
 
 /**
  * This class manages loading a single XML document
  */
 
 class nsSyncLoader : public nsIDOMLoadListener,
                      public nsIChannelEventSink,
                      public nsIInterfaceRequestor,
@@ -214,20 +213,22 @@ nsSyncLoader::LoadDocument(nsIChannel* a
 
     if (aForceToXML) {
         nsCOMPtr<nsIStreamListener> forceListener =
             new nsForceXMLListener(listener);
         listener.swap(forceListener);
     }
 
     if (aLoaderPrincipal) {
-        listener = new nsCrossSiteListenerProxy(listener, aLoaderPrincipal,
-                                                mChannel, &rv);
-        NS_ENSURE_TRUE(listener, NS_ERROR_OUT_OF_MEMORY);
-        NS_ENSURE_SUCCESS(rv, rv);
+      nsCOMPtr<nsIURI> docURI;
+      rv = aChannel->GetOriginalURI(getter_AddRefs(docURI));
+      NS_ENSURE_SUCCESS(rv, rv);
+
+      rv = aLoaderPrincipal->CheckMayLoad(docURI, PR_TRUE);
+      NS_ENSURE_SUCCESS(rv, rv);
     }
 
     // Register as a load listener on the document
     nsCOMPtr<nsPIDOMEventTarget> target = do_QueryInterface(document);
     NS_ENSURE_TRUE(target, NS_ERROR_FAILURE);
 
     nsWeakPtr requestWeak = do_GetWeakReference(static_cast<nsIDOMLoadListener*>(this));
     nsLoadListenerProxy* proxy = new nsLoadListenerProxy(requestWeak);
@@ -363,16 +364,28 @@ NS_IMETHODIMP
 nsSyncLoader::OnChannelRedirect(nsIChannel *aOldChannel,
                                 nsIChannel *aNewChannel,
                                 PRUint32    aFlags)
 {
     NS_PRECONDITION(aNewChannel, "Redirecting to null channel?");
 
     mChannel = aNewChannel;
 
+    nsCOMPtr<nsIURI> oldURI;
+    nsresult rv = aOldChannel->GetURI(getter_AddRefs(oldURI));
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    nsCOMPtr<nsIURI> newURI;
+    rv = aNewChannel->GetURI(getter_AddRefs(newURI));
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    rv = nsContentUtils::GetSecurityManager()->
+        CheckSameOriginURI(oldURI, newURI, PR_TRUE);
+    NS_ENSURE_SUCCESS(rv, rv);
+
     return NS_OK;
 }
 
 NS_IMETHODIMP
 nsSyncLoader::GetInterface(const nsIID & aIID,
                            void **aResult)
 {
     return QueryInterface(aIID, aResult);
--- a/content/base/src/nsXMLHttpRequest.cpp
+++ b/content/base/src/nsXMLHttpRequest.cpp
@@ -77,17 +77,16 @@
 #include "nsCOMArray.h"
 #include "nsDOMClassInfo.h"
 #include "nsIScriptableUConv.h"
 #include "nsCycleCollectionParticipant.h"
 #include "nsIContentPolicy.h"
 #include "nsContentPolicyUtils.h"
 #include "nsContentErrors.h"
 #include "nsLayoutStatics.h"
-#include "nsCrossSiteListenerProxy.h"
 #include "nsDOMError.h"
 #include "nsIHTMLDocument.h"
 #include "nsWhitespaceTokenizer.h"
 #include "nsIMultiPartChannel.h"
 #include "nsIScriptObjectPrincipal.h"
 #include "nsIStorageStream.h"
 
 #define LOAD_STR "load"
@@ -111,32 +110,28 @@
 #define XML_HTTP_REQUEST_ABORTED        (1 << 7)  // Internal
 #define XML_HTTP_REQUEST_ASYNC          (1 << 8)  // Internal
 #define XML_HTTP_REQUEST_PARSEBODY      (1 << 9)  // Internal
 #define XML_HTTP_REQUEST_XSITEENABLED   (1 << 10) // Internal, Is any cross-site request allowed?
                                                   //           Even if this is false the
                                                   //           access-control spec is supported
 #define XML_HTTP_REQUEST_SYNCLOOPING    (1 << 11) // Internal
 #define XML_HTTP_REQUEST_MULTIPART      (1 << 12) // Internal
-#define XML_HTTP_REQUEST_USE_XSITE_AC   (1 << 13) // Internal
-#define XML_HTTP_REQUEST_NON_GET        (1 << 14) // Internal
-#define XML_HTTP_REQUEST_GOT_FINAL_STOP (1 << 15) // Internal
-#define XML_HTTP_REQUEST_BACKGROUND     (1 << 16) // Internal
+#define XML_HTTP_REQUEST_GOT_FINAL_STOP (1 << 13) // Internal
+#define XML_HTTP_REQUEST_BACKGROUND     (1 << 14) // Internal
 
 #define XML_HTTP_REQUEST_LOADSTATES         \
   (XML_HTTP_REQUEST_UNINITIALIZED |         \
    XML_HTTP_REQUEST_OPENED |                \
    XML_HTTP_REQUEST_LOADED |                \
    XML_HTTP_REQUEST_INTERACTIVE |           \
    XML_HTTP_REQUEST_COMPLETED |             \
    XML_HTTP_REQUEST_SENT |                  \
    XML_HTTP_REQUEST_STOPPED)
 
-#define ACCESS_CONTROL_CACHE_SIZE 100
-
 #define NS_BADCERTHANDLER_CONTRACTID \
   "@mozilla.org/content/xmlhttprequest-bad-cert-handler;1"
 
 // This helper function adds the given load flags to the request's existing
 // load flags.
 static void AddLoadFlags(nsIRequest *request, nsLoadFlags newFlags)
 {
   nsLoadFlags flags;
@@ -240,144 +235,16 @@ nsMultipartProxyListener::OnDataAvailabl
                                           nsIInputStream *inStr,
                                           PRUint32 sourceOffset,
                                           PRUint32 count)
 {
   return mDestListener->OnDataAvailable(aRequest, ctxt, inStr, sourceOffset,
                                         count);
 }
 
-// Class used as streamlistener and notification callback when
-// doing the initial GET request for an access-control check
-class nsACProxyListener : public nsIStreamListener,
-                          public nsIInterfaceRequestor,
-                          public nsIChannelEventSink
-{
-public:
-  nsACProxyListener(nsIChannel* aOuterChannel,
-                    nsIStreamListener* aOuterListener,
-                    nsISupports* aOuterContext,
-                    nsIPrincipal* aReferrerPrincipal,
-                    const nsACString& aRequestMethod)
-   : mOuterChannel(aOuterChannel), mOuterListener(aOuterListener),
-     mOuterContext(aOuterContext), mReferrerPrincipal(aReferrerPrincipal),
-     mRequestMethod(aRequestMethod)
-  { }
-
-  NS_DECL_ISUPPORTS
-  NS_DECL_NSISTREAMLISTENER
-  NS_DECL_NSIREQUESTOBSERVER
-  NS_DECL_NSIINTERFACEREQUESTOR
-  NS_DECL_NSICHANNELEVENTSINK
-
-private:
-  nsCOMPtr<nsIChannel> mOuterChannel;
-  nsCOMPtr<nsIStreamListener> mOuterListener;
-  nsCOMPtr<nsISupports> mOuterContext;
-  nsCOMPtr<nsIPrincipal> mReferrerPrincipal;
-  nsCString mRequestMethod;
-};
-
-NS_IMPL_ISUPPORTS4(nsACProxyListener, nsIStreamListener, nsIRequestObserver,
-                   nsIInterfaceRequestor, nsIChannelEventSink)
-
-NS_IMETHODIMP
-nsACProxyListener::OnStartRequest(nsIRequest *aRequest, nsISupports *aContext)
-{
-  nsresult status;
-  nsresult rv = aRequest->GetStatus(&status);
-
-  if (NS_SUCCEEDED(rv)) {
-    rv = status;
-  }
-
-  if (NS_SUCCEEDED(rv)) {
-    // Everything worked, check to see if there is an expiration time set on
-    // this access control list. If so go ahead and cache it.
-
-    nsCOMPtr<nsIHttpChannel> http = do_QueryInterface(aRequest, &rv);
-
-    // The "Access-Control-Max-Age" header should return an age in seconds.
-    nsCAutoString ageString;
-    http->GetResponseHeader(NS_LITERAL_CSTRING("Access-Control-Max-Age"),
-                            ageString);
-
-    // Sanitize the string. We only allow 'delta-seconds' as specified by
-    // http://dev.w3.org/2006/waf/access-control (digits 0-9 with no leading or
-    // trailing non-whitespace characters). We don't allow a + or - character
-    // but PR_sscanf does so we ensure that the first character is actually a
-    // digit.
-    ageString.StripWhitespace();
-    if (ageString.CharAt(0) >= '0' || ageString.CharAt(0) <= '9') {
-      PRUint64 age;
-      PRInt32 convertedChars = PR_sscanf(ageString.get(), "%llu", &age);
-      if ((PRInt32)ageString.Length() == convertedChars &&
-          nsXMLHttpRequest::EnsureACCache()) {
-
-        // String seems fine, go ahead and cache.
-        nsCOMPtr<nsIURI> uri;
-        http->GetURI(getter_AddRefs(uri));
-
-        // PR_Now gives microseconds
-        PRTime expirationTime = PR_Now() + age * PR_USEC_PER_SEC;
-        nsXMLHttpRequest::sAccessControlCache->PutEntry(uri, mReferrerPrincipal,
-                                                        expirationTime);
-      }
-    }
-  }
-
-  if (NS_SUCCEEDED(rv)) {
-    rv = mOuterChannel->AsyncOpen(mOuterListener, mOuterContext);
-  }
-
-  if (NS_FAILED(rv)) {
-    mOuterChannel->Cancel(rv);
-    mOuterListener->OnStartRequest(mOuterChannel, mOuterContext);
-    mOuterListener->OnStopRequest(mOuterChannel, mOuterContext, rv);
-    
-    return rv;
-  }
-
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsACProxyListener::OnStopRequest(nsIRequest *aRequest, nsISupports *aContext,
-                                 nsresult aStatus)
-{
-  return NS_OK;
-}
-
-/** nsIStreamListener methods **/
-
-NS_IMETHODIMP
-nsACProxyListener::OnDataAvailable(nsIRequest *aRequest,
-                                   nsISupports *ctxt,
-                                   nsIInputStream *inStr,
-                                   PRUint32 sourceOffset,
-                                   PRUint32 count)
-{
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsACProxyListener::OnChannelRedirect(nsIChannel *aOldChannel,
-                                     nsIChannel *aNewChannel,
-                                     PRUint32 aFlags)
-{
-  // No redirects allowed for now.
-  return NS_ERROR_DOM_BAD_URI;
-}
-
-NS_IMETHODIMP
-nsACProxyListener::GetInterface(const nsIID & aIID, void **aResult)
-{
-  return QueryInterface(aIID, aResult);
-}
-
 /**
  * Gets the nsIDocument given the script context. Will return nsnull on failure.
  *
  * @param aScriptContext the script context to get the document for; can be null
  *
  * @return the document associated with the script context
  */
 static already_AddRefed<nsIDocument>
@@ -394,165 +261,21 @@ GetDocumentFromScriptContext(nsIScriptCo
     window->GetDocument(getter_AddRefs(domdoc));
     if (domdoc) {
       CallQueryInterface(domdoc, &doc);
     }
   }
   return doc;
 }
 
-void
-nsAccessControlLRUCache::GetEntry(nsIURI* aURI,
-                                  nsIPrincipal* aPrincipal,
-                                  PRTime* _retval)
-{
-  nsCAutoString key;
-  if (GetCacheKey(aURI, aPrincipal, key)) {
-    CacheEntry* entry;
-    if (GetEntryInternal(key, &entry)) {
-      *_retval = entry->value;
-      return;
-    }
-  }
-  *_retval = 0;
-}
-
-void
-nsAccessControlLRUCache::PutEntry(nsIURI* aURI,
-                                  nsIPrincipal* aPrincipal,
-                                  PRTime aValue)
-{
-  nsCString key;
-  if (!GetCacheKey(aURI, aPrincipal, key)) {
-    NS_WARNING("Invalid cache key!");
-    return;
-  }
-
-  CacheEntry* entry;
-  if (GetEntryInternal(key, &entry)) {
-    // Entry already existed, just update the expiration time and bail. The LRU
-    // list is updated as a result of the call to GetEntryInternal.
-    entry->value = aValue;
-    return;
-  }
-
-  // This is a new entry, allocate and insert into the table now so that any
-  // failures don't cause items to be removed from a full cache.
-  entry = new CacheEntry(key, aValue);
-  if (!entry) {
-    NS_WARNING("Failed to allocate new cache entry!");
-    return;
-  }
-
-  if (!mTable.Put(key, entry)) {
-    // Failed, clean up the new entry.
-    delete entry;
-
-    NS_WARNING("Failed to add entry to the access control cache!");
-    return;
-  }
-
-  PR_INSERT_LINK(entry, &mList);
-
-  NS_ASSERTION(mTable.Count() <= ACCESS_CONTROL_CACHE_SIZE + 1,
-               "Something is borked, too many entries in the cache!");
-
-  // Now enforce the max count.
-  if (mTable.Count() > ACCESS_CONTROL_CACHE_SIZE) {
-    // Try to kick out all the expired entries.
-    PRTime now = PR_Now();
-    mTable.Enumerate(RemoveExpiredEntries, &now);
-
-    // If that didn't remove anything then kick out the least recently used
-    // entry.
-    if (mTable.Count() > ACCESS_CONTROL_CACHE_SIZE) {
-      CacheEntry* lruEntry = static_cast<CacheEntry*>(PR_LIST_TAIL(&mList));
-      PR_REMOVE_LINK(lruEntry);
-
-      // This will delete 'lruEntry'.
-      mTable.Remove(lruEntry->key);
-
-      NS_ASSERTION(mTable.Count() >= ACCESS_CONTROL_CACHE_SIZE,
-                   "Somehow tried to remove an entry that was never added!");
-    }
-  }
-}
-
-void
-nsAccessControlLRUCache::Clear()
-{
-  PR_INIT_CLIST(&mList);
-  mTable.Clear();
-}
-
-PRBool
-nsAccessControlLRUCache::GetEntryInternal(const nsACString& aKey,
-                                          CacheEntry** _retval)
-{
-  if (!mTable.Get(aKey, _retval))
-    return PR_FALSE;
-
-  // Move to the head of the list.
-  PR_REMOVE_LINK(*_retval);
-  PR_INSERT_LINK(*_retval, &mList);
-
-  return PR_TRUE;
-}
-
-/* static */ PR_CALLBACK PLDHashOperator
-nsAccessControlLRUCache::RemoveExpiredEntries(const nsACString& aKey,
-                                              nsAutoPtr<CacheEntry>& aValue,
-                                              void* aUserData)
-{
-  PRTime* now = static_cast<PRTime*>(aUserData);
-  if (*now >= aValue->value) {
-    // Expired, remove from the list as well as the hash table.
-    PR_REMOVE_LINK(aValue);
-    return PL_DHASH_REMOVE;
-  }
-  // Keep going.
-  return PL_DHASH_NEXT;
-}
-
-/* static */ PRBool
-nsAccessControlLRUCache::GetCacheKey(nsIURI* aURI,
-                                     nsIPrincipal* aPrincipal,
-                                     nsACString& _retval)
-{
-  NS_ASSERTION(aURI, "Null uri!");
-  NS_ASSERTION(aPrincipal, "Null principal!");
-  
-  NS_NAMED_LITERAL_CSTRING(space, " ");
-
-  nsCOMPtr<nsIURI> uri;
-  nsresult rv = aPrincipal->GetURI(getter_AddRefs(uri));
-  NS_ENSURE_SUCCESS(rv, PR_FALSE);
-  
-  nsCAutoString host;
-  if (uri) {
-    uri->GetHost(host);
-  }
-
-  nsCAutoString spec;
-  rv = aURI->GetSpec(spec);
-  NS_ENSURE_SUCCESS(rv, PR_FALSE);
-
-  _retval.Assign(host + space + spec);
-
-  return PR_TRUE;
-}
-
 /////////////////////////////////////////////
 //
 //
 /////////////////////////////////////////////
 
-// Will be initialized in nsXMLHttpRequest::EnsureACCache.
-nsAccessControlLRUCache* nsXMLHttpRequest::sAccessControlCache = nsnull;
-
 nsXMLHttpRequest::nsXMLHttpRequest()
   : mState(XML_HTTP_REQUEST_UNINITIALIZED)
 {
   nsLayoutStatics::AddRef();
 }
 
 nsXMLHttpRequest::~nsXMLHttpRequest()
 {
@@ -1117,19 +840,16 @@ NS_IMETHODIMP
 nsXMLHttpRequest::Abort()
 {
   if (mReadRequest) {
     mReadRequest->Cancel(NS_BINDING_ABORTED);
   }
   if (mChannel) {
     mChannel->Cancel(NS_BINDING_ABORTED);
   }
-  if (mACGetChannel) {
-    mACGetChannel->Cancel(NS_BINDING_ABORTED);
-  }
   mDocument = nsnull;
   mResponseBody.Truncate();
   mState |= XML_HTTP_REQUEST_ABORTED;
 
   if (!(mState & (XML_HTTP_REQUEST_UNINITIALIZED |
                   XML_HTTP_REQUEST_OPENED |
                   XML_HTTP_REQUEST_COMPLETED))) {
     ChangeState(XML_HTTP_REQUEST_COMPLETED, PR_TRUE, PR_TRUE);
@@ -1147,20 +867,16 @@ nsXMLHttpRequest::Abort()
 
 /* string getAllResponseHeaders (); */
 NS_IMETHODIMP
 nsXMLHttpRequest::GetAllResponseHeaders(char **_retval)
 {
   NS_ENSURE_ARG_POINTER(_retval);
   *_retval = nsnull;
 
-  if (mState & XML_HTTP_REQUEST_USE_XSITE_AC) {
-    return NS_OK;
-  }
-
   nsCOMPtr<nsIHttpChannel> httpChannel = GetCurrentHttpChannel();
 
   if (httpChannel) {
     nsHeaderVisitor *visitor = nsnull;
     NS_NEWXPCOM(visitor, nsHeaderVisitor);
     if (!visitor)
       return NS_ERROR_OUT_OF_MEMORY;
     NS_ADDREF(visitor);
@@ -1179,47 +895,16 @@ nsXMLHttpRequest::GetAllResponseHeaders(
 /* ACString getResponseHeader (in AUTF8String header); */
 NS_IMETHODIMP
 nsXMLHttpRequest::GetResponseHeader(const nsACString& header,
                                     nsACString& _retval)
 {
   nsresult rv = NS_OK;
   _retval.Truncate();
 
-  // Check for dangerous headers
-  if (mState & XML_HTTP_REQUEST_USE_XSITE_AC) {
-    
-    // Make sure we don't leak header information from denied cross-site
-    // requests.
-    if (mChannel) {
-      nsresult status;
-      mChannel->GetStatus(&status);
-      if (NS_FAILED(status)) {
-        return NS_OK;
-      }
-    }
-
-    const char *kCrossOriginSafeHeaders[] = {
-      "cache-control", "content-language", "content-type", "expires",
-      "last-modified", "pragma"
-    };
-    PRBool safeHeader = PR_FALSE;
-    PRUint32 i;
-    for (i = 0; i < NS_ARRAY_LENGTH(kCrossOriginSafeHeaders); ++i) {
-      if (header.LowerCaseEqualsASCII(kCrossOriginSafeHeaders[i])) {
-        safeHeader = PR_TRUE;
-        break;
-      }
-    }
-
-    if (!safeHeader) {
-      return NS_OK;
-    }
-  }
-
   nsCOMPtr<nsIHttpChannel> httpChannel = GetCurrentHttpChannel();
 
   if (httpChannel) {
     rv = httpChannel->GetResponseHeader(header, _retval);
   }
 
   if (rv == NS_ERROR_NOT_AVAILABLE) {
     // Means no header
@@ -1411,44 +1096,16 @@ IsSameOrigin(nsIPrincipal* aPrincipal, n
   rv = aChannel->GetURI(getter_AddRefs(channelURI));
   NS_ENSURE_SUCCESS(rv, PR_FALSE);
 
   rv = nsContentUtils::GetSecurityManager()->
     CheckSameOriginURI(codebase, channelURI, PR_FALSE);
   return NS_SUCCEEDED(rv);
 }
 
-nsresult
-nsXMLHttpRequest::CheckChannelForCrossSiteRequest()
-{
-  // First check if this is a same-origin request, or if cross-site requests
-  // are enabled.
-  if ((mState & XML_HTTP_REQUEST_XSITEENABLED) ||
-      IsSameOrigin(mPrincipal, mChannel)) {
-    return NS_OK;
-  }
-
-  // This is a cross-site request
-
-  // The request is now cross-site, so update flag.
-  mState |= XML_HTTP_REQUEST_USE_XSITE_AC;
-
-  // Remove dangerous headers
-  nsCOMPtr<nsIHttpChannel> http = do_QueryInterface(mChannel);
-  if (http) {
-    PRUint32 i;
-    for (i = 0; i < mExtraRequestHeaders.Length(); ++i) {
-      http->SetRequestHeader(mExtraRequestHeaders[i], EmptyCString(), PR_FALSE);
-    }
-    mExtraRequestHeaders.Clear();
-  }
-
-  return NS_OK;
-}
-
 /* noscript void openRequest (in AUTF8String method, in AUTF8String url, in boolean async, in AString user, in AString password); */
 NS_IMETHODIMP
 nsXMLHttpRequest::OpenRequest(const nsACString& method,
                               const nsACString& url,
                               PRBool async,
                               const nsAString& user,
                               const nsAString& password)
 {
@@ -1556,56 +1213,21 @@ nsXMLHttpRequest::OpenRequest(const nsAC
                      loadFlags);
   if (NS_FAILED(rv)) return rv;
 
   // Check if we're doing a cross-origin request.
   if (IsSystemPrincipal(mPrincipal)) {
     // Chrome callers are always allowed to read from different origins.
     mState |= XML_HTTP_REQUEST_XSITEENABLED;
   }
-  else if (!(mState & XML_HTTP_REQUEST_XSITEENABLED) &&
-           !IsSameOrigin(mPrincipal, mChannel)) {
-    mState |= XML_HTTP_REQUEST_USE_XSITE_AC;
-  }
 
   nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(mChannel));
   if (httpChannel) {
     rv = httpChannel->SetRequestMethod(method);
     NS_ENSURE_SUCCESS(rv, rv);
-    
-    if (!method.LowerCaseEqualsLiteral("get")) {
-      mState |= XML_HTTP_REQUEST_NON_GET;
-    }
-  }
-
-  // Do we need to set up an initial OPTIONS request to make sure that it is
-  // safe to make the request?
-  if ((mState & XML_HTTP_REQUEST_USE_XSITE_AC) &&
-      (mState & XML_HTTP_REQUEST_NON_GET)) {
-
-    // Check to see if this initial OPTIONS request has already been cached in
-    // our special Access Control Cache.
-    PRTime expiration = 0;
-    if (sAccessControlCache) {
-      sAccessControlCache->GetEntry(uri, mPrincipal, &expiration);
-    }
-
-    if (expiration <= PR_Now()) {
-      // Either it wasn't cached or the cached result has expired. Build a
-      // channel for the OPTIONS request.
-      rv = NS_NewChannel(getter_AddRefs(mACGetChannel), uri, nsnull, loadGroup,
-                         nsnull, loadFlags);
-      NS_ENSURE_SUCCESS(rv, rv);
-
-      nsCOMPtr<nsIHttpChannel> acHttp = do_QueryInterface(mACGetChannel);
-      NS_ASSERTION(acHttp, "Failed to QI to nsIHttpChannel!");
-
-      rv = acHttp->SetRequestMethod(NS_LITERAL_CSTRING("OPTIONS"));
-      NS_ENSURE_SUCCESS(rv, rv);
-    }
   }
 
   ChangeState(XML_HTTP_REQUEST_OPENED);
 
   return rv;
 }
 
 /* void open (in AUTF8String method, in AUTF8String url); */
@@ -1639,17 +1261,17 @@ nsXMLHttpRequest::Open(const nsACString&
     rv = NS_NewURI(getter_AddRefs(targetURI), url, nsnull, GetBaseURI());
     if (NS_FAILED(rv)) return NS_ERROR_FAILURE;
 
     nsIScriptSecurityManager *secMan = nsContentUtils::GetSecurityManager();
     if (!secMan) {
       return NS_ERROR_FAILURE;
     }
 
-    rv = secMan->CheckConnect(cx, targetURI, "XMLHttpRequest", "open-uri");
+    rv = secMan->CheckConnect(cx, targetURI, "XMLHttpRequest", "open");
     if (NS_FAILED(rv))
     {
       // Security check failed.
       return NS_OK;
     }
 
     // Find out if UniversalBrowserRead privileges are enabled
     // we will need this in case of a redirect
@@ -1794,38 +1416,49 @@ nsXMLHttpRequest::OnStartRequest(nsIRequ
     NS_ERROR("Ugh, still getting data on an aborted XMLHttpRequest!");
 
     return NS_ERROR_UNEXPECTED;
   }
 
   nsCOMPtr<nsIChannel> channel(do_QueryInterface(request));
   NS_ENSURE_TRUE(channel, NS_ERROR_UNEXPECTED);
 
-  channel->SetOwner(mPrincipal);
+  nsCOMPtr<nsIPrincipal> documentPrincipal = mPrincipal;
+  if (IsSystemPrincipal(documentPrincipal)) {
+    // Don't give this document the system principal.  We need to keep track of
+    // mPrincipal being system because we use it for various security checks
+    // that should be passing, but the document data shouldn't get a system
+    // principal.
+    nsresult rv;
+    documentPrincipal = do_CreateInstance("@mozilla.org/nullprincipal;1", &rv);
+    NS_ENSURE_SUCCESS(rv, rv);
+  }
+
+  channel->SetOwner(documentPrincipal);
 
   mReadRequest = request;
   mContext = ctxt;
   mState |= XML_HTTP_REQUEST_PARSEBODY;
   ChangeState(XML_HTTP_REQUEST_LOADED);
 
   nsIURI* uri = GetBaseURI();
 
-  // Create an empty document from it 
+  // Create an empty document from it.  Here we have to cheat a little bit...
+  // Setting the base URI to |uri| won't work if the document has a null
+  // principal, so use mPrincipal when creating the document, then reset the
+  // principal.
   const nsAString& emptyStr = EmptyString();
   nsCOMPtr<nsIScriptGlobalObject> global = do_QueryInterface(mOwner);
   nsresult rv = nsContentUtils::CreateDocument(emptyStr, emptyStr, nsnull, uri,
                                                uri, mPrincipal, global,
                                                getter_AddRefs(mDocument));
   NS_ENSURE_SUCCESS(rv, rv);
-
-  if (mState & XML_HTTP_REQUEST_USE_XSITE_AC) {
-    nsCOMPtr<nsIHTMLDocument> htmlDoc = do_QueryInterface(mDocument);
-    if (htmlDoc) {
-      htmlDoc->DisableCookieAccess();
-    }
+  nsCOMPtr<nsIDocument> doc = do_QueryInterface(mDocument);
+  if (doc) {
+    doc->SetPrincipal(documentPrincipal);
   }
 
   // Reset responseBody
   mResponseBody.Truncate();
 
   // Register as a load listener on the document
   nsCOMPtr<nsPIDOMEventTarget> target(do_QueryInterface(mDocument));
   if (target) {
@@ -2270,86 +1903,54 @@ nsXMLHttpRequest::Send(nsIVariant *aBody
 
   // Reset responseXML
   mDocument = nsnull;
 
   if (!(mState & XML_HTTP_REQUEST_ASYNC)) {
     mState |= XML_HTTP_REQUEST_SYNCLOOPING;
   }
 
-  rv = CheckChannelForCrossSiteRequest();
-  NS_ENSURE_SUCCESS(rv, rv);
-
   // Hook us up to listen to redirects and the like
   mChannel->GetNotificationCallbacks(getter_AddRefs(mNotificationCallbacks));
   mChannel->SetNotificationCallbacks(this);
 
   // Create our listener
   nsCOMPtr<nsIStreamListener> listener = this;
   if (mState & XML_HTTP_REQUEST_MULTIPART) {
     listener = new nsMultipartProxyListener(listener);
     if (!listener) {
       return NS_ERROR_OUT_OF_MEMORY;
     }
   }
 
-  if (!(mState & XML_HTTP_REQUEST_XSITEENABLED)) {
-    // Always create a nsCrossSiteListenerProxy here even if it's
-    // a same-origin request right now, since it could be redirected.
-    listener = new nsCrossSiteListenerProxy(listener, mPrincipal, mChannel,
-                                            &rv);
-    NS_ENSURE_TRUE(listener, NS_ERROR_OUT_OF_MEMORY);
-    NS_ENSURE_SUCCESS(rv, rv);
-  }
-
   // Bypass the network cache in cases where it makes no sense:
   // 1) Multipart responses are very large and would likely be doomed by the
   //    cache once they grow too large, so they are not worth caching.
   // 2) POST responses are always unique, and we provide no API that would
   //    allow our consumers to specify a "cache key" to access old POST
   //    responses, so they are not worth caching.
   if ((mState & XML_HTTP_REQUEST_MULTIPART) || method.EqualsLiteral("POST")) {
     AddLoadFlags(mChannel,
         nsIRequest::LOAD_BYPASS_CACHE | nsIRequest::INHIBIT_CACHING);
   }
   // When we are sync loading, we need to bypass the local cache when it would
   // otherwise block us waiting for exclusive access to the cache.  If we don't
   // do this, then we could dead lock in some cases (see bug 309424).
   else if (mState & XML_HTTP_REQUEST_SYNCLOOPING) {
     AddLoadFlags(mChannel,
         nsICachingChannel::LOAD_BYPASS_LOCAL_CACHE_IF_BUSY);
-    if (mACGetChannel) {
-      AddLoadFlags(mACGetChannel,
-          nsICachingChannel::LOAD_BYPASS_LOCAL_CACHE_IF_BUSY);
-    }
   }
 
   // Since we expect XML data, set the type hint accordingly
   // This means that we always try to parse local files as XML
   // ignoring return value, as this is not critical
   mChannel->SetContentType(NS_LITERAL_CSTRING("application/xml"));
 
-  // If we're doing a cross-site non-GET request we need to first do
-  // a GET request to the same URI. Set that up if needed
-  if (mACGetChannel) {
-    nsCOMPtr<nsIStreamListener> acListener =
-      new nsACProxyListener(mChannel, listener, nsnull, mPrincipal, method);
-    NS_ENSURE_TRUE(acListener, NS_ERROR_OUT_OF_MEMORY);
-
-    listener = new nsCrossSiteListenerProxy(acListener, mPrincipal,
-                                            mACGetChannel, &rv);
-    NS_ENSURE_TRUE(listener, NS_ERROR_OUT_OF_MEMORY);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    rv = mACGetChannel->AsyncOpen(listener, nsnull);
-  }
-  else {
-    // Start reading from the channel
-    rv = mChannel->AsyncOpen(listener, nsnull);
-  }
+  // Start reading from the channel
+  rv = mChannel->AsyncOpen(listener, nsnull);
 
   if (NS_FAILED(rv)) {
     // Drop our ref to the channel to avoid cycles
     mChannel = nsnull;
     return rv;
   }
 
   // Now that we've successfully opened the channel, we can change state.  Note
@@ -2378,29 +1979,16 @@ nsXMLHttpRequest::Send(nsIVariant *aBody
 
 /* void setRequestHeader (in AUTF8String header, in AUTF8String value); */
 NS_IMETHODIMP
 nsXMLHttpRequest::SetRequestHeader(const nsACString& header,
                                    const nsACString& value)
 {
   nsresult rv;
 
-  // Check that we haven't already opened the channel. We can't rely on
-  // the channel throwing from mChannel->SetRequestHeader since we might
-  // still be waiting for mACGetChannel to actually open mChannel
-  if (mACGetChannel) {
-    PRBool pending;
-    rv = mACGetChannel->IsPending(&pending);
-    NS_ENSURE_SUCCESS(rv, rv);
-    
-    if (pending) {
-      return NS_ERROR_IN_PROGRESS;
-    }
-  }
-
   if (!mChannel)             // open() initializes mChannel, and open()
     return NS_ERROR_FAILURE; // must be called before first setRequestHeader()
 
   nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(mChannel));
   if (!httpChannel) {
     return NS_OK;
   }
 
@@ -2422,42 +2010,16 @@ nsXMLHttpRequest::SetRequestHeader(const
     };
     PRUint32 i;
     for (i = 0; i < NS_ARRAY_LENGTH(kInvalidHeaders); ++i) {
       if (header.LowerCaseEqualsASCII(kInvalidHeaders[i])) {
         NS_WARNING("refusing to set request header");
         return NS_OK;
       }
     }
-
-    // Check for dangerous cross-site headers
-    PRBool safeHeader = !!(mState & XML_HTTP_REQUEST_XSITEENABLED);
-    if (!safeHeader) {
-      const char *kCrossOriginSafeHeaders[] = {
-        "accept", "accept-language"
-      };
-      for (i = 0; i < NS_ARRAY_LENGTH(kCrossOriginSafeHeaders); ++i) {
-        if (header.LowerCaseEqualsASCII(kCrossOriginSafeHeaders[i])) {
-          safeHeader = PR_TRUE;
-          break;
-        }
-      }
-    }
-
-    if (!safeHeader) {
-      // The header is unsafe for cross-site requests. If this is a cross-site
-      // request throw an exception...
-      if (mState & XML_HTTP_REQUEST_USE_XSITE_AC) {
-        return NS_ERROR_FAILURE;
-      }
-
-      // ...otherwise just add it to mExtraRequestHeaders so that we can
-      // remove it in case we're redirected to another site
-      mExtraRequestHeaders.AppendElement(header);
-    }
   }
 
   // We need to set, not add to, the header.
   return httpChannel->SetRequestHeader(header, value, PR_FALSE);
 }
 
 /* readonly attribute long readyState; */
 NS_IMETHODIMP
@@ -2688,28 +2250,29 @@ nsXMLHttpRequest::OnChannelRedirect(nsIC
 
   nsresult rv;
   if (mChannelEventSink) {
     rv =
       mChannelEventSink->OnChannelRedirect(aOldChannel, aNewChannel, aFlags);
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
-  mChannel = aNewChannel;
-
-  rv = CheckChannelForCrossSiteRequest();
+  nsCOMPtr<nsIURI> oldURI;
+  rv = aOldChannel->GetURI(getter_AddRefs(oldURI));
   NS_ENSURE_SUCCESS(rv, rv);
 
-  // Disable redirects for non-get cross-site requests entirely for now
-  // Note, do this after the call to CheckChannelForCrossSiteRequest
-  // to make sure that XML_HTTP_REQUEST_USE_XSITE_AC is up-to-date
-  if ((mState & XML_HTTP_REQUEST_NON_GET) &&
-      (mState & XML_HTTP_REQUEST_USE_XSITE_AC)) {
-    return NS_ERROR_DOM_BAD_URI;
-  }
+  nsCOMPtr<nsIURI> newURI;
+  rv = aNewChannel->GetURI(getter_AddRefs(newURI));
+  NS_ENSURE_SUCCESS(rv, rv);
+
+  rv = nsContentUtils::GetSecurityManager()->
+    CheckSameOriginURI(oldURI, newURI, PR_TRUE);
+  NS_ENSURE_SUCCESS(rv, rv);
+
+  mChannel = aNewChannel;
 
   return NS_OK;
 }
 
 /////////////////////////////////////////////////////
 // nsIProgressEventSink methods:
 //
 
--- a/content/base/src/nsXMLHttpRequest.h
+++ b/content/base/src/nsXMLHttpRequest.h
@@ -65,75 +65,16 @@
 #include "nsIDOMLSProgressEvent.h"
 #include "nsClassHashtable.h"
 #include "nsHashKeys.h"
 #include "prclist.h"
 #include "prtime.h"
 
 class nsILoadGroup;
 
-class nsAccessControlLRUCache
-{
-  struct CacheEntry : public PRCList
-  {
-    CacheEntry(const nsACString& aKey, PRTime aValue)
-    : key(aKey), value(aValue)
-    {
-      MOZ_COUNT_CTOR(nsAccessControlLRUCache::CacheEntry);
-    }
-    
-    ~CacheEntry()
-    {
-      MOZ_COUNT_DTOR(nsAccessControlLRUCache::CacheEntry);
-    }
-    
-    nsCString key;
-    PRTime value;
-  };
-
-public:
-  nsAccessControlLRUCache()
-  {
-    MOZ_COUNT_CTOR(nsAccessControlLRUCache);
-    PR_INIT_CLIST(&mList);
-  }
-
-  ~nsAccessControlLRUCache()
-  {
-    Clear();
-    MOZ_COUNT_DTOR(nsAccessControlLRUCache);
-  }
-
-  PRBool Initialize()
-  {
-    return mTable.Init();
-  }
-
-  void GetEntry(nsIURI* aURI, nsIPrincipal* aPrincipal,
-                PRTime* _retval);
-
-  void PutEntry(nsIURI* aURI, nsIPrincipal* aPrincipal,
-                PRTime aValue);
-
-  void Clear();
-
-private:
-  PRBool GetEntryInternal(const nsACString& aKey, CacheEntry** _retval);
-
-  PR_STATIC_CALLBACK(PLDHashOperator)
-    RemoveExpiredEntries(const nsACString& aKey, nsAutoPtr<CacheEntry>& aValue,
-                         void* aUserData);
-
-  static PRBool GetCacheKey(nsIURI* aURI, nsIPrincipal* aPrincipal,
-                            nsACString& _retval);
-
-  nsClassHashtable<nsCStringHashKey, CacheEntry> mTable;
-  PRCList mList;
-};
-
 class nsXMLHttpRequest : public nsIXMLHttpRequest,
                          public nsIJSXMLHttpRequest,
                          public nsIDOMLoadListener,
                          public nsIDOMEventTarget,
                          public nsIStreamListener,
                          public nsIChannelEventSink,
                          public nsIProgressEventSink,
                          public nsIInterfaceRequestor,
@@ -184,42 +125,16 @@ public:
   NS_IMETHOD Initialize(nsISupports* aOwner, JSContext* cx, JSObject* obj,
                        PRUint32 argc, jsval* argv);
 
   // This is called by the factory constructor.
   nsresult Init();
 
   NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsXMLHttpRequest, nsIXMLHttpRequest)
 
-  static PRBool EnsureACCache()
-  {
-    if (sAccessControlCache)
-      return PR_TRUE;
-
-    nsAutoPtr<nsAccessControlLRUCache> newCache(new nsAccessControlLRUCache());
-    NS_ENSURE_TRUE(newCache, PR_FALSE);
-
-    if (newCache->Initialize()) {
-      sAccessControlCache = newCache.forget();
-      return PR_TRUE;
-    }
-
-    return PR_FALSE;
-  }
-
-  static void ShutdownACCache()
-  {
-    if (sAccessControlCache) {
-      delete sAccessControlCache;
-      sAccessControlCache = nsnull;
-    }
-  }
-
-  static nsAccessControlLRUCache* sAccessControlCache;
-
 protected:
 
   nsresult DetectCharset(nsACString& aCharset);
   nsresult ConvertBodyToText(nsAString& aOutBuffer);
   static NS_METHOD StreamReaderFunc(nsIInputStream* in,
                 void* closure,
                 const char* fromRawSegment,
                 PRUint32 toOffset,
@@ -276,17 +191,16 @@ protected:
   }
 
   nsCOMPtr<nsISupports> mContext;
   nsCOMPtr<nsIPrincipal> mPrincipal;
   nsCOMPtr<nsIChannel> mChannel;
   // mReadRequest is different from mChannel for multipart requests
   nsCOMPtr<nsIRequest> mReadRequest;
   nsCOMPtr<nsIDOMDocument> mDocument;
-  nsCOMPtr<nsIChannel> mACGetChannel;
 
   nsCOMArray<nsIDOMEventListener> mLoadEventListeners;
   nsCOMArray<nsIDOMEventListener> mErrorEventListeners;
   nsCOMArray<nsIDOMEventListener> mProgressEventListeners;
   nsCOMArray<nsIDOMEventListener> mUploadProgressEventListeners;
   nsCOMArray<nsIDOMEventListener> mReadystatechangeEventListeners;
 
   // These may be null (native callers or xpcshell).
--- a/content/base/test/Makefile.in
+++ b/content/base/test/Makefile.in
@@ -126,41 +126,16 @@ include $(topsrcdir)/config/rules.mk
 		test_bug392318.html \
 		test_bug392511.html \
 		test_bug393968.html \
 		test_bug395915.html \
 		test_bug397234.html \
 		test_bug398243.html \
 		formReset.html \
 		bug382113_object.html \
-		test_CrossSiteXHR.html \
-		file_CrossSiteXHR_fail1.xml \
-		file_CrossSiteXHR_fail2.xml \
-		file_CrossSiteXHR_fail2.xml^headers^ \
-		file_CrossSiteXHR_fail3.xml \
-		file_CrossSiteXHR_fail4.xml \
-		file_CrossSiteXHR_pass1.xml \
-		file_CrossSiteXHR_pass1.xml^headers^ \
-		file_CrossSiteXHR_pass2.xml \
-		file_CrossSiteXHR_pass3.xml \
-		test_CrossSiteXHR2.html \
-		file_CrossSiteXHR2_inner.html \
-		file_CrossSiteXHR2_fail1.xml \
-		file_CrossSiteXHR2_fail1.xml^headers^ \
-		file_CrossSiteXHR2_fail2.xml \
-		file_CrossSiteXHR2_pass1.xml \
-		file_CrossSiteXHR2_pass1.xml^headers^ \
-		file_CrossSiteXHR2_pass2.xml \
-		file_CrossSiteXHR2_pass3.xml \
-		file_CrossSiteXHR2_pass3.xml^headers^ \
-		file_CrossSiteXHR2_pass3_redirect.xml \
-		test_CrossSiteXHR3.html \
-		file_CrossSiteXHR3_inner.html \
-		file_CrossSiteXHR3_pass1.xml^headers^ \
-		file_CrossSiteXHR3_pass1.xml \
 		test_bug326337.html \
 		file_bug326337_inner.html \
 		file_bug326337_outer.html \
 		file_bug326337.xml \
 		file_bug326337_multipart.txt \
 		file_bug326337_multipart.txt^headers^ \
 		test_bug402150.html \
 		test_bug402150.html^headers^ \
@@ -180,16 +155,24 @@ include $(topsrcdir)/config/rules.mk
 		test_bug417384.html \
 		test_bug418214.html \
 		test_bug419527.xhtml \
 		test_bug420609.xhtml \
 		test_bug420700.html \
 		test_bug421602.html \
 		test_bug422537.html \
 		test_bug424212.html \
+		test_bug425013.html \
+		test_XHR.html \
+		file_XHR_pass1.xml \
+		file_XHR_pass2.txt \
+		file_XHR_pass3.txt \
+		file_XHR_pass3.txt^headers^ \
+		file_XHR_fail1.txt \
+		file_XHR_fail1.txt^headers^ \
 		$(NULL)
 
 libs:: $(_TEST_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
 
 check::
 	@$(EXIT_ON_ERROR) \
 	for f in $(subst .cpp,,$(CPP_UNIT_TESTS)); do \
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_fail1.xml
+++ /dev/null
@@ -1,1 +0,0 @@
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_fail1.xml^headers^
+++ /dev/null
@@ -1,2 +0,0 @@
-HTTP 200 OK
-Access-Control: allow <http://sub1.xn--lt-uia.example.org.example.org>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_fail2.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?access-control allow="http://ält.example.org"?>
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_inner.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-</head>
-<body>
-
-<script class="testbody" type="text/javascript">
-
-function doFail(msg)
-{
-  document.write(msg + "<p>");
-  parent.location.hash = "#fail";
-  throw 1;
-}
-
-var local = "http://example.com/tests/content/base/test/";
-
-var passFiles = [[local + 'file_CrossSiteXHR2_pass1.xml', 'GET'],
-                 [local + 'file_CrossSiteXHR2_pass2.xml', 'GET'],
-                 [local + 'file_CrossSiteXHR2_pass3.xml', 'GET']
-                 ];
-
-var failFiles = [[local + 'file_CrossSiteXHR2_fail1.xml', 'GET'],
-                 [local + 'file_CrossSiteXHR2_fail2.xml', 'GET']
-                 ];
-
-netscape.security.PrivilegeManager.enablePrivilege(
-    "UniversalXPConnect UniversalBrowserWrite");
-
-for (i = 0; i < passFiles.length; ++i)
-{
-  xhr = new XMLHttpRequest();
-  if (!xhr)
-    doFail("Couldn't open request : " + passFiles[i][0]);
-  try {
-    xhr.open(passFiles[i][1], passFiles[i][0], false);
-  }
-  catch(e) {
-    doFail("Open failed : " + passFiles[i][0]);
-  }
-  
-  // Do the send
-  try {
-    xhr.send(null);
-  }
-  catch(e) {
-    doFail("Sending failed : " + passFiles[i][0]);
-  }
-  
-  // Check the Access-Control-Origin
-  var channel =
-    xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannel);
-  var value = null;
-  try {
-    value = channel.getRequestHeader("Access-Control-Origin");
-  }
-  catch(e) {
-    doFail("Getting request header failed : " + passFiles[i][0]);
-  }
-  if (value != "http://sub1.xn--lt-uia.example.org:8000")
-   doFail("Referer-root incorrect : " + value);
-  
-  // Check the response
-  if (xhr.status != "200") {
-    doFail("Status incorrect : " + passFiles[i][0]);
-  }
-  if (xhr.responseXML) {
-    responseString = (new XMLSerializer()).serializeToString(
-      xhr.responseXML.documentElement);
-    if (responseString != "<res>hello</res>") {
-      doFail("Response incorrect : " + passFiles[i][0]);
-    }
-  }
-  else  {
-    doFail("No response : " + passFiles[i][0]);
-  }
-}
-
-for (i = 0; i < failFiles.length; ++i)
-{
-  xhr = new XMLHttpRequest();
-  if (!xhr)
-    doFail("Couldn't open request : " + passFiles[i][0]);
-  
-  success = false;
-  try {
-    xhr.open(failFiles[i][1], failFiles[i][0], false);
-    xhr.send(null);
-  }
-  catch (e) {
-    success = true;
-  }
-  if (!success) {
-    doFail("Test did not fail : " + failFiles[i][0]);
-  }
-}
-
-document.write("Success!");
-parent.location.hash = "#done";
-
-</script>
-
-</body>
-</html>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_pass1.xml
+++ /dev/null
@@ -1,1 +0,0 @@
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_pass1.xml^headers^
+++ /dev/null
@@ -1,2 +0,0 @@
-HTTP 200 OK
-Access-Control: allow <http://sub1.xn--lt-uia.example.org:8000>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_pass2.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?access-control allow="http://sub1.ält.example.org:8000"?>
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_pass3.xml
+++ /dev/null
@@ -1,1 +0,0 @@
-<res>wrong, should redirect</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_pass3.xml^headers^
+++ /dev/null
@@ -1,2 +0,0 @@
-HTTP 301 Moved Permanently
-Location: http://test1.example.org/tests/content/base/test/file_CrossSiteXHR2_pass3_redirect.xml
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR2_pass3_redirect.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?access-control allow="http://sub1.ält.example.org:8000"?>
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR3_inner.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-</head>
-<body>
-
-<script class="testbody" type="text/javascript">
-
-function doFail(msg)
-{
-  document.write(msg + "<p>");
-  parent.location.hash = "#fail";
-  throw 1;
-}
-
-var local = "http://example.com/tests/content/base/test/";
-
-var passFiles = [[local + 'file_CrossSiteXHR3_pass1.xml', 'GET']];
-
-var failFiles = [];
-
-netscape.security.PrivilegeManager.enablePrivilege(
-    "UniversalXPConnect UniversalBrowserWrite");
-
-for (i = 0; i < passFiles.length; ++i)
-{
-  xhr = new XMLHttpRequest();
-  if (!xhr)
-    doFail("Couldn't open request : " + passFiles[i][0]);
-  try {
-    xhr.open(passFiles[i][1], passFiles[i][0], false);
-  }
-  catch(e) {
-    doFail("Open failed : " + passFiles[i][0]);
-  }
-  
-  // Do the send
-  try {
-    xhr.send(null);
-  }
-  catch(e) {
-    doFail("Sending failed : " + passFiles[i][0]);
-  }
-  
-  // Check the Access-Control-Origin
-  var channel =
-    xhr.channel.QueryInterface(Components.interfaces.nsIHttpChannel);
-  var value = null;
-  try {
-    value = channel.getRequestHeader("Access-Control-Origin");
-  }
-  catch(e) {
-    doFail("Getting request header failed : " + passFiles[i][0]);
-  }
-  if (value != "http://sub2.xn--lt-uia.example.org")
-   doFail("Referer-root incorrect : " + value);
-  
-  // Check the response
-  if (xhr.status != "200") {
-    doFail("Status incorrect : " + passFiles[i][0]);
-  }
-  if (xhr.responseXML) {
-    responseString = (new XMLSerializer()).serializeToString(xhr.responseXML.documentElement);
-    if (responseString != "<res>hello</res>") {
-      doFail("Response incorrect : " + passFiles[i][0]);
-    }
-  }
-  else  {
-    doFail("No response : " + passFiles[i][0]);
-  }
-}
-
-for (i = 0; i < failFiles.length; ++i)
-{
-  xhr = new XMLHttpRequest();
-  if (!xhr)
-    doFail("Couldn't open request : " + passFiles[i][0]);
-    
-  success = false;
-  try {
-    xhr.open(failFiles[i][1], failFiles[i][0], false);
-    xhr.send(null);
-  }
-  catch (e) {
-    success = true;
-  }
-  if (!success) {
-    doFail("Test did not fail : " + failFiles[i][0]);
-  }
-}
-
-document.write("Success!");
-parent.location.hash = "#done";
-
-</script>
-
-</body>
-</html>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR3_pass1.xml
+++ /dev/null
@@ -1,1 +0,0 @@
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR3_pass1.xml^headers^
+++ /dev/null
@@ -1,2 +0,0 @@
-HTTP 200 OK
-Access-Control: allow <http://sub2.xn--lt-uia.example.org>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_fail1.xml
+++ /dev/null
@@ -1,1 +0,0 @@
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_fail2.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?access-control allow="*"?>
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_fail2.xml^headers^
+++ /dev/null
@@ -1,2 +0,0 @@
-HTTP 200 OK
-Access-Control: allow <*>, deny <*>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_fail3.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?access-control allow="http://localhost:8889"?>
-<?access-control deny="*" exclude="localhost:8888"?>
-<?access-control deny="ftp://localhost:8888"?>
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_fail4.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?access-control allow="*"?>
->
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_pass1.xml
+++ /dev/null
@@ -1,1 +0,0 @@
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_pass1.xml^headers^
+++ /dev/null
@@ -1,2 +0,0 @@
-HTTP 200 OK
-Access-Control: allow <localhost:8888> exclude <localhost.bar> <bar.localhost>, deny <*> exclude <localhost:8888>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_pass2.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?access-control allow="*"?>
-<res>hello</res>
deleted file mode 100644
--- a/content/base/test/file_CrossSiteXHR_pass3.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?access-control allow="foo.com"?>
-<?access-control deny="*" exclude="localhost:8888"?>
-<?access-control deny="ftp://localhost:8888"?>
-<?access-control allow="http://localhost:8888"?>
-<res>hello</res>
new file mode 100644
--- /dev/null
+++ b/content/base/test/file_XHR_fail1.txt
@@ -0,0 +1,1 @@
+redirect file
new file mode 100644
--- /dev/null
+++ b/content/base/test/file_XHR_fail1.txt^headers^
@@ -0,0 +1,2 @@
+HTTP 301 Moved Permanently
+Location: http://example.com/tests/content/base/test/file_XHR_pass2.txt
new file mode 100644
--- /dev/null
+++ b/content/base/test/file_XHR_fail1b.txt
@@ -0,0 +1,1 @@
+hello pass
new file mode 100644
--- /dev/null
+++ b/content/base/test/file_XHR_pass1.xml
@@ -0,0 +1,1 @@
+<res>hello</res>
new file mode 100644
--- /dev/null
+++ b/content/base/test/file_XHR_pass2.txt
@@ -0,0 +1,1 @@
+hello pass
new file mode 100644
--- /dev/null
+++ b/content/base/test/file_XHR_pass3.txt
@@ -0,0 +1,1 @@
+redirect file
new file mode 100644
--- /dev/null
+++ b/content/base/test/file_XHR_pass3.txt^headers^
@@ -0,0 +1,2 @@
+HTTP 301 Moved Permanently
+Location: file_XHR_pass2.txt
deleted file mode 100644
--- a/content/base/test/test_CrossSiteXHR.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Test for Cross Site XMLHttpRequest</title>
-  <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>        
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-  
-</div>
-<pre id="test">
-<script class="testbody" type="text/javascript">
-
-var local = "http://example.com/tests/content/base/test/";
-
-var passFiles = [[local + 'file_CrossSiteXHR_pass1.xml', 'GET'],
-                 [local + 'file_CrossSiteXHR_pass2.xml', 'GET'],
-                 [local + 'file_CrossSiteXHR_pass3.xml', 'GET'],
-                 ];
-
-var failFiles = [[local + 'file_CrossSiteXHR_fail1.xml', 'GET'],
-                 [local + 'file_CrossSiteXHR_fail2.xml', 'GET'],
-                 [local + 'file_CrossSiteXHR_fail3.xml', 'GET'],
-                 [local + 'file_CrossSiteXHR_fail4.xml', 'GET'],
-                 ];
-
-for (i = 0; i < passFiles.length; ++i) {
-  xhr = new XMLHttpRequest();
-  xhr.open(passFiles[i][1], passFiles[i][0], false); 
-  xhr.send(null);
-  is(xhr.status, 200, "wrong status");
-  if (xhr.responseXML) {
-    is((new XMLSerializer()).serializeToString(xhr.responseXML.documentElement),
-       "<res>hello</res>",
-       "wrong response");
-  }
-  else {
-    is(xhr.responseText, "hello pass\n", "wrong response");
-  }
-}
-
-for (i = 0; i < failFiles.length; ++i) {
-  xhr = new XMLHttpRequest();
-  success = false;
-  try {
-    xhr.open(failFiles[i][1], failFiles[i][0], false); 
-    xhr.send(null);
-  }
-  catch (e) {
-    success = true;
-  }
-  ok(success, "should have thrown");
-}
-</script>
-</pre>
-</body>
-</html>
deleted file mode 100644
--- a/content/base/test/test_CrossSiteXHR2.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Test for Cross Site XMLHttpRequest with IDN</title>
-  <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
-  <script type="text/javascript"
-    src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-  
-</div>
-
-<iframe id="inner" src="http://sub1.xn--lt-uia.example.org:8000/tests/content/base/test/file_CrossSiteXHR2_inner.html">
-</iframe>
-
-<pre id="test">
-<script class="testbody" type="text/javascript">
-
-SimpleTest.waitForExplicitFinish();
-
-var t = setInterval(doCheck, 300);
-function doCheck()
-{
-  if (location.hash) {
-    clearInterval(t);
-    is(location.hash, "#done", "failed to run");
-    SimpleTest.finish();
-  }
-}
-
-</script>
-</pre>
-</body>
-</html>
deleted file mode 100644
--- a/content/base/test/test_CrossSiteXHR3.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-  <title>Test for Cross Site XMLHttpRequest with Referer-Root</title>
-  <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
-  <script type="text/javascript"
-    src="/tests/SimpleTest/SimpleTest.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<p id="display"></p>
-<div id="content" style="display: none">
-  
-</div>
-
-<iframe id="inner" src="http://sub2.xn--lt-uia.example.org:80/tests/content/base/test/file_CrossSiteXHR3_inner.html">
-</iframe>
-
-<pre id="test">
-<script class="testbody" type="text/javascript">
-
-SimpleTest.waitForExplicitFinish();
-
-var t = setInterval(doCheck, 300);
-function doCheck()
-{
-  if (location.hash) {
-    clearInterval(t);
-    is(location.hash, "#done", "failed to run");
-    SimpleTest.finish();
-  }
-}
-
-</script>
-</pre>
-</body>
-</html>
new file mode 100644
--- /dev/null
+++ b/content/base/test/test_XHR.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>Test for XMLHttpRequest</title>
+  <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>        
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<p id="display"></p>
+<div id="content" style="display: none">
+  
+</div>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+var path = "/tests/content/base/test/";
+
+var passFiles = [['file_XHR_pass1.xml', 'GET'],
+                 ['file_XHR_pass2.txt', 'GET'],
+                 ['file_XHR_pass3.txt', 'GET'],
+                 ];
+
+var failFiles = [['//example.com' + path + 'file_XHR_pass1.xml', 'GET'],
+                 ['ftp://localhost' + path + 'file_XHR_pass1.xml', 'GET'],
+                 ['file_XHR_fail1.txt', 'GET'],
+                 ];
+
+for (i = 0; i < passFiles.length; ++i) {
+  xhr = new XMLHttpRequest();
+  xhr.open(passFiles[i][1], passFiles[i][0], false); 
+  xhr.send(null);
+  is(xhr.status, 200, "wrong status");
+  if (xhr.responseXML) {
+    is((new XMLSerializer()).serializeToString(xhr.responseXML.documentElement),
+       "<res>hello</res>",
+       "wrong response");
+  }
+  else {
+    is(xhr.responseText, "hello pass\n", "wrong response");
+  }
+}
+
+for (i = 0; i < failFiles.length; ++i) {
+  xhr = new XMLHttpRequest();
+  didthrow = false;
+  try {
+    xhr.open(failFiles[i][1], failFiles[i][0], false); 
+    xhr.send(null);
+  }
+  catch (e) {
+    didthrow = true;
+  }
+  if (!didthrow) {
+    is(xhr.status, 301, "wrong status");
+    is(xhr.responseText, "redirect file\n", "wrong response");
+  }
+  else {
+    ok(1, "should have thrown or given incorrect result");
+  }
+}
+</script>
+</pre>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/content/base/test/test_bug425013.html
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=425013
+-->
+<head>
+  <title>Test for Bug 425013</title>
+  <script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body onload="runtests();">
+
+<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=425013">Mozilla Bug 425013</a>
+<br>
+
+<script>
+var missingPlugins = new Array();
+
+function pluginNotFound(event)
+{
+  missingPlugins.push(event.target);
+}
+
+document.addEventListener("PluginNotFound", pluginNotFound, false);
+</script>
+
+<object type="foo/bar" id="obj1"></object>
+
+<object type="foo/bar" id="obj2">
+  <embed type="a/b" id="embed1"></embed>
+</object>
+
+<object type="foo/bar"
+        data="data:foo/bar,bah" id="obj3">
+<param name="movie" value="data:foo/bar,bah">
+</object>
+
+<object type="foo/bar"
+        data="data:foo/bar,bah" id="obj4">
+<param name="movie" value="data:foo/bar,bah">
+<p>Alternate content</p>
+</object>
+
+<object type="text/html"
+        data="data:text/html,an html document in an object tag" id="obj5">
+</object>
+
+<object type="text/html"
+        data="data:text/html,an html document in an object tag" id="obj6">
+<p>Alternate content</p>
+</object>
+
+<embed type="a/b" id="embed2"></embed>
+
+<script class="testbody" type="text/javascript">
+function runtests()
+{
+  is(missingPlugins[0], document.getElementById("obj1"),
+     "Wrong missing plugin element 1");
+  is(missingPlugins[1], document.getElementById("embed1"),
+     "Wrong missing plugin element 2");
+  is(missingPlugins[2], document.getElementById("obj2"),
+     "Wrong missing plugin element 3");
+  is(missingPlugins[3], document.getElementById("embed2"),
+     "Wrong missing plugin element 4");
+  is(missingPlugins[4], document.getElementById("obj3"),
+     "Wrong missing plugin element 5");
+
+  is(missingPlugins.length, 5, "Wrong number of missing plugins");
+
+  SimpleTest.finish();
+}
+
+SimpleTest.waitForExplicitFinish();
+</script>
+</pre>
+</body>
+</html>
--- a/content/html/content/test/Makefile.in
+++ b/content/html/content/test/Makefile.in
@@ -102,12 +102,14 @@ include $(topsrcdir)/config/rules.mk
 		test_bug391994.html \
 		test_bug392567.html \
 		bug392567.jar       \
 		bug392567.jar^headers^ \
 		test_bug394700.html \
 		test_bug395107.html \
 		test_bug401160.xhtml \
 		test_bug408231.html \
+		test_bug417760.html \
+		file_bug417760.png \
 		$(NULL)
 
 libs:: $(_TEST_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..cb0ba06dc10ec2d7adeb38c53b174a66781930f9
GIT binary patch
literal 2220
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
new file mode 100644
--- /dev/null
+++ b/content/html/content/test/test_bug417760.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=417760
+-->
+<head>
+  <title>cannot focus() img with tabindex="-1"</title>
+  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
+  <style type="text/css">
+    img {
+      border: 5px solid white;
+    }
+    img:focus {
+      border: 5px solid black;
+    }
+  </style>
+
+
+  <script type="application/javascript" src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+
+  <script type="text/javascript">
+    function checkFocus(aExpected, aTabIndex)
+    {
+      elemCurr = document.activeElement.getAttribute("id");
+      is(elemCurr, aExpected, "Element with tabIndex " + aTabIndex 
+         + " did not receive focus!");
+    }
+
+    function doTest()
+    {
+      // First, test img with tabindex = 0
+      document.getElementById("img-tabindex-0").focus();
+      checkFocus("img-tabindex-0", 0);
+
+      // now test the img with tabindex = -1
+      document.getElementById("img-tabindex-minus-1").focus();
+      checkFocus("img-tabindex-minus-1", -1);
+
+      // now test the img without tabindex, should NOT receive focus!
+      document.getElementById("img-no-tabindex").focus();
+      checkFocus("img-tabindex-minus-1", null);
+
+      SimpleTest.finish();
+    }
+
+    SimpleTest.waitForExplicitFinish();
+    addLoadEvent(doTest);
+  </script>
+</head>
+
+<body>
+
+  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=417760">Mozilla Bug 417760</a>
+  <p id="display"></p>
+  <div id="content" style="display: none"></div>
+  <pre id="test">
+  </pre>
+  <br>img tabindex="0":
+  <img id="img-tabindex-0"
+    src="file_bug417760.png"
+    alt="MoCo logo" tabindex="0"/>
+  <br>img tabindex="-1":
+  <img id="img-tabindex-minus-1"
+    src="file_bug417760.png"
+    alt="MoCo logo" tabindex="-1"/>
+  <br>img without tabindex:
+  <img id="img-no-tabindex"
+    src="file_bug417760.png"
+    alt="MoCo logo"/>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/content/html/document/crashtests/395340-1.html
@@ -0,0 +1,28 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script type="text/javascript">
+
+function boom()
+{
+  var div1 = document.createElement("div");
+  div1.style.counterIncrement = "chicken";
+  div1.contentEditable = "true";
+
+  var div2 = document.createElement("div");
+  div2.style.counterIncrement = "chicken";
+
+  document.body.style.content = "'A'";
+
+  div1.appendChild(div2);
+  document.body.appendChild(div1);
+  div1.removeChild(div2);
+}
+
+</script>
+
+</head>
+
+<body onload="boom();">
+
+</body>
+</html>
--- a/content/html/document/crashtests/crashtests.list
+++ b/content/html/document/crashtests/crashtests.list
@@ -1,2 +1,3 @@
 load 388183-1.html
+load 395340-1.html
 load 407053.html
--- a/content/html/document/src/nsHTMLDocument.cpp
+++ b/content/html/document/src/nsHTMLDocument.cpp
@@ -1982,20 +1982,16 @@ nsHTMLDocument::GetAnchors(nsIDOMHTMLCol
 }
 
 NS_IMETHODIMP
 nsHTMLDocument::GetCookie(nsAString& aCookie)
 {
   aCookie.Truncate(); // clear current cookie in case service fails;
                       // no cookie isn't an error condition.
 
-  if (mDisableCookieAccess) {
-    return NS_OK;
-  }
-
   // not having a cookie service isn't an error
   nsCOMPtr<nsICookieService> service = do_GetService(NS_COOKIESERVICE_CONTRACTID);
   if (service) {
     // Get a URI from the document principal. We use the original
     // codebase in case the codebase was changed by SetDomain
     nsCOMPtr<nsIURI> codebaseURI;
     NodePrincipal()->GetURI(getter_AddRefs(codebaseURI));
 
@@ -2012,20 +2008,16 @@ nsHTMLDocument::GetCookie(nsAString& aCo
   }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsHTMLDocument::SetCookie(const nsAString& aCookie)
 {
-  if (mDisableCookieAccess) {
-    return NS_OK;
-  }
-
   // not having a cookie service isn't an error
   nsCOMPtr<nsICookieService> service = do_GetService(NS_COOKIESERVICE_CONTRACTID);
   if (service && mDocumentURI) {
     nsCOMPtr<nsIPrompt> prompt;
     nsCOMPtr<nsPIDOMWindow> window = GetWindow();
     if (window) {
       window->GetPrompter(getter_AddRefs(prompt));
     }
--- a/content/html/document/src/nsHTMLDocument.h
+++ b/content/html/document/src/nsHTMLDocument.h
@@ -203,21 +203,16 @@ public:
 
   nsresult ChangeContentEditableCount(nsIContent *aElement, PRInt32 aChange);
 
   virtual EditingState GetEditingState()
   {
     return mEditingState;
   }
 
-  virtual void DisableCookieAccess()
-  {
-    mDisableCookieAccess = PR_TRUE;
-  }
-
   virtual nsIContent* GetBodyContentExternal();
 
   void EndUpdate(nsUpdateType aUpdateType);
 
   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED_NO_UNLINK(nsHTMLDocument, nsDocument)
 
   virtual already_AddRefed<nsIParser> GetFragmentParser() {
     return mFragmentParser.forget();
@@ -386,15 +381,13 @@ protected:
   static jsval       sPasteInternal_id;
 
   // kNameSpaceID_None for good ol' HTML documents, and
   // kNameSpaceID_XHTML for spiffy new XHTML documents.
   // XXXbz should this be reset if someone manually calls
   // SetContentType() on this document?
   PRInt32 mDefaultNamespaceID;
 
-  PRBool mDisableCookieAccess;
-
   // Parser used for constructing document fragments.
   nsCOMPtr<nsIParser> mFragmentParser;
 };
 
 #endif /* nsHTMLDocument_h___ */
--- a/content/html/document/src/nsHTMLFragmentContentSink.cpp
+++ b/content/html/document/src/nsHTMLFragmentContentSink.cpp
@@ -234,18 +234,36 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE_AMBIGUO
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsHTMLFragmentContentSink)
   NS_INTERFACE_MAP_ENTRY(nsIFragmentContentSink)
   NS_INTERFACE_MAP_ENTRY(nsIHTMLContentSink)
   NS_INTERFACE_MAP_ENTRY(nsIContentSink)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIContentSink)
 NS_INTERFACE_MAP_END
 
-NS_IMPL_CYCLE_COLLECTION_3(nsHTMLFragmentContentSink, mParser, mTargetDocument,
-                           mRoot)
+NS_IMPL_CYCLE_COLLECTION_CLASS(nsHTMLFragmentContentSink)
+NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsHTMLFragmentContentSink)
+  NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mParser)
+  NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mTargetDocument)
+  NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mRoot)
+  NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mNodeInfoManager)
+NS_IMPL_CYCLE_COLLECTION_UNLINK_END
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsHTMLFragmentContentSink)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mParser)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mTargetDocument)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mRoot)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mNodeInfoManager,
+                                                  nsNodeInfoManager)
+  {
+    PRUint32 i;
+    for (i = 0; i < NS_ARRAY_LENGTH(tmp->mNodeInfoCache); ++i) {
+      cb.NoteXPCOMChild(tmp->mNodeInfoCache[i]);
+    }
+  }
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
 NS_IMETHODIMP
 nsHTMLFragmentContentSink::WillBuildModel(void)
 {
   if (mRoot) {
     return NS_OK;
   }
 
--- a/content/html/document/src/nsIHTMLDocument.h
+++ b/content/html/document/src/nsIHTMLDocument.h
@@ -169,21 +169,16 @@ public:
    * Returns the result of document.all[aID] which can either be a node
    * or a nodelist depending on if there are multiple nodes with the same
    * id.
    */
   virtual nsresult GetDocumentAllResult(const nsAString& aID,
                                         nsISupports** aResult) = 0;
 
   /**
-   * Disables getting and setting cookies
-   */
-  virtual void DisableCookieAccess() = 0;
-
-  /**
    * Get the first <body> child of the root <html>, but don't do
    * anything <frameset>-related (like nsIDOMHTMLDocument::GetBody).
    */
   virtual nsIContent* GetBodyContentExternal() = 0;
 
   /**
    * Called when this nsIHTMLDocument's editor is destroyed.
    */
new file mode 100644
--- /dev/null
+++ b/content/svg/content/src/crashtests/395616-1.html
@@ -0,0 +1,13 @@
+<html>
+<head>
+<script>
+function boom()
+{
+  var marker = document.createElementNS("http://www.w3.org/2000/svg", "marker");
+  marker.orientType.baseVal = "";
+}
+</script>
+</head>
+<body onload="boom();">
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/content/svg/content/src/crashtests/397704-1.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg"><marker orient="0" /></svg>
new file mode 100644
--- /dev/null
+++ b/content/svg/content/src/crashtests/409811-1.html
@@ -0,0 +1,15 @@
+<html>
+<head>
+<script type="text/javascript">
+
+function boom()
+{
+  var marker = document.createElementNS("http://www.w3.org/2000/svg", "marker");
+  marker.orientType.baseVal = "";
+}
+
+</script>
+</head>
+
+<body onload="boom();"></body>
+</html>
--- a/content/svg/content/src/crashtests/crashtests.list
+++ b/content/svg/content/src/crashtests/crashtests.list
@@ -12,21 +12,24 @@ load 369568-1.svg
 load 372046-1.svg
 load 372046-2.svg
 load 374882-1.svg
 load 380101-1.svg 
 load 381777-1.svg
 load 383685-1.svg
 load 385096.html
 load 388712-1.svg
+load 395616-1.html
 load 397017-1.html
 load 397551-1.svg
+load 397704-1.svg
 load 398926-both-different.svg
 load 398926-both-same.svg
 load 398926-fill.svg
 load 398926-stroke.svg
 load 405639-1.svg
 load 406361-1.html
+load 409811-1.html
 load 410659-1.svg
 load 410659-2.svg
 load 410659-3.svg
 load 412104-1.svg
 load 414188-1.svg
new file mode 100644
--- /dev/null
+++ b/content/xbl/crashtests/415192-1.xul
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://global/skin/global.css"?>
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="boom();">
+<script type="text/javascript">
+
+function boom()
+{
+  var XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+
+  var wizard = document.createElementNS(XUL_NS, "wizard");
+  var space = document.createTextNode(" ");
+  var hbox = document.createElementNS(XUL_NS, "hbox");
+  hbox.setAttribute("anonid", "Buttons");
+
+  document.documentElement.appendChild(wizard);
+  wizard.appendChild(space);
+  wizard.appendChild(hbox);
+  wizard.cloneNode(true);
+}
+
+</script>
+</window>
--- a/content/xbl/crashtests/crashtests.list
+++ b/content/xbl/crashtests/crashtests.list
@@ -4,8 +4,9 @@ load 382376-1.xhtml
 load 382376-2.xhtml
 load 342954-1.xhtml
 load 342954-2.xhtml
 load 406900-1.xul
 load 406904-1.xhtml
 load 406904-2.xhtml
 load 418133-1.xhtml
 load 421997-1.xhtml
+load 415192-1.xul
--- a/content/xbl/src/nsBindingManager.cpp
+++ b/content/xbl/src/nsBindingManager.cpp
@@ -1476,45 +1476,50 @@ nsBindingManager::DropDocumentReference(
 void
 nsBindingManager::Traverse(nsIContent *aContent,
                            nsCycleCollectionTraversalCallback &cb)
 {
   if (!aContent->HasFlag(NODE_MAY_BE_IN_BINDING_MNGR)) {
     return;
   }
 
+  nsISupports *value;
+  if (mInsertionParentTable.ops &&
+      (value = LookupObject(mInsertionParentTable, aContent))) {
+    NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mInsertionParentTable key");
+    cb.NoteXPCOMChild(aContent);
+    NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mInsertionParentTable value");
+    cb.NoteXPCOMChild(value);
+  }
+
+  if (!aContent->IsNodeOfType(nsINode::eELEMENT)) {
+    return;
+  }
+
   nsXBLBinding *binding = GetBinding(aContent);
   if (binding) {
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mBindingTable key");
     cb.NoteXPCOMChild(aContent);
     NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_PTR(binding, nsXBLBinding,
                                   "[via binding manager] mBindingTable value")
   }
-  nsISupports *value;
   if (mContentListTable.ops &&
       (value = LookupObject(mContentListTable, aContent))) {
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mContentListTable key");
     cb.NoteXPCOMChild(aContent);
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mContentListTable value");
     cb.NoteXPCOMChild(value);
   }
   if (mAnonymousNodesTable.ops &&
       (value = LookupObject(mAnonymousNodesTable, aContent))) {
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mAnonymousNodesTable key");
     cb.NoteXPCOMChild(aContent);
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mAnonymousNodesTable value");
     cb.NoteXPCOMChild(value);
   }
-  if (mInsertionParentTable.ops &&
-      (value = LookupObject(mInsertionParentTable, aContent))) {
-    NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mInsertionParentTable key");
-    cb.NoteXPCOMChild(aContent);
-    NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mInsertionParentTable value");
-    cb.NoteXPCOMChild(value);
-  }
   if (mWrapperTable.ops &&
       (value = LookupObject(mWrapperTable, aContent))) {
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mWrapperTable key");
     cb.NoteXPCOMChild(aContent);
     NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, "[via binding manager] mWrapperTable value");
     cb.NoteXPCOMChild(value);
   }
 }
--- a/content/xbl/src/nsXBLPrototypeHandler.cpp
+++ b/content/xbl/src/nsXBLPrototypeHandler.cpp
@@ -65,17 +65,16 @@
 #include "nsIDOMNSEvent.h"
 #include "nsPIDOMWindow.h"
 #include "nsPIWindowRoot.h"
 #include "nsIDOMWindowInternal.h"
 #include "nsIServiceManager.h"
 #include "nsContentUtils.h"
 #include "nsIScriptError.h"
 #include "nsXPIDLString.h"
-#include "nsReadableUtils.h"
 #include "nsGkAtoms.h"
 #include "nsGUIEvent.h"
 #include "nsIXPConnect.h"
 #include "nsIDOMScriptObjectFactory.h"
 #include "nsDOMCID.h"
 #include "nsUnicharUtils.h"
 #include "nsReadableUtils.h"
 #include "nsCRT.h"
@@ -601,17 +600,29 @@ nsXBLPrototypeHandler::KeyEventMatched(n
   if (mDetail == -1)
     return PR_TRUE; // No filters set up. It's generic.
 
   // Get the keycode or charcode of the key event.
   PRUint32 code;
 
   if (mMisc) {
     aKeyEvent->GetCharCode(&code);
-    code = ToLowerCase(PRUnichar(code));
+    // non-BMP characters are currently not handled.
+    if (!IS_IN_BMP(code))
+      return PR_FALSE;
+
+    // Ignore CapsLock, and distinguish between Ctrl-a and Ctrl-Shift-A,
+    // unless any Shift-state is explicitly permitted (in which case,
+    // mDetail is lowercase).
+    PRBool isShift;
+    aKeyEvent->GetShiftKey(&isShift);
+    if ((mKeyMask & cShiftMask) && isShift)
+      code = ToUpperCase(PRUnichar(code));
+    else
+      code = ToLowerCase(PRUnichar(code));
   }
   else
     aKeyEvent->GetKeyCode(&code);
 
   if (code != PRUint32(mDetail))
     return PR_FALSE;
 
   return ModifiersMatchMask(aKeyEvent);
@@ -925,21 +936,29 @@ nsXBLPrototypeHandler::ConstructPrototyp
       if (key.IsEmpty()) 
         aKeyElement->GetAttr(kNameSpaceID_None, nsGkAtoms::charcode, key);
     }
   }
 
   if (!key.IsEmpty()) {
     if (mKeyMask == 0)
       mKeyMask = cAllModifiers;
-    ToLowerCase(key);
+    // If Shift is required then ensure the case of the character matches the
+    // Shift-state.  Otherwise normalize to lowercase.
+    if ((mKeyMask & (cShift | cShiftMask)) == (cShift | cShiftMask))
+      ToUpperCase(key);
+    else
+      ToLowerCase(key);
 
     // We have a charcode.
     mMisc = 1;
+    // non-BMP characters are currently not handled.
+    // KeyEventMatched doesn't match against surrogate codes.
     mDetail = key[0];
+
     const PRUint8 GTK2Modifiers = cShift | cControl | cShiftMask | cControlMask;
     if ((mKeyMask & GTK2Modifiers) == GTK2Modifiers &&
         modifiers.First() != PRUnichar(',') &&
         (('0' <= mDetail && mDetail <= '9') ||
          ('a' <= mDetail && mDetail <= 'f')))
       ReportKeyConflict(key.get(), modifiers.get(), aKeyElement, "GTK2Conflict");
     const PRUint8 WinModifiers = cControl | cAlt | cControlMask | cAltMask;
     if ((mKeyMask & WinModifiers) == WinModifiers &&
@@ -999,17 +1018,21 @@ nsXBLPrototypeHandler::ModifiersMatchMas
 
   PRBool keyPresent;
   if (mKeyMask & cMetaMask) {
     key ? key->GetMetaKey(&keyPresent) : mouse->GetMetaKey(&keyPresent);
     if (keyPresent != ((mKeyMask & cMeta) != 0))
       return PR_FALSE;
   }
 
-  if (mKeyMask & cShiftMask) {
+  // Punctuation and characters from some scripts may be on any level,
+  // so ignore the Shift state for key events with unicase character codes.
+  // (The Shift state is considered in KeyEventMatched for letters from
+  // bicameral scripts.)
+  if (!(key && mMisc) && (mKeyMask & cShiftMask)) {
     key ? key->GetShiftKey(&keyPresent) : mouse->GetShiftKey(&keyPresent);
     if (keyPresent != ((mKeyMask & cShift) != 0))
       return PR_FALSE;
   }
 
   if (mKeyMask & cAltMask) {
     key ? key->GetAltKey(&keyPresent) : mouse->GetAltKey(&keyPresent);
     if (keyPresent != ((mKeyMask & cAlt) != 0))
--- a/content/xslt/src/xslt/txMozillaStylesheetCompiler.cpp
+++ b/content/xslt/src/xslt/txMozillaStylesheetCompiler.cpp
@@ -65,17 +65,16 @@
 #include "txAtoms.h"
 #include "txLog.h"
 #include "txMozillaXSLTProcessor.h"
 #include "txStylesheetCompiler.h"
 #include "txXMLUtils.h"
 #include "nsAttrName.h"
 #include "nsIScriptError.h"
 #include "nsIURL.h"
-#include "nsCrossSiteListenerProxy.h"
 #include "nsDOMError.h"
 
 static NS_DEFINE_CID(kCParserCID, NS_PARSER_CID);
 
 static void
 getSpec(nsIChannel* aChannel, nsAString& aSpec)
 {
     if (!aChannel) {
@@ -91,25 +90,27 @@ getSpec(nsIChannel* aChannel, nsAString&
     nsCAutoString spec;
     uri->GetSpec(spec);
     AppendUTF8toUTF16(spec, aSpec);
 }
 
 class txStylesheetSink : public nsIXMLContentSink,
                          public nsIExpatSink,
                          public nsIStreamListener,
+                         public nsIChannelEventSink,
                          public nsIInterfaceRequestor
 {
 public:
     txStylesheetSink(txStylesheetCompiler* aCompiler, nsIParser* aParser);
 
     NS_DECL_ISUPPORTS
     NS_DECL_NSIEXPATSINK
     NS_DECL_NSISTREAMLISTENER
     NS_DECL_NSIREQUESTOBSERVER
+    NS_DECL_NSICHANNELEVENTSINK
     NS_DECL_NSIINTERFACEREQUESTOR
 
     // nsIContentSink
     NS_IMETHOD WillTokenize(void) { return NS_OK; }
     NS_IMETHOD WillBuildModel(void) { return NS_OK; }
     NS_IMETHOD DidBuildModel();
     NS_IMETHOD WillInterrupt(void) { return NS_OK; }
     NS_IMETHOD WillResume(void) { return NS_OK; }
@@ -131,22 +132,23 @@ protected:
 txStylesheetSink::txStylesheetSink(txStylesheetCompiler* aCompiler,
                                    nsIParser* aParser)
     : mCompiler(aCompiler),
       mCheckedForXML(PR_FALSE)
 {
     mListener = do_QueryInterface(aParser);
 }
 
-NS_IMPL_ISUPPORTS6(txStylesheetSink,
+NS_IMPL_ISUPPORTS7(txStylesheetSink,
                    nsIXMLContentSink,
                    nsIContentSink,
                    nsIExpatSink,
                    nsIStreamListener,
                    nsIRequestObserver,
+                   nsIChannelEventSink,
                    nsIInterfaceRequestor)
 
 NS_IMETHODIMP
 txStylesheetSink::HandleStartElement(const PRUnichar *aName,
                                      const PRUnichar **aAtts,
                                      PRUint32 aAttsCount,
                                      PRInt32 aIndex,
                                      PRUint32 aLineNumber)
@@ -369,16 +371,39 @@ txStylesheetSink::OnStopRequest(nsIReque
     }
 
     nsresult rv = mListener->OnStopRequest(aRequest, aContext, aStatusCode);
     mListener = nsnull;
     return rv;
 }
 
 NS_IMETHODIMP
+txStylesheetSink::OnChannelRedirect(nsIChannel *aOldChannel,
+                                    nsIChannel *aNewChannel,
+                                    PRUint32    aFlags)
+{
+    NS_PRECONDITION(aNewChannel, "Redirecting to null channel?");
+
+    nsCOMPtr<nsIURI> oldURI;
+    nsresult rv = aOldChannel->GetURI(getter_AddRefs(oldURI));
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    nsCOMPtr<nsIURI> newURI;
+    rv = aNewChannel->GetURI(getter_AddRefs(newURI));
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    rv = nsContentUtils::GetSecurityManager()->
+        CheckSameOriginURI(oldURI, newURI, PR_TRUE);
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    return NS_OK;
+}
+
+
+NS_IMETHODIMP
 txStylesheetSink::GetInterface(const nsIID& aIID, void** aResult)
 {
     if (aIID.Equals(NS_GET_IID(nsIAuthPrompt))) {
         NS_ENSURE_ARG(aResult);
         *aResult = nsnull;
 
         nsresult rv;
         nsCOMPtr<nsIWindowWatcher> wwatcher =
@@ -391,17 +416,17 @@ txStylesheetSink::GetInterface(const nsI
 
         nsIAuthPrompt* rawPtr = nsnull;
         prompt.swap(rawPtr);
         *aResult = rawPtr;
 
         return NS_OK;
     }
 
-    return NS_ERROR_NO_INTERFACE;
+    return QueryInterface(aIID, aResult);
 }
 
 class txCompileObserver : public txACompileObserver
 {
 public:
     txCompileObserver(txMozillaXSLTProcessor* aProcessor,
                       nsILoadGroup* aLoadGroup);
 
@@ -464,29 +489,23 @@ txCompileObserver::loadURI(const nsAStri
     rv = NS_NewURI(getter_AddRefs(referrerUri), aReferrerUri);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsCOMPtr<nsIPrincipal> referrerPrincipal;
     rv = nsContentUtils::GetSecurityManager()->
       GetCodebasePrincipal(referrerUri, getter_AddRefs(referrerPrincipal));
     NS_ENSURE_SUCCESS(rv, rv);
 
-    // Content Policy
-    PRInt16 shouldLoad = nsIContentPolicy::ACCEPT;
-    rv = NS_CheckContentLoadPolicy(nsIContentPolicy::TYPE_STYLESHEET,
-                                   uri,
-                                   referrerPrincipal,
-                                   nsnull,
-                                   NS_LITERAL_CSTRING("application/xml"),
-                                   nsnull,
-                                   &shouldLoad);
+    // Do security check
+    rv = nsContentUtils::
+      CheckSecurityBeforeLoad(uri, referrerPrincipal,
+                              nsIScriptSecurityManager::STANDARD, PR_FALSE,
+                              nsIContentPolicy::TYPE_STYLESHEET,
+                              nsnull, NS_LITERAL_CSTRING("application/xml"));
     NS_ENSURE_SUCCESS(rv, rv);
-    if (NS_CP_REJECTED(shouldLoad)) {
-        return NS_ERROR_DOM_BAD_URI;
-    }
 
     return startLoad(uri, aCompiler, referrerPrincipal);
 }
 
 void
 txCompileObserver::onDoneCompiling(txStylesheetCompiler* aCompiler,
                                    nsresult aResult,
                                    const PRUnichar *aErrorText,
@@ -532,47 +551,35 @@ txCompileObserver::startLoad(nsIURI* aUr
     NS_ENSURE_TRUE(sink, NS_ERROR_OUT_OF_MEMORY);
 
     channel->SetNotificationCallbacks(sink);
 
     parser->SetCommand(kLoadAsData);
     parser->SetContentSink(sink);
     parser->Parse(aUri);
 
-    // Always install in case of redirects
-    nsCOMPtr<nsIStreamListener> listener =
-        new nsCrossSiteListenerProxy(sink, aReferrerPrincipal, channel, &rv);
-    NS_ENSURE_TRUE(listener, NS_ERROR_OUT_OF_MEMORY);
-    NS_ENSURE_SUCCESS(rv, rv);
-
-    return channel->AsyncOpen(listener, parser);
+    return channel->AsyncOpen(sink, parser);
 }
 
 nsresult
 TX_LoadSheet(nsIURI* aUri, txMozillaXSLTProcessor* aProcessor,
              nsILoadGroup* aLoadGroup, nsIPrincipal* aCallerPrincipal)
 {
     nsCAutoString spec;
     aUri->GetSpec(spec);
     PR_LOG(txLog::xslt, PR_LOG_ALWAYS, ("TX_LoadSheet: %s\n", spec.get()));
 
-    // Content Policy
-    PRInt16 shouldLoad = nsIContentPolicy::ACCEPT;
-    nsresult rv =
-        NS_CheckContentLoadPolicy(nsIContentPolicy::TYPE_STYLESHEET,
-                                  aUri,
-                                  aCallerPrincipal,
-                                  aProcessor->GetSourceContentModel(),
-                                  NS_LITERAL_CSTRING("application/xml"),
-                                  nsnull,
-                                  &shouldLoad);
+    // Pass source document as the context
+    nsresult rv = nsContentUtils::
+      CheckSecurityBeforeLoad(aUri, aCallerPrincipal,
+                              nsIScriptSecurityManager::STANDARD, PR_FALSE,
+                              nsIContentPolicy::TYPE_STYLESHEET,
+                              aProcessor->GetSourceContentModel(),
+                              NS_LITERAL_CSTRING("application/xml"));
     NS_ENSURE_SUCCESS(rv, rv);
-    if (NS_CP_REJECTED(shouldLoad)) {
-        return NS_ERROR_DOM_BAD_URI;
-    }
 
     nsRefPtr<txCompileObserver> observer =
         new txCompileObserver(aProcessor, aLoadGroup);
     NS_ENSURE_TRUE(observer, NS_ERROR_OUT_OF_MEMORY);
 
     nsRefPtr<txStylesheetCompiler> compiler =
         new txStylesheetCompiler(NS_ConvertUTF8toUTF16(spec), observer);
     NS_ENSURE_TRUE(compiler, NS_ERROR_OUT_OF_MEMORY);
@@ -704,29 +711,23 @@ txSyncCompileObserver::loadURI(const nsA
     rv = NS_NewURI(getter_AddRefs(referrerUri), aReferrerUri);
     NS_ENSURE_SUCCESS(rv, rv);
 
     nsCOMPtr<nsIPrincipal> referrerPrincipal;
     rv = nsContentUtils::GetSecurityManager()->
       GetCodebasePrincipal(referrerUri, getter_AddRefs(referrerPrincipal));
     NS_ENSURE_SUCCESS(rv, rv);
 
-    // Content Policy
-    PRInt16 shouldLoad = nsIContentPolicy::ACCEPT;
-    rv = NS_CheckContentLoadPolicy(nsIContentPolicy::TYPE_STYLESHEET,
-                                   uri,
-                                   referrerPrincipal,
-                                   nsnull,
-                                   NS_LITERAL_CSTRING("application/xml"),
-                                   nsnull,
-                                   &shouldLoad);
+    // Security checks
+    rv = nsContentUtils::
+      CheckSecurityBeforeLoad(uri, referrerPrincipal,
+                              nsIScriptSecurityManager::STANDARD,
+                              PR_FALSE, nsIContentPolicy::TYPE_STYLESHEET,
+                              nsnull, NS_LITERAL_CSTRING("application/xml"));
     NS_ENSURE_SUCCESS(rv, rv);
-    if (NS_CP_REJECTED(shouldLoad)) {
-        return NS_ERROR_DOM_BAD_URI;
-    }
 
     // This is probably called by js, a loadGroup for the channel doesn't
     // make sense.
     nsCOMPtr<nsIDOMDocument> document;
     rv = nsSyncLoadService::LoadDocument(uri, referrerPrincipal, nsnull,
                                          PR_FALSE, getter_AddRefs(document));
     NS_ENSURE_SUCCESS(rv, rv);
 
--- a/content/xul/content/src/nsXULElement.cpp
+++ b/content/xul/content/src/nsXULElement.cpp
@@ -568,17 +568,17 @@ nsXULElement::IsFocusable(PRInt32 *aTabI
   /* 
    * Returns true if an element may be focused, and false otherwise. The inout
    * argument aTabIndex will be set to the tab order index to be used; -1 for
    * elements that should not be part of the tab order and a greater value to
    * indicate its tab order.
    *
    * Confusingly, the supplied value for the aTabIndex argument may indicate
    * whether the element may be focused as a result of the -moz-user-focus
-   * property.
+   * property, where -1 means no and 0 means yes.
    *
    * For controls, the element cannot be focused and is not part of the tab
    * order if it is disabled.
    *
    * Controls (those that implement nsIDOMXULControlElement):
    *  *aTabIndex = -1  no tabindex     Not focusable or tabbable
    *  *aTabIndex = -1  tabindex="-1"   Not focusable or tabbable
    *  *aTabIndex = -1  tabindex=">=0"  Focusable and tabbable
@@ -606,23 +606,30 @@ nsXULElement::IsFocusable(PRInt32 *aTabI
       if (aTabIndex)
         *aTabIndex = -1;
       return PR_FALSE;
     }
     shouldFocus = PR_TRUE;
   }
 
   if (aTabIndex) {
-    if (xulControl && HasAttr(kNameSpaceID_None, nsGkAtoms::tabindex)) {
-      // if either the aTabIndex argument or a specified tabindex is non-negative,
-      // the element becomes focusable.
-      PRInt32 tabIndex = 0;
-      xulControl->GetTabIndex(&tabIndex);
-      shouldFocus = *aTabIndex >= 0 || tabIndex >= 0;
-      *aTabIndex = tabIndex;
+    if (xulControl) {
+      if (HasAttr(kNameSpaceID_None, nsGkAtoms::tabindex)) {
+        // if either the aTabIndex argument or a specified tabindex is non-negative,
+        // the element becomes focusable.
+        PRInt32 tabIndex = 0;
+        xulControl->GetTabIndex(&tabIndex);
+        shouldFocus = *aTabIndex >= 0 || tabIndex >= 0;
+        *aTabIndex = tabIndex;
+      }
+      else {
+        // otherwise, if there is no tabindex attribute, just use the value of
+        // *aTabIndex to indicate focusability
+        shouldFocus = *aTabIndex >= 0;
+      }
 
       if (shouldFocus && sTabFocusModelAppliesToXUL &&
           !(sTabFocusModel & eTabFocus_formElementsMask)) {
         // By default, the tab focus model doesn't apply to xul element on any system but OS X.
         // on OS X we're following it for UI elements (XUL) as sTabFocusModel is based on
         // "Full Keyboard Access" system setting (see mac/nsILookAndFeel).
         // both textboxes and list elements (i.e. trees and list) should always be focusable
         // (textboxes are handled as html:input)
@@ -2538,17 +2545,23 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_NA
     if (tmp->mType == nsXULPrototypeNode::eType_Element) {
         static_cast<nsXULPrototypeElement*>(tmp)->Unlink();
     }
 NS_IMPL_CYCLE_COLLECTION_UNLINK_END
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_BEGIN(nsXULPrototypeNode)
     if (tmp->mType == nsXULPrototypeNode::eType_Element) {
         nsXULPrototypeElement *elem =
             static_cast<nsXULPrototypeElement*>(tmp);
+        cb.NoteXPCOMChild(elem->mNodeInfo);
         PRUint32 i;
+        for (i = 0; i < elem->mNumAttributes; ++i) {
+            const nsAttrName& name = elem->mAttributes[i].mName;
+            if (!name.IsAtom())
+                cb.NoteXPCOMChild(name.NodeInfo());
+        }
         for (i = 0; i < elem->mNumChildren; ++i) {
             NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_PTR(elem->mChildren[i],
                                                          nsXULPrototypeNode,
                                                          "mChildren[i]")
         }
     }
     NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
--- a/content/xul/document/src/nsXULPrototypeDocument.cpp
+++ b/content/xul/document/src/nsXULPrototypeDocument.cpp
@@ -195,16 +195,18 @@ nsXULPrototypeDocument::~nsXULPrototypeD
 }
 
 NS_IMPL_CYCLE_COLLECTION_CLASS(nsXULPrototypeDocument)
 NS_IMPL_CYCLE_COLLECTION_UNLINK_0(nsXULPrototypeDocument)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsXULPrototypeDocument)
     NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mRoot,
                                                     nsXULPrototypeElement)
     cb.NoteXPCOMChild(static_cast<nsIScriptGlobalObject*>(tmp->mGlobalObject));
+    NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mNodeInfoManager,
+                                                    nsNodeInfoManager)
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
 
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsXULPrototypeDocument)
     NS_INTERFACE_MAP_ENTRY(nsIScriptGlobalObjectOwner)
     NS_INTERFACE_MAP_ENTRY(nsISerializable)
     NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIScriptGlobalObjectOwner)
 NS_INTERFACE_MAP_END
 
--- a/dom/src/base/nsJSEnvironment.cpp
+++ b/dom/src/base/nsJSEnvironment.cpp
@@ -498,17 +498,18 @@ NS_ScriptErrorReporter(JSContext *cx,
 
               if (errorURI && codebase) {
                 // FIXME: Once error reports contain the origin of the
                 // error (principals) we should change this to do the
                 // security check based on the principals and not
                 // URIs. See bug 387476.
                 sameOrigin =
                   NS_SUCCEEDED(sSecurityManager->
-                               CheckSameOriginURI(errorURI, codebase, PR_TRUE));
+                               CheckSameOriginURI(errorURI, codebase,
+                                                  PR_FALSE));
               }
             }
 
             if (sameOrigin) {
               errorevent.errorMsg = msg.get();
               errorevent.lineNr = report->lineno;
             } else {
               errorevent.errorMsg = xoriginMsg.get();
new file mode 100644
--- /dev/null
+++ b/editor/libeditor/base/crashtests/382527-1.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+<script>
+
+
+function init1()
+{
+  targetIframe = document.createElementNS('http://www.w3.org/1999/xhtml', 'iframe');
+  targetIframe.src = "data:text/html,";
+  targetIframe.setAttribute("style", "width: 300px; height: 200px; border: 1px dotted green;");
+  document.body.appendChild(targetIframe);
+  
+  setTimeout(init2, 100);
+}
+
+
+function init2()
+{
+  targetWindow = targetIframe.contentWindow;
+  targetDocument = targetWindow.document;
+  
+  var div = document.getElementById("div");
+  textNode = div.firstChild;
+
+  targetDocument.body.appendChild(targetDocument.adoptNode(div, true));
+      
+  targetDocument.designMode = 'on';
+  setTimeout(init3, 100);
+}
+
+
+function init3()
+{
+  var rng = targetDocument.createRange(); 
+  rng.setStart(textNode, 1);
+  rng.setEnd(textNode, 1);
+  targetWindow.getSelection().addRange(rng);
+
+  targetDocument.execCommand("inserthtml", false, "<p>");
+  
+  document.documentElement.removeAttribute("class");
+}
+
+
+</script>
+
+</head>
+
+<body onload="init1();">
+
+<div id="div"> </div>
+
+<script>
+</script>
+</body>
+</html>
--- a/editor/libeditor/base/crashtests/crashtests.list
+++ b/editor/libeditor/base/crashtests/crashtests.list
@@ -1,2 +1,3 @@
+load 382527-1.html
 load 402172-1.html
 load 407256-1.html
--- a/extensions/universalchardet/src/base/nsBig5Prober.cpp
+++ b/extensions/universalchardet/src/base/nsBig5Prober.cpp
@@ -46,21 +46,16 @@ void  nsBig5Prober::Reset(void)
 
 nsProbingState nsBig5Prober::HandleData(const char* aBuf, PRUint32 aLen)
 {
   nsSMState codingState;
 
   for (PRUint32 i = 0; i < aLen; i++)
   {
     codingState = mCodingSM->NextState(aBuf[i]);
-    if (codingState == eError)
-    {
-      mState = eNotMe;
-      break;
-    }
     if (codingState == eItsMe)
     {
       mState = eFoundIt;
       break;
     }
     if (codingState == eStart)
     {
       PRUint32 charLen = mCodingSM->GetCurrentCharLen();
--- a/extensions/universalchardet/src/base/nsEUCJPProber.cpp
+++ b/extensions/universalchardet/src/base/nsEUCJPProber.cpp
@@ -52,21 +52,16 @@ void  nsEUCJPProber::Reset(void)
 
 nsProbingState nsEUCJPProber::HandleData(const char* aBuf, PRUint32 aLen)
 {
   nsSMState codingState;
 
   for (PRUint32 i = 0; i < aLen; i++)
   {
     codingState = mCodingSM->NextState(aBuf[i]);
-    if (codingState == eError)
-    {
-      mState = eNotMe;
-      break;
-    }
     if (codingState == eItsMe)
     {
       mState = eFoundIt;
       break;
     }
     if (codingState == eStart)
     {
       PRUint32 charLen = mCodingSM->GetCurrentCharLen();
--- a/extensions/universalchardet/src/base/nsEUCKRProber.cpp
+++ b/extensions/universalchardet/src/base/nsEUCKRProber.cpp
@@ -47,21 +47,16 @@ void  nsEUCKRProber::Reset(void)
 
 nsProbingState nsEUCKRProber::HandleData(const char* aBuf, PRUint32 aLen)
 {
   nsSMState codingState;
 
   for (PRUint32 i = 0; i < aLen; i++)
   {
     codingState = mCodingSM->NextState(aBuf[i]);
-    if (codingState == eError)
-    {
-      mState = eNotMe;
-      break;
-    }
     if (codingState == eItsMe)
     {
       mState = eFoundIt;
       break;
     }
     if (codingState == eStart)
     {
       PRUint32 charLen = mCodingSM->GetCurrentCharLen();
--- a/extensions/universalchardet/src/base/nsEUCTWProber.cpp
+++ b/extensions/universalchardet/src/base/nsEUCTWProber.cpp
@@ -47,21 +47,16 @@ void  nsEUCTWProber::Reset(void)
 
 nsProbingState nsEUCTWProber::HandleData(const char* aBuf, PRUint32 aLen)
 {
   nsSMState codingState;
 
   for (PRUint32 i = 0; i < aLen; i++)
   {
     codingState = mCodingSM->NextState(aBuf[i]);
-    if (codingState == eError)
-    {
-      mState = eNotMe;
-      break;
-    }
     if (codingState == eItsMe)
     {
       mState = eFoundIt;
       break;
     }
     if (codingState == eStart)
     {
       PRUint32 charLen = mCodingSM->GetCurrentCharLen();
--- a/extensions/universalchardet/src/base/nsEscCharsetProber.cpp
+++ b/extensions/universalchardet/src/base/nsEscCharsetProber.cpp
@@ -69,36 +69,18 @@ nsProbingState nsEscCharSetProber::Handl
   nsSMState codingState;
   PRInt32 j;
   PRUint32 i;
 
   for ( i = 0; i < aLen && mState == eDetecting; i++)
   {
     for (j = mActiveSM-1; j>= 0; j--)
     {
-      //byte is feed to all active state machine 
       codingState = mCodingSM[j]->NextState(aBuf[i]);
-      if (codingState == eError)
-      {
-        //got negative answer for this state machine, make it inactive
-        mActiveSM--;
-        if (mActiveSM == 0)
-        {
-          mState = eNotMe;
-          return mState;
-        }
-        else if (j != (PRInt32)mActiveSM)
-        {
-          nsCodingStateMachine* t;
-          t = mCodingSM[mActiveSM];
-          mCodingSM[mActiveSM] = mCodingSM[j];
-          mCodingSM[j] = t;
-        }
-      }
-      else if (codingState == eItsMe)
+      if (codingState == eItsMe)
       {
         mState = eFoundIt;
         mDetectedCharset = mCodingSM[j]->GetCodingStateMachine();
         return mState;
       }
     }
   }
 
--- a/extensions/universalchardet/src/base/nsGB2312Prober.cpp
+++ b/extensions/universalchardet/src/base/nsGB2312Prober.cpp
@@ -52,21 +52,16 @@ void  nsGB18030Prober::Reset(void)
 
 nsProbingState nsGB18030Prober::HandleData(const char* aBuf, PRUint32 aLen)
 {
   nsSMState codingState;
 
   for (PRUint32 i = 0; i < aLen; i++)
   {
     codingState = mCodingSM->NextState(aBuf[i]);
-    if (codingState == eError)
-    {
-      mState = eNotMe;
-      break;
-    }
     if (codingState == eItsMe)
     {
       mState = eFoundIt;
       break;
     }
     if (codingState == eStart)
     {
       PRUint32 charLen = mCodingSM->GetCurrentCharLen();
--- a/extensions/universalchardet/src/base/nsMBCSGroupProber.cpp
+++ b/extensions/universalchardet/src/base/nsMBCSGroupProber.cpp
@@ -129,26 +129,16 @@ nsProbingState nsMBCSGroupProber::Handle
             continue;
           st = mProbers[i]->HandleData(aBuf + start, pos + 1 - start);
           if (st == eFoundIt)
           {
             mBestGuess = i;
             mState = eFoundIt;
             return mState;
           }
-          else if (st == eNotMe)
-          {
-            mIsActive[i] = PR_FALSE;
-            mActiveNum--;
-            if (mActiveNum <= 0)
-              {
-                mState = eNotMe;
-                return mState;
-              }
-          }
         }
       }
     }
   }
 
   if (keepNext) {
     for (PRUint32 i = 0; i < NUM_OF_PROBERS; i++)
     {
@@ -156,26 +146,16 @@ nsProbingState nsMBCSGroupProber::Handle
         continue;
       st = mProbers[i]->HandleData(aBuf + start, aLen + 1 - start);
       if (st == eFoundIt)
       {
         mBestGuess = i;
         mState = eFoundIt;
         return mState;
       }
-      else if (st == eNotMe)
-      {
-        mIsActive[i] = PR_FALSE;
-        mActiveNum--;
-        if (mActiveNum <= 0)
-        {
-          mState = eNotMe;
-          return mState;
-        }
-      }
     }
   }
   mKeepNext = keepNext;
 
   return mState;
 }
 
 float nsMBCSGroupProber::GetConfidence(void)
--- a/extensions/universalchardet/src/base/nsSJISProber.cpp
+++ b/extensions/universalchardet/src/base/nsSJISProber.cpp
@@ -52,21 +52,16 @@ void  nsSJISProber::Reset(void)
 
 nsProbingState nsSJISProber::HandleData(const char* aBuf, PRUint32 aLen)
 {
   nsSMState codingState;
 
   for (PRUint32 i = 0; i < aLen; i++)
   {
     codingState = mCodingSM->NextState(aBuf[i]);
-    if (codingState == eError)
-    {
-      mState = eNotMe;
-      break;
-    }
     if (codingState == eItsMe)
     {
       mState = eFoundIt;
       break;
     }
     if (codingState == eStart)
     {
       PRUint32 charLen = mCodingSM->GetCurrentCharLen();
--- a/extensions/universalchardet/src/base/nsUTF8Prober.cpp
+++ b/extensions/universalchardet/src/base/nsUTF8Prober.cpp
@@ -46,21 +46,16 @@ void  nsUTF8Prober::Reset(void)
 
 nsProbingState nsUTF8Prober::HandleData(const char* aBuf, PRUint32 aLen)
 {
   nsSMState codingState;
 
   for (PRUint32 i = 0; i < aLen; i++)
   {
     codingState = mCodingSM->NextState(aBuf[i]);
-    if (codingState == eError)
-    {
-      mState = eNotMe;
-      break;
-    }
     if (codingState == eItsMe)
     {
       mState = eFoundIt;
       break;
     }
     if (codingState == eStart)
     {
       if (mCodingSM->GetCurrentCharLen() >= 2)
--- a/gfx/src/thebes/nsThebesDeviceContext.cpp
+++ b/gfx/src/thebes/nsThebesDeviceContext.cpp
@@ -531,80 +531,93 @@ nsThebesDeviceContext::PrepareDocument(P
 
 NS_IMETHODIMP
 nsThebesDeviceContext::BeginDocument(PRUnichar*  aTitle, 
                                      PRUnichar*  aPrintToFileName,
                                      PRInt32     aStartPage, 
                                      PRInt32     aEndPage)
 {
     static const PRUnichar kEmpty[] = { '\0' };
+    nsresult rv;
 
-    mPrintingSurface->BeginPrinting(nsDependentString(aTitle ? aTitle : kEmpty),
-                                    nsDependentString(aPrintToFileName ? aPrintToFileName : kEmpty));
-    if (mDeviceContextSpec)
-        mDeviceContextSpec->BeginDocument(aTitle, aPrintToFileName, aStartPage, aEndPage);
-    return NS_OK;
+    rv = mPrintingSurface->BeginPrinting(nsDependentString(aTitle ? aTitle : kEmpty),
+                                         nsDependentString(aPrintToFileName ? aPrintToFileName : kEmpty));
+
+    if (NS_SUCCEEDED(rv) && mDeviceContextSpec)
+        rv = mDeviceContextSpec->BeginDocument(aTitle, aPrintToFileName, aStartPage, aEndPage);
+
+    return rv;
 }
 
 
 NS_IMETHODIMP
 nsThebesDeviceContext::EndDocument(void)
 {
+    nsresult rv = NS_OK;
+
     if (mPrintingSurface) {
-        mPrintingSurface->EndPrinting();
-        mPrintingSurface->Finish();
+        rv = mPrintingSurface->EndPrinting();
+        if (NS_SUCCEEDED(rv))
+            mPrintingSurface->Finish();
     }
+
     if (mDeviceContextSpec)
         mDeviceContextSpec->EndDocument();
-    return NS_OK;
+
+    return rv;
 }
 
 
 NS_IMETHODIMP
 nsThebesDeviceContext::AbortDocument(void)
 {
-    mPrintingSurface->AbortPrinting();
+    nsresult rv = mPrintingSurface->AbortPrinting();
 
     if (mDeviceContextSpec)
         mDeviceContextSpec->EndDocument();
-    return NS_OK;
+
+    return rv;
 }
 
 
 NS_IMETHODIMP
 nsThebesDeviceContext::BeginPage(void)
 {
+    nsresult rv = NS_OK;
+
     if (mDeviceContextSpec)
-        mDeviceContextSpec->BeginPage();
+        rv = mDeviceContextSpec->BeginPage();
+
+    if (NS_FAILED(rv)) return rv;
 
    /* We need to get a new surface for each page on the Mac */
 #ifdef XP_MACOSX
     mDeviceContextSpec->GetSurfaceForPrinter(getter_AddRefs(mPrintingSurface));
 #endif
-    mPrintingSurface->BeginPage();
+    rv = mPrintingSurface->BeginPage();
 
-    return NS_OK;
+    return rv;
 }
 
 NS_IMETHODIMP
 nsThebesDeviceContext::EndPage(void)
 {
-    mPrintingSurface->EndPage();
+    nsresult rv = mPrintingSurface->EndPage();
 
     /* We need to release the CGContextRef in the surface here, plus it's
        not something you would want anyway, as these CGContextRefs are only good
        for one page. */
 #ifdef XP_MACOSX
     mPrintingSurface = nsnull;
 #endif
 
     if (mDeviceContextSpec)
         mDeviceContextSpec->EndPage();
 
-    return NS_OK;
+    return rv;
 }
 
 /** End printing methods **/
 
 void
 nsThebesDeviceContext::ComputeClientRectUsingScreen(nsRect* outRect)
 {
     // we always need to recompute the clientRect
new file mode 100644
--- /dev/null
+++ b/gfx/thebes/crashtests/385423-1.html
@@ -0,0 +1,17 @@
+<html class="reftest-wait">
+<head>
+<script>
+function boom()
+{
+  var div = document.getElementById("div")
+  div.appendChild(document.createTextNode(String.fromCharCode(0x076F) + String.fromCharCode(13) + String.fromCharCode(0x076F)));
+  
+  document.documentElement.removeAttribute("class");
+} 
+</script>
+
+</head>
+<body onload="setTimeout(boom, 10);">
+<div style="text-transform: lowercase" id="div">&#x76F;&#13;&#x76F;</div>
+</body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/gfx/thebes/crashtests/385423-2.html
@@ -0,0 +1,17 @@
+<html class="reftest-wait">
+<head>
+<script>
+function boom()
+{
+  var div = document.getElementById("div")
+  div.appendChild(document.createTextNode(String.fromCharCode(0x076F) + String.fromCharCode(13) + String.fromCharCode(0x076F)));
+
+  document.documentElement.removeAttribute("class");
+} 
+</script>
+
+</head>
+<body onload="setTimeout(boom, 10);">
+<div style="text-transform: lowercase" id="div"></div>
+</body>
+</html>
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/gfx/thebes/crashtests/395458-1.html
@@ -0,0 +1,5 @@
+<html>
+<body style="direction: rtl;">
+&#30;
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/gfx/thebes/crashtests/396321-1.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg">
+
+<text>&#x202B;x</text>
+
+</svg>
--- a/gfx/thebes/crashtests/crashtests.list
+++ b/gfx/thebes/crashtests/crashtests.list
@@ -5,23 +5,27 @@ load 369947-1.html
 load 372094-1.xhtml
 load 377231-1.html
 load 377232-1.xhtml
 load 377461-1.xhtml
 load 383473-1.html
 load 385417-1.html
 load 385417-2.html
 load 385719-1.html
+load 385423-1.html
+load 385423-2.html
 load 393746-1.xhtml
 load 393749-1.html
 load 393822-1.html
 load 394384-1.html
 load 394246-1.html
 load 394246-2.html
 load 395335-1.xhtml
+load 395458-1.html
+load 396321-1.svg
 load 398042-1.xhtml
 load 398042-2.xhtml
 load 402307-1.html
 load 404112-1.html
 load 404112-2.html
 load 405268-1.xhtml
 load 407761-1.html
 load 407842.html
--- a/gfx/thebes/public/gfxFontUtils.h
+++ b/gfx/thebes/public/gfxFontUtils.h
@@ -302,24 +302,24 @@ public:
     
     static inline PRUint32
     ReadLongAt(const PRUint8 *aBuf, PRUint32 aIndex)
     {
         return ((aBuf[aIndex] << 24) | (aBuf[aIndex + 1] << 16) | (aBuf[aIndex + 2] << 8) | (aBuf[aIndex + 3]));
     }
     
     static nsresult
-    ReadCMAPTableFormat12(PRUint8 *aBuf, PRInt32 aLength, gfxSparseBitSet& aCharacterMap, std::bitset<128>& aUnicodeRanges);
+    ReadCMAPTableFormat12(PRUint8 *aBuf, PRInt32 aLength, gfxSparseBitSet& aCharacterMap);
     
     static nsresult 
-    ReadCMAPTableFormat4(PRUint8 *aBuf, PRInt32 aLength, gfxSparseBitSet& aCharacterMap, std::bitset<128>& aUnicodeRanges);
+    ReadCMAPTableFormat4(PRUint8 *aBuf, PRInt32 aLength, gfxSparseBitSet& aCharacterMap);
 
     static nsresult
-    ReadCMAP(PRUint8 *aBuf, PRUint32 aBufLength, gfxSparseBitSet& aCharacterMap, std::bitset<128>& aUnicodeRanges, PRPackedBool& aUnicodeFont, 
-        PRPackedBool& aSymbolFont);
+    ReadCMAP(PRUint8 *aBuf, PRUint32 aBufLength, gfxSparseBitSet& aCharacterMap,
+             PRPackedBool& aUnicodeFont, PRPackedBool& aSymbolFont);
 
     static inline bool IsJoiner(PRUint32 ch) {
         return (ch == 0x200C ||
                 ch == 0x200D ||
                 ch == 0x2060);
     }
 
     static inline bool IsInvalid(PRUint32 ch) {
--- a/gfx/thebes/public/gfxWindowsFonts.h
+++ b/gfx/thebes/public/gfxWindowsFonts.h
@@ -59,22 +59,33 @@
  */
 class FontEntry;
 class FontFamily
 {
 public:
     THEBES_INLINE_DECL_REFCOUNTING(FontFamily)
 
     FontFamily(const nsAString& aName) :
-        mName(aName)
-    {
-    }
+        mName(aName), mHasStyles(PR_FALSE) { }
+
+    FontEntry *FindFontEntry(const gfxFontStyle& aFontStyle);
 
+private:
+    static int CALLBACK FamilyAddStylesProc(const ENUMLOGFONTEXW *lpelfe,
+                                            const NEWTEXTMETRICEXW *nmetrics,
+                                            DWORD fontType, LPARAM data);
+    void FindStyleVariations();
+
+public:
     nsTArray<nsRefPtr<FontEntry> > mVariations;
     nsString mName;
+    PRPackedBool mIsBadUnderlineFont;
+
+private:
+    PRBool mHasStyles;
 };