Merge m-c to inbound. a=merge
authorRyan VanderMeulen <ryanvm@gmail.com>
Sat, 30 Aug 2014 12:43:03 -0400
changeset 224254 8be05e03abcd84c8bd055cb61ec48119df0575f5
parent 224253 68e542dad3c1ab31e68a7eb2fe73ab7bfb3c5fe1 (current diff)
parent 224243 82e1c0a8c5898a595d2030a0eb9719ccb4897184 (diff)
child 224255 d89d83ded3372f13c87390001e4d482cb29c112e
push id3979
push userraliiev@mozilla.com
push dateMon, 13 Oct 2014 16:35:44 +0000
treeherdermozilla-beta@30f2cc610691 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone34.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge m-c to inbound. a=merge
mobile/android/base/sync/setup/activities/LocaleAware.java
mobile/android/search/res/values/search_arrays.xml
mobile/android/stumbler/java/org/mozilla/mozstumbler/PlaceHolder.java
mobile/android/thirdparty/ch/boye/httpclientandroidlib/auth/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/auth/params/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/client/entity/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/client/methods/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/client/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/client/params/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/client/protocol/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/client/utils/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/params/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/routing/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/LayeredSchemeSocketFactoryAdaptor.java
mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/scheme/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/TrustManagerDecorator.java
mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/ssl/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/conn/util/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/cookie/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/cookie/params/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/entity/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/auth/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/client/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/conn/HttpInetSocketAddress.java
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/conn/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/conn/tsccm/RefQueueHandler.java
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/conn/tsccm/RefQueueWorker.java
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/conn/tsccm/doc-files/tsccm-structure.png
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/conn/tsccm/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/cookie/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/entity/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/io/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/io/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/message/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/params/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/protocol/package.html
mobile/android/thirdparty/ch/boye/httpclientandroidlib/util/package.html
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -1,2479 +0,0 @@
-<?xml version="1.0"?>
-<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1408662916000">
-  <emItems>
-      <emItem  blockID="i454" id="sqlmoz@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i58" id="webmaster@buzzzzvideos.info">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i652" id="garg_sms@yahoo.in">
-                        <versionRange  minVersion="67.9" maxVersion="67.9" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i71" id="youtube@2youtube.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i404" id="{a9bb9fa0-4122-4c75-bd9a-bc27db3f9155}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i8" id="{B13721C7-F507-4982-B2E5-502A71474FED}">
-                        <versionRange  minVersion=" " severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i646" id="{e1aaa9f8-4500-47f1-9a0a-b02bd60e4076}">
-                        <versionRange  minVersion="178.7.0" maxVersion="178.7.0" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i684" id="{9edd0ea8-2819-47c2-8320-b007d5996f8a}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-                  <pref>browser.search.defaultenginename</pref>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i107" os="WINNT" id="{ABDE892B-13A8-4d1b-88E6-365A6E755758}">
-                        <versionRange  minVersion="0" maxVersion="15.0.5" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i88" id="anttoolbar@ant.com">
-                        <versionRange  minVersion="2.4.6.4" maxVersion="2.4.6.4" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i484" id="plugin@getwebcake.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i688" id="firefox-extension@mozilla.org">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i65" id="activity@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i527" id="/^({bfec236d-e122-4102-864f-f5f19d897f5e}|{3f842035-47f4-4f10-846b-6199b07f09b8}|{92ed4bbd-83f2-4c70-bb4e-f8d3716143fe})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i535" id="/^ext@WebexpEnhancedV1alpha[0-9]+\.net$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i105" id="{95ff02bc-ffc6-45f0-a5c8-619b8226a9de}">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i626" id="{20AD702C-661E-4534-8CE9-BA4EC9AD6ECC}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i20" id="{AB2CE124-6272-4b12-94A9-7303C7397BD1}">
-                        <versionRange  minVersion="0.1" maxVersion="5.2.0.7164" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i506" id="/^ext@bettersurfplus/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i400" id="{dd6b651f-dfb9-4142-b0bd-09912ad22674}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i488" id="jid1-4P0kohSJxU1qGg@jetpack">
-                        <versionRange  minVersion="1.2.50" maxVersion="1.2.50" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i578" id="jid1-XLjasWL55iEE1Q@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i674" id="crossriderapp12555@crossrider.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i529" id="/^(torntv@torntv\.com|trtv3@trtv\.com|torntv2@torntv\.com|e2fd07a6-e282-4f2e-8965-85565fcb6384@b69158e6-3c3b-476c-9d98-ae5838c5b707\.com)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i486" id="xz123@ya456.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i392" id="{EEE6C361-6118-11DC-9C72-001320C79847}">
-                        <versionRange  minVersion="0" maxVersion="1.7.999" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i406" id="{bf7380fa-e3b4-4db2-af3e-9d8783a45bfc}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i4" id="{4B3803EA-5230-4DC3-A7FC-33638F3D3542}">
-                        <versionRange  minVersion="1.2" maxVersion="1.2">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.0a1" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i492" id="{af95cc15-3b9b-45ae-8d9b-98d08eda3111}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i24" id="{6E19037A-12E3-4295-8915-ED48BC341614}">
-                        <versionRange  minVersion="0.1" maxVersion="1.3.328.4" severity="1">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.7a1pre" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i64" id="royal@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i72" os="WINNT" id="{4ED1F68A-5463-4931-9384-8FFF5ED91D92}">
-                        <versionRange  minVersion="3.4.1" maxVersion="3.4.1.194" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i100" id="{394DCBA4-1F92-4f8e-8EC9-8D2CB90CB69B}">
-                        <versionRange  minVersion="2.5.0" maxVersion="2.5.0" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i77" id="{fa277cfc-1d75-4949-a1f9-4ac8e41b2dfd}">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i40" id="{28387537-e3f9-4ed7-860c-11e69af4a8a0}">
-                        <versionRange  minVersion="0.1" maxVersion="4.3.1.00" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i491" id="{515b2424-5911-40bd-8a2c-bdb20286d8f5}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i698" id="{6b2a75c8-6e2e-4267-b955-43e25b54e575}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i498" id="hoverst@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i127" id="plugin@youtubeplayer.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i430" id="1chtw@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i78" id="socialnetworktools@mozilla.doslash.org">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i238" id="/^pink@.*\.info$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="18.0" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i516" id="/^({3f3cddf8-f74d-430c-bd19-d2c9147aed3d}|{515b2424-5911-40bd-8a2c-bdb20286d8f5}|{17464f93-137e-4646-a0c6-0dc13faf0113}|{d1b5aad5-d1ae-4b20-88b1-feeaeb4c1ebc}|{aad50c91-b136-49d9-8b30-0e8d3ead63d0})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i630" id="webbooster@iminent.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-                  <pref>browser.startup.homepage</pref>
-                  <pref>browser.search.defaultenginename</pref>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i7" id="{2224e955-00e9-4613-a844-ce69fccaae91}">
-                          <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i174" id="info@thebflix.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i478" id="{7e8a1050-cf67-4575-92df-dcc60e7d952d}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i582" id="discoverypro@discoverypro.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i670" id="/^({ad9a41d2-9a49-4fa6-a79e-71a0785364c8})|(ffxtlbr@mysearchdial\.com)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-                  <pref>browser.search.defaultenginename</pref>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i93" id="{68b8676b-99a5-46d1-b390-22411d8bcd61}">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i596" id="{b99c8534-7800-48fa-bd71-519a46cdc7e1}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i140" id="mozillahmpg@mozilla.org">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i500" id="{2aab351c-ad56-444c-b935-38bffe18ad26}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i494" id="/^({e9df9360-97f8-4690-afe6-996c80790da4}|{687578b9-7132-4a7a-80e4-30ee31099e03}|{46a3135d-3683-48cf-b94c-82655cbc0e8a}|{49c795c2-604a-4d18-aeb1-b3eba27e5ea2}|{7473b6bd-4691-4744-a82b-7854eb3d70b6}|{96f454ea-9d38-474f-b504-56193e00c1a5})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i467" id="plugin@analytic-s.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i47" id="youtube@youtube2.com">
-                          <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i640" id="jid0-l9BxpNUhx1UUgRfKigWzSfrZqAc@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i360" id="ytd@mybrowserbar.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i5" id="support@daemon-tools.cc">
-                        <versionRange  minVersion=" " maxVersion="1.0.0.5">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i436" id="/(\{7aeae561-714b-45f6-ace3-4a8aed6e227b\})|(\{01e86e69-a2f8-48a0-b068-83869bdba3d0\})|(\{77f5fe49-12e3-4cf5-abb4-d993a0164d9e\})/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i97" id="support3_en@adobe122.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i342" id="lbmsrvfvxcblvpane@lpaezhjez.org">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i481" id="{B40794A0-7477-4335-95C5-8CB9BBC5C4A5}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i11" id="yslow@yahoo-inc.com">
-                        <versionRange  minVersion="2.0.5" maxVersion="2.0.5">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.5.7" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i62" id="jid0-EcdqvFOgWLKHNJPuqAnawlykCGZ@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i624" id="/^({b95faac1-a3d7-4d69-8943-ddd5a487d966}|{ecce0073-a837-45a2-95b9-600420505f7e}|{2713b394-286f-4d7c-89ea-4174eeab9f5a}|{da7a20cf-bef4-4342-ad78-0240fdf87055})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i472" id="linksicle@linksicle.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i99" id="pfzPXmnzQRXX6@2iABkVe.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i66" id="youtubeer@youtuber.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i438" id="{02edb56b-9b33-435b-b7df-b2843273a694}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i450" id="{dff137ae-1ffd-11e3-8277-b8ac6f996f26}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i521" id="/^({66b103a7-d772-4fcd-ace4-16f79a9056e0}|{6926c7f7-6006-42d1-b046-eba1b3010315}|{72cabc40-64b2-46ed-8648-26d831761150}|{73ee2cf2-7b76-4c49-b659-c3d8cf30825d}|{ca6446a5-73d5-4c35-8aa1-c71dc1024a18}|{5373a31d-9410-45e2-b299-4f61428f0be4})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i499" id="{babb9931-ad56-444c-b935-38bffe18ad26}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i356" id="{341f4dac-1966-47ff-aacf-0ce175f1498a}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i101" id="{3a12052a-66ef-49db-8c39-e5b0bd5c83fa}">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i111" os="WINNT" id="{C3949AC2-4B17-43ee-B4F1-D26B9D42404D}">
-                        <versionRange  minVersion="0" maxVersion="15.0.5" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i136" id="Adobe@flash.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i672" id="/^(saamazon@mybrowserbar\.com)|(saebay@mybrowserbar\.com)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i543" id="{badea1ae-72ed-4f6a-8c37-4db9a4ac7bc9}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i447" id="{B18B1E5C-4D81-11E1-9C00-AFEB4824019B}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i668" id="/^(matchersite(pro(srcs?)?)?\@matchersite(pro(srcs?)?)?\.com)|((pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\@(pro)?sitematcher(_srcs?|pro|site|sitesrc|-generic)?\.com)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i519" id="703db0db-5fe9-44b6-9f53-c6a91a0ad5bd@7314bc82-969e-4d2a-921b-e5edd0b02cf1.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i537" id="rally_toolbar_ff@bulletmedia.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i526" id="/^({83a8ce1b-683c-4784-b86d-9eb601b59f38}|{ef1feedd-d8da-4930-96f1-0a1a598375c6}|{79ff1aae-701f-4ca5-aea3-74b3eac6f01b}|{8a184644-a171-4b05-bc9a-28d75ffc9505}|{bc09c55d-0375-4dcc-836e-0e3c8addfbda}|{cef81415-2059-4dd5-9829-1aef3cf27f4f})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i532" id="249911bc-d1bd-4d66-8c17-df533609e6d8@c76f3de9-939e-4922-b73c-5d7a3139375d.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i258" id="helperbar@helperbar.com">
-                        <versionRange  minVersion="0" maxVersion="1.0" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i98" id="youtubeeing@youtuberie.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i515" id="/^({bf9194c2-b86d-4ebc-9b53-1c08b6ff779e}|{61a83e16-7198-49c6-8874-3e4e8faeb4f3}|{f0af464e-5167-45cf-9cf0-66b396d1918c}|{5d9968c3-101c-4944-ba71-72d77393322d}|{01e86e69-a2f8-48a0-b068-83869bdba3d0})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i549" id="/^firefox@(albrechto|swiftbrowse|springsmart|storimbo|squirrelweb|betterbrowse|lizardlink|rolimno|browsebeyond|clingclang|weblayers|kasimos|higher-aurum|xaven|bomlabio)\.(com?|net|org|info|biz)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i168" id="flashX@adobe.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i39" id="{c2d64ff7-0ab8-4263-89c9-ea3b0f8f050c}">
-                        <versionRange  minVersion="0.1" maxVersion="4.3.1.00" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i42" id="{D19CA586-DD6C-4a0a-96F8-14644F340D60}">
-                        <versionRange  minVersion="0.1" maxVersion="14.4.0" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i449" id="gystqfr@ylgga.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i502" id="{df6bb2ec-333b-4267-8c4f-3f27dc8c6e07}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i142" id="{a3a5c777-f583-4fef-9380-ab4add1bc2a8}">
-                        <versionRange  minVersion="2.0.3" maxVersion="2.0.3">
-                    </versionRange>
-                                <versionRange  minVersion="4.2" maxVersion="4.2" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i306" id="{ADFA33FD-16F5-4355-8504-DF4D664CFE10}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i634" id="jid1-4vUehhSALFNqCw@jetpack">
-                        <versionRange  minVersion="100.7" maxVersion="100.7" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="99.7" maxVersion="99.7" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i63" id="youtube@youtuber.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i398" id="{377e5d4d-77e5-476a-8716-7e70a9272da0}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i18" id="msntoolbar@msn.com">
-                        <versionRange  minVersion=" " maxVersion="6.*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i358" id="lfind@nijadsoft.net">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i628" id="ffxtlbr@iminent.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-                  <pref>browser.startup.homepage</pref>
-                  <pref>browser.search.defaultenginename</pref>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i228" id="crossriderapp5060@crossrider.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i465" id="trtv3@trtv.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i554" id="lightningnewtab@gmail.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i550" id="colmer@yopmail.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i618" id="toolbar@ask.com">
-                        <versionRange  minVersion="3.15.5" maxVersion="3.15.5.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.8" maxVersion="3.15.8.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.10" maxVersion="3.15.11.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.13" maxVersion="3.15.13.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.18" maxVersion="3.15.20.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.22" maxVersion="3.15.22.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.24" maxVersion="3.15.24.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.26" maxVersion="3.15.26.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.28" maxVersion="3.15.28.*" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="3.15.31" maxVersion="3.15.31.*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i75" os="Darwin,Linux" id="firebug@software.joehewitt.com">
-                        <versionRange  minVersion="1.9.0" maxVersion="1.9.0" severity="1">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="9.0a1" maxVersion="9.*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i514" id="/^(67314b39-24e6-4f05-99f3-3f88c7cddd17@6c5fa560-13a3-4d42-8e90-53d9930111f9\.com|ffxtlbr@visualbee\.com|{7aeae561-714b-45f6-ace3-4a8aed6e227b}|{7093ee04-f2e4-4637-a667-0f730797b3a0}|{53c4024f-5a2e-4f2a-b33e-e8784d730938})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i348" id="{13c9f1f9-2322-4d5c-81df-6d4bf8476ba4}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i338" id="{1FD91A9C-410C-4090-BBCC-55D3450EF433}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i364" id="{FE1DEEEA-DB6D-44b8-83F0-34FC0F9D1052}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i59" id="ghostviewer@youtube2.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i222" id="dealcabby@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i51" id="admin@youtubeplayer.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i433" id="{c95a4e8e-816d-4655-8c79-d736da1adb6d}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i352" id="vpyekkifgv@vpyekkifgv.org">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i466" id="afext@anchorfree.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i650" id="jid1-qj0w91o64N7Eeg@jetpack">
-                        <versionRange  minVersion="39.5.1" maxVersion="47.0.4" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i468" id="05dd836e-2cbd-4204-9ff3-2f8a8665967d@a8876730-fb0c-4057-a2fc-f9c09d438e81.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i522" id="/^({976cd962-e0ca-4337-aea7-d93fae63a79c}|{525ba996-1ce4-4677-91c5-9fc4ead2d245}|{91659dab-9117-42d1-a09f-13ec28037717}|{c1211069-1163-4ba8-b8b3-32fc724766be})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i660" id="youplayer@addons.mozilla.org">
-                        <versionRange  minVersion="79.9.8" maxVersion="208.0.1" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i479" id="mbrsepone@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i666" id="wecarereminder@bryan">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i678" id="{C4A4F5A0-4B89-4392-AFAC-D58010E349AF}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i552" id="jid0-O6MIff3eO5dIGf5Tcv8RsJDKxrs@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i256" id="/^[0-9a-f]+@[0-9a-f]+\.info/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i584" id="{52b0f3db-f988-4788-b9dc-861d016f4487}">
-                        <versionRange  minVersion="0" maxVersion="0.1.9999999" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i370" id="happylyrics@hpyproductions.net">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i440" id="{2d069a16-fca1-4e81-81ea-5d5086dcbd0c}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i396" id="/@(ft|putlocker|clickmovie|m2k|sharerepo|smarter-?)downloader\.com$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i22" id="ShopperReports@ShopperReports.com">
-                        <versionRange  minVersion="3.1.22.0" maxVersion="3.1.22.0">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i376" id="{9e09ac65-43c0-4b9d-970f-11e2e9616c55}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i44" id="sigma@labs.mozilla">
-                          <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i501" id="xivars@aol.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i482" id="brasilescapeeight@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i226" id="{462be121-2b54-4218-bf00-b9bf8135b23f}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i246" id="support@vide1flash2.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i48" id="admin@youtubespeedup.com">
-                          <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i218" id="ffxtlbr@claro.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i10" id="{8CE11043-9A15-4207-A565-0C94C42D590D}">
-                          <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i548" id="/^firefox@(jumpflip|webconnect|browsesmart|mybuzzsearch|outobox|greygray|lemurleap|divapton|secretsauce|batbrowse|whilokii|linkswift|qualitink|browsefox|kozaka|diamondata|glindorus|saltarsmart|bizzybolt|websparkle)\.(com?|net|org|info|biz)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i79" id="GifBlock@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i69" id="{977f3b97-5461-4346-92c8-a14c749b77c9}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i17" id="{3252b9ae-c69a-4eaf-9502-dc9c1f6c009e}">
-                        <versionRange  minVersion="2.2" maxVersion="2.2">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i115" id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i477" id="mbrnovone@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i13" id="{E8E88AB0-7182-11DF-904E-6045E0D72085}">
-                          <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i446" id="{E90FA778-C2B7-41D0-9FA9-3FEC1CA54D66}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i562" id="iobitapps@mybrowserbar.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i507" id="4zffxtbr-bs@VideoDownloadConverter_4z.com">
-                        <versionRange  minVersion="0" maxVersion="5.75.3.25126" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i692" id="/^(j003-lqgrmgpcekslhg|SupraSavings|j003-dkqonnnthqjnkq|j003-kaggrpmirxjpzh)@jetpack$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i172" id="info@bflix.info">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i525" id="/^({65f9f6b7-2dae-46fc-bfaf-f88e4af1beca}|{9ed31f84-c8b3-4926-b950-dff74047ff79}|{0134af61-7a0c-4649-aeca-90d776060cb3}|{02edb56b-9b33-435b-b7df-b2843273a694}|{da51d4f6-3e7e-4ef8-b400-9198e0874606}|{b24577db-155e-4077-bb37-3fdd3c302bb5})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i485" id="/^brasilescape.*\@facebook\.com$//">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i52" id="ff-ext@youtube">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i644" id="youtubeunblocker@unblocker.yt">
-                        <versionRange  minVersion="43.4.1" maxVersion="77.5.1" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i38" id="{B7082FAA-CB62-4872-9106-E42DD88EDE45}">
-                        <versionRange  minVersion="0.1" maxVersion="3.3.0.*">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.7a1" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                                <versionRange  minVersion="3.3.1" maxVersion="*">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="5.0a1" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i682" id="f6682b47-e12f-400b-9bc0-43b3ccae69d1@39d6f481-b198-4349-9ebe-9a93a86f9267.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i471" id="firefox@luckyleap.net">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i495" id="kallow@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i483" id="brasilescapefive@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i442" id="pennerdu@faceobooks.ws">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i43" id="supportaccessplugin@gmail.com">
-                          <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i588" id="quick_start@gmail.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i340" id="chiang@programmer.net">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i664" id="123456789@offeringmedia.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i54" id="applebeegifts@mozilla.doslash.org">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i16" id="{27182e60-b5f3-411c-b545-b44205977502}">
-                        <versionRange  minVersion="1.0" maxVersion="1.0">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i504" id="aytac@abc.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i92" id="play5@vide04flash.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i117" id="{ce7e73df-6a44-4028-8079-5927a588c948}">
-                        <versionRange  minVersion="0" maxVersion="1.0.8" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i700" id="2bbadf1f-a5af-499f-9642-9942fcdb7c76@f05a14cc-8842-4eee-be17-744677a917ed.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i453" id="/^brasilescape.*\@facebook\.com$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i658" id="low_quality_flash@pie2k.com">
-                        <versionRange  minVersion="46.2" maxVersion="47.1" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i109" id="{392e123b-b691-4a5e-b52f-c4c1027e749c}">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i598" id="{29b136c9-938d-4d3d-8df8-d649d9b74d02}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i286" id="{58bd07eb-0ee0-4df0-8121-dc9b693373df}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i1" id="mozilla_cc@internetdownloadmanager.com">
-                        <versionRange  minVersion="2.1" maxVersion="3.3">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.0a1" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                                <versionRange  minVersion=" " maxVersion="6.9.8">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.7a1pre" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i308" id="9518042e-7ad6-4dac-b377-056e28d00c8f@f1cc0a13-4df1-4d66-938f-088db8838882.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i67" id="youtube2@youtube2.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i560" id="adsremoval@adsremoval.net">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i461" id="{8E9E3331-D360-4f87-8803-52DE43566502}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i542" id="/^({bf67a47c-ea97-4caf-a5e3-feeba5331231}|{24a0cfe1-f479-4b19-b627-a96bf1ea3a56})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i493" id="12x3q@3244516.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i344" id="lrcsTube@hansanddeta.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i536" id="{25D77636-38B1-1260-887C-2D4AFA92D6A4}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i426" id="addlyrics@addlyrics.net">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i448" id="{0134af61-7a0c-4649-aeca-90d776060cb3}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i694" id="59D317DB041748fdB89B47E6F96058F3@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i104" id="yasd@youasdr3.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i530" id="{739df940-c5ee-4bab-9d7e-270894ae687a}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i524" id="/^({4e988b08-8c51-45c1-8d74-73e0c8724579}|{93ec97bf-fe43-4bca-a735-5c5d6a0a40c4}|{aed63b38-7428-4003-a052-ca6834d8bad3}|{0b5130a9-cc50-4ced-99d5-cda8cc12ae48}|{C4CFC0DE-134F-4466-B2A2-FF7C59A8BFAD})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i68" id="flashupdate@adobe.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i382" id="{6926c7f7-6006-42d1-b046-eba1b3010315}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i432" id="lugcla21@gmail.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i91" id="crossriderapp4926@crossrider.com">
-                        <versionRange  minVersion="0" maxVersion="0.81.43" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i480" id="pluggets@gmail.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i680" id="jid1-bKSXgRwy1UQeRA@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i520" id="/^({7316e43a-3ebd-4bb4-95c1-9caf6756c97f}|{0cc09160-108c-4759-bab1-5c12c216e005}|{ef03e721-f564-4333-a331-d4062cee6f2b}|{465fcfbb-47a4-4866-a5d5-d12f9a77da00}|{7557724b-30a9-42a4-98eb-77fcb0fd1be3}|{b7c7d4b0-7a84-4b73-a7ef-48ef59a52c3b})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i460" id="{845cab51-d8d2-472f-8bd9-2b44642d97c2}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i547" id="{87934c42-161d-45bc-8cef-ef18abe2a30c}">
-                        <versionRange  minVersion="0" maxVersion="3.7.9999999999" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i6" id="{3f963a5b-e555-4543-90e2-c3908898db71}">
-                        <versionRange  minVersion=" " maxVersion="8.5">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i56" id="flash@adobe.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i538" id="{354dbb0a-71d5-4e9f-9c02-6c88b9d387ba}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i451" id="{e44a1809-4d10-4ab8-b343-3326b64c7cdd}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i676" id="SpecialSavings@SpecialSavings.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i216" id="fdm_ffext@freedownloadmanager.org">
-                        <versionRange  minVersion="1.0" maxVersion="1.3.1">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.0a1" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                                <versionRange  minVersion="1.5.7.5" maxVersion="1.5.7.5" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i83" id="flash@adobee.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i566" id="{77BEC163-D389-42c1-91A4-C758846296A5}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i533" id="extension@Fast_Free_Converter.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i362" id="addon@defaulttab.com">
-                        <versionRange  minVersion="0" maxVersion="1.4.4" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i12" id="masterfiler@gmail.com">
-                        <versionRange  severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i576" id="newmoz@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i444" id="fplayer@adobe.flash">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i334" id="{0F827075-B026-42F3-885D-98981EE7B1AE}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i622" id="/^({ebd898f8-fcf6-4694-bc3b-eabc7271eeb1}|{46008e0d-47ac-4daa-a02a-5eb69044431a}|{213c8ed6-1d78-4d8f-8729-25006aa86a76}|{fa23121f-ee7c-4bd8-8c06-123d087282c5}|{19803860-b306-423c-bbb5-f60a7d82cde5})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i518" id="/^({d6e79525-4524-4707-9b97-1d70df8e7e59}|{ddb4644d-1a37-4e6d-8b6e-8e35e2a8ea6c}|{e55007f4-80c5-418e-ac33-10c4d60db01e}|{e77d8ca6-3a60-4ae9-8461-53b22fa3125b}|{e89a62b7-248e-492f-9715-43bf8c507a2f}|{5ce3e0cb-aa83-45cb-a7da-a2684f05b8f3})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i196" id="info@wxdownloadmanager.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i424" id="{C7AE725D-FA5C-4027-BB4C-787EF9F8248A}">
-                        <versionRange  minVersion="0" maxVersion="1.0.0.2" severity="1">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="23.0a1" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i336" id="CortonExt@ext.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i103" id="kdrgun@gmail.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i539" id="ScorpionSaver@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i3" id="langpack-vi-VN@firefox.mozilla.org">
-                        <versionRange  minVersion="2.0" maxVersion="2.0">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i326" id="/^((support2_en@adobe14\.com)|(XN4Xgjw7n4@yUWgc\.com)|(C7yFVpIP@WeolS3acxgS\.com)|(Kbeu4h0z@yNb7QAz7jrYKiiTQ3\.com)|(aWQzX@a6z4gWdPu8FF\.com)|(CBSoqAJLYpCbjTP90@JoV0VMywCjsm75Y0toAd\.com)|(zZ2jWZ1H22Jb5NdELHS@o0jQVWZkY1gx1\.com))$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i470" id="extension@FastFreeConverter.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i162" id="{EB7508CA-C7B2-46E0-8C04-3E94A035BD49}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i620" id="{21EAF666-26B3-4A3C-ABD0-CA2F5A326744}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i354" id="{c0c2693d-2ee8-47b4-9df7-b67a0ee31988}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i106" os="WINNT" id="{97E22097-9A2F-45b1-8DAF-36AD648C7EF4}">
-                        <versionRange  minVersion="0" maxVersion="15.0.5" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i46" id="{841468a1-d7f4-4bd3-84e6-bb0f13a06c64}">
-                        <versionRange  minVersion="0.1" maxVersion="*">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="9.0a1" maxVersion="9.0" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i505" id="extacylife@a.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i15" id="personas@christopher.beard">
-                        <versionRange  minVersion="1.6" maxVersion="1.6">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.6" maxVersion="3.6.*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i304" id="{f0e59437-6148-4a98-b0a6-60d557ef57f4}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i86" id="{45147e67-4020-47e2-8f7a-55464fb535aa}">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i642" id="{bee6eb20-01e0-ebd1-da83-080329fb9a3a}">
-                        <versionRange  minVersion="40.10.1" maxVersion="44.10.1" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i586" id="jid1-0xtMKhXFEs4jIg@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i318" id="ffxtlbr@incredibar.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i19" id="{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}">
-                        <versionRange  minVersion="1.1b1" maxVersion="1.1b1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i531" id="/^(4cb61367-efbf-4aa1-8e3a-7f776c9d5763@cdece6e9-b2ef-40a9-b178-291da9870c59\.com|0efc9c38-1ec7-49ed-8915-53a48b6b7600@e7f17679-2a42-4659-83c5-7ba961fdf75a\.com|6be3335b-ef79-4b0b-a0ba-b87afbc6f4ad@6bbb4d2e-e33e-4fa5-9b37-934f4fb50182\.com)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i490" id="now.msn.com@services.mozilla.org">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i523" id="/^({7e8a1050-cf67-4575-92df-dcc60e7d952d}|{b3420a9c-a397-4409-b90d-bcf22da1a08a}|{eca6641f-2176-42ba-bdbe-f3e327f8e0af}|{707dca12-3f99-4d94-afea-06dcc0ae0108}|{aea20431-87fc-40be-bc5b-18066fe2819c}|{30ee6676-1ba6-455a-a7e8-298fa863a546})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i312" id="extension21804@extension21804.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i545" id="superlrcs@svenyor.net">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i324" id="/^((34qEOefiyYtRJT@IM5Munavn\.com)|(Mro5Fm1Qgrmq7B@ByrE69VQfZvZdeg\.com)|(KtoY3KGxrCe5ie@yITPUzbBtsHWeCdPmGe\.com)|(9NgIdLK5Dq4ZMwmRo6zk@FNt2GCCLGyUuOD\.com)|(NNux7bWWW@RBWyXdnl6VGls3WAwi\.com)|(E3wI2n@PEHTuuNVu\.com)|(2d3VuWrG6JHBXbQdbr@3BmSnQL\.com))$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i503" id="{9CE11043-9A15-4207-A565-0C94C42D590D}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i431" id="chinaescapeone@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i108" id="{28bfb930-7620-11e1-b0c4-0800200c9a66}">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i656" id="hdv@vovcacik.addons.mozilla.org">
-                        <versionRange  minVersion="102.0" maxVersion="102.0" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i262" id="{167d9323-f7cc-48f5-948a-6f012831a69f}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i320" id="torntv@torntv.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i528" id="008abed2-b43a-46c9-9a5b-a771c87b82da@1ad61d53-2bdc-4484-a26b-b888ecae1906.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i469" id="OKitSpace@OKitSpace.es">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i564" id="/^(firefox@vebergreat\.net|EFGLQA@78ETGYN-0W7FN789T87\.COM)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i167" id="{b64982b1-d112-42b5-b1e4-d3867c4533f8}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i84" id="pink@rosaplugin.info">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i654" id="{7b1bf0b6-a1b9-42b0-b75d-252036438bdc}">
-                        <versionRange  minVersion="27.8" maxVersion="27.9" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="27.8" maxVersion="27.9" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i568" os="Darwin" id="thunder@xunlei.com">
-                        <versionRange  minVersion="0" maxVersion="2.0.6" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i439" id="{d2cf9842-af95-48cd-b873-bfbb48cd7f5e}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i346" id="{a6e67e6f-8615-4fe0-a599-34a73fc3fba5}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i220" id="pricepeep@getpricepeep.com">
-                        <versionRange  minVersion="0" maxVersion="2.1.0.19.99" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i590" id="{94cd2cc3-083f-49ba-a218-4cda4b4829fd}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i696" id="/^({fa95f577-07cb-4470-ac90-e843f5f83c52}|ffxtlbr@speedial\.com)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-                  <pref>browser.startup.homepage</pref>
-                  <pref>browser.search.defaultenginename</pref>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i544" id="/^(93abedcf-8e3a-4d02-b761-d1441e437c09@243f129d-aee2-42c2-bcd1-48858e1c22fd\.com|9acfc440-ac2d-417a-a64c-f6f14653b712@09f9a966-9258-4b12-af32-da29bdcc28c5\.com|58ad0086-1cfb-48bb-8ad2-33a8905572bc@5715d2be-69b9-4930-8f7e-64bdeb961cfd\.com)$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i224" id="{336D0C35-8A85-403a-B9D2-65C292C39087}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i61" id="youtube@youtube3.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                                <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i517" id="/^({16e193c8-1706-40bf-b6f3-91403a9a22be}|{284fed43-2e13-4afe-8aeb-50827d510e20}|{5e3cc5d8-ed11-4bed-bc47-35b4c4bc1033}|{7429e64a-1fd4-4112-a186-2b5630816b91}|{8c9980d7-0f09-4459-9197-99b3e559660c}|{8f1d9545-0bb9-4583-bb3c-5e1ac1e2920c})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i509" id="contato@facefollow.net">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i372" id="5nc3QHFgcb@r06Ws9gvNNVRfH.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i474" id="{906000a4-88d9-4d52-b209-7a772970d91f}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i496" id="{ACAA314B-EEBA-48e4-AD47-84E31C44796C}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i570" id="jid1-vW9nopuIAJiRHw@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i476" id="mbroctone@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i70" id="psid-vhvxQHMZBOzUZA@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i473" id="{81b13b5d-fba1-49fd-9a6b-189483ac548a}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i690" id="{55dce8ba-9dec-4013-937e-adbf9317d990">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i437" id="{4933189D-C7F7-4C6E-834B-A29F087BFD23}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i394" id="{7D4F1959-3F72-49d5-8E59-F02F8AA6815D}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i402" id="{99079a25-328f-4bd4-be04-00955acaa0a7}">
-                        <versionRange  minVersion="0.1" maxVersion="4.3.1.00" severity="1">
-                    </versionRange>
-                                <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i165" id="{EEF73632-A085-4fd3-A778-ECD82C8CB297}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i60" id="youtb3@youtb3.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i662" id="imbaty@taringamp3.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i546" id="firefox@browsefox.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i510" id="{3c9a72a0-b849-40f3-8c84-219109c27554}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i23" id="firefox@bandoo.com">
-                        <versionRange  minVersion="5.0" maxVersion="5.0" severity="1">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.7a1pre" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i55" id="youtube@youtube7.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i434" id="afurladvisor@anchorfree.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i90" id="videoplugin@player.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i489" id="astrovia@facebook.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i497" id="{872b5b88-9db5-4310-bdd0-ac189557e5f5}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i686" id="{a7f2cb14-0472-42a1-915a-8adca2280a2c}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-                  <pref>browser.startup.homepage</pref>
-                  <pref>browser.search.defaultenginename</pref>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i580" id="{51c77233-c0ad-4220-8388-47c11c18b355}">
-                        <versionRange  minVersion="0" maxVersion="0.1.9999999" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i541" id="/^({988919ff-0cd8-4d0c-bc7e-60d55a49eb64}|{494b9726-9084-415c-a499-68c07e187244}|{55b95864-3251-45e9-bb30-1a82589aaff1}|{eef3855c-fc2d-41e6-8d91-d368f51b3055}|{90a1b331-c2b4-4933-9f63-ba7b84d60d58}|{d2cf9842-af95-48cd-b873-bfbb48cd7f5e})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i76" id="crossriderapp3924@crossrider.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i648" id="firefoxaddon@youtubeenhancer.com">
-                        <versionRange  minVersion="208.7.0" maxVersion="208.7.0" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="199.7.0" maxVersion="199.7.0" severity="3">
-                    </versionRange>
-                                <versionRange  minVersion="199.7.0" maxVersion="208.7.0" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i441" id="{49c53dce-afa0-49a1-a08b-2eb8e8444128}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i508" id="advance@windowsclient.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i282" id="{33e0daa6-3af3-d8b5-6752-10e949c61516}">
-                        <versionRange  minVersion="0" maxVersion="1.1.999" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i452" id="{77beece6-3997-403a-92fa-0055bfcf88e5}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i45" id="{22119944-ED35-4ab1-910B-E619EA06A115}">
-                        <versionRange  minVersion="0.1" maxVersion="7.6.1">
-                      <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="8.0a1" maxVersion="*" />
-                          </targetApplication>
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i82" id="{8f42fb8b-b6f6-45de-81c0-d6d39f54f971}">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i380" id="{cc8f597b-0765-404e-a575-82aefbd81daf}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i322" id="jid0-Y6TVIzs0r7r4xkOogmJPNAGFGBw@jetpack">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i378" id="{a7aae4f0-bc2e-a0dd-fb8d-68ce32c9261f}">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i73" id="a1g0a9g219d@a1.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i96" id="youtubeee@youtuber3.com">
-                        <versionRange  minVersion="0" maxVersion="*">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i163" id="info@allpremiumplay.info">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i540" id="/^(ffxtlbr@mixidj\.com|{c0c2693d-2ee8-47b4-9df7-b67a0ee31988}|{67097627-fd8e-4f6b-af4b-ecb65e50112e}|{f6f0f973-a4a3-48cf-9a7a-b7a69c30d71a}|{a3d0e35f-f1da-4ccb-ae77-e9d27777e68d}|{1122b43d-30ee-403f-9bfa-3cc99b0caddd})$/">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i455" id="7d51fb17-b199-4d8f-894e-decaff4fc36a@a298838b-7f50-4c7c-9277-df6abbd42a0c.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i374" id="update@firefox.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="3">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i314" id="crossriderapp8812@crossrider.com">
-                        <versionRange  minVersion="0" maxVersion="*" severity="1">
-                    </versionRange>
-                    <prefs>
-              </prefs>
-    </emItem>
-      <emItem  blockID="i21" id="support@update-firefox.com">
-                          <prefs>
-              </prefs>
-    </emItem>
-    </emItems>
-
-  <pluginItems>
-      <pluginItem  blockID="p26">
-      <match name="name" exp="^Yahoo Application State Plugin$" />      <match name="description" exp="^Yahoo Application State Plugin$" />      <match name="filename" exp="npYState.dll" />                                    <versionRange >
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.0a1" maxVersion="3.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p27">
-      <match name="name" exp="QuickTime Plug-in 7[.]1[.]" />            <match name="filename" exp="npqtplugin.?[.]dll" />                                    <versionRange >
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.0a1" maxVersion="3.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p28">
-                  <match name="filename" exp="NPFFAddOn.dll" />                </pluginItem>
-      <pluginItem  blockID="p31">
-                  <match name="filename" exp="NPMySrch.dll" />                </pluginItem>
-      <pluginItem  blockID="p32">
-                  <match name="filename" exp="npViewpoint.dll" />                                    <versionRange >
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p33">
-      <match name="name" exp="[0-6]\.0\.[01]\d{2}\.\d+" />            <match name="filename" exp="npdeploytk.dll" />                      <versionRange  severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p34">
-                  <match name="filename" exp="[Nn][Pp][Jj][Pp][Ii]1[56]0_[0-9]+\.[Dd][Ll][Ll]" />                                    <versionRange >
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="3.6a1pre" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p80">
-      <match name="name" exp="\(TM\)" />      <match name="description" exp="[^\d\._]((0(\.\d+(\.\d+([_\.]\d+)?)?)?)|(1\.(([0-5](\.\d+([_\.]\d+)?)?)|(6(\.0([_\.](0?\d|1\d|2\d|30))?)?)|(7(\.0([_\.][0-2])?)?))))([^\d\._]|$)" />      <match name="filename" exp="(npjp2\.dll)|(libnpjp2\.so)" />                      <versionRange  severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p85">
-                  <match name="filename" exp="JavaPlugin2_NPAPI\.plugin" />                      <versionRange  minVersion="0" maxVersion="13.6.0" severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  os="Darwin" blockID="p89">
-                  <match name="filename" exp="AdobePDFViewerNPAPI\.plugin" />                      <versionRange  minVersion="0" maxVersion="10.1.3" severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p94">
-                  <match name="filename" exp="Flash\ Player\.plugin" />                                    <versionRange  minVersion="0" maxVersion="10.2.159.1" severity="0">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.0.1" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p102">
-                  <match name="filename" exp="npmozax\.dll" />                      <versionRange  minVersion="0" maxVersion="*"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p113">
-                  <match name="filename" exp="npuplaypc\.dll" />                      <versionRange  minVersion="0" maxVersion="1.0.0.0" severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p119">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.(6\.0_(\d|[0-2]\d?|3[0-2])|7\.0(_0?([1-4]))?)([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p123">
-                  <match name="filename" exp="JavaPlugin2_NPAPI\.plugin" />                                    <versionRange  minVersion="0" maxVersion="14.2.0" severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p125">
-      <match name="name" exp="Java\(TM\) Platform SE ((6( U(\d|([0-2]\d)|3[0-2]))?)|(7(\sU[0-4])?))(\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p129">
-                  <match name="filename" exp="Silverlight\.plugin" />                      <versionRange  minVersion="0" maxVersion="5.0.99999" severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p132">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.7\.0(_0?([5-6]))?([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p134">
-      <match name="name" exp="Java\(TM\) Platform SE 7 U[5-6](\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p138">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 7 Update 01" maxVersion="Java 7 Update 06" severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p152">
-                  <match name="filename" exp="npctrl\.dll" />                      <versionRange  minVersion="0" maxVersion="4.1.10328.0" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p154">
-                  <match name="filename" exp="npctrl\.dll" />                      <versionRange  minVersion="5.0" maxVersion="5.1.20124.9999" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p156">
-                  <match name="filename" exp="nppdf32\.dll" />                      <versionRange  minVersion="0" maxVersion="9.5.1" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p158">
-                  <match name="filename" exp="nppdf32\.dll" />                      <versionRange  minVersion="10.0" maxVersion="10.1.5.9999" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p160">
-                  <match name="filename" exp="NPSWF32\.dll" />                                    <versionRange  minVersion="0" maxVersion="10.2.9999" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="4.0" maxVersion="16.*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p176">
-                  <match name="filename" exp="(NPSWF32\.dll)|(Flash\ Player\.plugin)" />                                    <versionRange  minVersion="10.3" maxVersion="10.3.183.18.999" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="19.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p176">
-                  <match name="filename" exp="(NPSWF32\.dll)|(Flash\ Player\.plugin)" />                                    <versionRange  minVersion="10.3" maxVersion="10.3.183.18.999" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0.4" maxVersion="17.0.*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p178">
-                  <match name="filename" exp="(NPSWF[0-9_]*\.dll)|(Flash\ Player\.plugin)" />                                    <versionRange  minVersion="11.0" maxVersion="11.7.700.169" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="19.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p178">
-                  <match name="filename" exp="(NPSWF[0-9_]*\.dll)|(Flash\ Player\.plugin)" />                                    <versionRange  minVersion="11.0" maxVersion="11.7.700.169" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0.4" maxVersion="17.0.*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p180">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 7 Update 0" maxVersion="Java 7 Update 11" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p182">
-      <match name="name" exp="Java\(TM\) Platform SE 7 U([0-9]|(1[0-1]))(\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p184">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.7\.0(_0?([0-9]|(1[0-1]))?)?([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p186">
-      <match name="name" exp="Java\(TM\) Platform SE 6 U3[1-8](\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p188">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 6 Update 0" maxVersion="Java 6 Update 38" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p190">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.6\.0_3[1-8]([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p210">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.7\.0(_0?7)?([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p212">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 7 Update 07" maxVersion="Java 7 Update 07" severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p214">
-      <match name="name" exp="Java\(TM\) Platform SE 7 U7(\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="0.1" maxVersion="17.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p240">
-                  <match name="filename" exp="DivXBrowserPlugin\.plugin" />                      <versionRange  minVersion="0" maxVersion="1.4" severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  os="Darwin" blockID="p242">
-            <match name="description" exp="Flip4Mac" />                                          <versionRange  minVersion="0" maxVersion="2.4.3.999" severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="18.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p248">
-                  <match name="filename" exp="Scorch\.plugin" />                      <versionRange  minVersion="0" maxVersion="6.2.0b88" severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p250">
-                  <match name="filename" exp="npFoxitReaderPlugin\.dll" />                      <versionRange  minVersion="0" maxVersion="2.2.1.530" severity="0" vulnerabilitystatus="2"></versionRange>
-                        </pluginItem>
-      <pluginItem  os="Darwin" blockID="p252">
-                  <match name="filename" exp="AdobePDFViewerNPAPI\.plugin" />                      <versionRange  minVersion="11.0.0" maxVersion="11.0.01" severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p254">
-                  <match name="filename" exp="PDF Browser Plugin\.plugin" />                                    <versionRange  minVersion="0" maxVersion="2.4.2" severity="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="18.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p260">
-                  <match name="filename" exp="(NPSWF32\.dll)|(Flash\ Player\.plugin)" />                                    <versionRange  minVersion="0" maxVersion="10.2.9999" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="18.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p260">
-                  <match name="filename" exp="(NPSWF32\.dll)|(Flash\ Player\.plugin)" />                                    <versionRange  minVersion="0" maxVersion="10.2.9999" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0.4" maxVersion="17.0.*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p290">
-                  <match name="filename" exp="(NPSWF32\.dll)|(Flash\ Player\.plugin)" />                                    <versionRange  minVersion="10.3.183.19" maxVersion="10.3.183.66" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="19.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p290">
-                  <match name="filename" exp="(NPSWF32\.dll)|(Flash\ Player\.plugin)" />                                    <versionRange  minVersion="10.3.183.19" maxVersion="10.3.183.66" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0.4" maxVersion="17.0.*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p292">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 7 Update 12" maxVersion="Java 7 Update 15" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p294">
-      <match name="name" exp="Java\(TM\) Platform SE 7 U1[2-5](\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p296">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.7\.0_1[2-5]([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p298">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 6 Update 39" maxVersion="Java 6 Update 41" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p300">
-      <match name="name" exp="Java\(TM\) Platform SE 6 U(39|40|41)(\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p302">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.6\.0_(39|40|41)([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p328">
-                  <match name="filename" exp="Silverlight\.plugin" />                                    <versionRange  minVersion="5.1" maxVersion="5.1.20124.9999" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="19.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p328">
-                  <match name="filename" exp="Silverlight\.plugin" />                                    <versionRange  minVersion="5.1" maxVersion="5.1.20124.9999" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0.4" maxVersion="17.0.*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p330">
-            <match name="description" exp="^Shockwave Flash (([1-9]\.[0-9]+)|(10\.([0-2]|(3 r(([0-9][0-9]?)|1(([0-7][0-9])|8[0-2]))))))( |$)" />      <match name="filename" exp="libflashplayer\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="19.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p330">
-            <match name="description" exp="^Shockwave Flash (([1-9]\.[0-9]+)|(10\.([0-2]|(3 r(([0-9][0-9]?)|1(([0-7][0-9])|8[0-2]))))))( |$)" />      <match name="filename" exp="libflashplayer\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0.4" maxVersion="17.0.*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p332">
-            <match name="description" exp="^Shockwave Flash 11.(0|1) r[0-9]{1,3}$" />      <match name="filename" exp="libflashplayer\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="19.0a1" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p332">
-            <match name="description" exp="^Shockwave Flash 11.(0|1) r[0-9]{1,3}$" />      <match name="filename" exp="libflashplayer\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0.4" maxVersion="17.0.*" />
-                          </targetApplication>
-                  </versionRange>
-                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
-          </pluginItem>
-      <pluginItem  blockID="p366">
-                  <match name="filename" exp="Scorch\.plugin" />                      <versionRange  minVersion="6.2.0" maxVersion="6.2.0" severity="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p408">
-                  <match name="filename" exp="QuickTime Plugin\.plugin" />                      <versionRange  minVersion="0" maxVersion="7.6.5" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p410">
-                  <match name="filename" exp="npqtplugin\.dll" />                      <versionRange  minVersion="0" maxVersion="7.7.3" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p412">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.6\.0_4[2-5]([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p414">
-      <match name="name" exp="Java\(TM\) Platform SE 6 U4[2-5](\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p416">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 6 Update 42" maxVersion="Java 6 Update 45" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p418">
-      <match name="name" exp="Java\(TM\) Plug-in 1\.7\.0_(1[6-9]|2[0-4])([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p420">
-      <match name="name" exp="Java\(TM\) Platform SE 7 U(1[6-9]|2[0-4])(\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p422">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 7 Update 16" maxVersion="Java 7 Update 24" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p428">
-                  <match name="filename" exp="np[dD]eployJava1\.dll" />                      <versionRange  severity="0" vulnerabilitystatus="2"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p456">
-                  <match name="filename" exp="npvlc\.dll" />                      <versionRange  minVersion="0" maxVersion="2.0.5" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p457">
-      <match name="name" exp="Java(\(TM\))? Plug-in ((1\.7\.0_(2[5-9]|3\d|4[0-4]))|(10\.4[0-4](\.[0-9]+)?))([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p458">
-      <match name="name" exp="Java\(TM\) Platform SE 7 U(2[5-9]|3\d|4[0-4])(\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                                    <versionRange  severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p459">
-                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                                    <versionRange  minVersion="Java 7 Update 25" maxVersion="Java 7 Update 44" severity="0" vulnerabilitystatus="1">
-                                <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
-                              <versionRange  minVersion="17.0" maxVersion="*" />
-                          </targetApplication>
-                  </versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p556">
-                  <match name="filename" exp="npUnity3D32\.dll" />                      <versionRange  minVersion="0" maxVersion="4.3.4.99999999" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p558">
-            <match name="description" exp="^($|Unity Web Player version ([0-3]|(4\.([0-2]|3(\.[0-4])?[^0-9.]))))" />      <match name="filename" exp="Unity Web Player\.plugin" />                      <versionRange  severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p572">
-                  <match name="filename" exp="npdjvu\.dll" />                      <versionRange  minVersion="0" maxVersion="6.1.4.27993" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p574">
-                  <match name="filename" exp="NPDjVu\.plugin" />                      <versionRange  minVersion="0" maxVersion="6.1.1" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p592">
-                  <match name="filename" exp="CiscoWebCommunicator\.plugin" />                      <versionRange  minVersion="0" maxVersion="3.0.5.99999999999999" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-      <pluginItem  blockID="p594">
-                  <match name="filename" exp="npCiscoWebCommunicator\.dll" />                      <versionRange  minVersion="0" maxVersion="3.0.5.99999999999999" severity="0" vulnerabilitystatus="1"></versionRange>
-                        </pluginItem>
-    </pluginItems>
-
-  <gfxItems>
-    <gfxBlacklistEntry  blockID="g35">      <os>WINNT 6.1</os>      <vendor>0x10de</vendor>              <devices>
-                      <device>0x0a6c</device>
-                  </devices>
-            <feature>DIRECT2D</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.17.12.5896</driverVersion>      <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g36">      <os>WINNT 6.1</os>      <vendor>0x10de</vendor>              <devices>
-                      <device>0x0a6c</device>
-                  </devices>
-            <feature>DIRECT3D_9_LAYERS</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.17.12.5896</driverVersion>      <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g37">      <os>WINNT 5.1</os>      <vendor>0x10de</vendor>            <feature>DIRECT3D_9_LAYERS</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>7.0.0.0</driverVersion>      <driverVersionComparator>GREATER_THAN_OR_EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g144">      <os>All</os>      <vendor>0x1002</vendor>            <feature>DIRECT2D</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.982.0.0</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g146">      <os>All</os>      <vendor>0x1022</vendor>            <feature>DIRECT2D</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.982.0.0</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g148">      <os>All</os>      <vendor>0x1022</vendor>            <feature>DIRECT3D_9_LAYERS</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.982.0.0</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g150">      <os>All</os>      <vendor>0x1002</vendor>            <feature>DIRECT3D_9_LAYERS</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.982.0.0</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g192">      <os>WINNT 6.2</os>      <vendor>0x1002</vendor>            <feature>DIRECT2D</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>9.10.8.0</driverVersion>      <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g194">      <os>WINNT 6.2</os>      <vendor>0x1022</vendor>            <feature>DIRECT2D</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>9.10.8.0</driverVersion>      <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g198">      <os>Darwin 10</os>      <vendor>0x10de</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g200">      <os>Darwin 11</os>      <vendor>0x10de</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g202">      <os>Darwin 12</os>      <vendor>0x10de</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g204">      <os>Darwin 10</os>      <vendor>0x8086</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g206">      <os>Darwin 11</os>      <vendor>0x8086</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g208">      <os>Darwin 12</os>      <vendor>0x8086</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g230">      <os>Darwin 10</os>      <vendor>0x1002</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g232">      <os>Darwin 11</os>      <vendor>0x1002</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g234">      <os>Darwin 12</os>      <vendor>0x1002</vendor>            <feature>WEBGL_MSAA</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g278">      <os>WINNT 6.1</os>      <vendor>0x1002</vendor>              <devices>
-                      <device>0x9802</device>
-                      <device>0x9803</device>
-                      <device>0x9803</device>
-                      <device>0x9804</device>
-                      <device>0x9805</device>
-                      <device>0x9806</device>
-                      <device>0x9807</device>
-                  </devices>
-            <feature>DIRECT2D</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g280">      <os>WINNT 6.1</os>      <vendor>0x1002</vendor>              <devices>
-                      <device>0x9802</device>
-                      <device>0x9803</device>
-                      <device>0x9803</device>
-                      <device>0x9804</device>
-                      <device>0x9805</device>
-                      <device>0x9806</device>
-                      <device>0x9807</device>
-                  </devices>
-            <feature>DIRECT3D_9_LAYERS</feature>      <featureStatus>BLOCKED_DEVICE</featureStatus>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g511">      <os>WINNT 5.1</os>      <vendor>0x8086</vendor>            <feature>DIRECT3D_9_LAYERS, WEBGL_ANGLE</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>6.14.10.5218</driverVersion>      <driverVersionComparator>LESS_THAN</driverVersionComparator>    </gfxBlacklistEntry>
-    </gfxItems>
-
-
-</blocklist>
\ No newline at end of file
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1390,16 +1390,19 @@ pref("devtools.tilt.outro_transition", t
 // - showTrailingSpace: Whether to highlight trailing space or not.
 // - enableCodeFolding: Whether to enable code folding or not.
 // - enableAutocompletion: Whether to enable JavaScript autocompletion.
 pref("devtools.scratchpad.recentFilesMax", 10);
 pref("devtools.scratchpad.showTrailingSpace", false);
 pref("devtools.scratchpad.enableCodeFolding", true);
 pref("devtools.scratchpad.enableAutocompletion", true);
 
+// Enable the Storage Inspector
+pref("devtools.storage.enabled", false);
+
 // Enable the Style Editor.
 pref("devtools.styleeditor.enabled", true);
 pref("devtools.styleeditor.source-maps-enabled", false);
 pref("devtools.styleeditor.autocompletion-enabled", true);
 pref("devtools.styleeditor.showMediaSidebar", true);
 pref("devtools.styleeditor.mediaSidebarWidth", 238);
 pref("devtools.styleeditor.navSidebarWidth", 245);
 pref("devtools.styleeditor.transitions", true);
--- a/browser/base/content/browser-safebrowsing.js
+++ b/browser/base/content/browser-safebrowsing.js
@@ -1,35 +1,34 @@
 # 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/.
 
 #ifdef MOZ_SAFE_BROWSING
 var gSafeBrowsing = {
 
   setReportPhishingMenu: function() {
-
     // A phishing page will have a specific about:blocked content documentURI
-    var isPhishingPage = content.document.documentURI.startsWith("about:blocked?e=phishingBlocked");
+    var uri = getBrowser().currentURI;
+    var isPhishingPage = uri && uri.spec.startsWith("about:blocked?e=phishingBlocked");
 
     // Show/hide the appropriate menu item.
     document.getElementById("menu_HelpPopup_reportPhishingtoolmenu")
             .hidden = isPhishingPage;
     document.getElementById("menu_HelpPopup_reportPhishingErrortoolmenu")
             .hidden = !isPhishingPage;
 
     var broadcasterId = isPhishingPage
                         ? "reportPhishingErrorBroadcaster"
                         : "reportPhishingBroadcaster";
 
     var broadcaster = document.getElementById(broadcasterId);
     if (!broadcaster)
       return;
 
-    var uri = getBrowser().currentURI;
     if (uri && (uri.schemeIs("http") || uri.schemeIs("https")))
       broadcaster.removeAttribute("disabled");
     else
       broadcaster.setAttribute("disabled", true);
   },
 
   /**
    * Used to report a phishing page or a false positive
new file mode 100644
--- /dev/null
+++ b/browser/components/loop/CardDavImporter.jsm
@@ -0,0 +1,463 @@
+/* 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/. */
+
+"use strict";
+
+const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
+
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/Promise.jsm");
+Cu.import("resource://gre/modules/Task.jsm");
+Cu.import("resource://gre/modules/Log.jsm");
+
+this.EXPORTED_SYMBOLS = ["CardDavImporter"];
+
+let log = Log.repository.getLogger("Loop.Importer.CardDAV");
+log.level = Log.Level.Debug;
+log.addAppender(new Log.ConsoleAppender(new Log.BasicFormatter()));
+
+const DEPTH_RESOURCE_ONLY = "0";
+const DEPTH_RESOURCE_AND_CHILDREN = "1";
+const DEPTH_RESOURCE_AND_ALL_DESCENDENTS = "infinity";
+
+this.CardDavImporter = function() {
+};
+
+/**
+ * CardDAV Address Book importer for Loop.
+ *
+ * The model for address book importers is to have a single public method,
+ * "startImport." When the import is done (or upon a fatal error), the
+ * caller's callback method is called.
+ *
+ * The current model for this importer is based on the subset of CardDAV
+ * implemented by Google. In theory, it should work with other CardDAV
+ * sources, but it has only been tested against Google at the moment.
+ *
+ * At the moment, this importer assumes that no local changes will be made
+ * to data retreived from a remote source: when performing a re-import,
+ * any records that have been previously imported will be completely
+ * removed and replaced with the data received from the CardDAV server.
+ * Witout this behavior, it would be impossible for users to take any
+ * actions to remove fields that are no longer valid.
+ */
+
+this.CardDavImporter.prototype = {
+  /**
+   * Begin import of an address book from a CardDAV server.
+   *
+   * @param {Object}   options  Information needed to perform the address
+   *                            book import. The following fields are currently
+   *                            defined:
+   *                              - "host": CardDAV server base address
+   *                                (e.g., "google.com")
+   *                              - "auth": Authentication mechanism to use.
+   *                                Currently, only "basic" is implemented.
+   *                              - "user": Username to use for basic auth
+   *                              - "password": Password to use for basic auth
+   * @param {Function} callback Callback function that will be invoked once the
+   *                            import operation is complete. The first argument
+   *                            passed to the callback will be an 'Error' object
+   *                            or 'null'. If the import operation was
+   *                            successful, then the second parameter will be a
+   *                            count of the number of contacts that were
+   *                            successfully imported.
+   * @param {Object}   db       Database to add imported contacts into.
+   *                            Nominally, this is the LoopContacts API. In
+   *                            practice, anything with the same interface
+   *                            should work here.
+   */
+
+  startImport: function(options, callback, db) {
+    let auth;
+    if (!("auth" in options)) {
+      callback(new Error("No authentication specified"));
+      return;
+    }
+
+    if (options.auth === "basic") {
+      if (!("user" in options) || !("password" in options)) {
+        callback(new Error("Missing user or password for basic authentication"));
+        return;
+      }
+      auth = { method: "basic",
+               user: options.user,
+               password: options.password };
+    } else {
+      callback(new Error("Unknown authentication method"));
+      return;
+    }
+
+    if (!("host" in options)){
+      callback(new Error("Missing host for CardDav import"));
+      return;
+    }
+    let host = options.host;
+
+    Task.spawn(function* () {
+      log.info("Starting CardDAV import from " + host);
+      let baseURL = "https://" + host;
+      let startURL = baseURL + "/.well-known/carddav";
+      let abookURL;
+
+      // Get list of contact URLs
+      let body = "<d:propfind xmlns:d='DAV:'><d:prop><d:getetag />" +
+                 "</d:prop></d:propfind>";
+      let abook = yield this._davPromise("PROPFIND", startURL, auth,
+                                         DEPTH_RESOURCE_AND_CHILDREN, body);
+
+      // Build multiget REPORT body from URLs in PROPFIND result
+      let contactElements = abook.responseXML.
+                            getElementsByTagNameNS("DAV:", "href");
+
+      body = "<c:addressbook-multiget xmlns:d='DAV:' " +
+             "xmlns:c='urn:ietf:params:xml:ns:carddav'>" +
+             "<d:prop><d:getetag /> <c:address-data /></d:prop>\n";
+
+      for (let element of contactElements) {
+        let href = element.textContent;
+        if (href.substr(-1) == "/") {
+          abookURL = baseURL + href;
+        } else {
+          body += "<d:href>" + href + "</d:href>\n";
+        }
+      }
+      body += "</c:addressbook-multiget>";
+
+      // Retreive contact URL contents
+      let allEntries = yield this._davPromise("REPORT", abookURL, auth,
+                                              DEPTH_RESOURCE_AND_CHILDREN,
+                                              body);
+
+      // Parse multiget entites and add to DB
+      let addressData = allEntries.responseXML.getElementsByTagNameNS(
+        "urn:ietf:params:xml:ns:carddav", "address-data");
+
+      log.info("Retreived " + addressData.length + " contacts from " +
+                   host + "; importing into database");
+
+      let importCount = 0;
+      for (let i = 0; i < addressData.length; i++) {
+        let vcard = addressData.item(i).textContent;
+        let contact = this._convertVcard(vcard);
+        contact.id += "@" + host;
+        contact.category = ["carddav@" + host];
+
+        let existing = yield this._dbPromise(db, "getByServiceId", contact.id);
+        if (existing) {
+          yield this._dbPromise(db, "remove", existing._guid);
+        }
+
+        // If the contact contains neither email nor phone number, then it
+        // is not useful in the Loop address book: do not add.
+        if (!("tel" in contact) && !("email" in contact)) {
+          continue;
+        }
+
+        yield this._dbPromise(db, "add", contact);
+        importCount++;
+      }
+
+      return importCount;
+    }.bind(this)).then(
+      (result) => {
+        log.info("Import complete: " + result + " contacts imported.");
+        callback(null, result);
+      },
+      (error) => {
+        log.error("Aborting import: " + error.fileName + ":" +
+                      error.lineNumber + ": " + error.message);
+        callback(error);
+    }).then(null,
+      (error) => {
+        log.error("Error in callback: " + error.fileName +
+                      ":" + error.lineNumber + ": " + error.message);
+      callback(error);
+    }).then(null,
+      (error) => {
+        log.error("Error calling failure callback, giving up: " +
+                      error.fileName + ":" + error.lineNumber + ": " +
+                      error.message);
+    });
+  },
+
+  /**
+   * Wrap a LoopContacts-style operation in a promise. The operation is run
+   * immediately, and a corresponding Promise is returned. Error callbacks
+   * cause the promise to be rejected, and success cause it to be resolved.
+   *
+   * @param {Object} db     Object the operation is to be performed on
+   * @param {String} method Name of operation being wrapped
+   * @param {Object} param  Parameter to be passed to the operation
+   *
+   * @return {Object} Promise corresponding to the result of the operation.
+   */
+
+  _dbPromise: function(db, method, param) {
+    return new Promise((resolve, reject) => {
+      db[method](param, (error, result) => {
+        if (error) {
+          reject(error);
+        } else {
+          resolve(result);
+        }
+      });
+    });
+  },
+
+  /**
+   * Converts a contact in VCard format (see RFC 6350) to the format used
+   * by the LoopContacts class.
+   *
+   * @param {String} vcard  The contact to convert, in vcard format
+   * @return {Object}  a LoopContacts-style contact object containing
+   *                   the relevant fields from the vcard.
+   */
+
+  _convertVcard: function(vcard) {
+    let contact = {};
+    let nickname;
+    vcard.split(/[\r\n]+(?! )/).forEach(
+      function (contentline) {
+        contentline = contentline.replace(/[\r\n]+ /g, "");
+        let match = /^(.*?[^\\]):(.*)$/.exec(contentline);
+        if (match) {
+          let nameparam = match[1];
+          let value = match[2];
+
+          // Poor-man's unescaping
+          value = value.replace(/\\:/g, ":");
+          value = value.replace(/\\,/g, ",");
+          value = value.replace(/\\n/gi, "\n");
+          value = value.replace(/\\\\/g, "\\");
+
+          let param = nameparam.split(/;/);
+          let name = param[0];
+          let pref = false;
+          let type = [];
+
+          for (let i = 1; i < param.length; i++) {
+            if (/^PREF/.exec(param[i]) || /^TYPE=PREF/.exec(param[i])) {
+              pref = true;
+            }
+            let typeMatch = /^TYPE=(.*)/.exec(param[i]);
+            if (typeMatch) {
+              type.push(typeMatch[1].toLowerCase());
+            }
+          }
+
+          if (!type.length) {
+            type.push("other");
+          }
+
+          if (name === "FN") {
+            value = value.replace(/\\;/g, ";");
+            contact.name = [value];
+          }
+
+          if (name === "N") {
+            // Because we don't have lookbehinds, matching unescaped
+            // semicolons is a pain. Luckily, we know that \r and \n
+            // cannot appear in the strings, so we use them to swap
+            // unescaped semicolons for \n.
+            value = value.replace(/\\;/g, "\r");
+            value = value.replace(/;/g, "\n");
+            value = value.replace(/\r/g, ";");
+
+            let family, given, additional, prefix, suffix;
+            let values = value.split(/\n/);
+            if (values.length >= 5) {
+              [family, given, additional, prefix, suffix] = values;
+              if (prefix.length) {
+                contact.honorificPrefix = [prefix];
+              }
+              if (given.length) {
+                contact.givenName = [given];
+              }
+              if (additional.length) {
+                contact.additionalName = [additional];
+              }
+              if (family.length) {
+                contact.familyName = [family];
+              }
+              if (suffix.length) {
+                contact.honorificSuffix = [suffix];
+              }
+            }
+          }
+
+          if (name === "EMAIL") {
+            value = value.replace(/\\;/g, ";");
+            if (!("email" in contact)) {
+              contact.email = [];
+            }
+            contact.email.push({
+              pref: pref,
+              type: type,
+              value: value
+            });
+          }
+
+          if (name === "NICKNAME") {
+            value = value.replace(/\\;/g, ";");
+            // We don't store nickname in contact because it's not
+            // a supported field. We're saving it off here in case we
+            // need to use it if the fullname is blank.
+            nickname = value;
+          };
+
+          if (name === "ADR") {
+            value = value.replace(/\\;/g, "\r");
+            value = value.replace(/;/g, "\n");
+            value = value.replace(/\r/g, ";");
+            let pobox, extra, street, locality, region, code, country;
+            let values = value.split(/\n/);
+            if (values.length >= 7) {
+              [pobox, extra, street, locality, region, code, country] = values;
+              if (!("adr" in contact)) {
+                contact.adr = [];
+              }
+              contact.adr.push({
+                pref: pref,
+                type: type,
+                streetAddress: (street || pobox) + (extra ? (" " + extra) : ""),
+                locality: locality,
+                region: region,
+                postalCode: code,
+                countryName: country
+              });
+            }
+          }
+
+          if (name === "TEL") {
+            value = value.replace(/\\;/g, ";");
+            if (!("tel" in contact)) {
+              contact.tel = [];
+            }
+            contact.tel.push({
+              pref: pref,
+              type: type,
+              value: value
+            });
+          }
+
+          if (name === "ORG") {
+            value = value.replace(/\\;/g, "\r");
+            value = value.replace(/;/g, "\n");
+            value = value.replace(/\r/g, ";");
+            if (!("org" in contact)) {
+              contact.org = [];
+            }
+            contact.org.push(value.replace(/\n.*/, ""));
+          }
+
+          if (name === "TITLE") {
+            value = value.replace(/\\;/g, ";");
+            if (!("jobTitle" in contact)) {
+              contact.jobTitle = [];
+            }
+            contact.jobTitle.push(value);
+          }
+
+          if (name === "BDAY") {
+            value = value.replace(/\\;/g, ";");
+            contact.bday = Date.parse(value);
+          }
+
+          if (name === "UID") {
+            contact.id = value;
+          }
+
+          if (name === "NOTE") {
+            value = value.replace(/\\;/g, ";");
+            if (!("note" in contact)) {
+              contact.note = [];
+            }
+            contact.note.push(value);
+          }
+
+        }
+      }
+    );
+
+    // Basic sanity checking: make sure the name field isn't empty
+    if (!("name" in contact) || contact.name[0].length == 0) {
+      if (("familyName" in contact) && ("givenName" in contact)) {
+        // First, try to synthesize a full name from the name fields.
+        // Ordering is culturally sensitive, but we don't have
+        // cultural origin information available here. The best we
+        // can really do is "family, given additional"
+        contact.name = [contact.familyName[0] + ", " + contact.givenName[0]];
+        if (("additionalName" in contact)) {
+          contact.name[0] += " " + contact.additionalName[0];
+        }
+      } else {
+        if (nickname) {
+          contact.name = [nickname];
+        } else if ("familyName" in contact) {
+          contact.name = [contact.familyName[0]];
+        } else if ("givenName" in contact) {
+          contact.name = [contact.givenName[0]];
+        } else if ("org" in contact) {
+          contact.name = [contact.org[0]];
+        } else if ("email" in contact) {
+          contact.name = [contact.email[0].value];
+        } else if ("tel" in contact) {
+          contact.name = [contact.tel[0].value];
+        }
+      }
+    }
+
+    return contact;
+  },
+
+  /**
+   * Issues a CardDAV request (see RFC 6352) and returns a Promise to represent
+   * the success or failure state of the request.
+   *
+   * @param {String} method WebDAV method to use (e.g., "PROPFIND")
+   * @param {String} url    HTTP URL to use for the request
+   * @param {Object} auth   Object with authentication-related configuration.
+   *                        See documentation for startImport for details.
+   * @param {Number} depth  Value to use for the WebDAV (HTTP) "Depth" header
+   * @param {String} body   Body to include in the WebDAV (HTTP) request
+   *
+   * @return {Object} Promise representing the request operation outcome.
+   *                  If resolved, the resolution value is the XMLHttpRequest
+   *                  that was used to perform the request.
+   */
+  _davPromise: function(method, url, auth, depth, body) {
+    return new Promise((resolve, reject) => {
+      let req = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].
+                createInstance(Ci.nsIXMLHttpRequest);
+      let user = "";
+      let password = "";
+
+      if (auth.method == "basic") {
+        user = auth.user;
+        password = auth.password;
+      }
+
+      req.open(method, url, true, user, password);
+
+      req.setRequestHeader("Depth", depth);
+      req.setRequestHeader("Content-Type", "application/xml; charset=utf-8");
+
+      req.onload = function() {
+        if (req.status < 400) {
+          resolve(req);
+        } else {
+          reject(new Error(req.status + " " + req.statusText));
+        }
+      };
+
+      req.onerror = function(error) {
+        reject(error);
+      }
+
+      req.send(body);
+    });
+  }
+};
--- a/browser/components/loop/LoopContacts.jsm
+++ b/browser/components/loop/LoopContacts.jsm
@@ -5,16 +5,18 @@
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "console",
                                   "resource://gre/modules/devtools/Console.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "LoopStorage",
                                   "resource:///modules/loop/LoopStorage.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "CardDavImporter",
+                                  "resource:///modules/loop/CardDavImporter.jsm");
 XPCOMUtils.defineLazyGetter(this, "eventEmitter", function() {
   const {EventEmitter} = Cu.import("resource://gre/modules/devtools/event-emitter.js", {});
   return new EventEmitter();
 });
 
 this.EXPORTED_SYMBOLS = ["LoopContacts"];
 
 const kObjectStoreName = "contacts";
@@ -314,16 +316,23 @@ LoopStorage.on("upgrade", function(e, db
  * The Contacts class.
  *
  * Each method that is a member of this class requires the last argument to be a
  * callback Function. MozLoopAPI will cause things to break if this invariant is
  * violated. You'll notice this as well in the documentation for each method.
  */
 let LoopContactsInternal = Object.freeze({
   /**
+   * Map of contact importer names to instances
+   */
+  _importServices: {
+    "carddav": new CardDavImporter()
+  },
+
+  /**
    * Add a contact to the data store.
    *
    * @param {Object}   details  An object that will be added to the data store
    *                            as-is. Please read https://wiki.mozilla.org/Loop/Architecture/Address_Book
    *                            for more information of this objects' structure
    * @param {Function} callback Function that will be invoked once the operation
    *                            finished. The first argument passed will be an
    *                            `Error` object or `null`. The second argument will
@@ -752,18 +761,25 @@ let LoopContactsInternal = Object.freeze
    *
    * @param {Object}   options  Property bag of options for the importer
    * @param {Function} callback Function that will be invoked once the operation
    *                            finished. The first argument passed will be an
    *                            `Error` object or `null`. The second argument will
    *                            be the result of the operation, if successfull.
    */
   startImport: function(options, callback) {
-    //TODO in bug 972000.
-    callback(new Error("Not implemented yet!"));
+    if (!("service" in options)) {
+      callback(new Error("No import service specified in options"));
+      return;
+    }
+    if (!(options.service in this._importServices)) {
+      callback(new Error("Unknown import service specified: " + options.service));
+      return;
+    }
+    this._importServices[options.service].startImport(options, callback, this);
   },
 
   /**
    * Search through the data store for contacts that match a certain (sub-)string.
    *
    * @param {String}   query    Needle to search for in our haystack of contacts
    * @param {Function} callback Function that will be invoked once the operation
    *                            finished. The first argument passed will be an
--- a/browser/components/loop/content/shared/js/views.js
+++ b/browser/components/loop/content/shared/js/views.js
@@ -538,17 +538,17 @@ loop.shared.views = (function(_, OT, l10
     render: function() {
       if (this.state.countdown < 1) {
         clearInterval(this._timer);
         window.close();
       }
       return (
         FeedbackLayout({title: l10n.get("feedback_thank_you_heading")}, 
           React.DOM.p({className: "info thank-you"}, 
-            l10n.get("feedback_window_will_close_in", {
+            l10n.get("feedback_window_will_close_in2", {
               countdown: this.state.countdown,
               num: this.state.countdown
             }))
         )
       );
     }
   });
 
--- a/browser/components/loop/content/shared/js/views.jsx
+++ b/browser/components/loop/content/shared/js/views.jsx
@@ -538,17 +538,17 @@ loop.shared.views = (function(_, OT, l10
     render: function() {
       if (this.state.countdown < 1) {
         clearInterval(this._timer);
         window.close();
       }
       return (
         <FeedbackLayout title={l10n.get("feedback_thank_you_heading")}>
           <p className="info thank-you">{
-            l10n.get("feedback_window_will_close_in", {
+            l10n.get("feedback_window_will_close_in2", {
               countdown: this.state.countdown,
               num: this.state.countdown
             })}</p>
         </FeedbackLayout>
       );
     }
   });
 
--- a/browser/components/loop/moz.build
+++ b/browser/components/loop/moz.build
@@ -8,16 +8,17 @@ JAR_MANIFESTS += ['jar.mn']
 
 XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell/xpcshell.ini']
 
 BROWSER_CHROME_MANIFESTS += [
     'test/mochitest/browser.ini',
 ]
 
 EXTRA_JS_MODULES.loop += [
+    'CardDavImporter.jsm',
     'LoopContacts.jsm',
     'LoopStorage.jsm',
     'MozLoopAPI.jsm',
     'MozLoopPushHandler.jsm',
     'MozLoopWorker.js',
 ]
 
 EXTRA_PP_JS_MODULES.loop += [
--- a/browser/components/loop/test/mochitest/browser.ini
+++ b/browser/components/loop/test/mochitest/browser.ini
@@ -1,14 +1,15 @@
 [DEFAULT]
 support-files =
     head.js
     loop_fxa.sjs
     ../../../../base/content/test/general/browser_fxa_oauth.html
 
+[browser_CardDavImporter.js]
 [browser_fxa_login.js]
 skip-if = !debug
 [browser_loop_fxa_server.js]
 [browser_LoopContacts.js]
 [browser_mozLoop_appVersionInfo.js]
 [browser_mozLoop_prefs.js]
 [browser_mozLoop_doNotDisturb.js]
 skip-if = buildapp == 'mulet'
new file mode 100644
--- /dev/null
+++ b/browser/components/loop/test/mochitest/browser_CardDavImporter.js
@@ -0,0 +1,364 @@
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+
+const {CardDavImporter} = Cu.import("resource:///modules/loop/CardDavImporter.jsm", {});
+
+const mockDb = {
+  _store: { },
+  _next_guid: 1,
+
+  add: function(details, callback) {
+    if (!("id" in details)) {
+      callback(new Error("No 'id' field present"));
+      return;
+    }
+    details._guid = this._next_guid++;
+    this._store[details._guid] = details;
+    callback(null, details);
+  },
+  remove: function(guid, callback) {
+    if (!guid in this._store) {
+      callback(new Error("Could not find _guid '" + guid + "' in database"));
+      return;
+    }
+    delete this._store[guid];
+    callback(null);
+  },
+  get: function(guid, callback) {
+    callback(null, this._store[guid]);
+  },
+  getByServiceId: function(serviceId, callback) {
+    for (let guid in this._store) {
+      if (serviceId === this._store[guid].id) {
+        callback(null, this._store[guid]);
+        return;
+      }
+    }
+    callback(null, null);
+  },
+  removeAll: function(callback) {
+    this._store = {};
+    this._next_guid = 1;
+    callback(null);
+  }
+};
+
+const kAuth = {
+  "method": "basic",
+  "user": "username",
+  "password": "p455w0rd"
+}
+
+
+// "pid" for "provider ID"
+let vcards = [
+    "VERSION:3.0\n" +
+    "N:Smith;John;;;\n" +
+    "FN:John Smith\n" +
+    "EMAIL;TYPE=work:john.smith@example.com\n" +
+    "REV:2011-07-12T14:43:20Z\n" +
+    "UID:pid1\n" +
+    "END:VCARD\n",
+
+    "VERSION:3.0\n" +
+    "N:Smith;Jane;;;\n" +
+    "FN:Jane Smith\n" +
+    "EMAIL:jane.smith@example.com\n" +
+    "REV:2011-07-12T14:43:20Z\n" +
+    "UID:pid2\n" +
+    "END:VCARD\n",
+
+    "VERSION:3.0\n" +
+    "N:García Fernández;Miguel Angel;José Antonio;Mr.;Jr.\n" +
+    "FN:Mr. Miguel Angel José Antonio\n  García Fernández, Jr.\n" +
+    "EMAIL:mike@example.org\n" +
+    "EMAIL;PREF=1;TYPE=work:miguel.angel@example.net\n" +
+    "EMAIL;TYPE=home;UNKNOWNPARAMETER=frotz:majacf@example.com\n" +
+    "TEL:+3455555555\n" +
+    "TEL;PREF=1;TYPE=work:+3455556666\n" +
+    "TEL;TYPE=home;UNKNOWNPARAMETER=frotz:+3455557777\n" +
+    "ADR:;Suite 123;Calle Aduana\\, 29;MADRID;;28070;SPAIN\n" +
+    "ADR;TYPE=work:P.O. BOX 555;;;Washington;DC;20024-00555;USA\n" +
+    "ORG:Acme España SL\n" +
+    "TITLE:President\n" +
+    "BDAY:1965-05-05\n" +
+    "NOTE:Likes tulips\n" +
+    "REV:2011-07-12T14:43:20Z\n" +
+    "UID:pid3\n" +
+    "END:VCARD\n",
+
+    "VERSION:3.0\n" +
+    "N:Jones;Bob;;;\n" +
+    "EMAIL:bob.jones@example.com\n" +
+    "REV:2011-07-12T14:43:20Z\n" +
+    "UID:pid4\n" +
+    "END:VCARD\n",
+
+    "VERSION:3.0\n" +
+    "N:Jones;Davy;Randall;;\n" +
+    "EMAIL:davy.jones@example.com\n" +
+    "REV:2011-07-12T14:43:20Z\n" +
+    "UID:pid5\n" +
+    "END:VCARD\n",
+
+    "VERSION:3.0\n" +
+    "EMAIL:trip@example.com\n" +
+    "NICKNAME:Trip\n" +
+    "REV:2011-07-12T14:43:20Z\n" +
+    "UID:pid6\n" +
+    "END:VCARD\n",
+
+    "VERSION:3.0\n" +
+    "EMAIL:acme@example.com\n" +
+    "ORG:Acme, Inc.\n" +
+    "REV:2011-07-12T14:43:20Z\n" +
+    "UID:pid7\n" +
+    "END:VCARD\n",
+
+    "VERSION:3.0\n" +
+    "EMAIL:anyone@example.com\n" +
+    "REV:2011-07-12T14:43:20Z\n" +
+    "UID:pid8\n" +
+    "END:VCARD\n",
+];
+
+
+const monkeyPatchImporter = function(importer) {
+  // Set up the response bodies
+  let listPropfind =
+    '<?xml version="1.0" encoding="UTF-8"?>\n' +
+    '<d:multistatus xmlns:card="urn:ietf:params:xml:ns:carddav"\n' +
+    '               xmlns:d="DAV:">\n' +
+    ' <d:response>\n' +
+    '  <d:href>/carddav/abook/</d:href>\n' +
+    '  <d:propstat>\n' +
+    '   <d:status>HTTP/1.1 200 OK</d:status>\n' +
+    '  </d:propstat>\n' +
+    '  <d:propstat>\n' +
+    '   <d:status>HTTP/1.1 404 Not Found</d:status>\n' +
+    '   <d:prop>\n' +
+    '    <d:getetag/>\n' +
+    '   </d:prop>\n' +
+    '  </d:propstat>\n' +
+    ' </d:response>\n';
+
+  let listReportMultiget =
+    '<?xml version="1.0" encoding="UTF-8"?>\n' +
+    '<d:multistatus xmlns:card="urn:ietf:params:xml:ns:carddav"\n' +
+    '               xmlns:d="DAV:">\n';
+
+  vcards.forEach(vcard => {
+    let uid = /\nUID:(.*?)\n/.exec(vcard);
+    listPropfind +=
+      ' <d:response>\n' +
+      '  <d:href>/carddav/abook/' + uid + '</d:href>\n' +
+      '  <d:propstat>\n' +
+      '   <d:status>HTTP/1.1 200 OK</d:status>\n' +
+      '   <d:prop>\n' +
+      '    <d:getetag>"2011-07-12T07:43:20.855-07:00"</d:getetag>\n' +
+      '   </d:prop>\n' +
+      '  </d:propstat>\n' +
+      ' </d:response>\n';
+
+    listReportMultiget +=
+      ' <d:response>\n' +
+      '  <d:href>/carddav/abook/' + uid + '</d:href>\n' +
+      '  <d:propstat>\n' +
+      '   <d:status>HTTP/1.1 200 OK</d:status>\n' +
+      '   <d:prop>\n' +
+      '    <d:getetag>"2011-07-12T07:43:20.855-07:00"</d:getetag>\n' +
+      '    <card:address-data>' + vcard + '</card:address-data>\n' +
+      '   </d:prop>\n' +
+      '  </d:propstat>\n' +
+      ' </d:response>\n';
+  });
+
+  listPropfind += "</d:multistatus>\n";
+  listReportMultiget += "</d:multistatus>\n";
+
+  importer._davPromise = function(method, url, auth, depth, body) {
+    return new Promise((resolve, reject) => {
+
+      if (auth.method != "basic" ||
+          auth.user != kAuth.user ||
+          auth.password != kAuth.password) {
+        reject(new Error("401 Auth Failure"));
+        return;
+      }
+
+      let request = method + " " + url + " " + depth;
+      let xmlParser = new DOMParser();
+      let responseXML;
+      switch (request) {
+        case "PROPFIND https://example.com/.well-known/carddav 1":
+          responseXML = xmlParser.parseFromString(listPropfind, "text/xml");
+          break;
+        case "REPORT https://example.com/carddav/abook/ 1":
+          responseXML = xmlParser.parseFromString(listReportMultiget, "text/xml");
+          break;
+        default:
+          reject(new Error("404 Not Found"));
+          return;
+      }
+      resolve({"responseXML": responseXML});
+    });
+  }.bind(importer);
+  return importer;
+}
+
+add_task(function* test_CardDavImport() {
+  let importer = monkeyPatchImporter(new CardDavImporter());
+  yield new Promise ((resolve, reject) => {
+    info("Initiating import");
+    importer.startImport({
+        "host": "example.com",
+        "auth": kAuth.method,
+        "user": kAuth.user,
+        "password": kAuth.password
+      }, (err, result) => { err ? reject(err) : resolve(result); }, mockDb);
+  });
+  info("Import succeeded");
+
+  Assert.equal(vcards.length, Object.keys(mockDb._store).length,
+               "Should import all VCards into database");
+
+  // Basic checks
+  let c = mockDb._store[1];
+  Assert.equal(c.name[0], "John Smith", "Full name should match");
+  Assert.equal(c.givenName[0], "John", "Given name should match");
+  Assert.equal(c.familyName[0], "Smith", "Family name should match");
+  Assert.equal(c.email[0].type, "work", "Email type should match");
+  Assert.equal(c.email[0].value, "john.smith@example.com", "Email should match");
+  Assert.equal(c.email[0].pref, false, "Pref should match");
+  Assert.equal(c.id, "pid1@example.com", "UID should match and be scoped to provider");
+
+  c = mockDb._store[2];
+  Assert.equal(c.name[0], "Jane Smith", "Full name should match");
+  Assert.equal(c.givenName[0], "Jane", "Given name should match");
+  Assert.equal(c.familyName[0], "Smith", "Family name should match");
+  Assert.equal(c.email[0].type, "other", "Email type should match");
+  Assert.equal(c.email[0].value, "jane.smith@example.com", "Email should match");
+  Assert.equal(c.email[0].pref, false, "Pref should match");
+  Assert.equal(c.id, "pid2@example.com", "UID should match and be scoped to provider");
+
+  // Check every field
+  c = mockDb._store[3];
+  Assert.equal(c.name[0], "Mr. Miguel Angel José Antonio García Fernández, Jr.", "Full name should match");
+  Assert.equal(c.givenName[0], "Miguel Angel", "Given name should match");
+  Assert.equal(c.additionalName[0], "José Antonio", "Other name should match");
+  Assert.equal(c.familyName[0], "García Fernández", "Family name should match");
+  Assert.equal(c.email.length, 3, "Email count should match");
+  Assert.equal(c.email[0].type, "other", "Email type should match");
+  Assert.equal(c.email[0].value, "mike@example.org", "Email should match");
+  Assert.equal(c.email[0].pref, false, "Pref should match");
+  Assert.equal(c.email[1].type, "work", "Email type should match");
+  Assert.equal(c.email[1].value, "miguel.angel@example.net", "Email should match");
+  Assert.equal(c.email[1].pref, true, "Pref should match");
+  Assert.equal(c.email[2].type, "home", "Email type should match");
+  Assert.equal(c.email[2].value, "majacf@example.com", "Email should match");
+  Assert.equal(c.email[2].pref, false, "Pref should match");
+  Assert.equal(c.tel.length, 3, "Phone number count should match");
+  Assert.equal(c.tel[0].type, "other", "Phone type should match");
+  Assert.equal(c.tel[0].value, "+3455555555", "Phone number should match");
+  Assert.equal(c.tel[0].pref, false, "Pref should match");
+  Assert.equal(c.tel[1].type, "work", "Phone type should match");
+  Assert.equal(c.tel[1].value, "+3455556666", "Phone number should match");
+  Assert.equal(c.tel[1].pref, true, "Pref should match");
+  Assert.equal(c.tel[2].type, "home", "Phone type should match");
+  Assert.equal(c.tel[2].value, "+3455557777", "Phone number should match");
+  Assert.equal(c.tel[2].pref, false, "Pref should match");
+  Assert.equal(c.adr.length, 2, "Address count should match");
+  Assert.equal(c.adr[0].pref, false, "Pref should match");
+  Assert.equal(c.adr[0].type, "other", "Type should match");
+  Assert.equal(c.adr[0].streetAddress, "Calle Aduana, 29 Suite 123", "Street address should match");
+  Assert.equal(c.adr[0].locality, "MADRID", "Locality should match");
+  Assert.equal(c.adr[0].postalCode, "28070", "Post code should match");
+  Assert.equal(c.adr[0].countryName, "SPAIN", "Country should match");
+  Assert.equal(c.adr[1].pref, false, "Pref should match");
+  Assert.equal(c.adr[1].type, "work", "Type should match");
+  Assert.equal(c.adr[1].streetAddress, "P.O. BOX 555", "Street address should match");
+  Assert.equal(c.adr[1].locality, "Washington", "Locality should match");
+  Assert.equal(c.adr[1].region, "DC", "Region should match");
+  Assert.equal(c.adr[1].postalCode, "20024-00555", "Post code should match");
+  Assert.equal(c.adr[1].countryName, "USA", "Country should match");
+  Assert.equal(c.org[0], "Acme España SL", "Org should match");
+  Assert.equal(c.jobTitle[0], "President", "Title should match");
+  Assert.equal(c.note[0], "Likes tulips", "Note should match");
+  let bday = new Date(c.bday);
+  Assert.equal(bday.getUTCFullYear(), 1965, "Birthday year should match");
+  Assert.equal(bday.getUTCMonth(), 4, "Birthday month should match");
+  Assert.equal(bday.getUTCDate(), 5, "Birthday day should match");
+  Assert.equal(c.id, "pid3@example.com", "UID should match and be scoped to provider");
+
+  // Check name synthesis
+  c = mockDb._store[4];
+  Assert.equal(c.name[0], "Jones, Bob", "Full name should be synthesized correctly");
+  c = mockDb._store[5];
+  Assert.equal(c.name[0], "Jones, Davy Randall", "Full name should be synthesized correctly");
+  c = mockDb._store[6];
+  Assert.equal(c.name[0], "Trip", "Full name should be synthesized correctly");
+  c = mockDb._store[7];
+  Assert.equal(c.name[0], "Acme, Inc.", "Full name should be synthesized correctly");
+  c = mockDb._store[8];
+  Assert.equal(c.name[0], "anyone@example.com", "Full name should be synthesized correctly");
+
+  // Check that a re-import doesn't cause contact duplication.
+  yield new Promise ((resolve, reject) => {
+    info("Initiating import");
+    importer.startImport({
+        "host": "example.com",
+        "auth": kAuth.method,
+        "user": kAuth.user,
+        "password": kAuth.password
+      }, (err, result) => { err ? reject(err) : resolve(result); }, mockDb);
+  });
+  Assert.equal(vcards.length, Object.keys(mockDb._store).length,
+               "Second import shouldn't increase DB size");
+
+  // Check that errors are propagated back to caller
+  let error = yield new Promise ((resolve, reject) => {
+    info("Initiating import");
+    importer.startImport({
+        "host": "example.com",
+        "auth": kAuth.method,
+        "user": kAuth.user,
+        "password": "invalidpassword"
+      }, (err, result) => { err ? resolve(err) : reject(new Error("Should have failed")); }, mockDb);
+  });
+  Assert.equal(error.message, "401 Auth Failure", "Auth error should propagate");
+
+  let error = yield new Promise ((resolve, reject) => {
+    info("Initiating import");
+    importer.startImport({
+        "host": "example.invalid",
+        "auth": kAuth.method,
+        "user": kAuth.user,
+        "password": kAuth.password
+      }, (err, result) => { err ? resolve(err) : reject(new Error("Should have failed")); }, mockDb);
+  });
+  Assert.equal(error.message, "404 Not Found", "Not found error should propagate");
+
+  let tmp = mockDb.getByServiceId;
+  mockDb.getByServiceId = function(serviceId, callback) {
+    callback(new Error("getByServiceId failed"));
+  };
+  let error = yield new Promise ((resolve, reject) => {
+    info("Initiating import");
+    importer.startImport({
+        "host": "example.com",
+        "auth": kAuth.method,
+        "user": kAuth.user,
+        "password": kAuth.password
+      }, (err, result) => { err ? resolve(err) : reject(new Error("Should have failed")); }, mockDb);
+  });
+  Assert.equal(error.message, "getByServiceId failed", "Database error should propagate");
+  mockDb.getByServiceId = tmp;
+
+  let error = yield new Promise ((resolve, reject) => {
+    info("Initiating import");
+    importer.startImport({
+        "host": "example.com",
+      }, (err, result) => { err ? resolve(err) : reject(new Error("Should have failed")); }, mockDb);
+  });
+  Assert.equal(error.message, "No authentication specified", "Missing parameters should generate error");
+})
--- a/browser/components/loop/test/mochitest/browser_mozLoop_pluralStrings.js
+++ b/browser/components/loop/test/mochitest/browser_mozLoop_pluralStrings.js
@@ -6,14 +6,14 @@
  * effects - rather than just testing MozLoopAPI alone.
  */
 
 add_task(loadLoopPanel);
 
 add_task(function* test_mozLoop_pluralStrings() {
   Assert.ok(gMozLoopAPI, "mozLoop should exist");
 
-  var strings = JSON.parse(gMozLoopAPI.getStrings("feedback_window_will_close_in"));
+  var strings = JSON.parse(gMozLoopAPI.getStrings("feedback_window_will_close_in2"));
   Assert.equal(gMozLoopAPI.getPluralForm(0, strings.textContent),
                "This window will close in {{countdown}} seconds");
   Assert.equal(gMozLoopAPI.getPluralForm(1, strings.textContent),
                "This window will close in {{countdown}} second");
 });
--- a/browser/devtools/framework/gDevTools.jsm
+++ b/browser/devtools/framework/gDevTools.jsm
@@ -24,30 +24,29 @@ const MAX_ORDINAL = 99;
 
 /**
  * DevTools is a class that represents a set of developer tools, it holds a
  * set of tools and keeps track of open toolboxes in the browser.
  */
 this.DevTools = function DevTools() {
   this._tools = new Map();     // Map<toolId, tool>
   this._themes = new Map();    // Map<themeId, theme>
-  this._eventParsers = new Map(); // Map<parserID, [handlers]>
   this._toolboxes = new Map(); // Map<target, toolbox>
 
   // destroy() is an observer's handler so we need to preserve context.
   this.destroy = this.destroy.bind(this);
   this._teardown = this._teardown.bind(this);
 
   this._testing = false;
 
   EventEmitter.decorate(this);
 
   Services.obs.addObserver(this._teardown, "devtools-unloaded", false);
   Services.obs.addObserver(this.destroy, "quit-application", false);
-}
+};
 
 DevTools.prototype = {
   /**
    * When the testing flag is set we take appropriate action to prevent race
    * conditions in our testing environment. This means setting
    * dom.send_after_paint_to_content to false to prevent infinite MozAfterPaint
    * loops and not autohiding the highlighter.
    */
@@ -61,20 +60,16 @@ DevTools.prototype = {
     if (state) {
       // dom.send_after_paint_to_content is set to true (non-default) in
       // testing/profiles/prefs_general.js so lets set it to the same as it is
       // in a default browser profile for the duration of the test.
       Services.prefs.setBoolPref("dom.send_after_paint_to_content", false);
     }
   },
 
-  get eventParsers() {
-    return this._eventParsers;
-  },
-
   /**
    * Register a new developer tool.
    *
    * A definition is a light object that holds different information about a
    * developer tool. This object is not supposed to have any operational code.
    * See it as a "manifest".
    * The only actual code lives in the build() function, which will be used to
    * start an instance of this tool.
@@ -141,95 +136,16 @@ DevTools.prototype = {
     this._tools.delete(toolId);
 
     if (!isQuitApplication) {
       this.emit("tool-unregistered", tool);
     }
   },
 
   /**
-   * Register a new event parser to be used in the processing of event info.
-   *
-   * @param {Object} parserObj
-   *        Each parser must contain the following properties:
-   *        - parser, which must take the following form:
-   *   {
-   *     id {String}: "jQuery events",         // Unique id.
-   *     getListeners: function(node) { },     // Function that takes a node and
-   *                                           // returns an array of eventInfo
-   *                                           // objects (see below).
-   *
-   *     hasListeners: function(node) { },     // Optional function that takes a
-   *                                           // node and returns a boolean
-   *                                           // indicating whether a node has
-   *                                           // listeners attached.
-   *
-   *     normalizeHandler: function(fnDO) { }, // Optional function that takes a
-   *                                           // Debugger.Object instance and
-   *                                           // climbs the scope chain to get
-   *                                           // the function that should be
-   *                                           // displayed in the event bubble
-   *                                           // see the following url for
-   *                                           // details:
-   *                                           //   https://developer.mozilla.org/
-   *                                           //   docs/Tools/Debugger-API/
-   *                                           //   Debugger.Object
-   *   }
-   *
-   * An eventInfo object should take the following form:
-   *   {
-   *     type {String}:      "click",
-   *     handler {Function}: event handler,
-   *     tags {String}:      "jQuery,Live", // These tags will be displayed as
-   *                                        // attributes in the events popup.
-   *     hide: {               // Hide or show fields:
-   *       debugger: false,    // Debugger icon
-   *       type: false,        // Event type e.g. click
-   *       filename: false,    // Filename
-   *       capturing: false,   // Capturing
-   *       dom0: false         // DOM 0
-   *     },
-   *
-   *     override: {                        // The following can be overridden:
-   *       type: "click",
-   *       origin: "http://www.mozilla.com",
-   *       searchString: 'onclick="doSomething()"',
-   *       DOM0: true,
-   *       capturing: true
-   *     }
-   *   }
-   */
-  registerEventParser: function(parserObj) {
-    let parserId = parserObj.id;
-
-    if (!parserId) {
-      throw new Error("Cannot register new event parser with id " + parserId);
-    }
-    if (this._eventParsers.has(parserId)) {
-      throw new Error("Duplicate event parser id " + parserId);
-    }
-
-    this._eventParsers.set(parserId, {
-      getListeners: parserObj.getListeners,
-      hasListeners: parserObj.hasListeners,
-      normalizeHandler: parserObj.normalizeHandler
-    });
-  },
-
-  /**
-   * Removes parser that matches a given parserId.
-   *
-   * @param {String} parserId
-   *        id of the event parser to unregister.
-   */
-  unregisterEventParser: function(parserId) {
-    this._eventParsers.delete(parserId);
-  },
-
-  /**
    * Sorting function used for sorting tools based on their ordinals.
    */
   ordinalSort: function DT_ordinalSort(d1, d2) {
     let o1 = (typeof d1.ordinal == "number") ? d1.ordinal : MAX_ORDINAL;
     let o2 = (typeof d2.ordinal == "number") ? d2.ordinal : MAX_ORDINAL;
     return o1 - o2;
   },
 
@@ -550,20 +466,16 @@ DevTools.prototype = {
   destroy: function() {
     Services.obs.removeObserver(this.destroy, "quit-application");
     Services.obs.removeObserver(this._teardown, "devtools-unloaded");
 
     for (let [key, tool] of this.getToolDefinitionMap()) {
       this.unregisterTool(key, true);
     }
 
-    for (let [id] of this._eventParsers) {
-      this.unregisterEventParser(id, true);
-    }
-
     // Cleaning down the toolboxes: i.e.
     //   for (let [target, toolbox] of this._toolboxes) toolbox.destroy();
     // Is taken care of by the gDevToolsBrowser.forgetBrowserWindow
   },
 
   /**
    * Iterator that yields each of the toolboxes.
    */
--- a/browser/devtools/jar.mn
+++ b/browser/devtools/jar.mn
@@ -21,16 +21,17 @@ browser.jar:
 *   content/browser/devtools/scratchpad.xul                            (scratchpad/scratchpad.xul)
     content/browser/devtools/scratchpad.js                             (scratchpad/scratchpad.js)
     content/browser/devtools/scratchpad-commands.js                    (scratchpad/scratchpad-commands.js)
     content/browser/devtools/splitview.css                             (shared/splitview.css)
     content/browser/devtools/theme-switching.js                        (shared/theme-switching.js)
     content/browser/devtools/frame-script-utils.js                     (shared/frame-script-utils.js)
     content/browser/devtools/styleeditor.xul                           (styleeditor/styleeditor.xul)
     content/browser/devtools/styleeditor.css                           (styleeditor/styleeditor.css)
+    content/browser/devtools/storage.xul                               (storage/storage.xul)
     content/browser/devtools/computedview.xhtml                        (styleinspector/computedview.xhtml)
     content/browser/devtools/cssruleview.xhtml                         (styleinspector/cssruleview.xhtml)
     content/browser/devtools/ruleview.css                              (styleinspector/ruleview.css)
     content/browser/devtools/layoutview/view.js                        (layoutview/view.js)
     content/browser/devtools/layoutview/view.xhtml                     (layoutview/view.xhtml)
     content/browser/devtools/layoutview/view.css                       (layoutview/view.css)
     content/browser/devtools/fontinspector/font-inspector.js           (fontinspector/font-inspector.js)
     content/browser/devtools/fontinspector/font-inspector.xhtml        (fontinspector/font-inspector.xhtml)
--- a/browser/devtools/main.js
+++ b/browser/devtools/main.js
@@ -16,55 +16,56 @@ Object.defineProperty(exports, "Toolbox"
 Object.defineProperty(exports, "TargetFactory", {
   get: () => require("devtools/framework/target").TargetFactory
 });
 
 loader.lazyGetter(this, "osString", () => Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime).OS);
 
 let events = require("sdk/system/events");
 
-require("devtools/toolkit/event-parsers");
-
 // Panels
 loader.lazyGetter(this, "OptionsPanel", () => require("devtools/framework/toolbox-options").OptionsPanel);
 loader.lazyGetter(this, "InspectorPanel", () => require("devtools/inspector/inspector-panel").InspectorPanel);
 loader.lazyGetter(this, "WebConsolePanel", () => require("devtools/webconsole/panel").WebConsolePanel);
 loader.lazyGetter(this, "DebuggerPanel", () => require("devtools/debugger/panel").DebuggerPanel);
 loader.lazyGetter(this, "StyleEditorPanel", () => require("devtools/styleeditor/styleeditor-panel").StyleEditorPanel);
 loader.lazyGetter(this, "ShaderEditorPanel", () => require("devtools/shadereditor/panel").ShaderEditorPanel);
 loader.lazyGetter(this, "CanvasDebuggerPanel", () => require("devtools/canvasdebugger/panel").CanvasDebuggerPanel);
 loader.lazyGetter(this, "WebAudioEditorPanel", () => require("devtools/webaudioeditor/panel").WebAudioEditorPanel);
 loader.lazyGetter(this, "ProfilerPanel", () => require("devtools/profiler/panel").ProfilerPanel);
 loader.lazyGetter(this, "NetMonitorPanel", () => require("devtools/netmonitor/panel").NetMonitorPanel);
 loader.lazyGetter(this, "ScratchpadPanel", () => require("devtools/scratchpad/scratchpad-panel").ScratchpadPanel);
+loader.lazyGetter(this, "StoragePanel", () => require("devtools/storage/panel").StoragePanel);
 
 // Strings
 const toolboxProps = "chrome://browser/locale/devtools/toolbox.properties";
 const inspectorProps = "chrome://browser/locale/devtools/inspector.properties";
 const debuggerProps = "chrome://browser/locale/devtools/debugger.properties";
 const styleEditorProps = "chrome://browser/locale/devtools/styleeditor.properties";
 const shaderEditorProps = "chrome://browser/locale/devtools/shadereditor.properties";
 const canvasDebuggerProps = "chrome://browser/locale/devtools/canvasdebugger.properties";
 const webAudioEditorProps = "chrome://browser/locale/devtools/webaudioeditor.properties";
-
 const webConsoleProps = "chrome://browser/locale/devtools/webconsole.properties";
 const profilerProps = "chrome://browser/locale/devtools/profiler.properties";
 const netMonitorProps = "chrome://browser/locale/devtools/netmonitor.properties";
 const scratchpadProps = "chrome://browser/locale/devtools/scratchpad.properties";
+const storageProps = "chrome://browser/locale/devtools/storage.properties";
+
 loader.lazyGetter(this, "toolboxStrings", () => Services.strings.createBundle(toolboxProps));
 loader.lazyGetter(this, "webConsoleStrings", () => Services.strings.createBundle(webConsoleProps));
 loader.lazyGetter(this, "debuggerStrings", () => Services.strings.createBundle(debuggerProps));
 loader.lazyGetter(this, "styleEditorStrings", () => Services.strings.createBundle(styleEditorProps));
 loader.lazyGetter(this, "shaderEditorStrings", () => Services.strings.createBundle(shaderEditorProps));
 loader.lazyGetter(this, "canvasDebuggerStrings", () => Services.strings.createBundle(canvasDebuggerProps));
 loader.lazyGetter(this, "webAudioEditorStrings", () => Services.strings.createBundle(webAudioEditorProps));
 loader.lazyGetter(this, "inspectorStrings", () => Services.strings.createBundle(inspectorProps));
 loader.lazyGetter(this, "profilerStrings",() => Services.strings.createBundle(profilerProps));
 loader.lazyGetter(this, "netMonitorStrings", () => Services.strings.createBundle(netMonitorProps));
 loader.lazyGetter(this, "scratchpadStrings", () => Services.strings.createBundle(scratchpadProps));
+loader.lazyGetter(this, "storageStrings", () => Services.strings.createBundle(storageProps));
 
 let Tools = {};
 exports.Tools = Tools;
 
 // Definitions
 Tools.options = {
   id: "options",
   ordinal: 0,
@@ -313,19 +314,44 @@ Tools.netMonitor = {
   },
 
   build: function(iframeWindow, toolbox) {
     let panel = new NetMonitorPanel(iframeWindow, toolbox);
     return panel.open();
   }
 };
 
+Tools.storage = {
+  id: "storage",
+  key: l10n("open.commandkey", storageStrings),
+  ordinal: 9,
+  accesskey: l10n("open.accesskey", storageStrings),
+  modifiers: "shift",
+  visibilityswitch: "devtools.storage.enabled",
+  icon: "chrome://browser/skin/devtools/tool-storage.svg",
+  invertIconForLightTheme: true,
+  url: "chrome://browser/content/devtools/storage.xul",
+  label: l10n("storage.label", storageStrings),
+  tooltip: l10n("storage.tooltip", storageStrings),
+  inMenu: true,
+
+  isTargetSupported: function(target) {
+    return target.isLocalTab ||
+           (target.client.traits.storageInspector && !target.isAddon);
+  },
+
+  build: function(iframeWindow, toolbox) {
+    let panel = new StoragePanel(iframeWindow, toolbox);
+    return panel.open();
+  }
+};
+
 Tools.scratchpad = {
   id: "scratchpad",
-  ordinal: 9,
+  ordinal: 10,
   visibilityswitch: "devtools.scratchpad.enabled",
   icon: "chrome://browser/skin/devtools/tool-scratchpad.svg",
   invertIconForLightTheme: true,
   url: "chrome://browser/content/devtools/scratchpad.xul",
   label: l10n("scratchpad.label", scratchpadStrings),
   panelLabel: l10n("scratchpad.panelLabel", scratchpadStrings),
   tooltip: l10n("scratchpad.tooltip", scratchpadStrings),
   inMenu: false,
@@ -347,16 +373,17 @@ let defaultTools = [
   Tools.inspector,
   Tools.jsdebugger,
   Tools.styleEditor,
   Tools.shaderEditor,
   Tools.canvasDebugger,
   Tools.webAudioEditor,
   Tools.jsprofiler,
   Tools.netMonitor,
+  Tools.storage,
   Tools.scratchpad
 ];
 
 exports.defaultTools = defaultTools;
 
 for (let definition of defaultTools) {
   gDevTools.registerTool(definition);
 }
--- a/browser/devtools/moz.build
+++ b/browser/devtools/moz.build
@@ -18,16 +18,17 @@ DIRS += [
     'markupview',
     'netmonitor',
     'profiler',
     'responsivedesign',
     'scratchpad',
     'shadereditor',
     'shared',
     'sourceeditor',
+    'storage',
     'styleeditor',
     'styleinspector',
     'tilt',
     'webaudioeditor',
     'webconsole',
     'webide',
 ]
 
--- a/browser/devtools/netmonitor/test/browser_net_copy_as_curl.js
+++ b/browser/devtools/netmonitor/test/browser_net_copy_as_curl.js
@@ -11,32 +11,32 @@ function test() {
 
     const EXPECTED_POSIX_RESULT = [
       "curl",
       "'" + SIMPLE_SJS + "'",
       "-H 'Host: example.com'",
       "-H 'User-Agent: " + aDebuggee.navigator.userAgent + "'",
       "-H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'",
       "-H 'Accept-Language: " + aDebuggee.navigator.language + "'",
-      "-H 'Accept-Encoding: gzip, deflate'",
+      "--compressed",
       "-H 'X-Custom-Header-1: Custom value'",
       "-H 'X-Custom-Header-2: 8.8.8.8'",
       "-H 'X-Custom-Header-3: Mon, 3 Mar 2014 11:11:11 GMT'",
       "-H 'Referer: " + CURL_URL + "'",
       "-H 'Connection: keep-alive'"
     ].join(" ");
 
     const EXPECTED_WIN_RESULT = [
       'curl',
       '"' + SIMPLE_SJS + '"',
       '-H "Host: example.com"',
       '-H "User-Agent: ' + aDebuggee.navigator.userAgent + '"',
       '-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"',
       '-H "Accept-Language: ' + aDebuggee.navigator.language + '"',
-      '-H "Accept-Encoding: gzip, deflate"',
+      "--compressed",
       '-H "X-Custom-Header-1: Custom value"',
       '-H "X-Custom-Header-2: 8.8.8.8"',
       '-H "X-Custom-Header-3: Mon, 3 Mar 2014 11:11:11 GMT"',
       '-H "Referer: ' + CURL_URL + '"',
       '-H "Connection: keep-alive"'
     ].join(" ");
 
     const EXPECTED_RESULT = Services.appinfo.OS == "WINNT"
--- a/browser/devtools/projecteditor/lib/stores/resource.js
+++ b/browser/devtools/projecteditor/lib/stores/resource.js
@@ -53,16 +53,23 @@ var Resource = Class({
   get basename() { return this.uri.path.replace(/\/+$/, '').replace(/\\/g,'/').replace( /.*\//, '' ); },
 
   /**
    * Is there more than 1 child Resource?
    */
   get hasChildren() { return this.children && this.children.size > 0; },
 
   /**
+   * Is this Resource the root (top level for the store)?
+   */
+  get isRoot() {
+    return !this.parent
+  },
+
+  /**
    * Sorted array of children for display
    */
   get childrenSorted() {
     if (!this.hasChildren) {
       return [];
     }
 
     return [...this.children].sort((a, b)=> {
--- a/browser/devtools/projecteditor/lib/tree.js
+++ b/browser/devtools/projecteditor/lib/tree.js
@@ -79,16 +79,19 @@ var ResourceContainer = Class({
       }
     }, false);
     this.expander.addEventListener("click", (evt) => {
       this.expanded = !this.expanded;
       this.select();
       evt.stopPropagation();
     }, true);
 
+    if (!this.resource.isRoot) {
+      this.expanded = false;
+    }
     this.update();
   },
 
   destroy: function() {
     this.elt.remove();
     this.expander.remove();
     this.icon.remove();
     this.highlighter.remove();
--- a/browser/devtools/projecteditor/test/browser_projecteditor_tree_selection_01.js
+++ b/browser/devtools/projecteditor/test/browser_projecteditor_tree_selection_01.js
@@ -30,18 +30,24 @@ let test = asyncTest(function*() {
   for (let i = 0; i < resources.length; i++){
     yield selectFileSubsequentLoad(projecteditor, resources[i]);
   }
 });
 
 function selectFileFirstLoad(projecteditor, resource) {
   ok (resource && resource.path, "A valid resource has been passed in for selection " + (resource && resource.path));
   projecteditor.projectTree.selectResource(resource);
+  let container = projecteditor.projectTree.getViewContainer(resource);
 
+  if (resource.isRoot) {
+    ok (container.expanded, "The root directory is expanded by default.");
+    return;
+  }
   if (resource.isDir) {
+    ok (!container.expanded, "A directory is not expanded by default.");
     return;
   }
 
   let [editorCreated, editorLoaded, editorActivated] = yield promise.all([
     onceEditorCreated(projecteditor),
     onceEditorLoad(projecteditor),
     onceEditorActivated(projecteditor)
   ]);
--- a/browser/devtools/shared/Curl.jsm
+++ b/browser/devtools/shared/Curl.jsm
@@ -115,16 +115,20 @@ this.Curl = {
     // Add request headers.
     let headers = aData.headers;
     if (multipartRequest) {
       let multipartHeaders = utils.getHeadersFromMultipartText(postDataText);
       headers = headers.concat(multipartHeaders);
     }
     for (let i = 0; i < headers.length; i++) {
       let header = headers[i];
+      if (header.name === "Accept-Encoding"){
+        command.push("--compressed");
+        continue;
+      }
       if (ignoredHeaders.has(header.name)) {
         continue;
       }
       command.push("-H");
       command.push(escapeString(header.name + ": " + header.value));
     }
 
     // Add post data.
--- a/browser/devtools/shared/widgets/TableWidget.js
+++ b/browser/devtools/shared/widgets/TableWidget.js
@@ -33,34 +33,34 @@ const MAX_VISIBLE_STRING_SIZE = 100;
  *        The container element for the table widget.
  * @param {object} options
  *        - initialColumns: map of key vs display name for initial columns of
  *                          the table. See @setupColumns for more info.
  *        - uniqueId: the column which will be the unique identifier of each
  *                    entry in the table. Default: name.
  *        - emptyText: text to display when no entries in the table to display.
  *        - highlightUpdated: true to highlight the changed/added row.
- *        - removableColumns: Whether columns are removeable. If set to true,
+ *        - removableColumns: Whether columns are removeable. If set to false,
  *                            the context menu in the headers will not appear.
  *        - firstColumn: key of the first column that should appear.
  */
 function TableWidget(node, options={}) {
   EventEmitter.decorate(this);
 
   this.document = node.ownerDocument;
   this.window = this.document.defaultView;
   this._parent = node;
 
   let {initialColumns, emptyText, uniqueId, highlightUpdated, removableColumns,
        firstColumn} = options;
   this.emptyText = emptyText || "";
   this.uniqueId = uniqueId || "name";
   this.firstColumn = firstColumn || "";
   this.highlightUpdated = highlightUpdated || false;
-  this.removableColumns = removableColumns || false;
+  this.removableColumns = removableColumns !== false;
 
   this.tbody = this.document.createElementNS(XUL_NS, "hbox");
   this.tbody.className = "table-widget-body theme-body";
   this.tbody.setAttribute("flex", "1");
   this.tbody.setAttribute("tabindex", "0");
   this._parent.appendChild(this.tbody);
 
   this.placeholder = this.document.createElementNS(XUL_NS, "label");
@@ -271,17 +271,17 @@ TableWidget.prototype = {
    * Returns true if the passed string or the row json object corresponds to the
    * selected item in the table.
    */
   isSelected: function(item) {
     if (typeof item == "object") {
       item = item[this.uniqueId];
     }
 
-    return item == this.selectedRow[this.uniqueId];
+    return this.selectedRow && item == this.selectedRow[this.uniqueId];
   },
 
   /**
    * Selects the row corresponding to the `id` json.
    */
   selectRow: function(id) {
     this.selectedRow = id;
   },
@@ -682,25 +682,32 @@ Column.prototype = {
     }
     this.items[item[this.uniqueId]] = index;
     this.cells.splice(index, 0, new Cell(this, item, this.cells[index]));
   },
 
   /**
    * Event handler for the command event coming from the header context menu.
    * Toggles the column if it was requested by the user.
+   * When called explicitly without parameters, it toggles the corresponding
+   * column.
    *
    * @param {string} event
    *        The name of the event. i.e. EVENTS.HEADER_CONTEXT_MENU
    * @param {string} id
    *        Id of the column to be toggled
    * @param {string} checked
    *        true if the column is visible
    */
   toggleColumn: function(event, id, checked) {
+    if (arguments.length == 0) {
+      // Act like a toggling method when called with no params
+      id = this.id;
+      checked = this.wrapper.hasAttribute("hidden");
+    }
     if (id != this.id) {
       return;
     }
     if (checked) {
       this.wrapper.removeAttribute("hidden");
     } else {
       this.wrapper.setAttribute("hidden", "true");
     }
@@ -955,16 +962,18 @@ Cell.prototype = {
   },
 
   /**
    * Flashes the cell for a brief time. This when done for ith cells in all
    * columns, makes it look like the row is being highlighted/flashed.
    */
   flash: function() {
     this.label.classList.remove("flash-out");
+    // Cause a reflow so that the animation retriggers on adding back the class
+    let a = this.label.parentNode.offsetWidth;
     this.label.classList.add("flash-out");
   },
 
   focus: function() {
     this.label.focus();
   },
 
   destroy: function() {
--- a/browser/devtools/shared/widgets/TreeWidget.js
+++ b/browser/devtools/shared/widgets/TreeWidget.js
@@ -60,17 +60,17 @@ TreeWidget.prototype = {
     if (this._selectedLabel) {
       this._selectedLabel.classList.remove("theme-selected");
     }
     let currentSelected = this._selectedLabel;
     if (id == -1) {
       this._selectedLabel = this._selectedItem = null;
       return;
     }
-    if (!typeof id == "array") {
+    if (!Array.isArray(id)) {
       return;
     }
     this._selectedLabel = this.root.setSelectedItem(id);
     if (!this._selectedLabel) {
       this._selectedItem = null;
     } else {
       if (currentSelected != this._selectedLabel) {
         this.ensureSelectedVisible();
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/moz.build
@@ -0,0 +1,12 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
+
+EXTRA_JS_MODULES.devtools.storage += [
+    'panel.js',
+    'ui.js'
+]
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/panel.js
@@ -0,0 +1,83 @@
+/* -*- Mode: Javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* 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/. */
+
+const {Cc, Ci, Cu, Cr} = require("chrome");
+
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/Promise.jsm");
+
+let EventEmitter = require("devtools/toolkit/event-emitter");
+
+loader.lazyGetter(this, "StorageFront",
+  () => require("devtools/server/actors/storage").StorageFront);
+
+loader.lazyGetter(this, "StorageUI",
+  () => require("devtools/storage/ui").StorageUI);
+
+this.StoragePanel = function StoragePanel(panelWin, toolbox) {
+  EventEmitter.decorate(this);
+
+  this._toolbox = toolbox;
+  this._target = toolbox.target;
+  this._panelWin = panelWin;
+
+  this.destroy = this.destroy.bind(this);
+}
+
+exports.StoragePanel = StoragePanel;
+
+StoragePanel.prototype = {
+  get target() this._toolbox.target,
+
+  get panelWindow() this._panelWin,
+
+  /**
+   * open is effectively an asynchronous constructor
+   */
+  open: function() {
+    let targetPromise;
+    // We always interact with the target as if it were remote
+    if (!this.target.isRemote) {
+      targetPromise = this.target.makeRemote();
+    } else {
+      targetPromise = Promise.resolve(this.target);
+    }
+
+    return targetPromise.then(() => {
+      this.target.on("close", this.destroy);
+      this._front = new StorageFront(this.target.client, this.target.form);
+
+      this.UI = new StorageUI(this._front, this._target, this._panelWin);
+      this.isReady = true;
+      this.emit("ready");
+      return this;
+    }, console.error);
+  },
+
+  /**
+   * Destroy the style editor.
+   */
+  destroy: function() {
+    if (!this._destroyed) {
+      this.UI.destroy();
+      this._destroyed = true;
+
+      this._target.off("close", this.destroy);
+      this._target = null;
+      this._toolbox = null;
+      this._panelDoc = null;
+    }
+
+    return Promise.resolve(null);
+  },
+}
+
+XPCOMUtils.defineLazyGetter(StoragePanel.prototype, "strings",
+  function () {
+    return Services.strings.createBundle(
+            "chrome://browser/locale/devtools/storage.properties");
+  });
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/storage.xul
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+<?xml-stylesheet href="chrome://browser/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/content/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/devtools/common.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/devtools/widgets.css" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/devtools/storage.css" type="text/css"?>
+
+<?xul-overlay href="chrome://global/content/editMenuOverlay.xul"?>
+
+<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+  <script type="application/javascript;version=1.8"
+          src="chrome://browser/content/devtools/theme-switching.js"/>
+  <script type="text/javascript" src="chrome://global/content/globalOverlay.js"/>
+
+  <commandset id="editMenuCommands"/>
+
+  <box flex="1" class="devtools-responsive-container theme-body">
+    <vbox id="storage-tree"/>
+    <splitter class="devtools-side-splitter"/>
+    <vbox id="storage-table" class="theme-sidebar" flex="1"/>
+    <splitter class="devtools-side-splitter"/>
+    <vbox id="storage-sidebar" class="devtools-sidebar-tabs" hidden="true">
+      <vbox flex="1"/>
+    </vbox>
+  </box>
+
+</window>
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/browser.ini
@@ -0,0 +1,15 @@
+[DEFAULT]
+skip-if = e10s # Bug 1049888 - storage actors do not work in e10s for now
+subsuite = devtools
+support-files =
+  storage-complex-values.html
+  storage-listings.html
+  storage-secured-iframe.html
+  storage-unsecured-iframe.html
+  storage-updates.html
+  head.js
+
+[browser_storage_basic.js]
+[browser_storage_dynamic_updates.js]
+[browser_storage_sidebar.js]
+[browser_storage_values.js]
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/browser_storage_basic.js
@@ -0,0 +1,114 @@
+/* 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/. */
+
+// Basic test to assert that the storage tree and table corresponding to each
+// item in the storage tree is correctly displayed
+
+// Entries that should be present in the tree for this test
+// Format for each entry in the array :
+// [
+//   ["path", "to", "tree", "item"], - The path to the tree item to click formed
+//                                     by id of each item
+//   ["key_value1", "key_value2", ...] - The value of the first (unique) column
+//                                       for each row in the table corresponding
+//                                       to the tree item selected.
+// ]
+// These entries are formed by the cookies, local storage, session storage and
+// indexedDB entries created in storage-listings.html,
+// storage-secured-iframe.html and storage-unsecured-iframe.html
+const storeItems = [
+  [["cookies", "test1.example.org"],
+   ["c1", "cs2", "c3", "uc1"]],
+  [["cookies", "sectest1.example.org"],
+   ["uc1", "cs2", "sc1"]],
+  [["localStorage", "http://test1.example.org"],
+   ["ls1", "ls2"]],
+  [["localStorage", "http://sectest1.example.org"],
+   ["iframe-u-ls1"]],
+  [["localStorage", "https://sectest1.example.org"],
+   ["iframe-s-ls1"]],
+  [["sessionStorage", "http://test1.example.org"],
+   ["ss1"]],
+  [["sessionStorage", "http://sectest1.example.org"],
+   ["iframe-u-ss1", "iframe-u-ss2"]],
+  [["sessionStorage", "https://sectest1.example.org"],
+   ["iframe-s-ss1"]],
+  [["indexedDB", "http://test1.example.org"],
+   ["idb1", "idb2"]],
+  [["indexedDB", "http://test1.example.org", "idb1"],
+   ["obj1", "obj2"]],
+  [["indexedDB", "http://test1.example.org", "idb2"],
+   ["obj3"]],
+  [["indexedDB", "http://test1.example.org", "idb1", "obj1"],
+   [1, 2, 3]],
+  [["indexedDB", "http://test1.example.org", "idb1", "obj2"],
+   [1]],
+  [["indexedDB", "http://test1.example.org", "idb2", "obj3"],
+   []],
+  [["indexedDB", "http://sectest1.example.org"],
+   []],
+  [["indexedDB", "https://sectest1.example.org"],
+   ["idb-s1", "idb-s2"]],
+  [["indexedDB", "https://sectest1.example.org", "idb-s1"],
+   ["obj-s1"]],
+  [["indexedDB", "https://sectest1.example.org", "idb-s2"],
+   ["obj-s2"]],
+  [["indexedDB", "https://sectest1.example.org", "idb-s1", "obj-s1"],
+   [6, 7]],
+  [["indexedDB", "https://sectest1.example.org", "idb-s2", "obj-s2"],
+   [16]],
+];
+
+/**
+ * Test that the desired number of tree items are present
+ */
+function testTree() {
+  let doc = gPanelWindow.document;
+  for (let item of storeItems) {
+    ok(doc.querySelector("[data-id='" + JSON.stringify(item[0]) + "']"),
+       "Tree item " + item[0] + " should be present in the storage tree");
+  }
+}
+
+/**
+ * Test that correct table entries are shown for each of the tree item
+ */
+let testTables = Task.async(function*() {
+  let doc = gPanelWindow.document;
+  // Expand all nodes so that the synthesized click event actually works
+  gUI.tree.expandAll();
+
+  // First tree item is already selected so no clicking and waiting for update
+  for (let id of storeItems[0][1]) {
+    ok(doc.querySelector(".table-widget-cell[data-id='" + id + "']"),
+       "Table item " + id + " should be present");
+  }
+
+  // Click rest of the tree items and wait for the table to be updated
+  for (let item of storeItems.slice(1)) {
+    selectTreeItem(item[0]);
+    yield gUI.once("store-objects-updated");
+
+    // Check whether correct number of items are present in the table
+    is(doc.querySelectorAll(
+         ".table-widget-wrapper:first-of-type .table-widget-cell"
+       ).length, item[1].length, "Number of items in table is correct");
+
+    // Check if all the desired items are present in the table
+    for (let id of item[1]) {
+      ok(doc.querySelector(".table-widget-cell[data-id='" + id + "']"),
+         "Table item " + id + " should be present");
+    }
+  }
+});
+
+let startTest = Task.async(function*() {
+  testTree();
+  yield testTables();
+  finishTests();
+});
+
+function test() {
+  openTabAndSetupStorage(MAIN_DOMAIN + "storage-listings.html").then(startTest);
+}
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/browser_storage_dynamic_updates.js
@@ -0,0 +1,211 @@
+/* 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/. */
+
+let testUpdates = Task.async(function*() {
+
+  let $ = id => gPanelWindow.document.querySelector(id);
+  let $$ = sel => gPanelWindow.document.querySelectorAll(sel);
+
+  gUI.tree.expandAll();
+
+  ok(gUI.sidebar.hidden, "Sidebar is initially hidden");
+  selectTableItem("c1");
+  yield gUI.once("sidebar-updated");
+
+  // test that value is something initially
+  let initialValue = [[
+    {name: "c1", value: "1.2.3.4.5.6.7"},
+    {name: "c1.path", value: "/browser"}
+  ],[
+    {name: "c1", value: "Array"},
+    {name: "c1.0", value: "1"},
+    {name: "c1.6", value: "7"}
+  ]];
+
+  // test that value is something initially
+  let finalValue = [[
+    {name: "c1", value: '{"foo": 4,"bar":6}'},
+    {name: "c1.path", value: "/browser"}
+  ],[
+    {name: "c1", value: "Object"},
+    {name: "c1.foo", value: "4"},
+    {name: "c1.bar", value: "6"}
+  ]];
+  // Check that sidebar shows correct initial value
+  yield findVariableViewProperties(initialValue[0], false);
+  yield findVariableViewProperties(initialValue[1], true);
+  // Check if table shows correct initial value
+  ok($("#value [data-id='c1'].table-widget-cell"), "cell is present");
+  is($("#value [data-id='c1'].table-widget-cell").value, "1.2.3.4.5.6.7",
+       "correct initial value in table");
+  gWindow.addCookie("c1", '{"foo": 4,"bar":6}', "/browser");
+  yield gUI.once("sidebar-updated");
+
+  yield findVariableViewProperties(finalValue[0], false);
+  yield findVariableViewProperties(finalValue[1], true);
+  ok($("#value [data-id='c1'].table-widget-cell"), "cell is present after update");
+  is($("#value [data-id='c1'].table-widget-cell").value, '{"foo": 4,"bar":6}',
+       "correct final value in table");
+
+  // Add a new entry
+  is($$("#value .table-widget-cell").length, 2,
+     "Correct number of rows before update 0");
+
+  gWindow.addCookie("c3", "booyeah");
+
+  // Wait once for update and another time for value fetching
+  yield gUI.once("store-objects-updated");
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 3,
+     "Correct number of rows after update 1");
+
+  // Add another
+  gWindow.addCookie("c4", "booyeah");
+
+  // Wait once for update and another time for value fetching
+  yield gUI.once("store-objects-updated");
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 4,
+     "Correct number of rows after update 2");
+
+  // Removing cookies
+  gWindow.removeCookie("c1", "/browser");
+
+  yield gUI.once("sidebar-updated");
+
+  is($$("#value .table-widget-cell").length, 3,
+     "Correct number of rows after delete update 3");
+
+  ok(!$("#c1"), "Correct row got deleted");
+
+  ok(!gUI.sidebar.hidden, "Sidebar still visible for next row");
+
+  // Check if next element's value is visible in sidebar
+  yield findVariableViewProperties([{name: "c2", value: "foobar"}]);
+
+  // Keep deleting till no rows
+
+  gWindow.removeCookie("c3");
+
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 2,
+     "Correct number of rows after delete update 4");
+
+  // Check if next element's value is visible in sidebar
+  yield findVariableViewProperties([{name: "c2", value: "foobar"}]);
+
+  gWindow.removeCookie("c2", "/browser");
+
+  yield gUI.once("sidebar-updated");
+
+  yield findVariableViewProperties([{name: "c4", value: "booyeah"}]);
+
+  is($$("#value .table-widget-cell").length, 1,
+     "Correct number of rows after delete update 5");
+
+  gWindow.removeCookie("c4");
+
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 0,
+     "Correct number of rows after delete update 6");
+  ok(gUI.sidebar.hidden, "Sidebar is hidden when no rows");
+
+  // Testing in local storage
+  selectTreeItem(["localStorage", "http://test1.example.org"]);
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 7,
+     "Correct number of rows after delete update 7");
+
+  ok($(".table-widget-cell[data-id='ls4']"), "ls4 exists before deleting");
+
+  gWindow.localStorage.removeItem("ls4");
+
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 6,
+     "Correct number of rows after delete update 8");
+  ok(!$(".table-widget-cell[data-id='ls4']"),
+     "ls4 does not exists after deleting");
+
+  gWindow.localStorage.setItem("ls4", "again");
+
+  yield gUI.once("store-objects-updated");
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 7,
+     "Correct number of rows after delete update 9");
+  ok($(".table-widget-cell[data-id='ls4']"),
+     "ls4 came back after adding it again");
+
+  // Updating a row
+  gWindow.localStorage.setItem("ls2", "ls2-changed");
+
+  yield gUI.once("store-objects-updated");
+  yield gUI.once("store-objects-updated");
+
+  is($("#value [data-id='ls2']").value, "ls2-changed",
+      "Value got updated for local storage");
+
+  // Testing in session storage
+  selectTreeItem(["sessionStorage", "http://test1.example.org"]);
+
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 3,
+     "Correct number of rows for session storage");
+
+  gWindow.sessionStorage.setItem("ss4", "new-item");
+
+  yield gUI.once("store-objects-updated");
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 4,
+     "Correct number of rows after session storage update");
+
+  // deleting item
+
+  gWindow.sessionStorage.removeItem("ss3");
+
+  yield gUI.once("store-objects-updated");
+
+  gWindow.sessionStorage.removeItem("ss1");
+
+  yield gUI.once("store-objects-updated");
+
+  is($$("#value .table-widget-cell").length, 2,
+     "Correct number of rows after removing items from session storage");
+
+  selectTableItem("ss2");
+
+  yield gUI.once("sidebar-updated");
+
+  ok(!gUI.sidebar.hidden, "sidebar is visible");
+
+  // Checking for correct value in sidebar before update
+  yield findVariableViewProperties([{name: "ss2", value: "foobar"}]);
+
+  gWindow.sessionStorage.setItem("ss2", "changed=ss2");
+
+  yield gUI.once("sidebar-updated");
+
+  is($("#value [data-id='ss2']").value, "changed=ss2",
+      "Value got updated for session storage in the table");
+
+  yield findVariableViewProperties([{name: "ss2", value: "changed=ss2"}]);
+
+});
+
+let startTest = Task.async(function*() {
+  yield testUpdates();
+  finishTests();
+});
+
+function test() {
+  openTabAndSetupStorage(MAIN_DOMAIN + "storage-updates.html").then(startTest);
+}
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/browser_storage_sidebar.js
@@ -0,0 +1,67 @@
+/* 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/. */
+
+// Test to verify that the sidebar opens, closes and updates
+// This test is not testing the values in the sidebar, being tested in _values
+
+// Format: [
+//   <id of the table item to click> or <id array for tree item to select> or
+//     null to press Escape,
+//   <do we wait for the async "sidebar-updated" event>,
+//   <is the sidebar open>
+// ]
+const testCases = [
+  [["cookies", "sectest1.example.org"], 0, 0],
+  ["cs2", 1, 1],
+  [null, 0, 0],
+  ["cs2", 1, 1],
+  ["uc1", 1, 1],
+  ["uc1", 0, 1],
+  [["localStorage", "http://sectest1.example.org"], 0, 0],
+  ["iframe-u-ls1", 1, 1],
+  ["iframe-u-ls1", 0, 1],
+  [null, 0, 0],
+  [["sessionStorage", "http://test1.example.org"], 0, 0],
+  ["ss1", 1, 1],
+  [null, 0, 0],
+  [["indexedDB", "http://test1.example.org"], 0, 0],
+  ["idb2", 1, 1],
+  [["indexedDB", "http://test1.example.org", "idb2", "obj3"], 0, 0],
+  [["indexedDB", "https://sectest1.example.org", "idb-s2"], 0, 0],
+  ["obj-s2", 1, 1],
+  [null, 0, 0],
+  [null, 0, 0],
+  ["obj-s2", 1, 1],
+  [null, 0, 0],
+];
+
+let testSidebar = Task.async(function*() {
+  let doc = gPanelWindow.document;
+  for (let item of testCases) {
+    info("clicking for item " + item);
+    if (Array.isArray(item[0])) {
+      selectTreeItem(item[0]);
+      yield gUI.once("store-objects-updated");
+    }
+    else if (item[0]) {
+      selectTableItem(item[0]);
+    }
+    else {
+      EventUtils.sendKey("ESCAPE", gPanelWindow);
+    }
+    if (item[1]) {
+      yield gUI.once("sidebar-updated");
+    }
+    is(!item[2], gUI.sidebar.hidden, "Correct visibility state of sidebar");
+  }
+});
+
+let startTest = Task.async(function*() {
+  yield testSidebar();
+  finishTests();
+});
+
+function test() {
+  openTabAndSetupStorage(MAIN_DOMAIN + "storage-listings.html").then(startTest);
+}
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/browser_storage_values.js
@@ -0,0 +1,143 @@
+/* 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/. */
+
+// Test to verify that the values shown in sidebar are correct
+
+// Format: [
+//   <id of the table item to click> or <id array for tree item to select> or
+//     null do click nothing,
+//   null to skip checking value in variables view or a key value pair object
+//     which will be asserted to exist in the storage sidebar,
+//   true if the check is to be made in the parsed value section
+// ]
+const testCases = [
+  ["cs2", [
+    {name: "cs2", value: "sessionCookie"},
+    {name: "cs2.path", value: "/"},
+    {name: "cs2.isDomain", value: "true"},
+    {name: "cs2.isHttpOnly", value: "false"},
+    {name: "cs2.host", value: ".example.org"},
+    {name: "cs2.expires", value: "Session"},
+    {name: "cs2.isSecure", value: "false"},
+  ]],
+  ["c1", [
+    {name: "c1", value: JSON.stringify(["foo", "Bar", {foo: "Bar"}])},
+    {name: "c1.path", value: "/browser"},
+    {name: "c1.isDomain", value: "false"},
+    {name: "c1.isHttpOnly", value: "false"},
+    {name: "c1.host", value: "test1.example.org"},
+    {name: "c1.expires", value: new Date(2000000000000).toLocaleString()},
+    {name: "c1.isSecure", value: "false"},
+  ]],
+  [/*"c1"*/, [
+    {name: "c1", value: "Array"},
+    {name: "c1.0", value: "foo"},
+    {name: "c1.1", value: "Bar"},
+    {name: "c1.2", value: "Object"},
+    {name: "c1.2.foo", value: "Bar"},
+  ], true],
+  [["localStorage", "http://test1.example.org"]],
+  ["ls2", [
+    {name: "ls2", value: "foobar-2"}
+  ]],
+  ["ls1", [
+    {name: "ls1", value: JSON.stringify({
+      es6: "for", the: "win", baz: [0, 2, 3, {
+        deep: "down",
+        nobody: "cares"
+      }]})}
+  ]],
+  [/*ls1*/, [
+    {name: "ls1", value: "Object"},
+    {name: "ls1.es6", value: "for"},
+    {name: "ls1.the", value: "win"},
+    {name: "ls1.baz", value: "Array"},
+    {name: "ls1.baz.0", value: "0"},
+    {name: "ls1.baz.1", value: "2"},
+    {name: "ls1.baz.2", value: "3"},
+    {name: "ls1.baz.3", value: "Object"},
+    {name: "ls1.baz.3.deep", value: "down"},
+    {name: "ls1.baz.3.nobody", value: "cares"},
+  ], true],
+  ["ls3", [
+    {name: "ls3", "value": "http://foobar.com/baz.php"}
+  ]],
+  [/*ls3*/, [
+    {name: "ls3", "value": "http://foobar.com/baz.php", dontMatch: true}
+  ], true],
+  [["sessionStorage", "http://test1.example.org"]],
+  ["ss1", [
+    {name: "ss1", value: "This#is#an#array"}
+  ]],
+  [/*ss1*/, [
+    {name: "ss1", value: "Array"},
+    {name: "ss1.0", value: "This"},
+    {name: "ss1.1", value: "is"},
+    {name: "ss1.2", value: "an"},
+    {name: "ss1.3", value: "array"},
+  ], true],
+  ["ss2", [
+    {name: "ss2", value: "Array"},
+    {name: "ss2.0", value: "This"},
+    {name: "ss2.1", value: "is"},
+    {name: "ss2.2", value: "another"},
+    {name: "ss2.3", value: "array"},
+  ], true],
+  ["ss3", [
+    {name: "ss3", value: "Object"},
+    {name: "ss3.this", value: "is"},
+    {name: "ss3.an", value: "object"},
+    {name: "ss3.foo", value: "bar"},
+  ], true],
+  [["indexedDB", "http://test1.example.org", "idb1", "obj1"]],
+  [1, [
+    {name: 1, value: JSON.stringify({id: 1, name: "foo", email: "foo@bar.com"})}
+  ]],
+  [/*1*/, [
+    {name: "1.id", value: "1"},
+    {name: "1.name", value: "foo"},
+    {name: "1.email", value: "foo@bar.com"},
+  ], true],
+  [["indexedDB", "http://test1.example.org", "idb1", "obj2"]],
+  [1, [
+    {name: 1, value: JSON.stringify({
+      id2: 1, name: "foo", email: "foo@bar.com", extra: "baz"
+    })}
+  ]],
+  [/*1*/, [
+    {name: "1.id2", value: "1"},
+    {name: "1.name", value: "foo"},
+    {name: "1.email", value: "foo@bar.com"},
+    {name: "1.extra", value: "baz"},
+  ], true]
+];
+
+let testValues = Task.async(function*() {
+  gUI.tree.expandAll();
+  let doc = gPanelWindow.document;
+  for (let item of testCases) {
+    info("clicking for item " + item);
+    if (Array.isArray(item[0])) {
+      selectTreeItem(item[0]);
+      yield gUI.once("store-objects-updated");
+      continue;
+    }
+    else if (item[0]) {
+      selectTableItem(item[0]);
+    }
+    if (item[0] && item[1]) {
+      yield gUI.once("sidebar-updated");
+    }
+    yield findVariableViewProperties(item[1], item[2]);
+  }
+});
+
+let startTest = Task.async(function*() {
+  yield testValues();
+  finishTests();
+});
+
+function test() {
+  openTabAndSetupStorage(MAIN_DOMAIN + "storage-complex-values.html").then(startTest);
+}
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/head.js
@@ -0,0 +1,499 @@
+/* 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/. */
+
+"use strict";
+
+let tempScope = {};
+Cu.import("resource://gre/modules/devtools/Loader.jsm", tempScope);
+Cu.import("resource://gre/modules/devtools/Console.jsm", tempScope);
+const console = tempScope.console;
+const devtools = tempScope.devtools;
+tempScope = null;
+const require = devtools.require;
+const TargetFactory = devtools.TargetFactory;
+
+const SPLIT_CONSOLE_PREF = "devtools.toolbox.splitconsoleEnabled";
+const STORAGE_PREF = "devtools.storage.enabled";
+const PATH = "browser/browser/devtools/storage/test/";
+const MAIN_DOMAIN = "http://test1.example.org/" + PATH;
+const ALT_DOMAIN = "http://sectest1.example.org/" + PATH;
+const ALT_DOMAIN_SECURED = "https://sectest1.example.org:443/" + PATH;
+
+let {Promise: promise} = Cu.import("resource://gre/modules/Promise.jsm", {});
+
+waitForExplicitFinish();
+
+let gToolbox, gPanelWindow, gWindow, gUI;
+
+Services.prefs.setBoolPref(STORAGE_PREF, true);
+gDevTools.testing = true;
+registerCleanupFunction(() => {
+  gToolbox = gPanelWindow = gWindow = gUI = null;
+  Services.prefs.clearUserPref(STORAGE_PREF);
+  Services.prefs.clearUserPref(SPLIT_CONSOLE_PREF);
+  gDevTools.testing = false;
+  while (gBrowser.tabs.length > 1) {
+    gBrowser.removeCurrentTab();
+  }
+});
+
+/**
+ * Add a new test tab in the browser and load the given url.
+ *
+ * @param {String} url The url to be loaded in the new tab
+ *
+ * @return a promise that resolves to the content window when the url is loaded
+ */
+function addTab(url) {
+  info("Adding a new tab with URL: '" + url + "'");
+  let def = promise.defer();
+
+  // Bug 921935 should bring waitForFocus() support to e10s, which would
+  // probably cover the case of the test losing focus when the page is loading.
+  // For now, we just make sure the window is focused.
+  window.focus();
+
+  let tab = window.gBrowser.selectedTab = window.gBrowser.addTab(url);
+  let linkedBrowser = tab.linkedBrowser;
+
+  linkedBrowser.addEventListener("load", function onload(event) {
+    if (event.originalTarget.location.href != url) {
+      return;
+    }
+    linkedBrowser.removeEventListener("load", onload, true);
+    info("URL '" + url + "' loading complete");
+    def.resolve(tab.linkedBrowser.contentWindow);
+  }, true);
+
+  return def.promise;
+}
+
+/**
+ * Opens the given url in a new tab, then sets up the page by waiting for
+ * all cookies, indexedDB items etc. to be created; Then opens the storage
+ * inspector and waits for the storage tree and table to be populated
+ *
+ * @param url {String} The url to be opened in the new tab
+ *
+ * @return {Promise} A promise that resolves after storage inspector is ready
+ */
+let openTabAndSetupStorage = Task.async(function*(url) {
+  /**
+   * This method iterates over iframes in a window and setups the indexed db
+   * required for this test.
+   */
+  let setupIDBInFrames = (w, i, c) => {
+    if (w[i] && w[i].idbGenerator) {
+      w[i].setupIDB = w[i].idbGenerator(() => setupIDBInFrames(w, i + 1, c));
+      w[i].setupIDB.next();
+    }
+    else if (w[i] && w[i + 1]) {
+      setupIDBInFrames(w, i + 1, c);
+    }
+    else {
+      c();
+    }
+  };
+
+  let content = yield addTab(url);
+
+  let def = promise.defer();
+  // Setup the indexed db in main window.
+  gWindow = content.wrappedJSObject;
+  if (gWindow.idbGenerator) {
+    gWindow.setupIDB = gWindow.idbGenerator(() => {
+      setupIDBInFrames(gWindow, 0, () => {
+        def.resolve();
+      });
+    });
+    gWindow.setupIDB.next();
+    yield def.promise;
+  }
+
+  // open storage inspector
+  return yield openStoragePanel();
+});
+
+/**
+ * Open the toolbox, with the storage tool visible.
+ *
+ * @param cb {Function} Optional callback, if you don't want to use the returned
+ *                      promise
+ *
+ * @return {Promise} a promise that resolves when the storage inspector is ready
+ */
+let openStoragePanel = Task.async(function*(cb) {
+  info("Opening the storage inspector");
+  let target = TargetFactory.forTab(gBrowser.selectedTab);
+
+  let storage, toolbox;
+
+  // Checking if the toolbox and the storage are already loaded
+  // The storage-updated event should only be waited for if the storage
+  // isn't loaded yet
+  toolbox = gDevTools.getToolbox(target);
+  if (toolbox) {
+    storage = toolbox.getPanel("storage");
+    if (storage) {
+      gPanelWindow = storage.panelWindow;
+      gUI = storage.UI;
+      gToolbox = toolbox;
+      info("Toolbox and storage already open");
+      if (cb) {
+        return cb(storage, toolbox);
+      } else {
+        return {
+          toolbox: toolbox,
+          storage: storage
+        };
+      }
+    }
+  }
+
+  info("Opening the toolbox");
+  toolbox = yield gDevTools.showToolbox(target, "storage");
+  storage = toolbox.getPanel("storage");
+  gPanelWindow = storage.panelWindow;
+  gUI = storage.UI;
+  gToolbox = toolbox;
+
+  info("Waiting for the stores to update");
+  yield gUI.once("store-objects-updated");
+
+  yield waitForToolboxFrameFocus(toolbox);
+
+  if (cb) {
+    return cb(storage, toolbox);
+  } else {
+    return {
+      toolbox: toolbox,
+      storage: storage
+    };
+  }
+});
+
+/**
+ * Wait for the toolbox frame to receive focus after it loads
+ *
+ * @param toolbox {Toolbox}
+ *
+ * @return a promise that resolves when focus has been received
+ */
+function waitForToolboxFrameFocus(toolbox) {
+  info("Making sure that the toolbox's frame is focused");
+  let def = promise.defer();
+  let win = toolbox.frame.contentWindow;
+  waitForFocus(def.resolve, win);
+  return def.promise;
+}
+
+/**
+ * Forces GC, CC and Shrinking GC to get rid of disconnected docshells and
+ * windows.
+ */
+function forceCollections() {
+  Cu.forceGC();
+  Cu.forceCC();
+  Cu.forceShrinkingGC();
+}
+
+/**
+ * Cleans up and finishes the test
+ */
+function finishTests() {
+  // Cleanup so that indexed db created from this test do not interfere next ones
+
+  /**
+   * This method iterates over iframes in a window and clears the indexed db
+   * created by this test.
+   */
+  let clearIDB = (w, i, c) => {
+    if (w[i] && w[i].clear) {
+      w[i].clearIterator = w[i].clear(() => clearIDB(w, i + 1, c));
+      w[i].clearIterator.next();
+    }
+    else if (w[i] && w[i + 1]) {
+      clearIDB(w, i + 1, c);
+    }
+    else {
+      c();
+    }
+  };
+
+  gWindow.clearIterator = gWindow.clear(() => {
+    clearIDB(gWindow, 0, () => {
+      // Forcing GC/CC to get rid of docshells and windows created by this test.
+      forceCollections();
+      finish();
+    });
+  });
+  gWindow.clearIterator.next();
+}
+
+// Sends a click event on the passed DOM node in an async manner
+function click(node) {
+  node.scrollIntoView()
+  executeSoon(() => EventUtils.synthesizeMouseAtCenter(node, {}, gPanelWindow));
+}
+
+
+
+/**
+ * Recursively expand the variables view up to a given property.
+ *
+ * @param aOptions
+ *        Options for view expansion:
+ *        - rootVariable: start from the given scope/variable/property.
+ *        - expandTo: string made up of property names you want to expand.
+ *        For example: "body.firstChild.nextSibling" given |rootVariable:
+ *        document|.
+ * @return object
+ *         A promise that is resolved only when the last property in |expandTo|
+ *         is found, and rejected otherwise. Resolution reason is always the
+ *         last property - |nextSibling| in the example above. Rejection is
+ *         always the last property that was found.
+ */
+function variablesViewExpandTo(aOptions) {
+  let root = aOptions.rootVariable;
+  let expandTo = aOptions.expandTo.split(".");
+  let lastDeferred = promise.defer();
+
+  function getNext(aProp) {
+    let name = expandTo.shift();
+    let newProp = aProp.get(name);
+
+    if (expandTo.length > 0) {
+      ok(newProp, "found property " + name);
+      if (newProp && newProp.expand) {
+        newProp.expand();
+        getNext(newProp);
+      }
+      else {
+        lastDeferred.reject(aProp);
+      }
+    }
+    else {
+      if (newProp) {
+        lastDeferred.resolve(newProp);
+      }
+      else {
+        lastDeferred.reject(aProp);
+      }
+    }
+  }
+
+  function fetchError(aProp) {
+    lastDeferred.reject(aProp);
+  }
+
+  if (root && root.expand) {
+    root.expand();
+    getNext(root);
+  }
+  else {
+    lastDeferred.resolve(root)
+  }
+
+  return lastDeferred.promise;
+}
+
+/**
+ * Find variables or properties in a VariablesView instance.
+ *
+ * @param array aRules
+ *        The array of rules you want to match. Each rule is an object with:
+ *        - name (string|regexp): property name to match.
+ *        - value (string|regexp): property value to match.
+ *        - dontMatch (boolean): make sure the rule doesn't match any property.
+ * @param boolean aParsed
+ *        true if we want to test the rules in the parse value section of the
+ *        storage sidebar
+ * @return object
+ *         A promise object that is resolved when all the rules complete
+ *         matching. The resolved callback is given an array of all the rules
+ *         you wanted to check. Each rule has a new property: |matchedProp|
+ *         which holds a reference to the Property object instance from the
+ *         VariablesView. If the rule did not match, then |matchedProp| is
+ *         undefined.
+ */
+function findVariableViewProperties(aRules, aParsed) {
+  // Initialize the search.
+  function init() {
+    // If aParsed is true, we are checking rules in the parsed value section of
+    // the storage sidebar. That scope uses a blank variable as a placeholder
+    // Thus, adding a blank parent to each name
+    if (aParsed) {
+      aRules = aRules.map(({name, value, dontMatch}) => {
+        return {name: "." + name, value, dontMatch}
+      });
+    }
+    // Separate out the rules that require expanding properties throughout the
+    // view.
+    let expandRules = [];
+    let rules = aRules.filter((aRule) => {
+      if (typeof aRule.name == "string" && aRule.name.indexOf(".") > -1) {
+        expandRules.push(aRule);
+        return false;
+      }
+      return true;
+    });
+
+    // Search through the view those rules that do not require any properties to
+    // be expanded. Build the array of matchers, outstanding promises to be
+    // resolved.
+    let outstanding = [];
+
+    finder(rules, gUI.view, outstanding);
+
+    // Process the rules that need to expand properties.
+    let lastStep = processExpandRules.bind(null, expandRules);
+
+    // Return the results - a promise resolved to hold the updated aRules array.
+    let returnResults = onAllRulesMatched.bind(null, aRules);
+
+    return promise.all(outstanding).then(lastStep).then(returnResults);
+  }
+
+  function onMatch(aProp, aRule, aMatched) {
+    if (aMatched && !aRule.matchedProp) {
+      aRule.matchedProp = aProp;
+    }
+  }
+
+  function finder(aRules, aView, aPromises) {
+    for (let scope of aView) {
+      for (let [id, prop] of scope) {
+        for (let rule of aRules) {
+          let matcher = matchVariablesViewProperty(prop, rule);
+          aPromises.push(matcher.then(onMatch.bind(null, prop, rule)));
+        }
+      }
+    }
+  }
+
+  function processExpandRules(aRules) {
+    let rule = aRules.shift();
+    if (!rule) {
+      return promise.resolve(null);
+    }
+
+    let deferred = promise.defer();
+    let expandOptions = {
+      rootVariable: gUI.view.getScopeAtIndex(aParsed ? 1: 0),
+      expandTo: rule.name
+    };
+
+    variablesViewExpandTo(expandOptions).then(function onSuccess(aProp) {
+      let name = rule.name;
+      let lastName = name.split(".").pop();
+      rule.name = lastName;
+
+      let matched = matchVariablesViewProperty(aProp, rule);
+      return matched.then(onMatch.bind(null, aProp, rule)).then(function() {
+        rule.name = name;
+      });
+    }, function onFailure() {
+      return promise.resolve(null);
+    }).then(processExpandRules.bind(null, aRules)).then(function() {
+      deferred.resolve(null);
+    });
+
+    return deferred.promise;
+  }
+
+  function onAllRulesMatched(aRules) {
+    for (let rule of aRules) {
+      let matched = rule.matchedProp;
+      if (matched && !rule.dontMatch) {
+        ok(true, "rule " + rule.name + " matched for property " + matched.name);
+      }
+      else if (matched && rule.dontMatch) {
+        ok(false, "rule " + rule.name + " should not match property " +
+           matched.name);
+      }
+      else {
+        ok(rule.dontMatch, "rule " + rule.name + " did not match any property");
+      }
+    }
+    return aRules;
+  }
+
+  return init();
+}
+
+/**
+ * Check if a given Property object from the variables view matches the given
+ * rule.
+ *
+ * @param object aProp
+ *        The variable's view Property instance.
+ * @param object aRule
+ *        Rules for matching the property. See findVariableViewProperties() for
+ *        details.
+ * @return object
+ *         A promise that is resolved when all the checks complete. Resolution
+ *         result is a boolean that tells your promise callback the match
+ *         result: true or false.
+ */
+function matchVariablesViewProperty(aProp, aRule) {
+  function resolve(aResult) {
+    return promise.resolve(aResult);
+  }
+
+  if (!aProp) {
+    return resolve(false);
+  }
+
+  if (aRule.name) {
+    let match = aRule.name instanceof RegExp ?
+                aRule.name.test(aProp.name) :
+                aProp.name == aRule.name;
+    if (!match) {
+      return resolve(false);
+    }
+  }
+
+  if ("value" in aRule) {
+    let displayValue = aProp.displayValue;
+    if (aProp.displayValueClassName == "token-string") {
+      displayValue = displayValue.substring(1, displayValue.length - 1);
+    }
+
+    let match = aRule.value instanceof RegExp ?
+                aRule.value.test(displayValue) :
+                displayValue == aRule.value;
+    if (!match) {
+      info("rule " + aRule.name + " did not match value, expected '" +
+           aRule.value + "', found '" + displayValue  + "'");
+      return resolve(false);
+    }
+  }
+
+  return resolve(true);
+}
+
+/**
+ * Click selects a row in the table.
+ *
+ * @param {[String]} ids
+ *        The array id of the item in the tree
+ */
+function selectTreeItem(ids) {
+  // Expand tree as some/all items could be collapsed leading to click on an
+  // incorrect tree item
+  gUI.tree.expandAll();
+  click(gPanelWindow.document.querySelector("[data-id='" + JSON.stringify(ids) +
+        "'] > .tree-widget-item"));
+}
+
+/**
+ * Click selects a row in the table.
+ *
+ * @param {String} id
+ *        The id of the row in the table widget
+ */
+function selectTableItem(id) {
+  click(gPanelWindow.document.querySelector(".table-widget-cell[data-id='" +
+        id + "']"));
+}
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/moz.build
@@ -0,0 +1,8 @@
+# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+BROWSER_CHROME_MANIFESTS += ['browser.ini']
+
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/storage-complex-values.html
@@ -0,0 +1,99 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Bug 970517 - Storage inspector front end - tests
+-->
+<head>
+  <meta charset="utf-8">
+  <title>Storage inspector test for correct values in the sidebar</title>
+</head>
+<body>
+<script type="application/javascript;version=1.7">
+
+let partialHostname = location.hostname.match(/^[^.]+(\..*)$/)[1];
+let cookieExpiresTime = 2000000000000;
+// Setting up some cookies to eat.
+document.cookie = "c1=" + JSON.stringify([
+  "foo", "Bar", {
+    foo: "Bar"
+  }]) + "; expires=" + new Date(cookieExpiresTime).toGMTString() +
+  "; path=/browser";
+document.cookie = "cs2=sessionCookie; path=/; domain=" + partialHostname;
+// ... and some local storage items ..
+var es6 = "for";
+localStorage.setItem("ls1", JSON.stringify({
+  es6, the: "win", baz: [0, 2, 3, {
+    deep: "down",
+    nobody: "cares"
+  }]}));
+localStorage.setItem("ls2", "foobar-2");
+localStorage.setItem("ls3", "http://foobar.com/baz.php");
+// ... and finally some session storage items too
+sessionStorage.setItem("ss1", "This#is#an#array");
+sessionStorage.setItem("ss2", "This~is~another~array");
+sessionStorage.setItem("ss3", "this#is~an#object~foo#bar");
+console.log("added cookies and stuff from main page");
+
+function success(event) {
+  setupIDB.next(event);
+}
+
+window.idbGenerator = function*(callback) {
+  let request = indexedDB.open("idb1", 1);
+  request.onupgradeneeded = success;
+  request.onerror = function(e) {
+    throw new Error("error opening db connection");
+  };
+  let event = yield undefined;
+  let db = event.target.result;
+  let store1 = db.createObjectStore("obj1", { keyPath: "id" });
+  store1.createIndex("name", "name", { unique: false });
+  store1.createIndex("email", "email", { unique: true });
+  let store2 = db.createObjectStore("obj2", { keyPath: "id2" });
+
+  store1.add({id: 1, name: "foo", email: "foo@bar.com"}).onsuccess = success;
+  yield undefined;
+  store1.add({id: 2, name: "foo2", email: "foo2@bar.com"}).onsuccess = success;
+  yield undefined;
+  store1.add({id: 3, name: "foo2", email: "foo3@bar.com"}).onsuccess = success;
+  yield undefined;
+  store2.add({id2: 1, name: "foo", email: "foo@bar.com", extra: "baz"}).onsuccess = success;
+  yield undefined;
+
+  store1.transaction.oncomplete = success;
+  yield undefined;
+  db.close();
+
+  request = indexedDB.open("idb2", 1);
+  request.onupgradeneeded = success;
+  event = yield undefined;
+
+  let db2 = event.target.result;
+  let store3 = db2.createObjectStore("obj3", { keyPath: "id3" });
+  store3.createIndex("name2", "name2", { unique: true });
+  store3.transaction.oncomplete = success;
+  yield undefined;
+  db2.close();
+  console.log("added cookies and stuff from main page");
+  callback();
+}
+
+function successClear(event) {
+  clearIterator.next(event);
+}
+
+window.clear = function*(callback) {
+  document.cookie = "c1=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/browser";
+  document.cookie = "cs2=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
+  localStorage.clear();
+  sessionStorage.clear();
+  indexedDB.deleteDatabase("idb1").onsuccess = successClear;
+  yield undefined;
+  indexedDB.deleteDatabase("idb2").onsuccess = successClear;
+  yield undefined;
+  console.log("removed cookies and stuff from main page");
+  callback();
+}
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/storage-listings.html
@@ -0,0 +1,94 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Bug 970517 - Storage inspector front end - tests
+-->
+<head>
+  <meta charset="utf-8">
+  <title>Storage inspector test for listing hosts and storages</title>
+</head>
+<body>
+<iframe src="http://sectest1.example.org/browser/browser/devtools/storage/test/storage-unsecured-iframe.html"></iframe>
+<iframe src="https://sectest1.example.org:443/browser/browser/devtools/storage/test/storage-secured-iframe.html"></iframe>
+<script type="application/javascript;version=1.7">
+
+let partialHostname = location.hostname.match(/^[^.]+(\..*)$/)[1];
+let cookieExpiresTime1 = 2000000000000;
+let cookieExpiresTime2 = 2000000001000;
+// Setting up some cookies to eat.
+document.cookie = "c1=foobar; expires=" +
+  new Date(cookieExpiresTime1).toGMTString() + "; path=/browser";
+document.cookie = "cs2=sessionCookie; path=/; domain=" + partialHostname;
+document.cookie = "c3=foobar-2; secure=true; expires=" +
+  new Date(cookieExpiresTime2).toGMTString() + "; path=/";
+// ... and some local storage items ..
+localStorage.setItem("ls1", "foobar");
+localStorage.setItem("ls2", "foobar-2");
+// ... and finally some session storage items too
+sessionStorage.setItem("ss1", "foobar-3");
+console.log("added cookies and stuff from main page");
+
+function success(event) {
+  setupIDB.next(event);
+}
+
+window.idbGenerator = function*(callback) {
+  let request = indexedDB.open("idb1", 1);
+  request.onupgradeneeded = success;
+  request.onerror = function(e) {
+    throw new Error("error opening db connection");
+  };
+  let event = yield undefined;
+  let db = event.target.result;
+  let store1 = db.createObjectStore("obj1", { keyPath: "id" });
+  store1.createIndex("name", "name", { unique: false });
+  store1.createIndex("email", "email", { unique: true });
+  let store2 = db.createObjectStore("obj2", { keyPath: "id2" });
+
+  store1.add({id: 1, name: "foo", email: "foo@bar.com"}).onsuccess = success;
+  yield undefined;
+  store1.add({id: 2, name: "foo2", email: "foo2@bar.com"}).onsuccess = success;
+  yield undefined;
+  store1.add({id: 3, name: "foo2", email: "foo3@bar.com"}).onsuccess = success;
+  yield undefined;
+  store2.add({id2: 1, name: "foo", email: "foo@bar.com", extra: "baz"}).onsuccess = success;
+  yield undefined;
+
+  store1.transaction.oncomplete = success;
+  yield undefined;
+  db.close();
+
+  request = indexedDB.open("idb2", 1);
+  request.onupgradeneeded = success;
+  event = yield undefined;
+
+  let db2 = event.target.result;
+  let store3 = db2.createObjectStore("obj3", { keyPath: "id3" });
+  store3.createIndex("name2", "name2", { unique: true });
+  store3.transaction.oncomplete = success;
+  yield undefined;
+  db2.close();
+  console.log("added cookies and stuff from main page");
+  callback();
+}
+
+function successClear(event) {
+  clearIterator.next(event);
+}
+
+window.clear = function*(callback) {
+  document.cookie = "c1=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/browser";
+  document.cookie = "c3=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; secure=true";
+  document.cookie = "cs2=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=" + partialHostname;
+  localStorage.clear();
+  sessionStorage.clear();
+  indexedDB.deleteDatabase("idb1").onsuccess = successClear;
+  yield undefined;
+  indexedDB.deleteDatabase("idb2").onsuccess = successClear;
+  yield undefined;
+  console.log("removed cookies and stuff from main page");
+  callback();
+}
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/storage-secured-iframe.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Iframe for testing multiple host detetion in storage actor
+-->
+<head>
+  <meta charset="utf-8">
+</head>
+<body>
+<script type="application/javascript;version=1.7">
+
+document.cookie = "sc1=foobar;";
+localStorage.setItem("iframe-s-ls1", "foobar");
+sessionStorage.setItem("iframe-s-ss1", "foobar-2");
+
+function success(event) {
+  setupIDB.next(event);
+}
+
+window.idbGenerator = function*(callback) {
+  let request = indexedDB.open("idb-s1", 1);
+  request.onupgradeneeded = success;
+  request.onerror = function(e) {
+    throw new Error("error opening db connection");
+  };
+  let event = yield undefined;
+  let db = event.target.result;
+  let store1 = db.createObjectStore("obj-s1", { keyPath: "id" });
+
+  store1.add({id: 6, name: "foo", email: "foo@bar.com"}).onsuccess = success;
+  yield undefined;
+  store1.add({id: 7, name: "foo2", email: "foo2@bar.com"}).onsuccess = success;
+  yield undefined;
+  store1.transaction.oncomplete = success;
+  yield undefined;
+  db.close();
+
+  request = indexedDB.open("idb-s2", 1);
+  request.onupgradeneeded = success;
+  event = yield undefined;
+
+  let db2 = event.target.result;
+  let store3 = db2.createObjectStore("obj-s2", { keyPath: "id3", autoIncrement: true });
+  store3.createIndex("name2", "name2", { unique: true });
+  store3.add({id3: 16, name2: "foo", email: "foo@bar.com"}).onsuccess = success;
+  yield undefined;
+  store3.transaction.oncomplete = success;
+  yield undefined;
+  db2.close();
+  console.log("added cookies and stuff from secured iframe");
+  callback();
+}
+
+function successClear(event) {
+  clearIterator.next(event);
+}
+
+window.clear = function*(callback) {
+  document.cookie = "sc1=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
+  localStorage.clear();
+  sessionStorage.clear();
+  indexedDB.deleteDatabase("idb-s1").onsuccess = successClear;
+  yield undefined;
+  indexedDB.deleteDatabase("idb-s2").onsuccess = successClear;
+  yield undefined;
+  console.log("removed cookies and stuff from secured iframe");
+  callback();
+}
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/storage-unsecured-iframe.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Iframe for testing multiple host detetion in storage actor
+-->
+<head>
+  <meta charset="utf-8">
+</head>
+<body>
+<script>
+
+document.cookie = "uc1=foobar; domain=.example.org; path=/; secure=true";
+localStorage.setItem("iframe-u-ls1", "foobar");
+sessionStorage.setItem("iframe-u-ss1", "foobar1");
+sessionStorage.setItem("iframe-u-ss2", "foobar2");
+console.log("added cookies and stuff from unsecured iframe");
+
+window.clear = function*(callback) {
+  document.cookie = "uc1=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=.example.org; secure=true";
+  localStorage.clear();
+  sessionStorage.clear();
+  console.log("removed cookies and stuff from unsecured iframe");
+  callback();
+}
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/test/storage-updates.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML>
+<html>
+<!--
+Bug 965872 - Storage inspector actor with cookies, local storage and session storage.
+-->
+<head>
+  <meta charset="utf-8">
+  <title>Storage inspector blank html for tests</title>
+</head>
+<body>
+<script>
+
+window.addCookie = function(name, value, path, domain, expires, secure) {
+  var cookieString = name + "=" + value + ";";
+  if (path) {
+    cookieString += "path=" + path + ";";
+  }
+  if (domain) {
+    cookieString += "domain=" + domain + ";";
+  }
+  if (expires) {
+    cookieString += "expires=" + expires + ";";
+  }
+  if (secure) {
+    cookieString += "secure=true;";
+  }
+  document.cookie = cookieString;
+};
+
+window.removeCookie = function(name, path) {
+  document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=" + path;
+}
+
+window.clear = function*(callback) {
+  var cookies = document.cookie;
+  for (var cookie of cookies.split(";")) {
+    removeCookie(cookie.split("=")[0]);
+    removeCookie(cookie.split("=")[0], "/browser");
+  }
+  localStorage.clear();
+  sessionStorage.clear();
+  callback();
+}
+
+window.onload = function() {
+  addCookie("c1", "1.2.3.4.5.6.7", "/browser");
+  addCookie("c2", "foobar", "/browser");
+
+  localStorage.setItem("ls1", "testing");
+  localStorage.setItem("ls2", "testing");
+  localStorage.setItem("ls3", "testing");
+  localStorage.setItem("ls4", "testing");
+  localStorage.setItem("ls5", "testing");
+  localStorage.setItem("ls6", "testing");
+  localStorage.setItem("ls7", "testing");
+
+  sessionStorage.setItem("ss1", "foobar");
+  sessionStorage.setItem("ss2", "foobar");
+  sessionStorage.setItem("ss3", "foobar");
+}
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/browser/devtools/storage/ui.js
@@ -0,0 +1,565 @@
+/* vim:set ts=2 sw=2 sts=2 et: */
+/* 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/. */
+
+"use strict";
+
+const {Cu} = require("chrome");
+const STORAGE_STRINGS = "chrome://browser/locale/devtools/storage.properties";
+
+Cu.import("resource://gre/modules/Services.jsm");
+Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+XPCOMUtils.defineLazyGetter(this, "TreeWidget",
+  () => require("devtools/shared/widgets/TreeWidget").TreeWidget);
+XPCOMUtils.defineLazyGetter(this, "TableWidget",
+  () => require("devtools/shared/widgets/TableWidget").TableWidget);
+XPCOMUtils.defineLazyModuleGetter(this, "EventEmitter",
+  "resource://gre/modules/devtools/event-emitter.js");
+XPCOMUtils.defineLazyModuleGetter(this, "ViewHelpers",
+  "resource:///modules/devtools/ViewHelpers.jsm");
+XPCOMUtils.defineLazyModuleGetter(this, "VariablesView",
+  "resource:///modules/devtools/VariablesView.jsm");
+
+/**
+ * Localization convenience methods.
+ */
+let L10N = new ViewHelpers.L10N(STORAGE_STRINGS);
+
+const GENERIC_VARIABLES_VIEW_SETTINGS = {
+  lazyEmpty: true,
+  lazyEmptyDelay: 10, // ms
+  searchEnabled: true,
+  searchPlaceholder: L10N.getStr("storage.search.placeholder"),
+  preventDescriptorModifiers: true
+};
+
+// Columns which are hidden by default in the storage table
+const HIDDEN_COLUMNS = [
+  "creationTime",
+  "isDomain",
+  "isSecure"
+];
+
+/**
+ * StorageUI is controls and builds the UI of the Storage Inspector.
+ *
+ * @param {Front} front
+ *        Front for the storage actor
+ * @param {Target} target
+ *        Interface for the page we're debugging
+ * @param {Window} panelWin
+ *        Window of the toolbox panel to populate UI in.
+ */
+this.StorageUI = function StorageUI(front, target, panelWin) {
+  EventEmitter.decorate(this);
+
+  this._target = target;
+  this._window = panelWin;
+  this._panelDoc = panelWin.document;
+  this.front = front;
+
+  let treeNode = this._panelDoc.getElementById("storage-tree");
+  this.tree = new TreeWidget(treeNode, {defaultType: "dir"});
+  this.onHostSelect = this.onHostSelect.bind(this);
+  this.tree.on("select", this.onHostSelect);
+
+  let tableNode = this._panelDoc.getElementById("storage-table");
+  this.table = new TableWidget(tableNode, {
+    emptyText: L10N.getStr("table.emptyText"),
+    highlightUpdated: true,
+  });
+  this.displayObjectSidebar = this.displayObjectSidebar.bind(this);
+  this.table.on(TableWidget.EVENTS.ROW_SELECTED, this.displayObjectSidebar)
+
+  this.sidebar = this._panelDoc.getElementById("storage-sidebar");
+  this.sidebar.setAttribute("width", "300");
+  this.view = new VariablesView(this.sidebar.firstChild,
+                                GENERIC_VARIABLES_VIEW_SETTINGS);
+
+  this.front.listStores().then(storageTypes => {
+    this.populateStorageTree(storageTypes);
+  });
+  this.onUpdate = this.onUpdate.bind(this);
+  this.front.on("stores-update", this.onUpdate);
+
+  this.handleKeypress = this.handleKeypress.bind(this);
+  this._panelDoc.addEventListener("keypress", this.handleKeypress);
+}
+
+exports.StorageUI = StorageUI;
+
+StorageUI.prototype = {
+
+  storageTypes: null,
+  shouldResetColumns: true,
+
+  destroy: function() {
+    this.front.off("stores-update", this.onUpdate);
+    this._panelDoc.removeEventListener("keypress", this.handleKeypress)
+  },
+
+  /**
+   * Empties and hides the object viewer sidebar
+   */
+  hideSidebar: function() {
+    this.view.empty();
+    this.sidebar.hidden = true;
+    this.table.clearSelection();
+  },
+
+  /**
+   * Removes the given item from the storage table. Reselects the next item in
+   * the table and repopulates the sidebar with that item's data if the item
+   * being removed was selected.
+   */
+  removeItemFromTable: function(name) {
+    if (this.table.isSelected(name)) {
+      if (this.table.selectedIndex == 0) {
+        this.table.selectNextRow()
+      }
+      else {
+        this.table.selectPreviousRow();
+      }
+      this.table.remove(name);
+      this.displayObjectSidebar();
+    }
+    else {
+      this.table.remove(name);
+    }
+  },
+
+  /**
+   * Event handler for "stores-update" event coming from the storage actor.
+   *
+   * @param {object} argument0
+   *        An object containing the details of the added, changed and deleted
+   *        storage objects.
+   *        Each of these 3 objects are of the following format:
+   *        {
+   *          <store_type1>: {
+   *            <host1>: [<store_names1>, <store_name2>...],
+   *            <host2>: [<store_names34>...], ...
+   *          },
+   *          <store_type2>: {
+   *            <host1>: [<store_names1>, <store_name2>...],
+   *            <host2>: [<store_names34>...], ...
+   *          }, ...
+   *        }
+   *        Where store_type1 and store_type2 is one of cookies, indexedDB,
+   *        sessionStorage and localStorage; host1, host2 are the host in which
+   *        this change happened; and [<store_namesX] is an array of the names
+   *        of the changed store objects. This array is empty for deleted object
+   *        if the host was completely removed.
+   */
+  onUpdate: function({ changed, added, deleted }) {
+    if (deleted) {
+      for (let type in deleted) {
+        for (let host in deleted[type]) {
+          if (!deleted[type][host].length) {
+            // This means that the whole host is deleted, thus the item should
+            // be removed from the storage tree
+            if (this.tree.isSelected([type, host])) {
+              this.table.clear();
+              this.hideSidebar();
+              this.tree.selectPreviousItem();
+            }
+
+            this.tree.remove([type, host]);
+          }
+          else if (this.tree.isSelected([type, host])) {
+            for (let name of deleted[type][host]) {
+              try {
+                // trying to parse names in case its for indexedDB
+                let names = JSON.parse(name);
+                if (!names[2]) {
+                  if (this.tree.isSelected([type, host, names[0], names[1]])) {
+                    this.tree.selectPreviousItem();
+                    this.tree.remove([type, host, names[0], names[1]]);
+                    this.table.clear();
+                    this.hideSidebar();
+                  }
+                }
+                else if (this.tree.isSelected([type, host, names[0], names[1]])) {
+                  this.removeItemFromTable(names[2]);
+                }
+              }
+              catch (ex) {
+                this.removeItemFromTable(name);
+              }
+            }
+          }
+        }
+      }
+    }
+
+    if (added) {
+      for (let type in added) {
+        for (let host in added[type]) {
+          this.tree.add([type, {id: host, type: "url"}]);
+          for (let name of added[type][host]) {
+            try {
+              name = JSON.parse(name);
+              if (name.length == 3) {
+                name.splice(2, 1);
+              }
+              this.tree.add([type, host, ...name]);
+              if (!this.tree.selectedItem) {
+                this.tree.selectedItem = [type, host, name[0], name[1]];
+                this.fetchStorageObjects(type, host, [JSON.stringify(name)], 1);
+              }
+            } catch(ex) {}
+          }
+
+          if (this.tree.isSelected([type, host])) {
+            this.fetchStorageObjects(type, host, added[type][host], 1);
+          }
+        }
+      }
+    }
+
+    if (changed) {
+      let [type, host, db, objectStore] = this.tree.selectedItem;
+      if (changed[type] && changed[type][host]) {
+        if (changed[type][host].length) {
+          try {
+            let toUpdate = [];
+            for (let name of changed[type][host]) {
+              let names = JSON.parse(name);
+              if (names[0] == db && names[1] == objectStore && names[2]) {
+                toUpdate.push(name);
+              }
+            }
+            this.fetchStorageObjects(type, host, toUpdate, 2);
+          }
+          catch (ex) {
+            this.fetchStorageObjects(type, host, changed[type][host], 2);
+          }
+        }
+      }
+    }
+
+    if (added || deleted || changed) {
+      this.emit("store-objects-updated");
+    }
+  },
+
+  /**
+   * Fetches the storage objects from the storage actor and populates the
+   * storage table with the returned data.
+   *
+   * @param {string} type
+   *        The type of storage. Ex. "cookies"
+   * @param {string} host
+   *        Hostname
+   * @param {array} names
+   *        Names of particular store objects. Empty if all are requested
+   * @param {number} reason
+   *        2 for update, 1 for new row in an existing table and 0 when
+   *        populating a table for the first time for the given host/type
+   */
+  fetchStorageObjects: function(type, host, names, reason) {
+    this.storageTypes[type].getStoreObjects(host, names).then(({data}) => {
+      if (!data.length) {
+        this.emit("store-objects-updated");
+        return;
+      }
+      if (this.shouldResetColumns) {
+        this.resetColumns(data[0], type);
+      }
+      this.populateTable(data, reason);
+      this.emit("store-objects-updated");
+    });
+  },
+
+  /**
+   * Populates the storage tree which displays the list of storages present for
+   * the page.
+   *
+   * @param {object} storageTypes
+   *        List of storages and their corresponding hosts returned by the
+   *        StorageFront.listStores call.
+   */
+  populateStorageTree: function(storageTypes) {
+    this.storageTypes = {};
+    for (let type in storageTypes) {
+      let typeLabel = L10N.getStr("tree.labels." + type);
+      this.tree.add([{id: type, label: typeLabel, type: "store"}]);
+      if (storageTypes[type].hosts) {
+        this.storageTypes[type] = storageTypes[type];
+        for (let host in storageTypes[type].hosts) {
+          this.tree.add([type, {id: host, type: "url"}]);
+          for (let name of storageTypes[type].hosts[host]) {
+
+            try {
+              let names = JSON.parse(name);
+              this.tree.add([type, host, ...names]);
+              if (!this.tree.selectedItem) {
+                this.tree.selectedItem = [type, host, names[0], names[1]];
+                this.fetchStorageObjects(type, host, [name], 0);
+              }
+            } catch(ex) {}
+          }
+          if (!this.tree.selectedItem) {
+            this.tree.selectedItem = [type, host];
+            this.fetchStorageObjects(type, host, null, 0);
+          }
+        }
+      }
+    }
+  },
+
+  /**
+   * Populates the selected entry from teh table in the sidebar for a more
+   * detailed view.
+   */
+  displayObjectSidebar: function() {
+    let item = this.table.selectedRow;
+    if (!item) {
+      // Make sure that sidebar is hidden and return
+      this.sidebar.hidden = true;
+      return;
+    }
+    this.sidebar.hidden = false;
+    this.view.empty();
+    let mainScope = this.view.addScope(L10N.getStr("storage.data.label"));
+    mainScope.expanded = true;
+
+    if (item.name && item.valueActor) {
+      let itemVar = mainScope.addItem(item.name + "", {}, true);
+
+      item.valueActor.string().then(value => {
+        // The main area where the value will be displayed
+        itemVar.setGrip(value);
+
+        // May be the item value is a json or a key value pair itself
+        this.parseItemValue(item.name, value);
+
+        // By default the item name and value are shown. If this is the only
+        // information available, then nothing else is to be displayed.
+        let itemProps = Object.keys(item);
+        if (itemProps.length == 3) {
+          this.emit("sidebar-updated");
+          return;
+        }
+
+        // Display any other information other than the item name and value
+        // which may be available.
+        let rawObject = Object.create(null);
+        let otherProps =
+          itemProps.filter(e => e != "name" && e != "value" && e != "valueActor");
+        for (let prop of otherProps) {
+          rawObject[prop] = item[prop];
+        }
+        itemVar.populate(rawObject, {sorted: true});
+        itemVar.twisty = true;
+        itemVar.expanded = true;
+        this.emit("sidebar-updated");
+      });
+      return;
+    }
+
+    // Case when displaying IndexedDB db/object store properties.
+    for (let key in item) {
+      mainScope.addItem(key, {}, true).setGrip(item[key]);
+      this.parseItemValue(key, item[key]);
+    }
+    this.emit("sidebar-updated");
+  },
+
+  /**
+   * Tries to parse a string value into either a json or a key-value separated
+   * object and populates the sidebar with the parsed value. The value can also
+   * be a key separated array.
+   *
+   * @param {string} name
+   *        The key corresponding to the `value` string in the object
+   * @param {string} value
+   *        The string to be parsed into an object
+   */
+  parseItemValue: function(name, value) {
+    let json = null
+    try {
+      json = JSON.parse(value);
+    }
+    catch (ex) {
+      json = null;
+    }
+
+    if (!json && value) {
+      json = this._extractKeyValPairs(value);
+    }
+
+    // return if json is null, or same as value, or just a string.
+    if (!json || json == value || typeof json == "string") {
+      return;
+    }
+
+    // One special case is a url which gets separated as key value pair on :
+    if ((json.length == 2 || Object.keys(json).length == 1) &&
+        ((json[0] || Object.keys(json)[0]) + "").match(/^(http|file|ftp)/)) {
+      return;
+    }
+
+    let jsonObject = Object.create(null);
+    jsonObject[name] = json;
+    let valueScope = this.view.getScopeAtIndex(1) ||
+                     this.view.addScope(L10N.getStr("storage.parsedValue.label"));
+    valueScope.expanded = true;
+    let jsonVar = valueScope.addItem("", Object.create(null), true);
+    jsonVar.expanded = true;
+    jsonVar.twisty = true;
+    jsonVar.populate(jsonObject, {expanded: true});
+  },
+
+  /**
+   * Tries to parse a string into an object on the basis of key-value pairs,
+   * separated by various separators. If failed, tries to parse for single
+   * separator separated values to form an array.
+   *
+   * @param {string} value
+   *        The string to be parsed into an object or array
+   */
+  _extractKeyValPairs: function(value) {
+    let makeObject = (keySep, pairSep) => {
+      let object = {};
+      for (let pair of value.split(pairSep)) {
+        let [key, val] = pair.split(keySep);
+        object[key] = val;
+      }
+      return object;
+    };
+
+    // Possible separators.
+    const separators = ["=", ":", "~", "#", "&", "\\*", ",", "\\."];
+    // Testing for object
+    for (let i = 0; i < separators.length; i++) {
+      let kv = separators[i];
+      for (let j = 0; j < separators.length; j++) {
+        if (i == j) {
+          continue;
+        }
+        let p = separators[j];
+        let regex = new RegExp("^([^" + kv + p + "]*" + kv + "+[^" + kv + p +
+                               "]*" + p + "*)+$", "g");
+        if (value.match(regex) && value.contains(kv) &&
+            (value.contains(p) || value.split(kv).length == 2)) {
+          return makeObject(kv, p);
+        }
+      }
+    }
+    // Testing for array
+    for (let i = 0; i < separators.length; i++) {
+      let p = separators[i];
+      let regex = new RegExp("^[^" + p + "]+(" + p + "+[^" + p + "]*)+$", "g");
+      if (value.match(regex)) {
+        return value.split(p.replace(/\\*/g, ""));
+      }
+    }
+    return null;
+  },
+
+  /**
+   * Select handler for the storage tree. Fetches details of the selected item
+   * from the storage details and populates the storage tree.
+   *
+   * @param {string} event
+   *        The name of the event fired
+   * @param {array} item
+   *        An array of ids which represent the location of the selected item in
+   *        the storage tree
+   */
+  onHostSelect: function(event, item) {
+    this.table.clear();
+    this.hideSidebar();
+
+    let [type, host] = item;
+    let names = null;
+    if (!host) {
+      return;
+    }
+    if (item.length > 2) {
+      names = [JSON.stringify(item.slice(2))];
+    }
+    this.shouldResetColumns = true;
+    this.fetchStorageObjects(type, host, names, 0);
+  },
+
+  /**
+   * Resets the column headers in the storage table with the pased object `data`
+   *
+   * @param {object} data
+   *        The object from which key and values will be used for naming the
+   *        headers of the columns
+   * @param {string} type
+   *        The type of storage corresponding to the after-reset columns in the
+   *        table.
+   */
+  resetColumns: function(data, type) {
+    let columns = {};
+    let uniqueKey = null;
+    for (let key in data) {
+      if (!uniqueKey) {
+        this.table.uniqueId = uniqueKey = key;
+      }
+      columns[key] = L10N.getStr("table.headers." + type + "." + key);
+    }
+    this.table.setColumns(columns, null, HIDDEN_COLUMNS);
+    this.shouldResetColumns = false;
+    this.hideSidebar();
+  },
+
+  /**
+   * Populates or updates the rows in the storage table.
+   *
+   * @param {array[object]} data
+   *        Array of objects to be populated in the storage table
+   * @param {number} reason
+   *        The reason of this populateTable call. 2 for update, 1 for new row
+   *        in an existing table and 0 when populating a table for the first
+   *        time for the given host/type
+   */
+  populateTable: function(data, reason) {
+    for (let item of data) {
+      if (item.value) {
+        item.valueActor = item.value;
+        item.value = item.value.initial || "";
+      }
+      if (item.expires != null) {
+        item.expires = item.expires
+          ? new Date(item.expires).toLocaleString()
+          : L10N.getStr("label.expires.session");
+      }
+      if (item.creationTime != null) {
+        item.creationTime = new Date(item.creationTime).toLocaleString();
+      }
+      if (item.lastAccessed != null) {
+        item.lastAccessed = new Date(item.lastAccessed).toLocaleString();
+      }
+      if (reason < 2) {
+        this.table.push(item, reason == 0);
+      }
+      else {
+        this.table.update(item);
+        if (item == this.table.selectedRow && !this.sidebar.hidden) {
+          this.displayObjectSidebar();
+        }
+      }
+    }
+  },
+
+  /**
+   * Handles keypress event on the body table to close the sidebar when open
+   *
+   * @param {DOMEvent} event
+   *        The event passed by the keypress event.
+   */
+  handleKeypress: function(event) {
+    if (event.keyCode == event.DOM_VK_ESCAPE && !this.sidebar.hidden) {
+      // Stop Propagation to prevent opening up of split console
+      this.hideSidebar();
+      event.stopPropagation();
+      event.preventDefault();
+    }
+  }
+}
new file mode 100644
--- /dev/null
+++ b/browser/locales/en-US/chrome/browser/devtools/storage.properties
@@ -0,0 +1,100 @@
+# 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/.
+
+# LOCALIZATION NOTE These strings are used inside the Storage Editor tool.
+# LOCALIZATION NOTE The correct localization of this file might be to keep it
+# in English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best documentation
+# on web development on the web.
+
+# LOCALIZATION NOTE  (chromeWindowTitle): This is the title of the Storage
+# 'chrome' window. That is, the main window with all the cookies, etc.
+# The argument is either the content document's title or its href if no title
+# is available.
+chromeWindowTitle=Storage [%S]
+
+# LOCALIZATION NOTE  (open.commandkey): This the key to use in
+# conjunction with shift to open the storage editor
+open.commandkey=VK_F9
+
+# LOCALIZATION NOTE (open.accesskey): The access key used to open the storage
+# editor.
+open.accesskey=d
+
+# LOCALIZATION NOTE (storage.label):
+# This string is displayed in the title of the tab when the storage editor is
+# displayed inside the developer tools window and in the Developer Tools Menu.
+storage.label=Storage
+
+# LOCALIZATION NOTE (storage.tooltip):
+# This string is displayed in the tooltip of the tab when the storage editor is
+# displayed inside the developer tools window.
+storage.tooltip=Storage Inspector (Cookies, Local Storage ...)
+
+# LOCALIZATION NOTE (tree.emptyText):
+# This string is displayed when the Storage Tree is empty. This can happen when
+# there are no websites on the current page (about:blank)
+tree.emptyText=No hosts on the page
+
+# LOCALIZATION NOTE (table.emptyText):
+# This string is displayed when there are no rows in the Storage Table for the
+# selected host.
+table.emptyText=No data present for selected host
+
+# LOCALIZATION NOTE (tree.labels.*):
+# These strings are the labels for Storage type groups present in the Storage
+# Tree, like cookies, local storage etc.
+tree.labels.cookies=Cookies
+tree.labels.localStorage=Local Storage
+tree.labels.sessionStorage=Session Storage
+tree.labels.indexedDB=Indexed DB
+
+# LOCALIZATION NOTE (table.headers.*.*):
+# These strings are the header names of the columns in the Storage Table for
+# each type of storage available through the Storage Tree to the side.
+table.headers.cookies.name=Name
+table.headers.cookies.path=Path
+table.headers.cookies.host=Domain
+table.headers.cookies.expires=Expires on
+table.headers.cookies.value=Value
+table.headers.cookies.lastAccessed:Last accessed on
+table.headers.cookies.creationTime:Created on
+table.headers.cookies.isHttpOnly:isHttpOnly
+table.headers.cookies.isSecure:isSecure
+table.headers.cookies.isDomain:isDomain
+
+table.headers.localStorage.name=Key
+table.headers.localStorage.value=Value
+
+table.headers.sessionStorage.name=Key
+table.headers.sessionStorage.value=Value
+
+table.headers.indexedDB.name=Key
+table.headers.indexedDB.db=Database Name
+table.headers.indexedDB.objectStore=Object Store Name
+table.headers.indexedDB.value=Value
+table.headers.indexedDB.origin=Origin
+table.headers.indexedDB.version=Version
+table.headers.indexedDB.objectStores=Object Stores
+table.headers.indexedDB.keyPath=Key
+table.headers.indexedDB.autoIncrement=Auto Increment
+table.headers.indexedDB.indexes=Indexes
+
+# LOCALIZATION NOTE (label.expires.session):
+# This string is displayed in the expires column when the cookie is Session
+# Cookie
+label.expires.session=Session
+
+# LOCALIZATION NOTE (storage.search.placeholder):
+# This is the placeholder text in the sidebar search box
+storage.search.placeholder=Filter values
+
+# LOCALIZATION NOTE (storage.data.label):
+# This is the heading displayed over the item value in the sidebar
+storage.data.label=Data
+
+# LOCALIZATION NOTE (storage.parsedValue.label):
+# This is the heading displayed over the item parsed value in the sidebar
+storage.parsedValue.label=Parsed Value
--- a/browser/locales/en-US/chrome/browser/loop/loop.properties
+++ b/browser/locales/en-US/chrome/browser/loop/loop.properties
@@ -50,21 +50,21 @@ feedback_thank_you_heading=Thank you for
 feedback_category_audio_quality=Audio quality
 feedback_category_video_quality=Video quality
 feedback_category_was_disconnected=Was disconnected
 feedback_category_confusing=Confusing
 feedback_category_other=Other:
 feedback_custom_category_text_placeholder=What went wrong?
 feedback_submit_button=Submit
 feedback_back_button=Back
-## LOCALIZATION NOTE (feedback_window_will_close_in):
+## LOCALIZATION NOTE (feedback_window_will_close_in2):
 ## Semicolon-separated list of plural forms. See:
 ## http://developer.mozilla.org/en/docs/Localization_and_Plurals
 ## In this item, don't translate the part between {{..}}
-feedback_window_will_close_in=This window will close in {{countdown}} second;This window will close in {{countdown}} seconds
+feedback_window_will_close_in2=This window will close in {{countdown}} second;This window will close in {{countdown}} seconds
 
 share_email_subject2=Invitation to chat
 ## LOCALIZATION NOTE (share_email_body2): In this item, don't translate the
 ## part between {{..}} and leave the \r\n\r\n part alone
 share_email_body2=Please click this link to call me:\r\n\r\n{{callUrl}}
 share_button=Email
 copy_url_button=Copy
 copied_url_button=Copied!
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -38,16 +38,17 @@
     locale/browser/devtools/webaudioeditor.properties   (%chrome/browser/devtools/webaudioeditor.properties)
     locale/browser/devtools/gcli.properties           (%chrome/browser/devtools/gcli.properties)
     locale/browser/devtools/gclicommands.properties   (%chrome/browser/devtools/gclicommands.properties)
     locale/browser/devtools/webconsole.properties     (%chrome/browser/devtools/webconsole.properties)
     locale/browser/devtools/inspector.properties      (%chrome/browser/devtools/inspector.properties)
     locale/browser/devtools/tilt.properties           (%chrome/browser/devtools/tilt.properties)
     locale/browser/devtools/scratchpad.properties     (%chrome/browser/devtools/scratchpad.properties)
     locale/browser/devtools/scratchpad.dtd            (%chrome/browser/devtools/scratchpad.dtd)
+    locale/browser/devtools/storage.properties        (%chrome/browser/devtools/storage.properties)
     locale/browser/devtools/styleeditor.properties    (%chrome/browser/devtools/styleeditor.properties)
     locale/browser/devtools/styleeditor.dtd           (%chrome/browser/devtools/styleeditor.dtd)
     locale/browser/devtools/styleinspector.dtd        (%chrome/browser/devtools/styleinspector.dtd)
     locale/browser/devtools/webConsole.dtd            (%chrome/browser/devtools/webConsole.dtd)
     locale/browser/devtools/VariablesView.dtd         (%chrome/browser/devtools/VariablesView.dtd)
     locale/browser/devtools/sourceeditor.properties   (%chrome/browser/devtools/sourceeditor.properties)
     locale/browser/devtools/sourceeditor.dtd          (%chrome/browser/devtools/sourceeditor.dtd)
     locale/browser/devtools/profiler.dtd              (%chrome/browser/devtools/profiler.dtd)
--- a/browser/themes/linux/jar.mn
+++ b/browser/themes/linux/jar.mn
@@ -198,16 +198,17 @@ browser.jar:
   skin/classic/browser/devtools/newtab.png             (../shared/devtools/images/newtab.png)
   skin/classic/browser/devtools/newtab@2x.png          (../shared/devtools/images/newtab@2x.png)
   skin/classic/browser/devtools/newtab-inverted.png    (../shared/devtools/images/newtab-inverted.png)
   skin/classic/browser/devtools/newtab-inverted@2x.png (../shared/devtools/images/newtab-inverted@2x.png)
 * skin/classic/browser/devtools/widgets.css           (devtools/widgets.css)
   skin/classic/browser/devtools/filetype-dir-close.svg        (../shared/devtools/images/filetypes/dir-close.svg)
   skin/classic/browser/devtools/filetype-dir-open.svg         (../shared/devtools/images/filetypes/dir-open.svg)
   skin/classic/browser/devtools/filetype-globe.svg            (../shared/devtools/images/filetypes/globe.svg)
+  skin/classic/browser/devtools/filetype-store.svg            (../shared/devtools/images/filetypes/store.svg)
   skin/classic/browser/devtools/commandline-icon.png          (../shared/devtools/images/commandline-icon.png)
   skin/classic/browser/devtools/commandline-icon@2x.png       (../shared/devtools/images/commandline-icon@2x.png)
   skin/classic/browser/devtools/command-paintflashing.png     (../shared/devtools/images/command-paintflashing.png)
   skin/classic/browser/devtools/command-paintflashing@2x.png  (../shared/devtools/images/command-paintflashing@2x.png)
   skin/classic/browser/devtools/command-screenshot.png        (../shared/devtools/images/command-screenshot.png)
   skin/classic/browser/devtools/command-screenshot@2x.png     (../shared/devtools/images/command-screenshot@2x.png)
   skin/classic/browser/devtools/command-responsivemode.png    (../shared/devtools/images/command-responsivemode.png)
   skin/classic/browser/devtools/command-responsivemode@2x.png (../shared/devtools/images/command-responsivemode@2x.png)
@@ -243,16 +244,17 @@ browser.jar:
 * skin/classic/browser/devtools/debugger.css          (devtools/debugger.css)
   skin/classic/browser/devtools/eyedropper.css        (../shared/devtools/eyedropper.css)
 * skin/classic/browser/devtools/netmonitor.css        (devtools/netmonitor.css)
 * skin/classic/browser/devtools/profiler.css          (devtools/profiler.css)
 * skin/classic/browser/devtools/scratchpad.css        (devtools/scratchpad.css)
 * skin/classic/browser/devtools/shadereditor.css      (devtools/shadereditor.css)
 * skin/classic/browser/devtools/splitview.css         (../shared/devtools/splitview.css)
   skin/classic/browser/devtools/styleeditor.css       (../shared/devtools/styleeditor.css)
+  skin/classic/browser/devtools/storage.css           (../shared/devtools/storage.css)
 * skin/classic/browser/devtools/webaudioeditor.css    (devtools/webaudioeditor.css)
   skin/classic/browser/devtools/magnifying-glass.png        (../shared/devtools/images/magnifying-glass.png)
   skin/classic/browser/devtools/magnifying-glass@2x.png     (../shared/devtools/images/magnifying-glass@2x.png)
   skin/classic/browser/devtools/magnifying-glass-light.png  (../shared/devtools/images/magnifying-glass-light.png)
   skin/classic/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
   skin/classic/browser/devtools/itemToggle.png         (../shared/devtools/images/itemToggle.png)
   skin/classic/browser/devtools/itemToggle@2x.png      (../shared/devtools/images/itemToggle@2x.png)
   skin/classic/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
@@ -305,16 +307,17 @@ browser.jar:
   skin/classic/browser/devtools/profiler-stopwatch-checked.svg      (../shared/devtools/images/profiler-stopwatch-checked.svg)
   skin/classic/browser/devtools/tool-options.svg            (../shared/devtools/images/tool-options.svg)
   skin/classic/browser/devtools/tool-webconsole.svg         (../shared/devtools/images/tool-webconsole.svg)
   skin/classic/browser/devtools/tool-debugger.svg           (../shared/devtools/images/tool-debugger.svg)
   skin/classic/browser/devtools/tool-debugger-paused.svg    (../shared/devtools/images/tool-debugger-paused.svg)
   skin/classic/browser/devtools/tool-inspector.svg          (../shared/devtools/images/tool-inspector.svg)
   skin/classic/browser/devtools/tool-inspector.svg          (../shared/devtools/images/tool-inspector.svg)
   skin/classic/browser/devtools/tool-styleeditor.svg        (../shared/devtools/images/tool-styleeditor.svg)
+  skin/classic/browser/devtools/tool-storage.svg            (../shared/devtools/images/tool-storage.svg)
   skin/classic/browser/devtools/tool-profiler.svg           (../shared/devtools/images/tool-profiler.svg)
   skin/classic/browser/devtools/tool-network.svg            (../shared/devtools/images/tool-network.svg)
   skin/classic/browser/devtools/tool-scratchpad.svg         (../shared/devtools/images/tool-scratchpad.svg)
   skin/classic/browser/devtools/tool-webaudio.svg           (../shared/devtools/images/tool-webaudio.svg)
   skin/classic/browser/devtools/close.png                   (../shared/devtools/images/close.png)
   skin/classic/browser/devtools/close@2x.png                (../shared/devtools/images/close@2x.png)
   skin/classic/browser/devtools/vview-delete.png            (../shared/devtools/images/vview-delete.png)
   skin/classic/browser/devtools/vview-delete@2x.png         (../shared/devtools/images/vview-delete@2x.png)
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7efda436ada08eae338a0d3845297183b1df69d8
GIT binary patch
literal 15264
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
MRz;>l${6zh07b2&8UO$Q
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7e3b425c442925293b716796e81dfc6c6c17b0da
GIT binary patch
literal 35291
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
AFaQ7m
--- a/browser/themes/osx/jar.mn
+++ b/browser/themes/osx/jar.mn
@@ -140,16 +140,20 @@ browser.jar:
   skin/classic/browser/webRTC-sharingScreen-menubar@2x.png
   skin/classic/browser/webRTC-indicator.css
   skin/classic/browser/loop/menuPanel.png             (loop/menuPanel.png)
   skin/classic/browser/loop/menuPanel@2x.png          (loop/menuPanel@2x.png)
   skin/classic/browser/loop/toolbar.png               (loop/toolbar.png)
   skin/classic/browser/loop/toolbar@2x.png            (loop/toolbar@2x.png)
   skin/classic/browser/loop/toolbar-inverted.png      (loop/toolbar-inverted.png)
   skin/classic/browser/loop/toolbar-inverted@2x.png   (loop/toolbar-inverted@2x.png)
+  skin/classic/browser/yosemite/loop/menuPanel.png          (loop/menuPanel-yosemite.png)
+  skin/classic/browser/yosemite/loop/menuPanel@2x.png       (loop/menuPanel-yosemite@2x.png)
+  skin/classic/browser/yosemite/loop/toolbar.png            (loop/toolbar-yosemite.png)
+  skin/classic/browser/yosemite/loop/toolbar@2x.png         (loop/toolbar-yosemite@2x.png)
   skin/classic/browser/customizableui/background-noise-toolbar.png  (customizableui/background-noise-toolbar.png)
   skin/classic/browser/customizableui/customize-titleBar-toggle.png  (customizableui/customize-titleBar-toggle.png)
   skin/classic/browser/customizableui/customize-titleBar-toggle@2x.png  (customizableui/customize-titleBar-toggle@2x.png)
   skin/classic/browser/customizableui/customize-illustration.png  (../shared/customizableui/customize-illustration.png)
   skin/classic/browser/customizableui/customize-illustration@2x.png  (../shared/customizableui/customize-illustration@2x.png)
   skin/classic/browser/customizableui/customize-illustration-rtl.png  (../shared/customizableui/customize-illustration-rtl.png)
   skin/classic/browser/customizableui/customize-illustration-rtl@2x.png  (../shared/customizableui/customize-illustration-rtl@2x.png)
   skin/classic/browser/customizableui/customizeFavicon.ico  (../shared/customizableui/customizeFavicon.ico)
@@ -321,16 +325,17 @@ browser.jar:
   skin/classic/browser/devtools/newtab.png                  (../shared/devtools/images/newtab.png)
   skin/classic/browser/devtools/newtab@2x.png               (../shared/devtools/images/newtab@2x.png)
   skin/classic/browser/devtools/newtab-inverted.png         (../shared/devtools/images/newtab-inverted.png)
   skin/classic/browser/devtools/newtab-inverted@2x.png      (../shared/devtools/images/newtab-inverted@2x.png)
 * skin/classic/browser/devtools/widgets.css                 (devtools/widgets.css)
   skin/classic/browser/devtools/filetype-dir-close.svg      (../shared/devtools/images/filetypes/dir-close.svg)
   skin/classic/browser/devtools/filetype-dir-open.svg       (../shared/devtools/images/filetypes/dir-open.svg)
   skin/classic/browser/devtools/filetype-globe.svg          (../shared/devtools/images/filetypes/globe.svg)
+  skin/classic/browser/devtools/filetype-store.svg          (../shared/devtools/images/filetypes/store.svg)
   skin/classic/browser/devtools/commandline-icon.png        (../shared/devtools/images/commandline-icon.png)
   skin/classic/browser/devtools/commandline-icon@2x.png     (../shared/devtools/images/commandline-icon@2x.png)
   skin/classic/browser/devtools/command-paintflashing.png     (../shared/devtools/images/command-paintflashing.png)
   skin/classic/browser/devtools/command-paintflashing@2x.png  (../shared/devtools/images/command-paintflashing@2x.png)
   skin/classic/browser/devtools/command-screenshot.png        (../shared/devtools/images/command-screenshot.png)
   skin/classic/browser/devtools/command-screenshot@2x.png     (../shared/devtools/images/command-screenshot@2x.png)
   skin/classic/browser/devtools/command-responsivemode.png    (../shared/devtools/images/command-responsivemode.png)
   skin/classic/browser/devtools/command-responsivemode@2x.png (../shared/devtools/images/command-responsivemode@2x.png)
@@ -367,16 +372,17 @@ browser.jar:
 * skin/classic/browser/devtools/debugger.css                (devtools/debugger.css)
   skin/classic/browser/devtools/eyedropper.css              (../shared/devtools/eyedropper.css)
 * skin/classic/browser/devtools/netmonitor.css              (devtools/netmonitor.css)
 * skin/classic/browser/devtools/profiler.css                (devtools/profiler.css)
 * skin/classic/browser/devtools/scratchpad.css              (devtools/scratchpad.css)
 * skin/classic/browser/devtools/shadereditor.css            (devtools/shadereditor.css)
 * skin/classic/browser/devtools/splitview.css               (../shared/devtools/splitview.css)
   skin/classic/browser/devtools/styleeditor.css             (../shared/devtools/styleeditor.css)
+  skin/classic/browser/devtools/storage.css                 (../shared/devtools/storage.css)
 * skin/classic/browser/devtools/webaudioeditor.css          (devtools/webaudioeditor.css)
   skin/classic/browser/devtools/magnifying-glass.png        (../shared/devtools/images/magnifying-glass.png)
   skin/classic/browser/devtools/magnifying-glass@2x.png     (../shared/devtools/images/magnifying-glass@2x.png)
   skin/classic/browser/devtools/magnifying-glass-light.png  (../shared/devtools/images/magnifying-glass-light.png)
   skin/classic/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
   skin/classic/browser/devtools/itemToggle.png              (../shared/devtools/images/itemToggle.png)
   skin/classic/browser/devtools/itemToggle@2x.png           (../shared/devtools/images/itemToggle@2x.png)
   skin/classic/browser/devtools/itemArrow-dark-rtl.svg      (../shared/devtools/images/itemArrow-dark-rtl.svg)
@@ -429,16 +435,17 @@ browser.jar:
   skin/classic/browser/devtools/profiler-stopwatch-checked.svg      (../shared/devtools/images/profiler-stopwatch-checked.svg)
   skin/classic/browser/devtools/tool-options.svg            (../shared/devtools/images/tool-options.svg)
   skin/classic/browser/devtools/tool-webconsole.svg         (../shared/devtools/images/tool-webconsole.svg)
   skin/classic/browser/devtools/tool-debugger.svg           (../shared/devtools/images/tool-debugger.svg)
   skin/classic/browser/devtools/tool-debugger-paused.svg    (../shared/devtools/images/tool-debugger-paused.svg)
   skin/classic/browser/devtools/tool-inspector.svg          (../shared/devtools/images/tool-inspector.svg)
   skin/classic/browser/devtools/tool-inspector.svg          (../shared/devtools/images/tool-inspector.svg)
   skin/classic/browser/devtools/tool-styleeditor.svg        (../shared/devtools/images/tool-styleeditor.svg)
+  skin/classic/browser/devtools/tool-storage.svg            (../shared/devtools/images/tool-storage.svg)
   skin/classic/browser/devtools/tool-profiler.svg           (../shared/devtools/images/tool-profiler.svg)
   skin/classic/browser/devtools/tool-network.svg            (../shared/devtools/images/tool-network.svg)
   skin/classic/browser/devtools/tool-scratchpad.svg         (../shared/devtools/images/tool-scratchpad.svg)
   skin/classic/browser/devtools/tool-webaudio.svg           (../shared/devtools/images/tool-webaudio.svg)
   skin/classic/browser/devtools/close.png                   (../shared/devtools/images/close.png)
   skin/classic/browser/devtools/close@2x.png                (../shared/devtools/images/close@2x.png)
   skin/classic/browser/devtools/vview-delete.png            (../shared/devtools/images/vview-delete.png)
   skin/classic/browser/devtools/vview-delete@2x.png         (../shared/devtools/images/vview-delete@2x.png)
@@ -498,16 +505,32 @@ browser.jar:
 #endif
   skin/classic/browser/Toolbar-background-noise.png         (Toolbar-background-noise.png)
   skin/classic/browser/lion/toolbarbutton-dropmarker.png    (toolbarbutton-dropmarker-lion.png)
   skin/classic/browser/toolbarbutton-dropmarker@2x.png      (toolbarbutton-dropmarker-lion@2x.png)
   skin/classic/browser/lion/tabbrowser/alltabs-box-bkgnd-icon.png      (tabbrowser/alltabs-box-bkgnd-icon-lion.png)
   skin/classic/browser/tabbrowser/alltabs-box-bkgnd-icon@2x.png        (tabbrowser/alltabs-box-bkgnd-icon-lion@2x.png)
   skin/classic/browser/lion/tabview/tabview.png                        (tabview/tabview-lion.png)
   skin/classic/browser/lion/places/toolbar.png              (places/toolbar-lion.png)
+  skin/classic/browser/yosemite/Toolbar.png                 (Toolbar-yosemite.png)
+  skin/classic/browser/yosemite/Toolbar@2x.png              (Toolbar-yosemite@2x.png)
+  skin/classic/browser/yosemite/menuPanel.png               (menuPanel-yosemite.png)
+  skin/classic/browser/yosemite/menuPanel@2x.png            (menuPanel-yosemite@2x.png)
+  skin/classic/browser/yosemite/menuPanel-customize.png     (menuPanel-customize-yosemite.png)
+  skin/classic/browser/yosemite/menuPanel-customize@2x.png  (menuPanel-customize-yosemite@2x.png)
+  skin/classic/browser/yosemite/menuPanel-exit.png          (menuPanel-exit-yosemite.png)
+  skin/classic/browser/yosemite/menuPanel-exit@2x.png       (menuPanel-exit-yosemite@2x.png)
+  skin/classic/browser/yosemite/menuPanel-help.png          (menuPanel-help-yosemite.png)
+  skin/classic/browser/yosemite/menuPanel-help@2x.png       (menuPanel-help-yosemite@2x.png)
+  skin/classic/browser/yosemite/menuPanel-small.png         (menuPanel-small-yosemite.png)
+  skin/classic/browser/yosemite/menuPanel-small@2x.png      (menuPanel-small-yosemite@2x.png)
+  skin/classic/browser/yosemite/reload-stop-go.png          (reload-stop-go-yosemite.png)
+  skin/classic/browser/yosemite/reload-stop-go@2x.png       (reload-stop-go-yosemite@2x.png)
+  skin/classic/browser/yosemite/sync-horizontalbar.png      (sync-horizontalbar-yosemite.png)
+  skin/classic/browser/yosemite/sync-horizontalbar@2x.png   (sync-horizontalbar-yosemite@2x.png)
   skin/classic/browser/notification-pluginNormal.png  (../shared/plugins/notification-pluginNormal.png)
   skin/classic/browser/notification-pluginAlert.png   (../shared/plugins/notification-pluginAlert.png)
   skin/classic/browser/notification-pluginBlocked.png (../shared/plugins/notification-pluginBlocked.png)
   skin/classic/browser/notification-pluginNormal@2x.png  (../shared/plugins/notification-pluginNormal@2x.png)
   skin/classic/browser/notification-pluginAlert@2x.png   (../shared/plugins/notification-pluginAlert@2x.png)
   skin/classic/browser/notification-pluginBlocked@2x.png (../shared/plugins/notification-pluginBlocked@2x.png)
   skin/classic/browser/devtools/tooltip/arrow-horizontal-dark.png   (../shared/devtools/tooltip/arrow-horizontal-dark.png)
   skin/classic/browser/devtools/tooltip/arrow-horizontal-dark@2x.png   (../shared/devtools/tooltip/arrow-horizontal-dark@2x.png)
@@ -517,8 +540,28 @@ browser.jar:
   skin/classic/browser/devtools/tooltip/arrow-horizontal-light@2x.png   (../shared/devtools/tooltip/arrow-horizontal-light@2x.png)
   skin/classic/browser/devtools/tooltip/arrow-vertical-light.png   (../shared/devtools/tooltip/arrow-vertical-light.png)
   skin/classic/browser/devtools/tooltip/arrow-vertical-light@2x.png   (../shared/devtools/tooltip/arrow-vertical-light@2x.png)
 
 % override chrome://browser/skin/toolbarbutton-dropmarker.png              chrome://browser/skin/lion/toolbarbutton-dropmarker.png                 os=Darwin osversion>=10.7
 % override chrome://browser/skin/tabbrowser/alltabs-box-bkgnd-icon.png     chrome://browser/skin/lion/tabbrowser/alltabs-box-bkgnd-icon.png        os=Darwin osversion>=10.7
 % override chrome://browser/skin/tabview/tabview.png                       chrome://browser/skin/lion/tabview/tabview.png                          os=Darwin osversion>=10.7
 % override chrome://browser/skin/places/toolbar.png                        chrome://browser/skin/lion/places/toolbar.png                           os=Darwin osversion>=10.7
+% override chrome://browser/skin/Toolbar.png                               chrome://browser/skin/yosemite/Toolbar.png                              os=Darwin osversion>=10.10
+% override chrome://browser/skin/Toolbar@2x.png                            chrome://browser/skin/yosemite/Toolbar@2x.png                           os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel.png                             chrome://browser/skin/yosemite/menuPanel.png                            os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel@2x.png                          chrome://browser/skin/yosemite/menuPanel@2x.png                         os=Darwin osversion>=10.10
+% override chrome://browser/skin/loop/menuPanel.png                        chrome://browser/skin/yosemite/loop/menuPanel.png                       os=Darwin osversion>=10.10
+% override chrome://browser/skin/loop/menuPanel@2x.png                     chrome://browser/skin/yosemite/loop/menuPanel@2x.png                    os=Darwin osversion>=10.10
+% override chrome://browser/skin/loop/toolbar.png                          chrome://browser/skin/yosemite/loop/toolbar.png                         os=Darwin osversion>=10.10
+% override chrome://browser/skin/loop/toolbar@2x.png                       chrome://browser/skin/yosemite/loop/toolbar@2x.png                      os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel-customize.png                   chrome://browser/skin/yosemite/menuPanel-customize.png                  os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel-customize@2x.png                chrome://browser/skin/yosemite/menuPanel-customize@2x.png               os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel-exit.png                        chrome://browser/skin/yosemite/menuPanel-exit.png                       os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel-exit@2x.png                     chrome://browser/skin/yosemite/menuPanel-exit@2x.png                    os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel-help.png                        chrome://browser/skin/yosemite/menuPanel-help.png                       os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel-help@2x.png                     chrome://browser/skin/yosemite/menuPanel-help@2x.png                    os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel-small.png                       chrome://browser/skin/yosemite/menuPanel-small.png                      os=Darwin osversion>=10.10
+% override chrome://browser/skin/menuPanel-small@2x.png                    chrome://browser/skin/yosemite/menuPanel-small@2x.png                   os=Darwin osversion>=10.10
+% override chrome://browser/skin/reload-stop-go.png                        chrome://browser/skin/yosemite/reload-stop-go.png                       os=Darwin osversion>=10.10
+% override chrome://browser/skin/reload-stop-go@2x.png                     chrome://browser/skin/yosemite/reload-stop-go@2x.png                    os=Darwin osversion>=10.10
+% override chrome://browser/skin/sync-horizontalbar.png                    chrome://browser/skin/yosemite/sync-horizontalbar.png                   os=Darwin osversion>=10.10
+% override chrome://browser/skin/sync-horizontalbar@2x.png                 chrome://browser/skin/yosemite/sync-horizontalbar@2x.png                os=Darwin osversion>=10.10
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..db7f4ac709807d381c91ff2850050579aab17e2c
GIT binary patch
literal 9689
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..23cf6fecce91cef54d494bb1f4aa37052c3639b9
GIT binary patch
literal 19941
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
aR{1|;CPLcb0~3w_0000<MNUMnLSTaZT9gj}
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..05204920e9bb84bfe17baa0e77627c95ff4b5625
GIT binary patch
literal 2375
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9cde47ff1cf4ce521e57158ea6aa15bcc1332528
GIT binary patch
literal 4783
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..93b6606928039af13895a3bb66ac27806a733671
GIT binary patch
literal 219
zc%17D@N?(olHy`uVBq!ia0vp^20$#p!2%?IEjO_OQj0uY978G?uU;|aYB7*-d3fjb
zexG+z8$|`XMYjpqv?Wek*`iY!roATE?n85jC%?_kl+v)GQ`>F5R%{m1bUoFywC1++
zhU1O9uJ$sNGu;uqu&^0KOWxS3{D7~antet0z3Z<oF<fwtyS=~BbA5Jc7Q+k0^>6no
zM{T_%xbw2$&d=sEOobo#HCQt}ujpghA^d>v!2EwFOJ?%cF_!In!^UiXkA2sYh+Q+7
SHe~}{%i!ti=d#Wzp$Py{C0Ky~
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..43cde4a68273f05a025b9a3f369e8c644ff0ab06
GIT binary patch
literal 364
zc$@)j0h9iTP)<h;3K|Lk000e1NJLTq003YB001Be1ONa4N6EF{0003qNkl<ZcmeI#
zu}Z^G6oBDBk_RXR0y;=RC!xMU2gSufA3>1%S|a!eE-q4szJY^Nhbz>kkrsS{UL|KU
z<b>o5m&*MMUCK8cZo|nX7Pti9>XLi*=~lsnXC$L{2A_<8;j$x_3J#Er-Wj|M;4S9|
z7`-$2J$Ae}K<HAG9%qAN_@3X4>5<*P&az*>nV*e&4lp>vSKqy|`>gVr>Ql5l?FIJw
z09)D%?BfZ9_O(s?FwKTEwsE)T`X+Ao`X+vv=8FGv7k_;11hT`%x#d?qv(HtZ*L=Ez
ze;a)huN~Xw&-w#BvoBR&*1Y;Q`t(lK^-25NsKvVm|0bSO#sBX;5EofoWXAhIxy0kk
zf}UCZqVfyH$2+kUuat3sf<CQ~f_fR?jul<|WP%jbC!_cbgzX0i<+dJSUOssM0000<
KMNUMnLSTYz0<2&F
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4115b53ec7dcf32351bf1fdb97ce321fa7e7e411
GIT binary patch
literal 515
zc$@(P0{s1nP)<h;3K|Lk000e1NJLTq001xm000mO1ONa4`lmEH0005XNkl<ZILp0L
zyKcfj5X45Jqkt}vQef9KDN;~`{J?$y7A2ygB%~ocz6l}0KfrH<$VnX}s>$3EJL?0I
zRM`{S^^Tc2@7$G2Cge>ZuceEDHvm83Bh2x529QXuG{Y^et|c;mjG#C)w7Q1HYp80T
zyQNhXHA|n$(h5i*Yxbg?KE=`sAi$cvD5oDGu>!=q>>VW}l#LSijKDyvjf8wT#7230
zMqr@D2BDJmmH5^O+-cQE-~<vS`;e9qXz|(A+!qoh`#{SGwD|18;Y}qQ<HiWw@Y&T(
zC$LhgNzr7PX?Mk!S4uT0nv9ut9o|){cF|-!Xt(RA-jymovE6ldeDz(aJe<C`aQKr_
z)jhnX-C=I5R6K!-b`RND;Nhrf_mGVRWe+cFcXIg)8ozu&<L_T^^x)YOn0g*~IHsNl
z_a5H<_Q0H?oc_Wo%Kv`h6y<o~6lM2d&t1oyeayT+a}W01b<Ekv%=<I<V9Z_DIr}>E
z*xUn3#JsgQS!w1ADN~$An)yP?(U;YBjf^jp*n0F^Yda;j9{twZPKmxp-}h|ipgOXU
z7dgm|IdQ`&m=>ag1zvE#jyZvk2lS$YAtwBFSO=y5ici8bTfn#>Ep7k+002ovPDHLk
FV1k9L_*nn|
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..af3160621c36d2c8b067cec4d4b05acb339881c7
GIT binary patch
literal 939
zc$@*N162HpP)<h;3K|Lk000e1NJLTq003YB001Be1ONa4N6EF{000AWNkl<ZcmdVe
zJ80GSAI9-leu+sSq%k!StfAPX)r8s(O42}SEyaH{h5tzvZ_ql3Wbjhs+Mysqhc3li
z>ryOq3b9%}L!$u&7YPY<@&-1|pjPl6Boc+>bo@*|PUJiJ+TX*oJ{5BO|92Z?nDd8C
zURg1*w?&5vl-w{RS49aS6iPycS5{2y9S{!4m3hro0Te17b;U38!5;7X#;gD+CiXJD
z?zsZ;b!j$ij>tfv(vV$#^bYbZ_k&%AR05%x*vo9zX`M#oTV$<Hn`J}@9I_GhPRQh`
z@|!wrbQpy6e!ULV=u;t2W`k;USPwu3g{}4iJ~JTCw>|>wv6WCv?5)%VSf*Q^PqYBK
ztOUp?EObQpUb_%h`A#@uAwV&)SF2a}T$2!%_*Cds3uM@Du`uSY5N^3FEVdtz-gm1L
z?s_JK$8HOCx`C`vZMSe!pJzgNrq4}bw`wRR_9}G>4-I-Dgck-q6gpKxrbjb?k{zbx
znX*F(K(ii5?%ULf{)`!UW}Fdyoi@ny2p5b3IHd&UoB}ZFg0K#f`!-?H9RSyrK*@Cg
zcT5WJLX}m*kg!PzL)HRV1<Cyq;hHccglk$M%FJ@%qH-<@??H0ENSIX4r0^zW8id=*
zxh*t6a$hS<DQ60ZGDE15BE7Hj$}&^JTgqt>rXabW5$cum1`uWDme8e~kA+*1+&>nU
zD(7t=%FJKFSIYTXxB|)jzrqK~`B1nAnGvB!H}ZA+pD+T+{e;k_1^HUE0#Rm0JOWVR
zR}JzsIH3Z-1Lq;RpYUAtU#gX-R-fpn{S8_1rDH<7v+9LV@2n2tXD^|U*qb#bG})#`
z2sO587RJp&hC}WPYmDgzgl=Qj2oD?rr1ztyg=PA+078p?%Y<p8Kt}PYeF*I?JFj1>
z1?sfxciv^~2>Uz*C?xh~3?nqzX}i@LRjSrxwe5ClLKrrKxK#?r>@j~o*$bhV*!x14
z`5W^mKn56a+I*ch0780y&JFW*!#Mylpg3!b<0$XAEoOmGNbJoyX&mK^J83TGnJa8_
z*kbwa8!#wWF|oH&uR8gr4Z8{<BNPX%aL^+mJaW(qgXAkD_O3eWlIKEr?vkUfD*ufZ
z7Fef8r&f)4;veHijCg5Yiiy2SZQ3l=s1`GxxNE|MS%etydds}#{sX-YJoqCb<6Qs%
N002ovPDHLkV1lz@ts(#b
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2f1d3d8262b9108343717705cb63334aef4bfad8
GIT binary patch
literal 1503
zc$@*>1t9u~P)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#3000H1Nkl<Zc-q~T
z+f!3l6vq43{sHP+|And#ooW%e$i<ODX%R&TNw|e1C_xk}P#uX7kvm8XAqgZXH#;Nf
zI8X$EU}RD-5P<-af+3;STL>u<BA2Z0m69`=NaUq`>6-Z_$^O3I%v$^Gb51_{-&J^c
z_%0#=(HN0^OIjj6dOPuFziZlcKH`qx(uoISd9e@es7uigv}BEs-cJ1Y`?7aM?*Ca3
z{WX6q=0Lt3MZRmv8Xvu#nvWt{A_6b6V#XVPF1#g*AKSfD$r=Gk`ZP#0eg`Q}58^Y^
zP|4B&@vNBf+Wh|9sF(wSr3C*<U<HXFHCRkk11U#DfNR9FV&+rLJGL6#pwsEYg@uKE
zWo2c3Nl8g+vbKpHW-$A4^LL`IGoLu58M7ciZ`^Fne=+;$mQmN&WYXOc%<5%lUpORW
z7|dYSlP5bIMe`|kuu0QtM`fE=l3HgKrM<ewDy8l!`xiYYRN}y4FoRjo=67%HE}&v!
zV#dLv+S=NlcwC7+)UgR`+I@}Izbwz3hnDQO&~n9K^yIaDub(S2O@JB95{BX<_U7!4
z^C?>9hDad&SOet5HGjnSwvRne3y}e4FiRNZsR8&NN5zqwo7*278>>|)6azrYK`J65
z!s?b0xcHo?dj%ryB(z>MLu>XTh|^{qxARB)`Lqsghhlt-2Ztnm#@2H29bh*1_`M<*
zAN>u#AUWVB@QyVQ-2zsi$dP}#xu4;GUE5IAP4S!%u?;hrJ#pY_k^2BzZ|9!J<2?pa
zR;$%aey_WEV=i7m@1K@u7|8&O&_ae#WG=u>_9PTD)F8YtFpT_r>j$%tt=niO1IUSA
z$WYF>c*f!4X-=>dn@5pdmXRi_f$mcZ*-WXEw^~-r$pOL*^zlkC{7Prs2e5C~d}L(g
z9~O({9gxC7Jp2zXzL@db+O5o2(3JJgsmAkfLC#x%YR<F8<t6(P@>OS*sv6FW)5k1f
z)?GaPQ2AO~NIjf6+ThgbPz7*;WWWv;EiRegJNa{`#Hy5l8mEt0x^MaVjsx`e_6{K|
zkw}!=_{%Q7ggLy{K$^OJ?hPd|cMc{7U+a-?6OSs3;?+>kGdVrXmL@)3r3Ub=SW63)
zW8;)qfweH$J>}%3MIB1ox23=imN`AlG7nd-?s$YYH#awc6gm5Ew(+02`0^CBp)TD7
z4H>T}-AK|A-r?l=Cwt6dwjLC`Kb>CP855Kxs|_wbHCSli1l2)Wu$)q&uaM$n4_-Ip
z?sJ3cogSN99afOg;O!=+M5EC(D9?4zo4DpDb(4st2YLESN>yZl{P>3&eq4v9gfRkj
zr;U_{Sy7g{m3j!!>zh*ivB5e@iHEBp@kptL8CaxY_*4Mrh?Md$dojMQ)qQ|HL{^Um
z-{YgRv$Io8u7CyCygf!o`b~Z%^rtonXC7o}3n1m1pdxY1KKQ^eG2CsOEKk&~NVxxa
zm?@!aY}$c^02e>dG499ot+J&CNP!(FgVaDN89-?7Y#E+-)IK_y<X64o^6(S0s;-HE
zPrb;1yvQ`LRa`Dtg=^kkWF+!M`%PU*8Dq>LPBlOc%K){R&t_e`;_~>Ei1h-{!whDT
zap!9bI!l;7)ee@wl<cqsvQ8=}J};$tD%rml(8CO7Dc)m<<3xWE;kjS#>FF6#sZ<*B
z{VlGc=ia=>5MSP}nW`v>A6>0tPQtZQgEn>7+|Y>9s40kfY^h-A0KNM))8&}mj+b2P
zs$d?vv6|o`g!qGHww^Z4(BognHRJ}iB=}SVdeXu!ir?wa+&Ix19wnj?qO0h6!Kfxo
zGfN4QY)!j>HZXr7?EZRI*u9m4IOUu)M{^fF%zTR1PrOXHoYdH!;8#BX<G#H0ANJ*~
zB>0!lT}f%Yiyp=QR|No{6YV8BMs$)Wn&>FeSLprQ{NH!WGUJojzApd(002ovPDHLk
FV1hjL<q`k@
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..b92ea8c70f4303fc4a953a1233f9c96f90223ab0
GIT binary patch
literal 3516
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2c36c267869fd56dff976151050e254b10019a37
GIT binary patch
literal 1620
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
St*#~j0000<MNUMnLSTYU2ohHS
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c009af9a48c81eeff2331540fa581b8d47d43d93
GIT binary patch
literal 4221
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
Th!Q8r00000NkvXXu0mjfJP9M@
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0e3e4f7a8c2a2c6ad22b6b5a5ce8cc6058884ccd
GIT binary patch
literal 19351
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..bfeb5cd66c1e4f85d0e81d04581a262028f4b816
GIT binary patch
literal 43786
zc$_?%WmKC@*sX)RyL)jj?oix9p|}KhcL{DqTb$xfi@UqKI~2DDcjxea-#I5gva<4H
zW<4`|u6ytMneRXqSu|u~WB>qwCNKBpD*yoB{qZ{x5&q-5fwP<e0QfT_|3yN>3+iNL
zN>M|NaPZRgEGu28(POR?|CQC5FE0iynNdbEjgVFEOAsYzk(92k$(tNqFIRBNOtCVG
z_3@ub23p<7NWzu1YnLVo6J6F$7z+N(Ytbp+dmQwqR8$r+#V36Bp}*<r(;}CGnGXJl
zWU;r?qV;4dsK2i3HXk#l9_%y*>#za;?-RHo_+xf<U}$JA`}cmK=nI`SNp0a`wKheK
z*T2SrNg@2HIK87*%e-g*o~hQkj49l@QLjazcIIy-q3;L)!0>hZw<mL*zhmKPb|duO
zj7$5Gp<Ph_JM?l>etE#}1{eQ3hsV8P-Btg-S)aLtNoPf$V%C<6;hk=7#me?t{$`V!
z8k@Yw$=)MbtxS@#feee!5TYr3vVT`9=WMpJ(rvUaLI42e)OD*}<Y{l5lH9l6ASi%_
zxk4|+|4j1+ussfNY4&mOsnl<4_*RLg_c-31?0Z<@cHEK-zo~0|Q&)sz#G0<(wAWKS
z&|)8by~)aQGK`^>=}z#f%q{vc*`I==kIBvmc{h`-OU_dQH^;8qm2Ey2X&J%Z#P>q-
zD-s|O?5UyIf0u^v|E45WM89RzFKgUfAGc91b5qt?yq~Wvb7UbgsIznFW2)OMzi}Fx
zh2u_@(`N}aikv*8#hXf5P`j+GX~@?T^3#$Q;y%4|ym0&(m~*m$kcK<Zd4H)ZjtP?w
z(u|AJi9yUak&%`d(W%`dO>L)1gNbA)%}qnXrX|M2>#1jsV4=4DiJIVAe*YX$?tQ-A
zSvR+lXxTJ%?T0=*>85o)e&e=O_0Op1(g!VY(1Ahq>u>~>jA*Iw0i)f3j7G?)>DiEK
zT8NO#<MWHATQ9?S57SA%8Yy>xQS1s~P#i;6FVqO#1Ex?eO+5jQGml0BW1#!Au?^zB
z{P!QOjB!#!Bb;WY(8T$eN%RNECV;oWPcOkWUPKi@a!Uz19#yoHAYP5M$|2B8P~Wut
zS+z9;H0QB@=_Q<9>V=w-n>hYyjyHM7Z<@34YrlY1<o(Yud;VaU<wya-7+EJ|4diBg
zF%xC+_lQA<@*dB>*ibDhP)SmrG2`2}oAF(o7!<k8qqNrVsRV&pEB;?sdT;;gy4qAM
zxo>|exV0uLIi7=OT`cM9(95~&!7_N*#c7=`(Ix0-%)v6-en$W~;RdE3X7%zSZ)-H_
zq}k^TiXzul^`2a7+_Bp8CpTu!7|)&p$@{i$|K+$D1!niA0qm7NzZYLcBCurrmIV?s
z#WUC+E3HP@=DB=V2a@exV7R4u?6}S=<)L3hSCb2ldTbMy(z*z_HD~)>jSvAx#&&bI
zQ(<{?i8PeF4I>(zu>-c%>-%Emxg&>Mk>PjELYH3QE<dS=mz3go2{A1#lE)A2uE1s$
z@=AD9X)7Rr_;zqoL+l&3iEzUdOqwLtF5piKJ0(kl<d;c|bEdpB<P&}@p>#*p6R%z0
z{E|Y?S==H6%dCw&jr*s!4o8Z#4j-95#l)-pn-g1Xy`YEHG=>K~vOsA|1ONtkRZZ7Q
z>f*UqQctc?@4$lgKN{sS3hjY`5ldx`s9gZZ!6G1%ChdSs1i{eMG`?7Y7kT<)BW=X4
zmUln<G(LCk*Y%a7h>B^oMzX0b(o$MpY(be%l628b-~P-;?RnYEm;OXcwi~x=n|j^0
z59Qs(%Y;u3P7$a7IR)ex>71(UH?@kVdcfT@;nXxOaqg!$At9+Db>$>Fr|o$*6LKT;
z0I~eqf-Y^o*2jKXg+A-6(wT1Qx5HJMNk{vugcMKjuKzvd0nlZFa<^?JUKCw*$+Q<B
zo%=OX#f2%^y5c<Ie1O2{g)08lKWgg~5q@1sTB6kK_T_piwMHneCj=oi_^OcHu*>z5
z)T2=5J=OCSBK+WE<JDRB%kN@<h{tHjlK1sX&cePPcyjvmDf2$=U!55L@2Mvsgj;O(
zV@;9%&;mkWwcs`oK*EdTZ&wH)yD|=1eW4IAu7uj1cjJlg5wAh$$C9d)*h^a#)Z;O&
zT=)vZn9l%2I54Y-rwUMPwo({qJHe(8a9${HJ^x@MK$hEle(BUy%gGNYf(QZoL5$N2
zd9FYxrqnXTtPn0n;R0vCo%qnQA*#Zn+Q#@V9f~qj%eCjc1nDM+jeoK(!m1*-^SY&G
zCKe`V!Ev>4`~*w`q!B7yn_D-qe@nFn%N~%Pa|`wo^=EtBp~dpK*@B`3rf8P&i{h%9
za$VE;)EzCPkjIlQyo5^%X#68QjwuIssY(g2p*h%L6&L+$%%``lmMS-9H`+YK%8xz5
z6*PB;;@QnTS-34H+o74<y_CA%6qj?DUXA|VRz(BKy)wR+;DK%CRi$mZilQ4cbE9uZ
z<_|l-;yKT6NCtNGi-&&Vl+pmreprwNzP32g7o0#M>pMt5I)DXqM_|?#YKPs3)mme8
zXOPL8si-%Zr##!pT@+j2KxiMXK&#$&4b>hF$0n4BzHNz$SRkzLcm&EP^tbK{1tFny
z)nC%7geiR8ubwcTH9}|Nt8I}_gGnBn2$}4u$3?r*lpI>o9e&r~`mNjWFR0xmgwNw-
zS(aKLMI}qnT#^oF^%l-8=H*u~caK}b6WwH;#Cr%|HGv?!ivR6`mOW2u2k<*~0hgOm
zo~9B!qxY3DrOKCM-(7gph)MIf3{!Q1Y44b*TI{318tu>uH9@U2p0y{k-DxDcystS;
z2Z@mMsA3U$uDKdYACMkymGx-J?Cn;$PTk+s>Q7i^o0U_xhKR)p;~mRbJtBKoQW5BA
zv${)C{vQIqo)R;%@)UllLe#LixcK$0Z<FoMUsAi(`r~4mSYrGA^N57fcf~`xIGAcz
zJyqe;6ZmsBR^59tgZ5K5@SAJdZP+>K0zr)6@2TCgbA8EDlTbBF9EC^Ape%=UI19#*
zBYwbjsu;@$BeqW1?`ZNeLLCoh!>_H!;OdWsS2bgJ74(WGW<5&1cJDnzv-@O@7#?8^
zNR`r6BhaaSZEKlGawt9|LsMz<kh%#lmHV)Dq|fr61&tPwyHq!hRxoxf%Dtc|7RN38
zTPUL#Wrj*yd>TEN$cPZxweJl@3du`A;$AZ$1Nk4ofzDVy>R;?(w(r>xrI=nYO5Tq7
z<JEqcY#iyMwv5am$KU6%0{1uDjn-S@3U_w|K7G$Ti>S`OYnSC()SNbx1549EgrUxv
z*V@gSBvQGqzp2y$HhrO%@zMwn8+KGoWb_v&ZtWCm)1xvH%!+qUwebt??|k`b@G24L
z3gu~+4tdyN)#dllL&04OEv|=RN)O-o{%)rpTb85lYm{kLoHYo2>ix+DR2k_IPkI)v
z8dw`1<UGQ4M_us}l37A3*&(x{r@b%<+(n>Q&3<`5tTY{p6X7-;jKLt`b7-eSdg^Ki
zjQ`Po-F}SX@j5RtahE;5UIQ1gdpj4fT~0cKM;I#Dd*RNlS*f%yDeJmbP%_~TcmXI3
z0Sr{S#*mY$?u%$%eK|e0!J_(8lT|M^dyxoU#kGCH+?^h`!S*n1kKnUjZUKGD+t5a=
zg^Mxb-~pi*g&@pw^)wor_>99p`etnPu{yw(d5qt+lZmk?7tC%64<b}WjqQMwlaB}P
z9Mc6=PC0^~ZXP!_w{w(sZv5@f;6Rg?Vn&g1fep=E=;ycjUZ@@0*BQdzS0$h9B8QJ=
z3g~Uwtfku7uT6pCve&qo8TnQB#xcEk!0hUzA^0P47dCVcsZ$g9I>wn({f$<4PYmME
zR%i3S)x``OY!<d)5YSPh>P=mjDh;OCwX3(3SBmZ0{9m82Qj3yJLy!kix_e#3Jf!G{
zJC`S~E@`))KND4^3T-jCp|Z;U#zpK_5T}zv@~mni2&P-v%0j~mH5x;w5ETa68qh;+
zFG&yg%YP1Z+44KX(G=is9AJRo7taWMi;vEu{sB*+vNyZ(E|M?21`diYB7a-y1V5u3
ztn!joOv86<t<{(gq3CbQ)H-Nu;=%{}K&34_qKQ4V^GnRaop#Q=dpp;4n)D-qSK9m_
zG4t=?piotUVHOTdIV>f(acFL+<=@zWJ<<RR#sET&XNc7M2|LmTtzROhN-zH^cY?=E
z<Cv8x(khcZo1tZrXw|kXPOizwc=%B`*qNMc0dw>S%AWn|f?16!jps$-3X{bsNoKCo
zp|R-eddD>S22%3a`mPD=RxD8dpN*LmeL7n6Bue*=qV4MqeU9Ii0Kt8nWv|=ms{8L4
z|DBf9!x_LyVA=hj4+j+zA?XHdH#p(!(^ayqpY(WAH)U99(B{#<<QIxh&+D+hOw2^6
zZgU*HwG^oKS}BYs7#9Z$Ez96jC2oa<1SY#Wo&W7PL=Ylq)9$-U%h-bK#*1ZxCigqF
z1^r(hxNF&0EMaY}$U~4nMKnljevEwgjVd7i-;}x-pbgqL7w05U*;+B4AW&M7*f1<E
zF{@c9eG|jbcZVSOvdhS2=5^O{di!X$Xsnh-Hcsy0o6yH5@;t1$py`cNUd4}9pF0X8
z;`Jt`1l_J+{Z&T~o!p0)kS@jLl@gMEABM&8G6?_7KtoX}4%zODn2PC5pwyBIqrxzJ
zUxft`@Q^H>w(FiBMX&i4u?Ki`bpETrY291<_{-{*BDh#l_Du-#PZGNHnzaZM#v%wV
zNdgtIyZ;@jo8_ZET}22?yde|&cSt>3?IzcMTlK@TPc>~WU3nk})`0%~w3MVD#x)Zc
z!c}`nF2x)t_NVhk)Fi~Qa~M>0n$6%e>5nA3@<gZ$MwTk7cFZOF1(iHD9_(S|ht00p
zCJ+->k~r~;XRTZA%=-fuMDJ^kU9rpU-q(s;U-cCThc_Raw#ylLR1~t*bnQas#0O0D
z)`g@#PA&Bfg`nHflFI7lhjzP^B93u@-k$+D(dv7dl{gdIR?7wsg3$@q^|VE5i#8RG
zNSE29w%i$iJa7rFmynz=VSt!Svf24*sAS_msH7|w%CsD{LN`fPzoU~0zI*^-@=#fP
z0S*s{Ee!-PNy4d-YW=eJyqZFVELN-~5c&n!Ft<3Tf{`D6H3G7qpq6Qm`oDu05I=TT
zr~OB6;5|A!V5|))Esfh!#oprk$vEA8{C*y*K3cXLj(<AQw?k>`i}M3g(E?9+#-I10
zWB%-ARhM6W_>cR#Fp#z2ErqT$wIT?nuGz+Y3p;LgTJ+U#cFI%52@~JXohC5y<77b|
zYFg+dj`Do9B?(Nn;(TmGvFUWZn8lyF#RI1vL;ecqRS{L*F3>cSAmIn=C{pQuY-%OU
z!Dj$7q1|0-!;NwEg)Qu9VZ{=<P+rk#suL=~aE+4^aHjwKj{<TwKQ(IC4n?p|UllDz
zPt>kuMi?fBat7}y&HISN+ZjlrKWC!x8!{8j=|_HO>Cc*G%j~`d%I{$}>z@Dqa1_2q
zzNZb2?@y2_DhFA=D#MPah7SumWkTXGRRwYWP7pZ21IsKe5M{|gXD;L$7#8@LvdHt3
zJstsM@+C&<S6yuWZ;C(x<R0`b=TgGac#PbF{ryy<H{KEwTK~U`#^2*D)E-E4cG!7R
zDaV|}lIV{byyEteij+V;K2Ls+zU43+i(Sv(EX>lkAcOo_V{_x3t<`bCL}(Oi0K1i1
z^V82wwZRSVt1_pDAM+Ue3@u79;euJ-g#*dZAHlAKzk5MxXQOp1fZW+y173(%S&1G@
zdaHC*ssxmBR-oH)ci-X*9-we8U6aa!PKO-R?CzXdR$nQ`zuN3pS^Oj!sd0|6&+9b?
zzivF-%&9U<gk61*rdak^TT3wDwF9#GE_7WsdErN}MBeb{%P!K>=-IXVZ@xGP$=}&0
zAAJ(cU<2Nh+)k%%il_A(C4+XYV$l-MVzwx1FxPE5nEUqlmD}AIm-xqT6brL|(8K3r
z^N&A1Wsl4=iT~mdV-Hm4@*<xSNw&`npL>37+o)T9TRADwX1^QjWY0x=&trYNPz-K`
zSV7PngBw%#2-)_v_tMz*mUHuiHoy6P_-D?KI&z88Q@*X05CPH(|5u2KM*MlXCo<4j
z7Xrl)%|%#kHIr|A#hqdLIF@r!lE&Vfxl-!#ooJd3jGRo1-0K{n{&Ai$hLg?$8^pP$
zq4AtVCWovU0$&(nt|z9*d*_A&RV^Yrp3mCU4Gc3`yRCtjGKg-UtKdK;A7|@co{_KZ
zuI|Wo(+sUERLp52tTA8r4?KuXvYMuptPgkzb7V!#=di8_)U>D==wSP|t`*M#U>^Qu
zk@GNRjO2pt*q7NQVnt+Quzj}C#-7b#+?&P#c3h6@=0)*dlA<c*XO1MEg|}8@fvL7x
z_ye{V4IvoYEV#R#$LMbTC?-KbBsaWOW7xrM<<CQpKx3w8x4Ma@8Jag3m<|A{xl_OL
zK=fjTUR82WKyA3Orskra8$5dQtqWs@upvBVDChKEDx#&FFH{<VKT<L%wa49^pk<JA
zTT7W>d#Od+N;L7xn;8}_T=IcTP};1u#h*9i+z01t``=PE8ty*E`yZwWrirHgzl~9&
zSYzNm0?2HkykcqQFqjT(Atrm7cDUxR<+aq+15-Ul93N2pWh4If8(F{%UzZ1PQ&Q_y
znc?=}9leL`^gW`p+Ok-b0y`M*Isybn>_Pl9d35jS<o*Y#hjyB2iwlr=h?fEw4>iKB
zlppp$r+pDj1serMTaSH9xq!&5`dyQ35$<WT?WeKX3Oi706h4UDj>AM#q~=PwW(m^=
zQE3-$r!EKC=9!ddZro_IMJ-LMz2xg4*3c%YVIN;{lbd?h)NPz77DbXcbB)JUXMDux
zQ!JKsZypV7!V?Q;T}ErG;Ht`I1WSn)4cPq&Ucajq5bUxEL08wk>v5z`a!hlN*Npsg
z`tg$#SE}H36=$NNy}}A$9E^w`?N0kFC7bA$QlZy$rpCbR|K>orpD_A`FxXwU#$@0J
z-=^QSV!FB1P#<-R!%yj7MHSB3Xqw1O7(!?TrwUk=I&}v;4ji8Sf`CNVf+Wg$U9B&~
z8o`CzYSxN`hqjJbPG9)Pz?!vW80YUwrA`+w5q-i-`Vnv1uvsCdgkdPTq<>86CV0G%
zit_ZCz84z;4we}o`i?!lKREZsY@BKkhJtiqJ}tRB7~9m$pJE6!zWPX%FW5{yt<oIV
zW#MBNW2;6$A|_OxT=il3rlCI#orD`r_G_QOKWtsb+~Y{2NfSv)*wE{k#@D8|O~kjq
zX6&Q4ip#EKFnZ<WECWtP4-(l~)Sf%QT1`)yoAZvbo!}#RFp1HAliZKbF+h2XZ|RsP
z31_gXB3!pWcUPh5O=yQZ*-j*ctQ0{HbU|75kD9B7Pq&FrgKxGCr0U;w&rjQGSN2fy
zdd+1_W!AAM_w&sLRp*M8`H&uk-aUkM9Q^7R34Z(%W2Z^R#toJx^`BYsxhSjZ{0A{g
zq|_WAhJ;KD94}QFrRX%*!9-=KY&D?~E$E_>?QvddBiLGKL?}Szgy|wEFIR*m?-Ywi
z9K)2tmPID2IJ_Nw&a!s6@X5DJ67_skBi`8deLig}5lFW-)3}DNP7{Q~014Kkpa4lq
zr08%g0#9!QMH9sUb)lfmLk?s%G$w_!Xz3Mpoh1odu=fw!sEponjvul4Sg;_iJa#|L
z=etv1O@%c7iynl;W|@(_R(IDJshZbPsAL3#=pVKQBf9Cn_h;Zr>1ccl4-Y$->Uhy7
zt9+uMEcj%QbtxlC%*QeI#hP^4Otu^9^FFFhDv1Rt|AIM+f<`}6)H4;WM|t1kEXADc
zC$u7X6PHD>&A|P_cOt9D4v0RplSSIGoXUPR6d#BlWQb4T$FSU`UJr~qg3Vb!SBHKS
zir6ebaFP$U;8W?({_yg5AnMAi-l|-U;H6=YhEFLsu?l#EA3^T}8{XQ;WRd<M#y|&o
zG59(GvFiYt#PplkX$)@N(R8U64P1MjNf70J{X|U3{6d}O6r2l-ixR)kc<08S>7TWX
zJw#=j?sV(`SDZi|!t3p1H2PzbHn#bF_?&4^)S1?Ch;AymLYf&;kAmCSd@8mu85({d
zl_6AGs8Q-HetMQB6Xi?7)|tnuVTvik{VEdJv?=UqR3_0~J`RhC)B+s5Ya9m@V&Wz&
zycRDu{l!HMPgy{EFqQL;zu#x!q@FQ>#P<_wS?7ora^L?6HX8h3zL+5|dr25>l;tF>
zF-%ic;vGvOAp@-+nUfov<Mi`oTzHW0Kg-CwJ?-oktYD(G?N!Roz~WYeulc7%ptt&k
zurg5LhkDJZd>VTJ(S&b1uS(tHxG*-5{#lit=IexI0lXjEsGI#4tdD0t5mf4fI-+&$
zu0IuI2V6sQWMHzaLOuNEJdP3nkcU=Ut;3?L8EqYlXtWc)w%U4-tQuMDG#1Pj3T+)2
ziAppTo9E44so;cPP<)@Np?c{P|3-~*UwCQ+DiN3do6sVZc8AZcN8Op0mUmV7gJD(R
z4e2P{grrX-cKmK0>tBfqAe~T=@@!)>9LNx$i7F_c9O@Fim0xcTkYG<jPWx?$n|#TL
z{>4jV6TlRSQq9oY16^>*p%TIskTM`{7mV+A&=~4M{b7tsOxr@R_4MlM>Wp}LwD2-d
zIl8;xE4E3vEyleBtK!=zRw!JTKw8)s!*c@5VYclT%q@oOl~_%!)>TQU?gG~kKbDZj
zKi|q01M=3n6uBQ56h#+nC*5l&f<>vpGzY?N4bh_GFDWjOv0J|T$yyc}qDM*8_9=}B
zH!ayVBAO8@L#+%A$G)W?h5)NOEO%S7l-?WYYRE6Jv&zUS1x0hsgs{P4lk%pBHbh7*
z4)FT~@@oaOIu8HLXV%(oTO11Vf%voDq`<)Q>e&fefeK=k@q^Y@u!m2yRxc=4O%%v~
z=@`L!)<2^UbFSYKzh~7bkJTiX-(CjU{!(H>-w%hyU4}k|C$sU5KqI+JW+dA|nI<5c
zo;?cmzjz$cRpTNV=GvwD%Jf^R`Y6JPV36TqG=hrvl>f8+YJL1TL<i|AQ>cbBV)ChN
zkMp2L)Vnf7rD#c6PXpUWY(9qS@1`TD^ku_=wH%iRN>Gv}51Y1cWSkwxAFZ1VU6e2W
z05fXQ*-NFB?6pKG{px!k$zW<bVBA@|14VG;bg-cYwVUbNpF#@XlN$XnQ-w>wxG1de
z+v8zC%na%d)O1a^59OvL+|DLNa2!y&)QYP>fxUmii?regRL+l?l$?OK$Fw*yp*Ny^
zTg^+Z*<6<zNy3A@Y?F}$I>+3S%(`8yzz+vzmA&{R!@!JVCqTwujf0o#6xP?kW3hcg
z`Zuwt(Eg(e>CzVcb?3@=t)))V`{e-JVu^~SD=jn~fX&q1q76+Z@a%!}@Gba%#6*@g
z{=&7bMWBzo|5bE70*Z@&wdazwUjXRLg(V0F!@)U&(p8Ra$oZvBLSV+Q7&)fa6dvmZ
zi<)v34i8;@#sYv>Bs121W0v`NyWzPRo6w21zEjKY`W3{3fBjquy*We?Alze=&VncR
zKixA8G{5sS(@fa?>1(z2DPI^S!qJ1txb1T@%p^2+K-=B#OGkrEt6yvz?%zAl7ZRTg
zJ7>?S_^%L*7gs=ZZDtCHpCpo??C{^V#+C^qfwoeJLGc^7pt@y@u{Sn|f{@kNd-|<;
zaMhIyY4bVWsDOt~{yt%qJ;xg>1K)azcS4-8!}tL_tPvOp!?$Z!xbMX2#x|PI$hDQ2
zVZiv4aDqTIk4pPrgi+XOFPe7;ZTIIMah>aSe16odkUlG<6;&cs?Ru*j4uq=LFLR%g
zzr2NzS{}O{&zk@ClR!!*IyPY~*HB|ppsS19;`(rx$ZJ0rYBgh!uB)6MRvsNAYrQH*
z-C{`vT>gB>2IWIGi(W^#oKQ^ogs}}{p)xI8upurq-vn*xVD(yD_CaG4)0(An!`>XT
zAZ_UAOn7e&SNqQzlt?}@vBW%|d*ObkQj2M@q_1=q0m(YHaLP0*h*_4p-s1MtQnBR0
zbQfhIkhQ+9*Sj?*CONmA*T<|EJz;1L_?C9Elk9<VsX~LR2$0amx)3Z%PoXjny$UH-
z4qzOmyBWbQvp;&nGr~o2()g<l^JLwMqC_60f1D)(mHB;TpbIrS0?5yjy%Dm@X^yeB
zgIbEHAOGeSF34E1!W(D%e5Skrh-o~JP{4CW><U%Lb<N$#J#nF95GwvN>ymNb=UnP!
zT~Q?^rl4A-I@nODL~;Gi_{P%4YzKO*VWDF<jmLKJd7U5w@~}r|pVX+3;q3Us>4uLW
zCkVxfqZfGfpsp%%8?SLK=)Cg<rxbK|zPYIb?>qvEA{=jCi!cESTtHVd+oDc++MlX6
z{at*b2dj3mKJ}zF_;2C);8IFxdk0|h?ga!_mkFBxV{S_$0ttkIGB`Xg9l$CwDQxRv
z>IDDgDKoQwew|8L@VBTx;2+Ol_``C>b|<gQM_i@Cjr5$Q305Wa6!e0t+AbY02ArLQ
zG4h3nJoL(PZrn+2NB;F)O9)Vz^XrFmM2u@_P_*WgB1^VtkR~(a@v%lxpeDmoX@AE>
z@A@xIvllGrH93H1>I=-eeT-J~Jb`lA(QYd#c5?>;Vi}FUVVMJMFFzc}XxG~l1o8Tf
zEhRbmws?Z2`g=2aiFi@qH3yNPf~X{CDgQqNGKIs*talEma~?KPF?ts-RZ?efP9M4_
zb)PZ$l{Bpn!QIK+=io9qSCcT|m#R5JSL-Xb{M;dEq0gh9rwhLS9rN=14PIj8DYA$B
z`XjO5M<5rrl;2L3nrN<NA}*49Au}0{TaDSO5xj1%wYVN$mpfl|!1Ag2DEmt6b0uHI
zCzAY2=eG1`xW`@BE*a|@U<S~*m7(CF!qmSd4b|JPdCd8qcktQv1jC)fYSwDkSxih5
z7<y3+r5iTbE{W1k)rlU)^8HOaG?OW*XT^uoZu2<(-`<(EDpNw^80VL3!QfmuNh>nO
zIkkP9t9vWE#KsO3JamhSUqsr@b%-Tf?nhofdy;e^)IgQJZ9qA#8$;-~cOLF8r3bv4
zjH1G7g9U<4gae5IDdckba{ImXbfZ~5`lXDKr)R6V;#kO43mOTp9TZ;F@5$Sekc)Q)
z4chv}RQIE4WA7w*8d98@Wqg=Xf(RZMyp*dhKJCh5$1hz2(FASTp;+hVJk|yE3%b9%
zN!1(2rn;l2^Bz)Pok~$P(3u2R;FpHgdtY9KVd%a-KJjUj(6qhrKrJiB7Hf3Xyb-kO
z579l%5UBo>HJojQCP&5&-7p`eHdH)vLu)*l1Mo(_c7HOZ8N@Whqnl=$f8Pvb4nT*}
zhQj@bYKcRmuDnl8rXNgvCDKawco-vthd08IyD*R2H{L-MXmlY<Im-B_I^!}9^q_5b
zQb$N4nL9lQ;RoOWIeNQ`@bX(8@)c4rS>XDrm@f(3R0_?CSnO;Sbn%<Y@Atz44603z
zDA$tg*Mu$UDr0ut?jS%I7!G_zr~d6$`i9&XV(j8&5e(T0(ZO`^;%9pXKr-NPSE7Ch
z@g-0j9%+q(#4(TOEMAR6Gf-uz!h@=-T*5@}Zkl?uPTet)MCP9xMfGvyUuz+$*$k*+
z^_Zxjb-X}tC_-xV@OM<tiKQCTp*R#mSe{(f98sOcp;&T}Rw@lj?zscO`rA}0q`Jbb
zgfGcxpR>yGexPp-#*!EvJOsq|O776lkTMYr$4l@Z(<;4Q^kLACvIs#Bw3*?{3&T{q
zLlzA%%!?X2ttK-CD3B2NF6zqH?AMzwRgl_Te9&|9tWyp(0+IXOhZ|}TyT8)B)ME7H
zdmEY!&L7V3vkM)sBNo)%=#@HE<JT}s;cD$VV+$IZ**ib_UqW-}Rh&!?DW<ZK{X2Jy
z%csxrJ!_#jwWz%~Bm#0Cz=0TX{pB|^bujKD%wE7325zlu5HaZdB3>{lfhk-)8T{%=
zSQPGNkZoT%Y>n(_{a9c;nUF{O*85pv*I3uc)E?)yU7LL3rvS+?nqh1hJeH*^x@q;w
z?Z-C`@b-w*Dy@AYZ~m7b?$(}dFQ}O|Pcd!`<zmk<6SrCc^|C}6=j+g=fo#K0B+x6{
z+O*9qu*oh<UA#l&E4Nih-42y}#wIHVt~VV9TK|R~wME0DU}fUBjB!FmtdM#gj(+^E
zI+p`9YW0O04Ste>E<Z(R5cSiC5RJW~_0VoHU5p}UoxgSn+TR#f{0R4}dMh&bSWcfZ
zJ3bCLOF0~NT?yw{>puY0ZrTdXqOY2ub&_-Sq>}a(9Hfy4WZ!w}{2t?dSKHL^?4@N8
znw>e>QM4*a^5-l9RYpl}%~Hb?3^S!mR^uXfjT-AkCXOSe|0AxxFfoSs7_n(D!7<x4
z9w&mA=PCcjxu~JHR?4!Xc6-@Q?=RkO28eyN1w$n{XOAOBgHm>}=89{M;)$E_;Y@Jd
zCM38f(pJLHFYs5tP!amBOC0y5>q1t64*ehxn_JIK@RD0Xn8p-J_Xj!SS`csdO-94o
z$pbgY4sM5y)#Jrr@YFCpNd?`ke%!*l%ofVuOTn31Xoy6jBF*)___JUnGw4Djn=v}J
zcH07Q$tKqds^e7DOL0A*NK-lXS{+;0f#-iao)rRq_j|#Ec<W?zdoABs;-hn+Gh^wu
z5?2g^){+Cq^qW#Kt}>A?+)r2C-Ai>qvyIxYpqDDB$xsC~%Y2E?Q_(T?ymYJ7rpKjB
zSh4oA-p$xdq~PZ}GWxaQQ$nl`z-XQ@Ng!vbL(GI-U#vwIDV}-Q@t6}A^94COXcP}>
zIbEB)=%NgVX*Cq|y&Yfp+ml=$|KNlG3yd?Jrlip2&75jgSXAgu1lA~-i?5hCUKNqc
zt78iR#P;Fkzf|uXH<o(=g2hXyA5eo(a=(ke{P!+v$7g&zMMc;;x?X-Y+$6<!$%3DF
z&@vajo-AO$fWMU|c=H=ssYd6UyRT?n*MBIiaHqFp+C1obx`gt*!I`o)NY5?BrbR7_
zl%+%E4oXPEPNF<1zDsY#RRX{-hk~%}@Tj&Da+x=O@Ce$MFCtr4RV{qQzq|?3@%e?+
z)fk4@1%2-gW8aJg)svcjdh57G!9Dafeb;A4=dJDC(4g}+;Fi_>lU*=!*ru{*xw{v%
zAXCGm@{S&hd>?yW0t@VzQqV=2AbR*OG;aIV&+mxK3d5EL=giO%GhZ968&4C#D@pSF
zR;%T`ZUle(xJYANDs~ohAx}X3hICyAnKju7ES6p&2DJTYcdr4#0%o{J%NUXPGJ|m+
zLfg5S>iE_Hu7#HyTEuQ-3SqD6)OpoLMiMSOros0A3|K-YL14=TTm4#t(L{qdg+2ye
zZY@h1yKV3zh3exbbFL&OoygM|;tWUJJ6S15W>m16A@d26*~v!Ry#ONxUKnOMuLg1}
zLfjH*Lc_dLnonZaXJ=^WYG|N9b1#s06d_y(J3L*btuD_6DCl%RxLMPd2Q3dIEdZP-
zmEw9@B!vXAen;iCJL|cZ3JaN9Ch?{Mn0D;10MYkX05PuW!?#^&VM2PgU~~;sVY8*C
zULU@SJd+8OZj(w!+`g*1T&FHESjAcZi}IpB#<liRUxY$w7+(#>DkBr-cvuwd+V3M5
zgVBnyRQ3RoT<rc3h9F6x3{?_`7z8;-ST-AS<*C6rnv-|<)1oEZaqy{5^qpnlO9HQ)
zUZHZay+RtV7zSAq_<e~s0!mvqAym9^FD=(40ePv*xILwDsq2qj!SPaZg_xAsynlM7
zN}O)&k5Z;Tn1mwMXno`593LdJ&-m@=APZ<53RPQ<VLv!OP{r{lBB2agq{0c#l9-m>
zlD=q=VeVyT4AAzPeh)R$!x(i1Wp~NL+UeN^o#?GPq1ZpZ_oO0qkYgZrWPiaE;MJfQ
zUXX4x*Ntnj>pSKX-w!pK?weL=|8U-1l65puU$(;>$opmy|A%0RU4q+QrK@$(_^iYh
z3Wh1pU4K&{?meTRz>~S+Pv_2V!7jhmS;kz_cv#qiYMZw{@{`|?KMChKhwUE5t4n%8
zDY7{YMV11U*j!cn)u>%l5yq>DMs~wz+e1H7S12cr;m=Nv@M#2rSyAV?*J;P-&~fdg
zfg|1*IZh6vW{v9TML(|!(pfUuAp#@2uUYu$`kp7tHJ0mtaWhPZ5%z)3enF;#$V%eu
z!kE^_bk`f3=%S+{D#h22UZF7hXQ2vM)^ZWM?iAX)E;Z|W8Mb43&a_xigc_fxp&Gez
z^&hw%&%%+-2V;m9-AgJ1Ya@LC@X53J0d{ajFS@nxAnJAZ9|DdTqbQrtB0e{1sQbWd
zwC*E4L~o3n$HN?qpeVSC+ecJfL?T?EpvT9k)g5IVSldZP>PW=~t0CVH(!S+8i@rK)
z^s#?1fazx`si}qLAO&4vgt&C@62z8oJGFe%@eE;<S}ZB{<)Efxuca1^fNF>j=&)kv
ziK-HYZ9%D_{QgVhZT94n_BjcxNCM<`a!Rp=q#;h~ggs=D%I&!3phpN4OEUVumQ_%L
zvzeAaHYL6!@1+!{%?eA@q<^gEe^ev(^l~uLYZogQv!Nm7z3}cHRO;vkGa;4p5@VZH
z3~Ay7E7Khb#&#<%zI|or-z+I#o|syml<;P$rUH>9u2?WOvOZ(##jIKNo&Na1e4ZAb
z1{z|AP3{4=?ow|7nWnYCfy-@)d(bFSSFURA>1W5kelWM<&m&=qxX`H<oRuh*CKSO%
z{txDYvEj=T7F<S7#|%V0K1L27rSQAkN>hE$fk0K;31AJ43`L3ReJ#mFL!eZ41+8vS
zSE<~6TH+SNjqR2oDOT^)f}cgN@kFQPNG>11B35L{O*&7|MZgq}TxbLM6n%Lx11M*8
zBfm`|2;4uyw`wX7(J7m=?9BOwJ}Isx2;FJc(bD(wipvl|o+<2I+w#eMUy~u?lMtcY
zB@LHTNtrE5AL(`C1^9MBt6(F=w?;euIxj(AO)1PHs^RN9m$@rbTE-IHv^;rW5y@_z
zX`!SfGzUANjq0*T#!jKr!p!W(MPTiO0gqWz4&i#MC&Y5(M89{#oU4sb=Dsb$>~t>(
z2H}nN*%Witb9`Et<-W(EQHo?pN+8J+hQo04$ELg=248p-9z24d<=o+Cc&4v*5aN?y
zd~Zs?^;(#1F822Z6VER^|M@!&>I%b-*7Sf2En&`#%dKn?-|Rr-R2J6l;*-4e#|3;#
zsTMch)lpu3Lkg|P9!o3oD1^zqKB)^%{$r_t=N*YVx(_w&=5_067sp;x3tJ{fOxi=G
zIrC`%KAxxSZ#@Rn=c(CbA#;e2Xayu6ol4DqzBbf&L8+S7Si40ty;a{9x_X1S+d|H|
zU#|_*>a|nPaorS}qkL%dYwvU@NFA|9h3<jrp<L`GA!o!CMBW8e8#`hLv1nwZBQU2h
ziB{8Go#Eo9ys3pXEM*-EZ7ofe5Fe}=<s7S#f}=svn9KWT^(BVU+tn9WGPO9;J-^a~
z{67JGBgDyb?S-?!&oY2{ZLp*<Iv=}j1r1C~tcvTMjLNBeF^(X3<7^4yhGhBuY3L+n
zLLeAfWvp2hBgi1hbukgWwg`1U>kB(XF9q_ysqi+O^I2D%hat<NF44CuLThHIME?cW
zP(z4{Kh#8!(!#RL4`*5MV*+tJ{@MmGSkncEC;0&Y{<}Me`+=j=nuB7cm1f*m#@|;$
zN$OwW(^tgp%@3N!mRb^{XL2KQ4VHtknh~tordIe0HZjCrI1)HG60WC6_aYR&HkqQ;
zI|-JmC`gYIr^<2DrMoA<gNjT^y>x^w%Veh2&f!3ab#;xJwFn?spncvtwYJTnTb85F
zyT^Z5ZVojp(iHH|M^VWqOJ=mU#C-qF|E3r_*#tcc`aN89tBO9F1?#5@tr$*ai^xg{
z(Cts++-@in^@4#xg(7D;=h+*SW)>mq2zbm~>QfdMr?{nZkIw>EAi$?jl62ThE+hrS
z{won5#0p0vS<Lj^Z`NAQ>pvB)xLv@y(aVfpm{u7UG!(8vLzb;2r(7LweP??{n2P?;
zS+e_LVYz(RTatA^nPG=do9Qd@sHmAyt!ka)zU68o@@ky&yJfrvO1GJT^`qYyWv0c%
zFMGt9_XQlL$aa#z4Rz1K_9#|@f4?>wAtmruueeZZF!Kc1gn4J&pKwtS`_HU@{yrZ}
zF(3|vRp(+pS@al3hbUDi-#Q{TLP4l{76s*|-GP!E!By;(0h|3@=I4ny8Gv!&bCljH
zy%qc-^z>76=;}bQ0?B9}vDafCn_AAUO<>7%wOBl))j({~BrnA@0y*4hl1xSR)utjx
zMmIE15vSkOEHug*G39An%lU;gpZhq}k1CzyhYSPhv5yf}If~|TeGk2TLSvZM<dn*2
z$j$j?fZ=BuW(C5THqY}%{R=-jKBw_%qVfg@bn}9s@<i$a;XN63L8N_H_O+N^>FHFU
zz|Sd;0;Yhe3bMcDZC5ZF4CO_)K_Mt3`SOH;StD@W7<r9THDD+_W_`cRtUpkMWYY)N
z$y^HJaF>A2J~b=SKEHZYUcIpE`OtRaKxacR1yksUiN5sqz>66r4%L9NqNl=3g7M^N
zE1^gt5k6-kdOfdIf8b_7payqn<q=G}JOAxO?I`^05?TlJm88pC<Ugqmu^sx@eM4T`
zq65C|ol9D@Ze7VCob&f^V2}yLN9bMtudyZhq0f3}+9W+#P=)IsFUswN@%98)4ROo`
zf?FrC(OrpoNv((eOaWJ!@HI}kWiO3j);iXoaZg^$C+CLq;(~rAf7`v!t9chZUAmIy
zT9Saav`OmYGEYh33};kn<AsS}DV?;t=73I=#-%<~!3qE#v;A6Q7PifMmZ1ADL_Eg7
zo4%%EyIdA$aZZ3`|I#lz4cRyy7h|HZAqu#zWH|S(-%%@dn;bU8>FE%?{p9uI6`eH2
zc_Ihc&fxBxD*i5sT{BBco9np*Y+nhsld24~Fnph7z%!0)hq>3T+^iC3Kdviyr?J2R
z&@TT34|kSBCVugrMh-S`<Wx=R+m#S%2#+WYg1|FDg;P8c_xoQ;DX$y=cj6mWnxZQ%
z=?*_SRr#n$v14bf0Mi_D44MS@d{gr#V=8DT&}J6PWEJnMirS3@NIf1n7N@*agtg|e
z95}(>V_(3hqK}@B0`VcjZz$Qmz9lTIJzD9DcB%F_{^?-odwHQ>=Cj3H##%I=&k#Oy
z65p(s<k;0H{YTHf4CalIh`<KR&Xfc`tZ=s2U0i=8JP0OB*nbTZty0j?_}z6L_V)Pi
zx7$waJu;anyp+anKJe2`yj^g9@<$q@|4{AO5Zb0ii39<kUVx$;9lgPdnEJX=V&mSH
zO+>*ixTpNT7tt#S&re_P7^yPmKuW9L7h63JA3B~KyM-)uQIY{$D(cqe3(hd`kcYDI
zY=q9=p2hGgwX-t_1q8+qiXSjawex7s{MZ4}8R$TKW&2K9OYNl&>d$09wP31K4SkOB
zN-?io0K8%`4PBLCE_qx@iq>xZ=pICqtl_n$79R$JKXSWyeV`T8L9dj?F{nGZ7$((>
z&m^B2q}rQ)TWvOyz&D;Nm_Fe1NmGj67@$cty!u&4C&xHtxyAJ`deN5uvE{vHJVA#w
z-qm)e|NFfJTof2^00+`1nRI#b&Hk^ed*u_6%i<^S)4qj&$y}o4wiktcevA>oT~zKT
zL%$vr{1H$Hd45vCysxK7Ct({yb#)atbM<#ey)cBOTzvm8R*qU1<K8P*wPw1nqjka_
zqnpo6yk2k6G_PB$BNZTNlsk3ZWlVqu<MXKZ?|chg_D5U47AZVk4pFEweFV`I7w%<z
zcEfd}MTyvN59Vk+x!65P80#2hj$a-0N9Ba<4)u@ZfGYO{b#bXt30z!l^s^q@Lk#2j
z!ZGkEko)WD^v=FR#D!GZ=i5a4(MEF$3!~Ag`hBN*(d*26g4Sh~3C#WL5)(T70ve6a
za(Jvr+U9}d%QdD$=~Hgp>+uLP(4tRa1cJ>NH_+7)kbt%V-7+!vIYZf-IkUwHI4U*n
zg5SnyL*x#>elvfj0jwGKGVJ~>;cgg5_s!i!W;I?mIIX*x-$d;3cqOrUjdh3Bw=L@5
zmH^#~K05v<?)O2{5{t9NeL*v8MrSXIwS;s-yR{Ppp+MyN-R)25pN{flW#&5TH?7#7
zoMf#(pL)w_IX;&77fzm30DGLEtYx-B2TRL>fZHY{XwJfhMKF0L-NeDCN<9~4q>T~?
zH0BZbth%3-Y()U(CjURR)c?ea&0DNljdP(AEMOWv+WlahL(>{x!Mx@#9wtBhj%iZW
zTvCO6#3U)pE#!6M#u?P(#aFrSxhbrA7HbXa&>g31O<kZ)+N4;U|N3U5hnq=a%3$oH
zbRw^KiLkF_nia|)zCuqTjIkJsuns<BIaA6*azIW20kj@UCSP*}CSj$i&USkcd16VT
zs8e4%TmZzVG!6o(_7(u+cfwXY=A%j5#u`w=82gKj_G?VdNKu45&3L0Ks0z*G19~bJ
z*%`CLuQG9@0?DS)d+=gtOg)tYS5Aw352sC=d*FGj5~)TWY(aULYMp6+R25>!4jB}@
zKrF!*a*Lq{y#LE?!gJLjn)ZG7C{4g8{ql(hjL{0U0vQo(6V^@^?(2Up1l)cD14l~Y
z&*@`CahsRzq6~2Rz0%F`D>gWisPn^tE(#W;1www#iwh@u|I23*)HHp2SJhi|4Hh{8
zBX5d`RWa_@?2xFWwR0>Se>%DkG5>dkd?rsS!k=vSV(k14Hp~cP2jJE&Pl0FN_xw;*
za^iGqJ(sihU`Q#Zk+f$yy+)#@4Q)!6^o?*$@cUcP(rWQkW!U(SyGOsSFOUyKkMNqW
zSx_jXf$t+AP_De(<&7;zA=<`^(jo{;1yF-Mg3nK|Y~N=e^XdI&&;OlAhu1Rj1-!j9
z1+ODGL?Bb2!-L`%a$Iv&%92~npPV;Zn-(jcx~;71F~LD4u|vd`HZ|@M@YQhGF(O|$
zG}(7U{p(+mS@RZP>}zjgj6RV4M&j@qYu8)35NgPLKa%s(6l#i{U`!m}k$Sk^=SpEr
z;=a5nh20zk?moGun2VE1|Fq6!f2!OTt0@C9<j}nn{<EJ(QN?G;u7Qai$m)qbI=sq_
z<;R&Mxh_cFlADEs$GrGK?cS<?{Dk>`?`$lF+O6)4xZ)t-76XD4<U&Qgq6uD_`mzY^
z+|Fd!Pb!9ey!NZ(CFo#095;h)j8>C9rMh^RP@{!rd7XctgE?MxmD2RS=!Cf$=bm6V
z$5|vBw$-nxu-+E1wj`Ozc*sWKR3)o*GHYPqcCEGJm#ozJh|Y}z=nF!Pm_j$e;BX0<
ziekq|OW2PM*gd2Mc+nWAOOaL#>0H=?qOm92*+V+NNertB$6#ctDR_{+YcnyRXMB4U
zcu84TxZ%ggse3`0L?*f>ZF)m|BF<d6vc7H*0#(&<x7vhtQiiVq&C@Mv)l?^1*#GNz
zT?C=FLSb5-I4}$Cl%Bf|+G03~pl7iQ1X>V-f@D@C4~1=?G$Z`awFG(tSP)%qeqrd?
z{nG-_;lFfflVOjJTG#gnu~h*MJ_72m+9E;XWW{@^H@lwDym)TYrhgk_68&e3u2+z{
zro9v@f}Sv}JvU|zmPRP{e}_X`?WQ1U#jOQ?IIkQcws^t(Elp<!0sGtSAgW&{%qUWe
zW}I7B(!VlvJY@~BKPP|4*v??6mk*A*qnIo--N+uaVeBoI7f30mcp#;ZKzgUahLyu3
zZGDvMSCX<KJM!4s#~m9t2?~7*8_F(s%q~(A4S*wBH9g7r+^t^K;;GLuX#?7qw0U?{
z-f>)PNhlff-cp6ouc2n+oq~B~^}2Z!_L6c7)QSPG*A5-uw`^z@al$L;Zk}wbUKrnB
z&$|LfOqs5hWq(zJv)AgUkXU;(=^FJ`y1Gs|vi+ilc!uZg=Ncq3SXb{q$9RaS9Ko|{
zL6~k2$wQE3EKv9v%Pg`Ij>DCb_avDPB%<6>hH-UA+i!!S=xh;FptrT?NiozQLXhE~
zG+)J<VWI{CI@p&W!FW;#*4*|}sFx2oN3iDRlDQt(nf#eZx6YXac~kN7Di)&Y2{9EX
zy%f=|)5$Z-G%s}c>R9_pcj_kFXh=7i@QEJWLH>{Xsbjgl=5q%GxxE9WX|6b4eTlPB
z+No>?_$w8^Dd*0Kl<(hVS6pCTzmMz6^-Rg!2D)y*C4Du>S%T(}k*Q3$&LjwgqYJuI
zOEuov2ReW4HV1&QM<*?Fz?$;`bHp@8JJ1;<?Q46aQr_)!Smjchm`sz%#$IWB&%drZ
za3;ndueUKsdFh=29&q&(5Hfk|i~lksIL;YPW3L^+GB~737i0_5VgM<zCnQrGAX~4B
zlfC3<1jm+VK?+Y#R~z&gA--YG6ncd0+h0mm2EtGXQbMjmd3|n<^3V;dhVt@bm#h;E
z0?_NI9YUjU*RB;PKZ(M&;fVegrr|bBqwA19Ybtb!EkBlJ+&)zQ{Nh8awoTC0H(@bR
zTC%QT5qa~ZwP+YK(;@yna&ef)Rz^Zc`k^g5wk|I;o$8grZ`Me>`@knSLRdDNd9Ax3
zsIGFNvom_3!3ni*IUG2%1LAmZ*~3|3ixY8#2Q3i4<dZb&mkHg@S8C9^VXrkp00*1f
z0s4LTw)HQbr-M3AZ4{n*<ni|5m#>){tttg91_h$#XgP)jLif{>Z+hAk=kK20F{W9q
zIn%L)2Dbr%@OYsG=$JN%Y~jeMNK;RJ1oRjZ13fz9k_v|?!aGi?#r`<`?OPaKCVPT6
zVeAO8Kz?aK*ko(l0?eVgCDJ<NJVZeSdFhCPiA@RJ%-$;1tZ_fx8k4Y?UpCQmdHPIo
z<h4KCnLMr(OUfBb=JBNSGOIJtK0@4~WSF9)Kt>~9?3T>VJcAo7U-wti&`G+xE!lPa
z{KgwS0g;>)<F_jkQ8x*i`iS%EDKUx+n=TBtYNKFm7v~9aDD_&Z^IWA_I|dSO0f5kf
z$wvCd8&=e1uc)Vt&#o=qp{gKgg1D5kj>z18a`#@&+q9B`Pr6eSq^}>xa^y5@rPG3e
zc*4(_bt<R>Q{4%EHl%pCju(9@<<?*jJ{#CtiZukJoInw7CZ7*Iyb?~hJQ{_o^}gdS
zPH69ep4)!J<pWh}&?kmeR@s)Q9Xb`gCVyMSxT6bhHxBzmvkBEuNbw(TD<8CsQm>y%
zcLoqFRvPH_^{gtr$M$qj)#gbm&2;$QOV9Qo;W5$&v2;aiRe%w%9IxuyJ-|o3=|>SP
zcKwp5G9#pw-lL&MD0Vr)+e-!CTO%wu4!Mxf$i8*d{D8bMz=FbZ^UHySP-&5BN7oVV
z9Y%HVtASOWPd4=#Z`|JHAEL4~kexW$jo0=+Xu*gYarrXN;7`ny{fo!8ad8_A`is_W
zvoIw*T|S_@Q3P?`sAz+q7C{hcg>wIAK~4E%6?y(}^WW0QJh;_rqjiLMquQg`K~qfe
zJ(Z`!<9yx+Ar&N4W0|;!z-Luaw?7r|?z?31ww`wjy@=}D>X71~pO|hCyL9BARqp_d
zKCP`dwGi`nUrDVmu+*}j7L7jJKrK*AEogn5vvogx>N*WV9^BsXyQW6%W)ru3FeyhM
z|MJEUe#{yedAhgC5`OraK-=~uMrJdq5AfguM0)&c{-xcVR;CDZC^^UlNR=5|iCs9X
zB#iJ(j*2H`O-OV+PERl?+sY!BrC>h0M{RPp-g5rSMPVQ}lllZzr}MYzP#l3&m~D3;
zRM$%VJD@VeMNz?P<<;<mA4UiC`>d$W<mErJvpXr5$E)ZRQ`(J#=gWRt=)~ux#%L%N
zZNk)97K=Zkk?@YYo$Zq)J$l28s*tk<c}*)nwt7tkra<Y=7(RcqNU{Ih{zxZ?neyb=
zXu3zq6vj_blvnH*5y2gd3voi$Ak`RTJ96USHmhvGZ)4mdt`l|RLIAng54$f?y-&5Q
zki#V7{8j<5LN7sa8-}{%LMsf30Is2{dovw9iWC4c5tCE_>85;t!S@C@Uj<xX#kQpX
z4@+15)^yj0M|VrN($Yvv3rLSpx?8%tOF>FTNem=aO1ei#H_9mK?uG#yd*Qj>KVa9s
zKiubzb3W%juX;C{=|vxnaHL>)_>a&15B)>FEg44rV4tyzV|hoDPX}Wwj7kcxqxM{f
zEA4D-;OmVFVm&n<$UurLiwVI<Ub`a|<<_VWSi!f=S99aRb{Z|(=k(OcfKi%ILj`_5
z0N#%`ACvB0IOO#P9n-yzhwjF{ZzhV-;fDYCsDNW|Y<a>C4i@ZgmoeVJ=MXI)Bv16E
zjEJv&KAE~YN2p+^xOW2~_e1BLosGLHUj|VJXxbeOExbFYyD-_ZZ|o3;f&-e!!8VbY
zA-5y8jp?sN%W#P*w2%P3_L`O8_Qrdjn~1oA$iX%ggS@-!MKBxwKJ@mZ<_;)lnS9sw
zQiNsl{2-wWyC@o6XR)cvK^`~*TK(bGE8MDhrM^_<n_>30z~}NKGzfVsy1USnI_cB_
zRi1UMoE-+AuOJ`pAC8O|B`dB-p(qCiFVvcTeEr@wV_uY_|KhE6P;Ig-!8|x6Mg5XI
z&#`Q3ad!qoX_hd~JHgJ$r$Ykb5{s)et<xqd<5V~r6FHD_iU*NXp8pVro$)r{C{h#k
zS*B1SrhMNZF_sXR(8yj|ao6h7>UvuFfo5q)J+gJa&K_b<G4h&mn4ohKiPM0<B%t|+
zNnW+o=6AClxkl7hz&1)a`qPCs#ZO@?dLVZ^U?pTI_Aic781B?<NDPR9R@`$_4|-+H
zQ^&_boYnxaO;P$t@^Q8kww|z3HhmI-cLXkg_b1ZMidR2IW){(i+EjbA8h&W=OB`}`
z(bjgAd#qucN*^>>bOkGylcnl+U5XD#Ri*rqz-QWlrb(+L<v^!Yo%j!)S&MFuOAO=G
ziUo}g7Q!pSYCD4YZ`b^D-gn|~0pq>}Ik;xZmslQwm;7)msf0qg{Cml1ZIoe-L~m>M
zS4RE+;kT?%mkE&IK(YJyK?h{bI}2B`hSsO#9HL+DeHtlMgg<@PElct>Fl&Af;>uBX
zKQ--4+amZNuNbxTU_e`)XBcE`n5$x&-)IJ)cm+2ia4Evm<JH57D<ZZNC%m==uti;!
z*5zN+Z7(#uZ!Rq4&LMGJJOk)~(&Lh%^*keL<IlSqX)-Q$ZFgDKYJpaW3qpE{3hYB=
z(En#3&J9fLa3CL)yhIAem_7`kg%~w_Xt+LI>z%d(i#^@GTM51x+r2(oMA~MjHveVZ
zRU96D4I$fUGga0}BKU7#RJc5|rTv{QYK`wb%N%K|xjh;}pnxm|#ay`(+zpY-#3>eW
zLL^Vc7yKY7eAmX6-HL~jfo@3ZaP(qsp)FNL6i(|)&wMG7&x1l0CjW51`iM?=S7Vq$
zO-Th7wCF>|F${e%=*v;9#=LUD_Kc%)qPkR#)DbDY!wW$PRJ2L+x3YHLZgpCAWqX)D
zp~i&d`1E^?jLmEsU%A820gn#(>S-yHJ!AttJ^jSUeqiZ=2s{NZ_68Wk>cO|0%VCp#
zJ<&MUU&PVVwD0Yh5oXQU!#qm06}2rWLAYEdMh63{IfAzFOLy8G1^+DWg`Igp$k^de
z(7SrkW&e$le{;9YC&tUPd~#cFoJ=vK6RLcj6gwUlnA;;1BX3|@z|gRV+nptJZ~z<p
z%MB{t(F(Thi^mj#zkNHhbyAO^_xjXK!|#uXI0Xm$Cf!G)T`Y6{S`m&q*3xs>3`tdX
z4Uy;^e&=5A=$cG#7Dg>T7saTAos3d5=87t`g08rs3cxywe^XtMCIukFPx2qy`dS=^
zt+$eTrOu&!`5b~aTPH{L`VZOgb6=D!%5d_O37sDp7WDyWVfkz4(mUJvQbD|<i7U6Y
zRVmQc=ODZQ5dhh_)ZpPvA|aMneK_u)?^HYP+YhfQuhM~2s|6;oS@DX+fM2)SnzlH&
zkl&UjnCS_F$fP$#(S^~>(bWpnDdLLIwaf$7TW%4z<=`lI9;ut5Nt9+97fMFZj1F*Z
zJ=9&}*`4Kbcs!f56W^P)PCo+BJCKYPdj%q_)WpdN1~2~If(;j~Z_Mx&UX&oIo_Kvy
z?Oe8)D$QLdVov``Q6gA=IVVrj&