Bug 1144367 - Experiment to test Yahoo engine for HK/TW users. r=Mossop
authorFelipe Gomes <felipc@gmail.com>
Fri, 15 May 2015 21:39:31 -0300
changeset 51 b50d4f364660f4c59ce5893c01e98ddaa7224372
parent 50 4158217b140747341775f95fc55c302c1fa53854
child 52 59365ce5cabe2ad501e871ca01c577c94a3a7d7e
push id38
push userfelipc@gmail.com
push dateFri, 27 Mar 2015 00:41:25 +0000
reviewersMossop
bugs1144367
Bug 1144367 - Experiment to test Yahoo engine for HK/TW users. r=Mossop
experiments/searchtest-twhk-release3536/code/Makefile
experiments/searchtest-twhk-release3536/code/bootstrap.js
experiments/searchtest-twhk-release3536/code/chrome.manifest
experiments/searchtest-twhk-release3536/code/content/yahoo-test-HK.xml
experiments/searchtest-twhk-release3536/code/content/yahoo-test-TW.xml
experiments/searchtest-twhk-release3536/code/install.rdf
experiments/searchtest-twhk-release3536/experiment.xpi
experiments/searchtest-twhk-release3536/manifest.json
copy from experiments/searchtest-turkey-release35/code/Makefile
copy to experiments/searchtest-twhk-release3536/code/Makefile
copy from experiments/searchtest-turkey-release35/code/bootstrap.js
copy to experiments/searchtest-twhk-release3536/code/bootstrap.js
--- a/experiments/searchtest-turkey-release35/code/bootstrap.js
+++ b/experiments/searchtest-twhk-release3536/code/bootstrap.js
@@ -15,50 +15,69 @@ XPCOMUtils.defineLazyModuleGetter(this, 
                                   "resource://gre/modules/TelemetryLog.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Task",
                                   "resource://gre/modules/Task.jsm");
 
 /****************************
  * Experiment configuration *
  ***************************/
 
-const EXP_NAME = "Yandex-Turkey";
-const EXP_ID = "fx-searchtest-tr-release35@mozilla.org";
+const EXP_NAME = "Yahoo-HKTW";
+const EXP_ID = "fx-searchtest-twhk-release3536@mozilla.org";
 
 const DEFAULT_PROVIDER_NAME = "Google";
-const NEW_PROVIDER_NAME = "Yandex";
+const NEW_PROVIDER_NAME = "Yahoo \u641c\u5c0b";
 
 const TELEMETRY_LOG_KEYS = {
   BRANCH_SET: "fx-search-" + EXP_NAME + "-branch-set",
   ENGINE_SET: "fx-search-" + EXP_NAME + "-engine-set",
   ENGINE_RESET: "fx-search-" + EXP_NAME + "-engine-reset",
+  ENGINE_INSTALLED: "fx-search-" + EXP_NAME + "-engine-installed",
+  ENGINE_HIDDEN: "fx-search-" + EXP_NAME + "-engine-hidden",
   ENGINE_SKIP_RESET: "fx-search-" + EXP_NAME + "-engine-skip-reset",
   ERROR_BRANCH_SET: "fx-search-" + EXP_NAME + "-error-setting-branch",
   ERROR_CHANGING_ENGINE: "fx-search-" + EXP_NAME + "-error-changing-engine",
-  ERROR_CHANGING_URL: "fx-search-" + EXP_NAME + "-error-changing-url",
   ERROR_SEARCHSERVICE: "fx-search-" + EXP_NAME + "-error-init-searchservice",
+  ERROR_INSTALLING_ENGINE: "fx-search-" + EXP_NAME + "-error-installing-engine",
+  ERROR_HIDING_ENGINE: "fx-search-" + EXP_NAME + "-error-hiding-engine",
+  ERROR_RECOVERING_ENGINE: "fx-search-" + EXP_NAME + "-error-recovering-engine",
+  ERROR_UNINSTALLING_ENGINE: "fx-search-" + EXP_NAME + "-error-uninstalling-engine",
 }
 
+const BRANCHES = {
+  NOT_USING_DEFAULT_PROVIDER: "0",
+  NOT_IN_TARGET_GEO: "0a",
+
+  ERROR_INSTALLING_ENGINE: "0b",
+  ERROR_CHANGING_ENGINE: "0c",
+
+  USER_TW_TYPICAL: "1tw",
+  USER_HK_TYPICAL: "1hk",
+
+  USER_TW_NO_SEARCHBAR: "1tw-nosearchbar",
+  USER_HK_NO_SEARCHBAR: "1hk-nosearchbar",
+};
+
 /*********************************
  * Bootstrapped add-on interface *
  *********************************/
 function startup(data, reason) {
 }
 
 function shutdown(data, reason) {
 }
 
 function install(data, reason) {
   Services.search.init(rv => {
     if (!Components.isSuccessCode(rv)) {
       TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_SEARCHSERVICE, ["on install"]);
       return;
     }
 
-    configureSearchEngine();
+    installSearchEngine();
   });
 }
 
 function uninstall(data, reason) {
   Services.search.init(rv => {
     if (!Components.isSuccessCode(rv)) {
       TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_SEARCHSERVICE, ["on uninstall"]);
       return;
@@ -67,148 +86,211 @@ function uninstall(data, reason) {
     finishExperiment();
   });
 }
 
 /************************************
  * Search experiment branching code *
  ************************************/
 
-const cells = [
-  // cell 0 is meant for users who are not part of the experiment
-  // 0a - was not geographically localted in Turkey, according to
-  //      browser.search.countryCode
-  // 0b - had a non-default search provider, so we didn't change it
-  {provider: null},
-  // cell 1 is the test group
-  // 1c - searchbar had been customized away from the navbar
-  {provider: NEW_PROVIDER_NAME}
-];
-
-let branch;
+let gBranch;
 
 function defineExperimentBranch() {
-  if (branch !== undefined) {
-    return branch;
+  if (gBranch !== undefined) {
+    return gBranch;
   }
 
   let experiment, experiments = Experiments.instance();
   try {
     experiment = experiments._getActiveExperiment();
   } catch (e) { }
 
   if (experiment && experiment.branch) {
-    branch = parseInt(experiment.branch, 10);
-    if (branch !== null) {
-      console.log("Experiment branch was already set to " + branch);
-      return branch;
-    }
+    gBranch = experiment.branch;
+    console.log("Experiment branch was already set to " + gBranch);
+    return gBranch;
   }
 
   let isSearchBarInNavBar = true;
   try {
     isSearchBarInNavBar =
       CustomizableUI.getWidgetsInArea("nav-bar").some(
         widget => widget.id === "search-container");
   } catch (e) {
     // In case the add-on is started too early as it happens
     // while testing with cfx, CustomizableUI might not be ready
     // yet. This shouldn't happen in normal circumstances though
     // as the add-on is installed while Firefox is already running.
   }
 
-  branch = 0;
-  let marker = "";
+  gBranch = BRANCHES.NOT_USING_DEFAULT_PROVIDER; // 0
 
-  let envbranch = Cc["@mozilla.org/process/environment;1"]
-                    .getService(Ci.nsIEnvironment)
-                    .get("MOZ_SEARCH_EXPERIMENT_BRANCH");
 
-  if (envbranch != "") {
-    branch = parseInt(envbranch);
-
-  } else if (Services.search.currentEngine.name === DEFAULT_PROVIDER_NAME) {
+  if (Services.search.currentEngine.name === DEFAULT_PROVIDER_NAME) {
     let countryCode = "";
     try {
       countryCode = Services.prefs.getCharPref("browser.search.countryCode")
                                   .toUpperCase();
     } catch (ex) {}
 
-    if (countryCode != "" && countryCode != "TR") {
-      marker = "a";
-    } else {
-      // Test group! We don't know the country, or we know it is TR.
-      branch = 1;
-      if (!isSearchBarInNavBar) {
-        marker = "c";
-      }
+
+    switch (countryCode) {
+      case "":
+      case "CN":
+      case "TW":
+        gBranch = isSearchBarInNavBar
+                  ? BRANCHES.USER_TW_TYPICAL
+                  : BRANCHES.USER_TW_NO_SEARCHBAR;
+        break;
+
+      case "HK":
+        gBranch = isSearchBarInNavBar
+                  ? BRANCHES.USER_HK_TYPICAL
+                  : BRANCHES.USER_HK_NO_SEARCHBAR;
+        break;
+
+      default:
+        gBranch = BRANCHES.NOT_IN_TARGET_GEO;
     }
-
-  } else {
-    // Had a non-default provider
-    marker = "b";
   }
 
-  if (experiment) {
-    experiment.branch = branch + marker;
-    experiments.setExperimentBranch(experiment.id, branch + marker)
-      .then(
-        function success() {
-          TelemetryLog.log(TELEMETRY_LOG_KEYS.BRANCH_SET, [branch + marker]);
-          console.log("Experiment branch was set to " + branch + marker);
-        },
-        function problem(err) {
-          TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_BRANCH_SET,
-                           [branch + marker, err]);
-          Cu.reportError("Error setting branch to " +
-                           branch + marker + ": " + err);
-        }
-      );
+  let envbranch = Cc["@mozilla.org/process/environment;1"]
+                    .getService(Ci.nsIEnvironment)
+                    .get("MOZ_SEARCH_EXPERIMENT_BRANCH");
+  if (envbranch != "") {
+    gBranch = envbranch;
   }
-  return branch;
+
+  saveExperimentBranch();
+  return gBranch;
+}
+
+function saveExperimentBranch() {
+  let experiments = Experiments.instance();
+  experiments.setExperimentBranch(EXP_ID, gBranch)
+    .then(
+      function success() {
+        TelemetryLog.log(TELEMETRY_LOG_KEYS.BRANCH_SET, [gBranch]);
+        console.log("Experiment branch was set to " + gBranch);
+      },
+      function problem(err) {
+        TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_BRANCH_SET,
+                         [gBranch, err]);
+        Cu.reportError("Error setting branch to " +
+                         gBranch + ": " + err);
+      }
+    );
 }
 
 /*******************
  * Experiment code *
  *******************/
-function configureSearchEngine() {
-  let configuration = cells[defineExperimentBranch()];
+function installSearchEngine() {
+  defineExperimentBranch();
+
+  let engineToInstall = "";
+
+  switch (gBranch) {
+    case BRANCHES.USER_HK_TYPICAL:
+    case BRANCHES.USER_HK_NO_SEARCHBAR:
+      engineToInstall = "chrome://firefox-experiment-yahoo-china/content/yahoo-test-HK.xml"
+      break;
+
+    case BRANCHES.USER_TW_TYPICAL:
+    case BRANCHES.USER_TW_NO_SEARCHBAR:
+      engineToInstall = "chrome://firefox-experiment-yahoo-china/content/yahoo-test-TW.xml"
+      break;
+  }
+
+  if (!engineToInstall) {
+    return;
+  }
 
-  if (configuration.provider) {
-    try {
-      let newProvider = Services.search.getEngineByName(configuration.provider);
-      Services.search.currentEngine = newProvider;
-      TelemetryLog.log(TELEMETRY_LOG_KEYS.ENGINE_SET, [configuration.provider]);
-    } catch (ex) {
-      TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_CHANGING_ENGINE, [ex]);
-      Cu.reportError("Error changing engine: " + ex);
+  Services.search.addEngine(engineToInstall, Ci.nsISearchEngine.TYPE_MOZSEARCH, "", false, {
+    onSuccess: function (engine) {
+      TelemetryLog.log(TELEMETRY_LOG_KEYS.ENGINE_INSTALLED,
+                       [gBranch, engineToInstall]);
+      changeToNewlyInstalledEngine(engine);
+    },
+    onError: function (err) {
+      TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_INSTALLING_ENGINE,
+                       [gBranch, engineToInstall, err]);
+      Cu.reportError("Error setting branch to " + gBranch + ": " + err);
+      gBranch = BRANCHES.ERROR_INSTALLING_ENGINE;
+      saveExperimentBranch();
     }
+  });
+}
+
+function changeToNewlyInstalledEngine(engine) {
+  // First set new engine
+  try {
+    Services.search.currentEngine = engine;
+    TelemetryLog.log(TELEMETRY_LOG_KEYS.ENGINE_SET, [gBranch]);
+  } catch (ex) {
+    TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_CHANGING_ENGINE, [ex]);
+    Cu.reportError("Error changing engine: " + ex);
+    gBranch = BRANCHES.ERROR_CHANGING_ENGINE;
+    saveExperimentBranch();
+  }
+
+  // Now hide the standard Yahoo engine
+  try {
+    let previousEngine = Services.search.getEngineByName("Yahoo");
+    previousEngine.hidden = true;
+    TelemetryLog.log(TELEMETRY_LOG_KEYS.ENGINE_HIDDEN, ["Yahoo"]);
+  } catch (ex) {
+    TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_HIDING_ENGINE, [ex]);
+    Cu.reportError("Error hiding engine: " + ex);
   }
 }
 
 function finishExperiment() {
   Task.spawn(function* SearchTest_FinishExperiment() {
     let branch = yield Experiments.instance().getExperimentBranch(EXP_ID);
-    let configuration = cells[parseInt(branch, 10)];
     let currentProviderName = Services.search.currentEngine.name;
 
-    // If the user didn't change the provider by himself
-    // during the experiment.
-    if (currentProviderName === configuration.provider) {
+    let customEngineWasInstalled =
+      branch != BRANCHES.NOT_USING_DEFAULT_PROVIDER &&
+      branch != BRANCHES.NOT_IN_TARGET_GEO &&
+      branch != BRANCHES.ERROR_INSTALLING_ENGINE;
+
+    // We need to reset the engine to the default choice if the user
+    // hasn't manually changed to something else
+    let needsReset = customEngineWasInstalled &&
+                     currentProviderName === NEW_PROVIDER_NAME;
+
+    if (needsReset) {
       try {
         let originalProvider = Services.search.getEngineByName(DEFAULT_PROVIDER_NAME);
         Services.search.currentEngine = originalProvider;
         TelemetryLog.log(TELEMETRY_LOG_KEYS.ENGINE_RESET, [DEFAULT_PROVIDER_NAME]);
       } catch (ex) {
         TelemetryLog.log(TelemetryLog.ERROR_CHANGING_ENGINE, ["on reset", ex]);
         Cu.reportError("Error reseting engine: " + ex);
       }
     } else {
-      // Exclude the cases for the control groups where the provider wasn't
-      // changed.
-      if (configuration.provider) {
-        TelemetryLog.log(TELEMETRY_LOG_KEYS.ENGINE_SKIP_RESET,
-                        [currentProviderName]);
+      TelemetryLog.log(TELEMETRY_LOG_KEYS.ENGINE_SKIP_RESET,
+                       [currentProviderName]);
+    }
+
+    if (customEngineWasInstalled) {
+      // First unhide the original Yahoo engine
+      try {
+        let previousEngine = Services.search.getEngineByName("Yahoo");
+        previousEngine.hidden = false;
+      } catch (ex) {
+        TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_RECOVERING_ENGINE, [ex]);
+        Cu.reportError("Error recovering engine: " + ex);
+      }
+
+      // And uninstall the custom engine
+      try {
+        let customEngine = Services.search.getEngineByName(NEW_PROVIDER_NAME);
+        Services.search.removeEngine(customEngine);
+      } catch (ex) {
+        TelemetryLog.log(TELEMETRY_LOG_KEYS.ERROR_UNINSTALLING_ENGINE, [ex]);
+        Cu.reportError("Error uninstalling engine: " + ex);
       }
     }
   });
 }
 
new file mode 100644
--- /dev/null
+++ b/experiments/searchtest-twhk-release3536/code/chrome.manifest
@@ -0,0 +1,1 @@
+content firefox-experiment-yahoo-china content/
new file mode 100644
--- /dev/null
+++ b/experiments/searchtest-twhk-release3536/code/content/yahoo-test-HK.xml
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo 搜尋</ShortName>
+<Description>Yahoo 搜尋</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,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</Image>
+<Url type="application/x-suggestions+json" method="GET"
+     template="https://hk.search.yahoo.com/sugg/ff">
+  <Param name="output"  value="fxjson" />
+  <Param name="appid"   value="ffd" />
+  <Param name="command" value="{searchTerms}" />
+</Url>
+<Url type="text/html" method="GET" template="https://hk.search.yahoo.com/search" resultdomain="yahoo.com">
+  <Param name="p" value="{searchTerms}"/>
+  <Param name="hspart" value="mozilla"/>
+  <Param name="hsimp"  value="yhs-001" />
+</Url>
+<SearchForm>https://tw.search.yahoo.com/</SearchForm>
+</SearchPlugin>
new file mode 100644
--- /dev/null
+++ b/experiments/searchtest-twhk-release3536/code/content/yahoo-test-TW.xml
@@ -0,0 +1,22 @@
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
+<ShortName>Yahoo 搜尋</ShortName>
+<Description>Yahoo 搜尋</Description>
+<InputEncoding>UTF-8</InputEncoding>
+<Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEACAA8DQAAJgAAACAgAAABAAgAowsAAGINAACJUE5HDQoaCgAAAA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAJcEhZcwAACxMAAAsTAQCanBgAAApPaUNDUFBob3Rvc2hvcCBJQ0MgcHJvZmlsZQAAeNqdU2dUU+kWPffe9EJLiICUS29SFQggUkKLgBSRJiohCRBKiCGh2RVRwRFFRQQbyKCIA46OgIwVUSwMigrYB+Qhoo6Do4iKyvvhe6Nr1rz35s3+tdc+56zznbPPB8AIDJZIM1E1gAypQh4R4IPHxMbh5C5AgQokcAAQCLNkIXP9IwEA+H48PCsiwAe+AAF40wsIAMBNm8AwHIf/D+pCmVwBgIQBwHSROEsIgBQAQHqOQqYAQEYBgJ2YJlMAoAQAYMtjYuMAUC0AYCd/5tMAgJ34mXsBAFuUIRUBoJEAIBNliEQAaDsArM9WikUAWDAAFGZLxDkA2C0AMElXZkgAsLcAwM4QC7IACAwAMFGIhSkABHsAYMgjI3gAhJkAFEbyVzzxK64Q5yoAAHiZsjy5JDlFgVsILXEHV1cuHijOSRcrFDZhAmGaQC7CeZkZMoE0D+DzzAAAoJEVEeCD8/14zg6uzs42jrYOXy3qvwb/ImJi4/7lz6twQAAA4XR+0f4sL7MagDsGgG3+oiXuBGheC6B194tmsg9AtQCg6dpX83D4fjw8RaGQudnZ5eTk2ErEQlthyld9/mfCX8BX/Wz5fjz89/XgvuIkgTJdgUcE+ODCzPRMpRzPkgmEYtzmj0f8twv//B3TIsRJYrlYKhTjURJxjkSajPMypSKJQpIpxSXS/2Ti3yz7Az7fNQCwaj4Be5EtqF1jA/ZLJxBYdMDi9wAA8rtvwdQoCAOAaIPhz3f/7z/9R6AlAIBmSZJxAABeRCQuVMqzP8cIAABEoIEqsEEb9MEYLMAGHMEF3MEL/GA2hEIkxMJCEEIKZIAccmAprIJCKIbNsB0qYC/UQB00wFFohpNwDi7CVbgOPXAP+mEInsEovIEJBEHICBNhIdqIAWKKWCOOCBeZhfghwUgEEoskIMmIFFEiS5E1SDFSilQgVUgd8j1yAjmHXEa6kTvIADKC/Ia8RzGUgbJRPdQMtUO5qDcahEaiC9BkdDGajxagm9BytBo9jDah59CraA/ajz5DxzDA6BgHM8RsMC7Gw0KxOCwJk2PLsSKsDKvGGrBWrAO7ifVjz7F3BBKBRcAJNgR3QiBhHkFIWExYTthIqCAcJDQR2gk3CQOEUcInIpOoS7QmuhH5xBhiMjGHWEgsI9YSjxMvEHuIQ8Q3JBKJQzInuZACSbGkVNIS0kbSblIj6SypmzRIGiOTydpka7IHOZQsICvIheSd5MPkM+Qb5CHyWwqdYkBxpPhT4ihSympKGeUQ5TTlBmWYMkFVo5pS3aihVBE1j1pCraG2Uq9Rh6gTNHWaOc2DFklLpa2ildMaaBdo92mv6HS6Ed2VHk6X0FfSy+lH6JfoA/R3DA2GFYPHiGcoGZsYBxhnGXcYr5hMphnTixnHVDA3MeuY55kPmW9VWCq2KnwVkcoKlUqVJpUbKi9Uqaqmqt6qC1XzVctUj6leU32uRlUzU+OpCdSWq1WqnVDrUxtTZ6k7qIeqZ6hvVD+kfln9iQZZw0zDT0OkUaCxX+O8xiALYxmzeCwhaw2rhnWBNcQmsc3ZfHYqu5j9HbuLPaqpoTlDM0ozV7NS85RmPwfjmHH4nHROCecop5fzforeFO8p4ikbpjRMuTFlXGuqlpeWWKtIq1GrR+u9Nq7tp52mvUW7WfuBDkHHSidcJ0dnj84FnedT2VPdpwqnFk09OvWuLqprpRuhu0R3v26n7pievl6Ankxvp955vef6HH0v/VT9bfqn9UcMWAazDCQG2wzOGDzFNXFvPB0vx9vxUUNdw0BDpWGVYZfhhJG50Tyj1UaNRg+MacZc4yTjbcZtxqMmBiYhJktN6k3umlJNuaYppjtMO0zHzczNos3WmTWbPTHXMueb55vXm9+3YFp4Wiy2qLa4ZUmy5FqmWe62vG6FWjlZpVhVWl2zRq2drSXWu627pxGnuU6TTque1mfDsPG2ybaptxmw5dgG2662bbZ9YWdiF2e3xa7D7pO9k326fY39PQcNh9kOqx1aHX5ztHIUOlY63prOnO4/fcX0lukvZ1jPEM/YM+O2E8spxGmdU5vTR2cXZ7lzg/OIi4lLgssulz4umxvG3ci95Ep09XFd4XrS9Z2bs5vC7ajbr+427mnuh9yfzDSfKZ5ZM3PQw8hD4FHl0T8Ln5Uwa9+sfk9DT4FntecjL2MvkVet17C3pXeq92HvFz72PnKf4z7jPDfeMt5ZX8w3wLfIt8tPw2+eX4XfQ38j/2T/ev/RAKeAJQFnA4mBQYFbAvv4enwhv44/Ottl9rLZ7UGMoLlBFUGPgq2C5cGtIWjI7JCtIffnmM6RzmkOhVB+6NbQB2HmYYvDfgwnhYeFV4Y/jnCIWBrRMZc1d9HcQ3PfRPpElkTem2cxTzmvLUo1Kj6qLmo82je6NLo/xi5mWczVWJ1YSWxLHDkuKq42bmy+3/zt84fineIL43sXmC/IXXB5oc7C9IWnFqkuEiw6lkBMiE44lPBBECqoFowl8hN3JY4KecIdwmciL9E20YjYQ1wqHk7ySCpNepLskbw1eSTFM6Us5bmEJ6mQvEwNTN2bOp4WmnYgbTI9Or0xg5KRkHFCqiFNk7Zn6mfmZnbLrGWFsv7Fbou3Lx6VB8lrs5CsBVktCrZCpuhUWijXKgeyZ2VXZr/Nico5lqueK83tzLPK25A3nO+f/+0SwhLhkralhktXLR1Y5r2sajmyPHF52wrjFQUrhlYGrDy4irYqbdVPq+1Xl65+vSZ6TWuBXsHKgsG1AWvrC1UK5YV969zX7V1PWC9Z37Vh+oadGz4ViYquFNsXlxV/2CjceOUbh2/Kv5nclLSpq8S5ZM9m0mbp5t4tnlsOlqqX5pcObg3Z2rQN31a07fX2Rdsvl80o27uDtkO5o788uLxlp8nOzTs/VKRU9FT6VDbu0t21Ydf4btHuG3u89jTs1dtbvPf9Psm+21UBVU3VZtVl+0n7s/c/romq6fiW+21drU5tce3HA9ID/QcjDrbXudTVHdI9VFKP1ivrRw7HH77+ne93LQ02DVWNnMbiI3BEeeTp9wnf9x4NOtp2jHus4QfTH3YdZx0vakKa8ppGm1Oa+1tiW7pPzD7R1ureevxH2x8PnDQ8WXlK81TJadrpgtOTZ/LPjJ2VnX1+LvncYNuitnvnY87fag9v77oQdOHSRf+L5zu8O85c8rh08rLb5RNXuFearzpfbep06jz+k9NPx7ucu5quuVxrue56vbV7ZvfpG543zt30vXnxFv/W1Z45Pd2983pv98X39d8W3X5yJ/3Oy7vZdyfurbxPvF/0QO1B2UPdh9U/W/7c2O/cf2rAd6Dz0dxH9waFg8/+kfWPD0MFj5mPy4YNhuueOD45OeI/cv3p/KdDz2TPJp4X/qL+y64XFi9++NXr187RmNGhl/KXk79tfKX96sDrGa/bxsLGHr7JeDMxXvRW++3Bd9x3He+j3w9P5Hwgfyj/aPmx9VPQp/uTGZOT/wQDmPP8YzMt2wAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACZ0lEQVR42mzSP4icZRTF4ee+38xOkp2sG5cQxVJIIaaKkICxTkqJjQhpJFYiop2F1YKFQqoUVpEoCBYSS7dfOxVFWGIsokUE/0TEye7OzPe977XYNWk83b0cDoffvXHWGxkKYjt0N1fi+FaJIzNIFSJ0kDXn0z5nF1O9Sp5PzaizamLD2NELo5W4sOwXqqX/04o1R2wg9PYs/GXUmTjqpGNxwvWdFzz19Akvjj+XUkYTggylFLfml93due+tZ7+y577BrkJnbNWke8yHmzvgi/4lq+WU1XjCsThl2p1ya3GZ4KNrt03KuhXH0SkkkbTOL5+u2PnuZ/D8axtGMTaKsbOvrINP3v/W3Y9XhCJjQCrUWRedVpaq3nvn7oHXrz8jD8PfvnEGbL0716LXytIoxqizkups4R/VwhB7hpi7sXkbXNo86bkrazK5sXnbEHND7BvMLcykOotz3vlxvZw+faRb08VEiVC64rPdSw/pZ/Ly9EutNi3TkHOLOvN3u3OnHNx7MFio5qq5Ifdce/WHhwEfXPnekPuq/UPPQhrAKOV0MFdyRFQFRefr7Z9wRrb0zfYd1aCpGmr2BvtSTkcp1wZLnX0tx4oQjeHX+UF97P75QGspM7VMqTfopVwb0aY1F4ZWlFK1SCVDHQKUEvphj0ztkEdrvZoLtOkoNS2XlkHJIlroIky7Jw8atDSJdQ/aPTUdtJBaLqVmlJpqQataCZKhY/L4HwcEI/Qbv1v8tivbIdVG1UtNnPVmFmPEoT9l/Dc9Ujp42Mx4uGl6I5pmgdjGzaLbopsdJqZHWZnqtKkXcZU8D/8OAPAMQ4kD8KK1AAAAAElFTkSuQmCCiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEJGlDQ1BJQ0MgUHJvZmlsZQAAOBGFVd9v21QUPolvUqQWPyBYR4eKxa9VU1u5GxqtxgZJk6XtShal6dgqJOQ6N4mpGwfb6baqT3uBNwb8AUDZAw9IPCENBmJ72fbAtElThyqqSUh76MQPISbtBVXhu3ZiJ1PEXPX6yznfOec7517bRD1fabWaGVWIlquunc8klZOnFpSeTYrSs9RLA9Sr6U4tkcvNEi7BFffO6+EdigjL7ZHu/k72I796i9zRiSJPwG4VHX0Z+AxRzNRrtksUvwf7+Gm3BtzzHPDTNgQCqwKXfZwSeNHHJz1OIT8JjtAq6xWtCLwGPLzYZi+3YV8DGMiT4VVuG7oiZpGzrZJhcs/hL49xtzH/Dy6bdfTsXYNY+5yluWO4D4neK/ZUvok/17X0HPBLsF+vuUlhfwX4j/rSfAJ4H1H0qZJ9dN7nR19frRTeBt4Fe9FwpwtN+2p1MXscGLHR9SXrmMgjONd1ZxKzpBeA71b4tNhj6JGoyFNp4GHgwUp9qplfmnFW5oTdy7NamcwCI49kv6fN5IAHgD+0rbyoBc3SOjczohbyS1drbq6pQdqumllRC/0ymTtej8gpbbuVwpQfyw66dqEZyxZKxtHpJn+tZnpnEdrYBbueF9qQn93S7HQGGHnYP7w6L+YGHNtd1FJitqPAR+hERCNOFi1i1alKO6RQnjKUxL1GNjwlMsiEhcPLYTEiT9ISbN15OY/jx4SMshe9LaJRpTvHr3C/ybFYP1PZAfwfYrPsMBtnE6SwN9ib7AhLwTrBDgUKcm06FSrTfSj187xPdVQWOk5Q8vxAfSiIUc7Z7xr6zY/+hpqwSyv0I0/QMTRb7RMgBxNodTfSPqdraz/sDjzKBrv4zu2+a2t0/HHzjd2Lbcc2sG7GtsL42K+xLfxtUgI7YHqKlqHK8HbCCXgjHT1cAdMlDetv4FnQ2lLasaOl6vmB0CMmwT/IPszSueHQqv6i/qluqF+oF9TfO2qEGTumJH0qfSv9KH0nfS/9TIp0Wboi/SRdlb6RLgU5u++9nyXYe69fYRPdil1o1WufNSdTTsp75BfllPy8/LI8G7AUuV8ek6fkvfDsCfbNDP0dvRh0CrNqTbV7LfEEGDQPJQadBtfGVMWEq3QWWdufk6ZSNsjG2PQjp3ZcnOWWing6noonSInvi0/Ex+IzAreevPhe+CawpgP1/pMTMDo64G0sTCXIM+KdOnFWRfQKdJvQzV1+Bt8OokmrdtY2yhVX2a+qrykJfMq4Ml3VR4cVzTQVz+UoNne4vcKLoyS+gyKO6EHe+75Fdt0Mbe5bRIf/wjvrVmhbqBN97RD1vxrahvBOfOYzoosH9bq94uejSOQGkVM6sN/7HelL4t10t9F4gPdVzydEOx83Gv+uNxo7XyL/FtFl8z9ZAHF4bBsrEwAAAAlwSFlzAAALEwAACxMBAJqcGAAAByVJREFUWAm1l1uIldcVx9d3ruMZZzRaay+pCjFJH6LSRqxQqA1NH0pBiH3Qp774kEAg4EOkxKdQSCjUFvpm6YsNVNoSaGjFtmga2yZgCIIawdv04g2kM7Uz6lzO+c758v/t/9lzTB/61Oxhn7332muv9V+3vb8pnooDVRkzZ4oY/LmK6mQZa05frX6yFJ9Ae7x4qd2IuV1FFM9WMfhaI9Z+pQBAL+aiEZ0QgNBm2YuZmxHF9VZMXqmivFaLweUyuteWYvHGVPWr2f+F7YvF/ola9DZGVJsHUXs8YvBEK1ZrXt9URDwqxY1BdGMQvWjGqkgA+iLUtazHuADUoowHYugKTilaR7SIpZjWqOMRfY090RbasS4JglpFtzWIcqwZa+pSqnWVcLLXijXpZCFpvbgb/VhMe8huMLPylWkci8/oSD8xJq7hj4WUWvXrlbqVrUyKtBYdpX3Bh9YbzsdErwRgbZKyFP+KdqxPssu4l2hDAOOxIj6bCHigKWRNCcpMCHHHB4TJLc+TXxKHnC51Ct+Qgxl/TZ0qE5Be/EdWTwjqQuJJAPIB8qAZk4kZoXJnvHH+27Hq0+0YX12PH+w7E3/8zbWkitN2M8pS7kCKZ761OV55c2fcm+nG7J1e7N/+e3m2nbyKQcAhnHWZLC86B1rxiFRvSIkIgJHFVWzZ+qk4fG5HEr4wV8buVb+Vuv5QeVZsi/HeW//eHZ1HbNfLT5+Jc2dndBav9KXugfqc+pLsv6Xxvk6kVheumnpDnXlTVMZWfHh+Li6cdOKvmGzEC69+WTskzwr1SfUJ9ZWp7z/0pWXlF9+ejQtnUdCWnAxQ+al5Tdz80lIVEP8x9eZQWCQwOTAhNc34Re+rUW8U0S+r2Ns8nWzBKgONBOeX3V3RaCpPRN7XeFcO7yYl+InML2U3VdBVHszHzbSXYLBJkuTSQzBuphoYZ7X/u8O30gFAHHxzi+Yop8ETcfDXW5JyKMd/fFuO9l3mYuwLAl5gbMg8QuKdYQg4Zjcxo7HikMeIn37vcizes9Ide9bGhs9NLPN9YX0ndnzHpbZ4vx9HXr6kc6Sobo2hIkuzOnIh0xMFRlvc0waWL+p3UePCQ/Myjjx/JSnl59CJbUkJgl75g+ZD/D978Yrc7EuMPe4ESo6OYsaasiiX7tADAyny5cGtyMHsDxzFnP0Tx6Z0SfsW27B1PHZ+c13seGZdbNo2Lo6Iu7e7cfznfxc/8ggNQBhZI9dSs2c5k+rFaHBXmZhd32xTGdlZPvzDvefj9XddlgeObYVpuf1o3zkpyrEnCJwBDjlmr9i7XP3jgrYkDamhEqRA8UOBxZ53tcOtBbgyzr53M65f8DU6sVZ1o067cfFBvP+XGzrDOa5s+JkTShIc+dBtlLOLlRpqAUDc+yqQMnViNq81edDVnPixno/vP/dXjn2svbbnPa1RiqXEHVkYQ06RWygnFEtpbZDLAJws2X1OHgfCv+hiRkZU8Y+pmbjwzjTE1D48PR1TV+5IMErgsjex2A8TJrqCHH9Cw6U0BGBkPUWrKTZnPq4L9WqIOFvEO8ml+vbRvyUB/Jw6OiUa9GydM58qQl6lTrNHyiENrwyTkOvXLziVkMlOOsesVKyIFtZB1zfDAGvdyj4xtkD7yHQ8Ynn4hCrwvYA+DOJCSlXAZl3MjNQobNzVPK7gJm0AiPsQyEg0c6s1cbEB5X08AmDz1TTLucApzHHyJgADvUqVysJMKOSicLRQl+emOIvbnaw+ot2pSTzl5zzJVjPaZ6ix7zCSN4E1shOAWnqbyYH8bOqd1h9AGJ0qtl6LRBubcBKxbo6xh60kWlbLjgG4NJ2ETkwqbl7SeUXVSCq+BF1C2bWEgEO4CxBGvOydGmu3ooXv7AEogLFqn2JtWKO8yc9xAmDxjhGiWMOQXe63zCvHtIjOpGOIwvGJlhRQepyzaiu0MQ4MnFhuT7CiJQC+sUg4jtOYO+1IH9OdCwgBSmOkP2r60CarHeXMjxw3PGyvOBnN670EgOPOc1yEYgDYCxbqTPDXki1srChi4R6lpQ+uDmVFDtkA5GH1qJEvQFgacqCFT37pyP+Y+DMJs0Y54NgbiIVn61jhEUrNARuNIi3vOQf8iUeQuNzILe4b/jFZ7RDYJhTbVRaJTxyWh8PgO93hQJCBsSa2GQyyoLlBzWDxgnm9l0JgADgNgVxElCH22xs4NCsaieSUyzWXaSTLDAPlGQB0Kt6JaqpzYjkJQT9id60aNwqZjVqlz9Kqp+JcfDjOAqhirNoCI6MelpVPAjZ/CbFv45Y9YNcicqDMKm/Xo/FPJdMlqZ9SIK7qSrrci9mbl6q3/DGQ5f7XuK347rgKeuMgiicEfLPmT0rGY1K5SdI/ryritlMbJrr/PZ8+I8qf9PF8qhMrT39QHfHLkhj/fz/bi+eb83F/VxX1b6jWvt6KdTs/AvvCmqXE235jAAAAAElFTkSuQmCC</Image>
+<Url type="application/x-suggestions+json" method="GET"
+     template="https://tw.search.yahoo.com/sugg/ff">
+  <Param name="output"  value="fxjson" />
+  <Param name="appid"   value="ffd" />
+  <Param name="command" value="{searchTerms}" />
+</Url>
+<Url type="text/html" method="GET" template="https://tw.search.yahoo.com/search" resultdomain="yahoo.com">
+  <Param name="p" value="{searchTerms}"/>
+  <Param name="hspart" value="mozilla"/>
+  <Param name="hsimp"  value="yhs-001" />
+</Url>
+<SearchForm>https://tw.search.yahoo.com/</SearchForm>
+</SearchPlugin>
copy from experiments/searchtest-turkey-release35/code/install.rdf
copy to experiments/searchtest-twhk-release3536/code/install.rdf
--- a/experiments/searchtest-turkey-release35/code/install.rdf
+++ b/experiments/searchtest-twhk-release3536/code/install.rdf
@@ -1,26 +1,26 @@
 <?xml version="1.0"?>
 
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 
   <Description about="urn:mozilla:install-manifest">
-    <em:id>fx-searchtest-tr-release35@mozilla.org</em:id>
+    <em:id>fx-searchtest-twhk-release3536@mozilla.org</em:id>
     <em:version>1.0</em:version>
     <em:type>2</em:type>
     <em:bootstrap>true</em:bootstrap>
 
     <!-- Target Application this extension can install into,
          with minimum and maximum supported versions. -->
     <em:targetApplication>
       <Description>
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
         <em:minVersion>35.0</em:minVersion>
         <em:maxVersion>38.*</em:maxVersion>
       </Description>
     </em:targetApplication>
 
-    <em:name>Arama deneyi</em:name>
-    <em:description>Türkiye'deki Firefox kullanıcıları için alternatif varsayılan arama ayarlarını test edin.</em:description>
+    <em:name>搜尋實驗</em:name>
+    <em:description>為Firefox使用者測試各種搜尋設定</em:description>
     <em:creator>Mozilla</em:creator>
   </Description>
 </RDF>
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..467bd9d012566f0ee28f50025426036631a178dd
GIT binary patch
literal 17783
zc%1FrRd6NEl_20NYB4i2w73N=W@eUJ&|+q0<`y$EGqqT{VrFJ&F*Ec2-kDf?c5Khs
zV|&&cQx*A8QFYEkR%XPB_~N9z6c{)f02BZP0I6^n1zjF(nS=%au*m@cH~;{kZ)4-=
z;ApRBOK<KluD<TD&5q)8P(Agi7d7Ue+5%h;DX@15bVZ?tmOy4&UOPu4w*=Y13Xd~{
z`kDCgra{<fX@I(vS<Xp-Qq!jSR(P%>m5FG|g2>TY41EKAJnfq^nLvlcy)(S)vJFc{
zh2r23t_K@+sQlKPyV*n4b4Z^moV&?SIOTL0pAwIu(Q<fkE{1tm3`Lqv&xSp@&Z=P$
zrB5x7WZ&H*K_c$EkedP~FjSaghUFJQnMOo77%B^nu%#o7gkehGcilXze%SDR#27zj
z*>9ec{?Zu-o^lIZVz|Rr76(3iKr4qYhEQ(;nopFcGpGlPHdSBe4MCF%S&yuf;t)O4
z9}+|A8$HHr!L-yGlJ}QsN35+8p_<nSWO-t7k{+&yz{)P`^Y;nNiD_QE&b2#h8-m@q
zHaDhE*L7sHTH=wMS#MeP2fGl4I0L&lKC5d~8?Yo@Gex(SupGcZ*jA{{EeT<QXW4SU
zjaTJkr38l>98#262xLnK852mFSQkU>sVxoN_t!;LNRXql$cYeq!qmC1)-}Z2X6#Z}
z7{rmWo|+#=1=y!=_G|=>HrzvU2hfwBt#q^_35a{oPTpHQIlRmq{8RZb1H&7?O=hpc
zy#{hTT@@4hyt`N*ES=e%d!6%YMGv_2t}?ti*rZfC3LMdrEK`GB*rkh_1$aw&zYkJ=
zH0@G;?DWA9xGio(vf=PXR@*QPsBO&h*uH|u^5Hr|0!OcaY@8FNYtB=M3p0c<vssLI
zy$-U0VTo+bhluS>%i`PtQ_0K08yyiy*CZA`wtUChIvxiewIRA(Q6wn4B3k#8lfZ86
z*BeGCajlxiG9MS;_g4<B{YWeXn~)tZFIlX7>1Wx%t1)3B$|9HLM9%LK4dyRH*9YH@
zS(%Ub0@pp(^)9YAaJ`Qn?orSOav90A)HX6$Pz!q#n7hlA5%rx@7(=xRb8;8k-nQWp
zQ3pch)Z|&qz<J@`6KW;2jLt1ub)3RnkLdB&q6QEj?1Susd>eSFt;i&N7zvz0FgHv+
zx7J74u(Z$MVCF)<L*Gp=f)WsY8OR^JIy|b{Jkjn=m(#CgpHCkxe@%aKh&8jds5`0P
zn#(v#F~5*zq!IrdFE~yc*U_P}{gcy2v=ngbmn`MW$_}+6zs=lyC0Z*d_0ICcYaW+K
zQJQSj*cZZ@_>)M+fEW^XXmVjHB}vYSD`hP7GX}gMw&(PItGy5FGEC;X5>S*XBX6Gz
z_QzVxCM7SUEi{_n_2Cc_iSpqfawcojXs2fFndYI|;PIhnkayYM7ZMbV6P;@K%1DY<
zwGnq}pY*VI^!I(b36!^wm3`^abyct^=%+QoQ2$|@gF*?JGZw>XvY7^aNf6yQ-Okgw
z6fzRf@d>mCiHRc|J9Qpb5hV{P&iTt6m*QgGHVQ;V6Z76mErSlN(c`rduLJp_Yu9g2
zO!qRP{L&G>GWv_%oL#s{^I*%Whmvgc?vZj#<9(eq5KDbzXI>sS6sqnG%_YqDkG}qh
zDz9i{A)(g8tHwiOCE0>f{JKPR*lYh9cefVGnp)TUJ*Jv^!6fBw2SmHuXG)|d5Di~R
z!epif{JL8yS`Xmk#&_;-EJHa^-dGVOMqdm&GZu5J5j#9y(AlErD@(i)btJ9ZmT?H>
z(8yC6=*U?@*sGMXvpbf8p-?qSoS*{YifSl=3+@f0N0l)Db^r5?I|3M4+@+dvBM#l$
zkyN=MvPR&~7Ww$YK%%`9<*rW&3(Q}#XUSl;I}0uN-#`!=yO6Ji_9<aAZSl|whb^;U
zy4nleK0!s=XA6lI-HLQb?u^A@g>{d~?3g-GS&dkGaq-5Mds`NmY0%qx_h1zyS0!6V
zU<!*ApxhTL#JKIwk_B5Th=C&Ui&18c6DsEoEqwQP)7qD|iCV^gHRVJVUG!aIN~Fzq
zs2@bzhj|7d>+*<)7cGN)b<*ZPSq!F6!Xu$4+*hsH(=bZh!Nc^v|5OOc_zmBLbD3Y+
zG8tz4!w5{ZhXK8BaJA2k(LSzLnn)^34hMpjp}HeK4MX}Y*BF|4z7!gQfHJm3u`Xr~
z0+8z5;rSG;7N1ai@Nv9byfhJ~u$;!lkH&;E%ISVR{G^ep#6&I=_thg8_ol<7CCXeq
zZDRb)C!)oGe;%-F)80KKt=t+_dLMK2Bx{`<<{X1!xR<u0BGQ{sJ$eTOJX5#K+4noQ
zw2AC{5Z|WK{diW+O=Qgq-uU5wQoOfeUI3yvYu)fx6Z_l3L`ij`#aJm<T5uM(wJWcn
zG=xp~5J4Tt6;h#-o904@R+Iu%GA6MVCpSk7#q-KV8R*8ohKyBY;uJ=fCTH!VMmP<Q
zSei*2*FEbX!Z#u0oBQdQSa?(QSnqXk4!P(*R22|RcVOr}i}x-Zu^3a}l-18C7VY4Z
z1rblM=j+?~OaQ9zTsW2116G|;>)DQVWk~ebVi_T_oNk$&Qk>oPI%r9XYrh{;vy4Pm
za*4k`NJbOTB#2_nbkNYL3GZN=VJiX}zqrY7LuM4hSn#T8T?VoR<CIxh3Bc4(p^05r
z@mGr)Fzey3R+^I$vRfohoS3tjS%+i5*Q~1GYj%f&sEeh0!)(DA7mF7dRmi`z=n8dA
zoaz`gBFG>#<tuw2lyJAfN{b*?Pjl>*T-X&&CL2F^y;ga`<Y30IV3tAj8Cq${r`S2`
z>&?gQVOEZTK&wvIgxS{Hee046(IrZ6FX%2u`0id}PRr=${)M|ifts$M^n|qFE8n9V
z|Dq|uCwH=VERrr-{^!%qo|C%kUZffrvmR!(WFe3t$xg0SI9&>}<8tu9Z}NsNcd4${
z5j<2{&zIk`S`S$}g!*7idOiB22;tR4P8wp~Rzr9sS)JDVl3nrHlxA+lO~9SJUt7{-
zLP&%r(_@4M;7OFPN`id{7+Fz|-y8-HVP^c`=NNx%WU<Q>&ynmBRc-R<XPsT1o_6~m
z@)+yfzQ0*F_BhtYw>Cx<2E38_G3Cn=#k77`XcG`)0g|#YBU;MAAjHzC^2+Gm$^?yl
zNv4E>#iP`{A4uRLSI#Pcav~DT;V?#sx46#LxUApsNHr>yGwRcQ-E19ac9vAuRjXg8
z;d`(EQo#zq;uYpSEbYvjAYc%6s#J|iW#N6=a=`SfF``MVrTdx3t;~?%Bd<2GXII@4
zE7YhwmkcYSskxz)@ll4dH%Ub1k^c>mj+*J<MB$2?z`l^4xN@?NH?vP2Q36c;oOnL<
z9@AsE$~({Yu$#F01V$6nD`=vIX6@*^j#pPDTbrHk1wsOs6Visg0k5(LyIr~9=~77q
zZ5IG+=K2KBi)~YN&F%bX{k7o$7k6ZP`U6z{{}g_wRj#7484-wdzZHCpzYWCShJmTQ
zjg=9-m7cYkv5|wL)Wjr>#5j$D_$aNU%xLwLOeK{#-N+aO%#kXE@$SJ1g^A%lIW?J3
z!jS_A;P;vL>Rd&2+^z>pZ~*}M-%3jC-(|M3b~LhfWN_0nwXvad{4F`1xD>ssm1U&6
zMBOcW+y<}Q)ve8PYDTfDYMLDZ2|GjxQOgeZq(O}g<&-Go6tUyyBfRa=&bHRFa-*Ve
z!rXv!0G@5L4<Ui~2Sexk^IpRIwGrZKhM~?{jIqu(ql=EqdR@O$QiaaRWkb^PV%qrn
zHS4YqM*UXV%GYP6rsm2xosNzU?>Bc<i3NsbKCiP*FXB#tPOr~TYPX4SI|tPo`!^?{
zN!8xpI%mw)52!a5Xx})?8rmVs_Dsaw<~M-gz4wX2Z;MFP3Qixl%WC!Bi6@-z%uvpJ
zgCABYu$SlP?So)GFVA<2eBMucE?nXJ1uUzT&GQpgXUUzfk7^A&?A|Y$D&YQ5j9DQD
z!^XBxN{FvlgX<z3W90-+%Y*{T2)&CRPlO*gJ|EQ|?_7@;cb%^jCQ?jlI~wqBJ~7X$
zNjlzY&vu$Yyx22k4DYu1S8B&DmlrfPx%AX^9{4j2ucL@5k5?+jDhgFT?{8u_mD7A`
zn<&4YEE3_~d?NG7No#!cv4V}Tf{@Q`f|0SJ^r$xUu^O7g@swUI8B$hxgJaR&s+7Nj
zB)eIJHeaZIQnlJL`j~rH($M>u17$#Z`Y9?C$Rr)5c{6vuz0HV$dFKNYX}o*fPE#io
z(Qyy{`619i1$HJ(SoNXCBKa~)sz|Ohyr2q}#fEv3SwlWMv8Uy$;A)-<n)Qt<M#Y<A
zdG4<EY5sNrikn;Y4tW^EXc!-&tR7<zRYI@BnNWEchc3v8wv9hw&GFUp0~6^jb`}Gg
zj=Zi6DuA-8JX$8c5GzPcNF)HFS(i6oMV~?X%brrWR7P)V4^CQO3!VFM<aT<!Jro>~
zLBcTIe77N>Hx$c}7AC*eUF=Ip#V!$Igw_GRW$w3A;#CHrZwdYlSW;PV7BE;+P)mX$
zpbhgWezht5nkTxmSjhn?zET37^C^NNwG%quMAx+T_UZzt*I=ug5_P{IcQXDI?JOTK
z+IZyw`|O$J*-O;aK~e9$gf@09og&mr8>M`1#fv4AkT7G7rK){?6{aBoTcnIDinbl?
z^8Fy7i}sb7F+wXy>aAO)10B{zA*+MP!?tc%#cHYA5aX%Fkn?jZ*M40Mbc2Aet8ZtO
zN7Ds|yWqeT8kB*WfaRh;@f{x4J7nfP>8C{5O2!yV27R7$D-*^K2!4)6ZV5W-M-gf=
zG%RW#gF>bqD2$@o22GeWb-F5|ndxGAg3*%zcagY;La$I0*#M}Yx(yajW=c4x_7lb5
z2t9RNwRO<opZhyL%WRdHZBc;gUalE+)L%KJ%1lFdyF0NaD4o;>5QTG&Tq_2&z!MZI
zwK3dP;BuA8oH4H;&f_Fr)qCLzXTZE^kvYV+Slfvy8(0Rzo{;shf(6Un83rit&^+@Z
z&b6P5nZx55FvjX9VWtJ_Ld-Dun_Y~bp33uF1SA02EpF<Mm`a6PMtgFgW=WvFR6=(v
z8IY-?3M->#<@6C1=CBkO+56{k3kFHVMPZwW>=8&-Fwn9<;2mnvg5&40C**ryq7S>-
z>80=*fM(|0hBKaq<<$9C*j8v$9~CfO4DO6$e;PE_OU2yV!tiILjm&cjqk>6{gsmA5
zcb?Y>I>7j>(o0x$Zm1I)I<Sl$>|>jQqEIbmAO6iNwY0FZ%1_P{B~eh>j%Br=9c|u3
z*^%W%ec7+-sie=$Itq)ij3I-MA&YoPaG_)|&#u6cKYI2TLW98Afj%F`d#%*WSck~~
zQTbXqgQBqdeRl_n=zKV)xr*gyw!CYMi7s_1qwN&oy-G|)7Ag~L|8y!K6Hb7P#=7dr
z<8V@<s?@b66-E%k>GPbkzy?})oqQtj;YIP8&XAoe2}e%NvgF5Evx<4od&K&kV!?<l
z@6nQQ0SRty1JznpLTcuA+OnxH`cB5H8=(>o%PB`%VSq~E+tENsLJP(@JKZV}tP&Xr
zLTJTOCK-+X3y0tWA{NOdPlsHAz4bLJ0(`5#$SVq2v7r=0#FBGLya}~V2I}+nF#MK~
zzO|39D#e_qZWrbVb12!TA}xtwq9CcREF*>|3C5kmuSr0qOyKDiT$z!k?@r`0@VEah
zGnCKQPJvBO$>nx@I1nA?Tx@z=l$gT4)Y)$6WRW+ng|@6+>Cxi*#lG|{>(|4a$LncU
zIVuV~$LD1<l)dvS{`e-I@9KK4{FoQ~qC28%M_`|vRL7Xv+h}&8m^fovPB$yEzOBdQ
z=+Q&Y1~1m**~l@c4Ro8i!Q;?J&so9vIPJ%7ZcrKkUzwUuMG;-S_j)sad}7sCL5;qX
zTE(lqE3`5nJbm-77y*~Mfn757B3VT4#GLYqzwk785=}azmQkiUvw%T;p>;x<lpZuV
z?*Eh*`3B@Ewj<EdY!P5^6bsG5E4Q?PF0z^MDzNjMv=>au#lOYloG8w6Mm-xB#++0~
zvDXUj)5$vzZyOeTk+>*6IX(iZeSJ)7CmI`7Otc+(nybM*ss^3PBa^O)RvMIO&Wc~C
zRj~~@R-wdkJke0u%+tj?QDM%J>WGsf#JFAOxL9&D)LE^2%!=Kd2H=E}-dFJs-A2?*
zo$)raJ6%NZJO4o1bi$3&J_2g)y32@juD*MaBH42ndOJW5rZ&Qz+k1Z@-$fPMad(Ey
z!axy362}X1yp*Lu9-d+*akFPR{3H^}&2Kg<c^hXPaTG|pJXo!ws+A89<(Lt<(bdI$
zmFsMAk5nZi00sunh~%enuGco#?{W}C=IvS>3d)iIW0BooXL%N6wca9SsyN-uC|J)>
zl)|^_7}^Kh;b5pd$m~mOxM)NEHq5XwK}bwsUSfu?JZzA+CWvr%YWEOosymFE=5k)C
z{j<QEWM#v3873Z&^LbgA^qO9qO#eO_uWe{$_eNUtYN{CF)^&eGvU1-KkQ)8e5~O&S
ziP&WcsWV1upe%KYU13nkACc-cSocol0tXi9WOej}9amKVKbeI7eVCRauou-#Wurl`
zY^`k9ZPTpp<QQiM;S(Tt5F>o(JJPAAHl7!@VO|J??z+QBdZvy>O4nyPN(}RT1_!j2
zfniQEj?D7a>~jF0xxTwISkN5XwHv}O^{sWTmi8tX$om)15zn7I6mUP<5Pkg@CH36q
zO-4|KFgx4wTP}V+#>C)NwtLu_f6e6#ZPaU!?5bHXRQF5&WXG;iHmAVaMWCKnAeO8w
zr@^0-gFyS3vK#!mv{quW<6yQ8Heo3?2j$YeBP;)7VkJn(#gXi*HQU*9PAGoRSK~w4
z%fa$k5$iHxAaQTj;Who~&H*j3--xo`b!qBA!j*P@0(OF~VzFWk&wfX>^`h*aP~;vO
zc@oh?zO$BbW256WXX?&94H4XAY6D=8<a?U$nKX{qVD$5O5)<zibDgl$!xtlDv8Wad
zIv4s?{<J4V)$wk$;w%o3noSh;npNVhcD4nbU9nnm#+wZj1ZP6mU(?`TPX&<aHc<!)
zGc<n0l7+B0Wn2|Mp0}HdAxX3{4TEu$p&pm6c+Il!*%j{3>K!4Su0pGqR+_@6W#glx
ze;{L;hK?mg^&kuH^Il6P0}FFNh}pcY;5>;wn|oxPiQf(E(dIn3w$vXY5fIu;g>?y}
z8C+4@ptLGDp3&O24z#7t?$3Zgoz`WAyKfyg0OsOhQ+#ixWQ4VW7XyyYSFFSGsk!I`
z^>Jz020l{wa<b?vsDu<+XE!HAMyX_ey!q3`5X9{d3m$Y;XbI?bW7tRelSintkxs(q
zZkmiVE`}`Py{Ies`^XAAR8BR>AeS1z;pukQYX}>Mq_g6PjD+PIjJx|)NC+<Tgb9OM
z99bydaSf67jS#<s4NAWb6^qUX5RrWafeSK@Z>4r%mw2w*i=x<QS@I6h3OCFHI<1{Q
z*fQG&xF<wIOBix;oo>jQ410^MZYJDDZS|vhnAUC-dcNFhD40IHD6Ms~;psQ0lCT6t
zamhSUWh&at4f0Wk;t<*+&dPO+UzwegK&gKkBdJPFs)y|mU=o019F9$ufPVL%Q7VcS
zr=_}-O|pp(VW}P9x(R@AZ?Q`4HfWChtXr2)`Y8ScYbWj0=V|K>N(g$>ANC2bo~;+=
z>C~#+_^a1O+<lyoSBCbLRz%m6UQQxQf_0~1c2ma&z`vZptH1$few!ns#T)jj6cD?d
zS#P32+RUM7%Kl65D$`7{yRdTTY8-QU1!F#)v@Xyc>`}1gDQh`kQ#h`9wA5h~YlrQM
zwDm<w7_eH*eWb}8sL_3`jWzSV@rR1UqrEWgC?J6|(pVS+TCQSN37tHQAhIV@mbtV+
zC8`Wdxi>V__7bVm%oeDC#s0O%ifKG@7IibO4la_$H-^-cX{LEBf<l6CY7;(aK)wgj
zt>fidlQUgRzB&fs0G&v*%>F3Mv|PUTg~xFV2!&hEv%Qb5qBh6lCXAT{_CA2Ib9q4u
zCAb9WjLFX#*99TpJj-y$A%Ek(ccIqClx7~+Ui7{A>ZgR3t?Ie|T`K=53B*DilrV#A
zxkcgSG3%SC*Y5dBI85IPv};?9jzhRo;}Db&i84%W2yZpg^OB@a@M)2m{-Eo2mosG{
z9k?4cr<#OA-XIF@OT{6D`wJ<~l=twu)WG=pOJd;$mdv3S#*o1ML3o+l$k>B+%r>QP
zPv7iE#fYu!{JiCkKal@|O1%z`#{MdOX%R9k^kT@B=d%C8Kw!ZwZoR?e+AKm3I0fW+
zxCC4uq6;NZDiet5{!CqgWZy8k7J^+ZQ!AMr8kk*jaukZxUXW8nEeFY_&>Eg41KYHB
zgKDw4S2wUmJxnW7nHcN6JV%Z3*3KjEsPm){dUhTE;<zUOBesT5W*oS#wrUoK%-dsf
zA$0NsUNv)=_g5H;SzI$YUB2i>#K>^SG?zXVj4m?lX62)=)x?g`$rjAZw}q*OuY#Nx
zTbEjq##2^(Hn{34D{k^>h@}L|_1BGQ8V}R9YmO?*ha7Hf;JB1D8l?1|2_TPsyQIiy
zQ(-Qy#S7-qiF5I~F7qC<Cw&uWpF*q!cyrg?`;gB1zLt`sd7g&VCsiF{BkshNDN%Ly
zdTS6yW(U&u2PAZ-L>TMA%kdB}-W)(k({M%t)$s>a2rSyI<H*o^UBa!~3V*$~&py4Q
z;h}o!%xJ0e32mm8&0S->-kkTprMF=QBnmSWx_~!oIheY*)NSmCz-xcIXD3~8*n&@<
zFyjfA2bK<)Co4!5^cUb@<Ql9~;k!xqP4DL5mJ@#IZ}uF*tJk;ppKzxBvHRsGOr?@{
z(NPwuglSUg($$E&cT28bVNcPobl$6$=d~del#t=a{$4k<PSRly8kh5p=Rot7sl)#1
zi45IF%;!5pQx6I)ORKo=nACCTH)})y;>xgRiQwx`U&-=fSQMrg%j;BbVi@J_bCGl>
z77IJ~8`Rg{h9vlp<(+}_%e(l%n&u<dM>p4{RQl0l2;4BC(z_Aqz9;RL1LD+48mMwy
zO%F5%v%~<m4T@MH^r#uu5c5=8-KV}o2cTih2a;VH*C>7@DBz=hb+ya2Vv<1j@LUM2
zrvP!7;zdhXcXO?A43V(BdwBvIJzftxO)yc`sm`a{k+(A=;`^5``TYjms`$+TLHi6p
zZWDCs&n7cf=Yq3(ww{_rzZ!_M52ykwpjB{q^LX{+wD8Ww<qXnYfR6)^ly5QabL5c4
zx{g0lTcT(pv@QWGgV}yE@~b8B7F0XYUP8XEB%(B#*6-6D>`2d!6KV6xUk0xB@$(aX
z5d6g{iC;6ecC_{s&Mul4qu;#RLBDP=#b#AxiCQT(l1ZF{#dC*JB8k^^6xEcdo)|JQ
z<e+J1Scjr(bt}9uh9=K1B0hNb#Ay>&HYy9Irc8DrQ-^c_#Y60Ng8L|qEu>PXC&j%Y
zC+H`sAicNKL3)jccEt$B_Va2j7?AFBXH}$`_HJyAlNi>-W&{FFCuOY{U0`^|=YDR8
z258QCGqrsGY%LhP%Ymu}0NrE9zc&d%gQ{maK#ymr)RprRx3O}Nyl{o4_w?dfavQ9I
z2O%*G;#coDMspjGu&3lu)JUcb=Jvfw%`VrZG9;3Vc8()Vz;npZnX3b%lrC%VY&>TZ
zsg1eEri-0M@fZ}$SinapNf|Y=Nwt*WQt(r1lObUYt&hhYA`_ojC~Z2~y_e-PESa>5
zaZW&X9~6REsjiRwvG~*W3LbFyz5|IZaL_#}U5-KU>mljH`IvoFeA{xPaX$n!8-_eK
zqRmZt0m<#>W<t!UK_*+Sqfa6d+ey5GL4gT96pBr18G7MqnpD<32F09v=PaE~=+r{8
zhM;sg!8GGh<U`vrY#w3ohUzoWpMMKHA^a)W!#EX0%P}GdIv{`F^p#&1rJg;b+O&%l
znBVo1s2Q!iUO5^7;#?S!d$jKeA0v14Bn~cpQ>@@%)l-iFL>Alr9<}$~m+R0g_-uHG
z!_zY7aqXOZ4Jx#+-!Z73y>}-$E<g-8sjW7ET0XmrAA0W)HIm6{Pud);7klKIS4&rJ
z)f<N+M~Z<@wpZb$PXkw3ABx@t`8`{iQ5GiAS$B5Q@0L$aUaLQ;^)Mz@gw{A&{c%7^
z+G9!o#mng#&3hyJX9Oqtrtgn8*JCN9b+*}Vy7tdjX|9x+c{fEtTX$i3h>Z3PB_n;a
z-ZI6kUux)uNHvE`SmVeRprrkvMICq*NB7Ou)&`@XFxF=wx#G<2&cdLc0wG*Tt4P<0
zEBJ9D9U1a~aK8|G=Mbuh*0m8}QEKdxcz)!GH=Wf(=6Fa)K5SfVl(z_4HY@2qG#_bU
z3AplZ=4vUMQIN`6N+KKG=qk(|HYFv;3Wju<){dcuQWFPOY)>GG*95J94zI^Ff1gun
z!{Uh^d$Y8-M{riZ9(#z`^%eib7DuoWx-T@Wgt>f&Nxh`L1rqYJbLKppuZY=qS$U@7
z?Yoqc5+nbe<Kkf)Td+&WR!l&pE4vCVP+Swc_n8NKg$9ub$Gv}A-@tr2YTF%{Xvo<E
zg>_cy<1u`5w3%QJ$6>d&L-GlzI9g&qo3&r;#U>%*7cj0=%o%GG30!|TpS0q3`}yKl
zVHp#}JCfvxq$5Q=Hdr3oJ1E9tBbFuWp#HT&L^A73gi`5`l=$-PEAJyMCi4v1QQG~I
zNpRcO8{!8%1P2;jbQ4%kVisujbU(po=P38OuPR2;L4_0)mNgW3o(-Eu*!<#d{s5{=
zy}ks$05tiS)@>K1O3plme3`Fnq+}OocedOD*9BniKa{s3<^+g@xC)~A5NY&A-bE?o
zqDa2E^3q&2tV-simC?Fi(0~_x8YS1lFh0F3;ll3oZ8~dCblXz&v%mk;EsdbZv2ary
z0A}uA;58!ZVtd_0l8y3P5yrKZ?IFaXooe-+?;5ztnT65e&;p)?9$PSAa8V%j3kt`T
zOUePC+47)DGUOt*o!_+mN3J-Sx>Y4G-ToqrgO14DjuJ>!qQc!>Aj=6`$!3Bd+?(L;
zuU`$<?8mex_?40LS@7;6+zTyu0w*=v{qQ6>ZC{G=O<Ef68nxbc#zJnFV)*mP@F=-X
z?HQz;s@2!QMtW!5QDP_w!gh5E7<3ZS(E}BbZbn7__}%u8f%!=xscx+`xK@!iU9K$Y
zaLig&`GtFNu=1`R&X)WjEmn=9TdEey`9!+<IAcfJMA%9`nM?%F61f*Cf*qt)x#v$0
z!tqG=NQmO4EUQMhlF*rHkLC~HoOutZSPE>+9I$h|PG0_H>rL$ArM0VT@3PwvNY_Mi
z@yd*p1vO^I!O-{oSluWhQYufoBbQ^vAD){kUMy}~lTxQLLmWSl>TdQTV`wc$h-11A
z<0SNOPQb45po~bFnTBoTT_}iD&|3SGas`X;{mERx#`MX4dSfPi4$Fv2Xv}TVdCl5m
zJu5cTG!(^i-AU>Nb7$Q#!El%5`PO0GmRcpgDSV=jfWvz%sptMB!J@__G~YtM!cxn#
z3R{d7bn^2CIR--@WN7mNNnIQCBb($-B$N)I!R}O1!k0_4L2hTcW8i3@3i>jYw(^16
zEAJQW9&n>#!W-a%D*e_fmc$d~!R)UyfBP0)OHo6#efN$Aq^fvGx|9>;!RQNtZy9RA
zrz%%-2zUZuwKelrtsv_X<d0#Vx&o?9d$eesoJrvJN^Tqp-O{+AF!jkBzpOvJ+V*T@
z)KI=<p$V-)1RQJVM(ex`8VTGHMT|t69>trpv#QfgbN;0Fp%%!Fj-JJ8`)H@Gp4RC7
zR@d+0iDn0{{y5?$x-u&lnQ74*Pq>`t-!Uj@&3o?);wrRvx?s|SF>k((qyKh22B}_x
z->1B<?-d9t844k*@7M1Ys?YiEkAKiYKIS@nEk=j+PJz5(qR<ecr#5_J)WE-hJwos>
z4FX5Qv@$Wjy;$hpfE^_46o+YYk^*2T>~4Sg{0`29j;jQd%tBf^Ro~cm({F9p!#m+h
zG!f^U=7P(2BG}`Ij-0WdvYk}Vy!c>g4f+jvKjx7R&EL<ClICoHGO-mN|C0|TwjNd1
z_8jT)vp3cpW$xr^@K5@}<4WwLY~;iKv+J_C0V?c~S}AkQjta|HErkXFHsV?L+BLkm
za^-L^jHa&Rc_=u5s^N-wOTO;egsHS41rdGP-q_;t4ZqCMPh87tR5CKOU^B8yF(??`
zUlXqO(i=9^uBk0`J=(%t8eIb}Swq$E0a8rdr9IX^L=vPk4s&)NzxV-uu{!yI;?0IP
zE4F9(o}>dNIB!-Q3k6+zM@mP=D`YwoOoID$>4Mp^py#edEvm(xCMMeo#(Hw5XB0V{
zYe|Lcc(X5Fj!wq2MK-7DZh`4R+OEY@_Dud6utg41%0`VZEgRm3Tyj}oG>7$b2PI3U
zS+oV#OOk}tK7)une+g<}YruR<8Q{7-@U&u7QXhZr`W%?lkZ;1|1Z7{_Y~acd>8?nQ
zTFt{bMaVy`Y=g%gRA0$GG@Nx%kk{5sPJy;d4m&B~<B@~Kff;Q%8&)P6_-f{iz#;|m
z+I6N3axke?S&3181D8e&K{b~!TO=-1_?3&wYPjXqas+3Lfw9V$wn!fNR+cd8$1||H
zkJJexX4$2xZIaV}`_5<gS7(4v$MEA$^5%NWn+Bi3eKO%Rd!q`97vCvhQYX2Rs&22X
z25`r8%h%CrNf&a<z(>~oboG|7cVaQ#S{u1=dH|cSmn~3Z>HYFFwc9lLkRQ7lmkZYE
z0ebT~NZ2%UVay`7u14t8G*eT#)A;`Qypr$SHv07BKy*n+c2TNwME9sR%>6dmcRt-(
z(wY9Qa;oD!(f{PVdb9bi{D|Lv_QqAdc&gQHf40)ecKNZ`$VcPtIlf%iV8Q9AF#oYP
zsI&Spy?^!brNxJ(NNd1U`-A$u8qwojsk;pK!wa2n@0td@+sEX5QcP%5F8lqF&0=AP
zu<{B26}MaGz4G>^a+<L7Rp<A-*Z<R1RODy>Q~salJ!Q3j;XSd&Q}MWUZndk&;zMau
zm9Y_r91(D3esEvx`UR$`5Sm|su)j!}KilK?jc!&{9a~>BenOsHAJ<AtUq6}j{*e27
z;GWH2g?kX-ZP_~?U&kO^A7D0i{5rkfo=<+8n(MYq5eLPzGu1V7lg0Z{9iP|m6+67n
zHy|~r065lUZ>=G7^J^*O`{T}e9^Sr6bn9s}5p~GciO*Zp$2;H0pwAor>*BMH_rXu{
z)N;GZ;P*}OH?L8KPMWvoO2KS6vw2LP=BP)SJFds*#3p%6^kpF8k;eNSr1a|}_0KY@
zMZS-B(#VBFhWRFN*LMwap^xkx(_yI7Y^-2CY*D?ymvlYwU<0hMCM;39bCN+czE#+L
zZNgshFmJW8D&Ns|R^c@l8nE)l%Q_$PkI$7gKIVRyp|9%s6oS|kgOzUPE_QZU;o;AG
zL88p|P8;aU#G*PL{s|sEwPg@yA|&M=OAS)4ljO6-b0Uh15NS=R2iSBalagCnxVcu-
z)G$qM+^`GYrStOk4EG9lia*-h7q3wIla2bbA&VKY^w37OTJCdI`tfRfoi5nA5x?C%
zo_eGrKf_I8hA~jp6hZr<F3t}Y4J$_Ul;`GkgK9BmPgB=o7NuO5_LEO+N$bJO^sLeR
z18@)bKaG0^e?#1RssE30&)}a1_d5Or?)Cm}+zbC7-1|#$Z}RVmd+`6C<KDtwh<j}R
zPvBnLKOydg{0(t0|F6M4{Qn~EIsg4}5BT@MJ?6g^?lt~naBsEpPvM@`|KQ$#EAAou
z5AOY?xJUDk!9B=-k9({Cf_s{OfP0vK3GUfU{%3K|<uAuQ+&_kUXMaE3oBs#k9@wA4
zJ<or|J-&Z~duRP`ZB74;xOe*hAnu+0S8*@%zYX_nI)8_Iz`p_RRsNT759%+&JsY1t
zfqRgDYur2fr@%enUyFPDe-ii3{*$-|@t?uHH^*l*?~Z>E?m7Qy+*|%v+!Oje?p6Iq
zxEJ-$jeA1>Fx=but8owO&*EN_!~c)C2mG7k-u-`wd!7FTxTo>g;$G}uh<iH!gL{7t
z_dMWDzDv$)GSl*rPKB@Tsgy=4FeMly&oz3gFF&^AnFm-47TxK$aFD5$VnEVb`^}dl
zV*x6L>SOK2x>qu%Q--AZwOB?|tLG2=(q>H9mb59w#i`(C#eYR3p?P*?UhSr|Zz^9h
zIT!^2L!Ik=BQLmPb#Ol=8@eh6t)qlfrLs>83||?5f^=CNgF>(uVcHeC@_;O|fn+%C
zHylX@od+i>C8n#Vdw-sU3-8u|v*AW9*^6Azjy=xEc9BR8638zsv_I7s3pMoO-MpAx
zOy>*l$k#l4VSxo+%I5AFf^%R>A0(BGSUxxa--evCxD6WP`URsC<@3$j{aY32LaG!&
z!)^^=ENsjfp1(vkolHKh=oZzb-T5g&(OHO18XhC<>e~%o`XbyGNK$BfIOg#A=9O-+
zyTX`hy2ZrvOiGBj*hxuK4M|~S#lPS4f3c@0SS~_WNrZZuJ;gIk0)6ybEd`y(Zqd-B
zQ$4_D5rUB~`CKd$n<i=HEWZ-x@U)!3nxdnt1)?sUOLCaWi-&sWq4PuRn3m}0g_g^v
z6L|lL&uF&~<j2?_;@;xF;vS{5??LsbD%$e(_iw)L*w2JI-y4&Jo)-z@e!V`*8a+L0
z{Is^rXMIWat9yk2U)*WR{z1{{)e$f1EftLLdJa8yL+G<6*_l3#=cMB`w=UV+7`6Jm
zb7B#_az=k}FzMIjL+K`0DQVN)DY1X#L*^X4Ao8|;%b@@9>Oeo?Vm;~eq_pL7seQp$
z;XXcrPP<t3HVE<lQFS&MMyTV^XnB@~@Ll=N=k2QL-luc_>Vv7pr!&PKJKyas{jrnm
z{x!s3h3)->-g{(E4a)yRuZ1r@xI-!X{n4j#-{tZG+~<j}FuO(6=k>Z1<oB}owZdIA
z9_Z3`4gvspf&l=q006+u+QCuJ(vsfZ(AY>xz-E>at>Zu~<uuqfj$(a5*zD6xJuYTo
zbKCH!IWkx5SqxlYAW}y2sc&E)yIdxC0I8thD|Ty=kHB$(df79|3-H2Y^Cc_uvcMSI
z9Yk;@LvB2FFNHEzFHlZ)Qa*mm-h3jF8g#X)Y^02v2J_&4=)r5%&T6rrM54C+SJ+(2
zDA+82df^X{8hrXuof%rvR^JnL1Kg!xFWs;9P(j5+1_H42^?pON4D)le5Qv<r{4L64
zql}~(MMNsSD^x*UplQNpk>p6olPd8&WodkapiD$4?LrraTl}2$nxd2E6=IPNnX6eI
zzO7V5I4!7|^C7&fqYmVWL?Q*k&^Wf3Od3l(5z|T}69TznBC*pcrs3wY<o+5Un<cp^
zwsY#19n?Nk2=+gz%l1PRWYvd}wxIP37Ch83MCj4TR!`zFdR(WPRq;bbzfW&f<ZGAU
z?$Lx&MjaFkvODAZ4~p%ey)Z*w4v`XEb@Sa*>@0E_tktDcWIN5?Ahg*b=(l}Sd|3M7
z)Y-q$-<Y}LQQ5dyV^i5Q4jpiKe?59V7_#?J?z5Q9A|&P^%~aCr{&ErlBYyLIaluy}
z9e$Vo(8SkSRb8Ewe4!ei-Z<laW#x9Gt|ocUY3^SO$g@Z0vDQiZWNk2z6+LC`T|M-O
zC@%#9N&xn!4+;6*_1iiD6!-!DuOmbLF!GOenf^ZV3Hsmloc>|(A8RE2eXtVDpJ^-o
x!!&;ktbd<|iQ>=j^&h7BW4q(`Y2XC^&0dk0g81~imk__*yuW=xD*U^r{{<w^nNk1%
copy from experiments/searchtest-turkey-release35/manifest.json
copy to experiments/searchtest-twhk-release3536/manifest.json
--- a/experiments/searchtest-turkey-release35/manifest.json
+++ b/experiments/searchtest-twhk-release3536/manifest.json
@@ -1,18 +1,18 @@
 {
   "publish": true,
   "priority": 5,
-  "name": "Search Experiment",
-  "description": "Test alternate default search settings for users of Firefox in Turkey.",
-  "info": "<p><a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=1127076\">Related bug</a></p>",
+  "name": "Search Experiment - HK and TW",
+  "description": "Test alternate default search settings for users of Firefox in Hong Kong and Taiwan.",
+  "info": "<p><a href=\"https://bugzilla.mozilla.org/show_bug.cgi?id=1144367\">Related bug</a></p>",
   "manifest": {
-    "id": "fx-searchtest-tr-release35@mozilla.org",
-    "startTime": 1422410400,
-    "endTime": 1428375600,
+    "id": "fx-searchtest-twhk-release3536@mozilla.org",
+    "startTime": 1427259928,
+    "endTime": 1430967600,
     "maxActiveSeconds": 2592000,
     "appName": ["Firefox"],
     "channel": ["release"],
     "minVersion": "35",
-    "locale": ["tr"],
-    "sample": 0.7
+    "locale": ["zh-TW"],
+    "sample": 0.5
   }
 }