[Pkg-mozext-commits] [adblock-plus-element-hiding-helper] 02/08: Imported Upstream version 1.3

David Prévot taffit at moszumanska.debian.org
Wed Apr 23 16:15:09 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository adblock-plus-element-hiding-helper.

commit 6ff7f92d82ae6fc81a5897f6857c9d923c80c14c
Author: David Prévot <taffit at debian.org>
Date:   Wed Apr 23 11:04:07 2014 -0400

    Imported Upstream version 1.3
---
 META-INF/manifest.mf                          |  544 +++++-----
 META-INF/zigbert.rsa                          |  Bin 4592 -> 4025 bytes
 META-INF/zigbert.sf                           |  548 +++++-----
 bootstrap.js                                  |  210 ++--
 chrome.manifest                               |    8 +-
 chrome/content/common.js                      |    8 +-
 chrome/content/composer.js                    | 1042 +++++++++---------
 chrome/content/composer.xul                   |  138 +--
 chrome/content/elementmarker.css              |  166 +--
 chrome/content/overlay.xul                    |   56 +-
 chrome/locale/ar/composer.dtd                 |   24 +-
 chrome/locale/ar/global.properties            |   32 +-
 chrome/locale/bg/composer.dtd                 |   20 +-
 chrome/locale/bg/global.properties            |   44 +-
 chrome/locale/ca/composer.dtd                 |   26 +-
 chrome/locale/ca/global.properties            |   32 +-
 chrome/locale/cs/composer.dtd                 |   22 +-
 chrome/locale/cs/global.properties            |   32 +-
 chrome/locale/da/composer.dtd                 |   21 -
 chrome/locale/da/global.properties            |   32 -
 chrome/locale/da/overlay.dtd                  |    1 -
 chrome/locale/de/composer.dtd                 |   38 +-
 chrome/locale/de/global.properties            |   48 +-
 chrome/locale/de/overlay.dtd                  |    2 +-
 chrome/locale/dsb/composer.dtd                |   17 +
 chrome/locale/dsb/global.properties           |   30 +
 chrome/locale/dsb/overlay.dtd                 |    1 +
 chrome/locale/el/composer.dtd                 |   18 +-
 chrome/locale/el/global.properties            |   44 +-
 chrome/locale/en-GB/composer.dtd              |   22 +-
 chrome/locale/en-GB/global.properties         |   32 +-
 chrome/locale/en-US/composer.dtd              |    6 +-
 chrome/locale/en-US/global.properties         |    2 -
 chrome/locale/es-AR/composer.dtd              |   18 +-
 chrome/locale/es-AR/global.properties         |   32 +-
 chrome/locale/es-ES/composer.dtd              |   18 +-
 chrome/locale/es-ES/global.properties         |   34 +-
 chrome/locale/es-MX/composer.dtd              |   18 +-
 chrome/locale/es-MX/global.properties         |   32 +-
 chrome/locale/et/composer.dtd                 |   24 +-
 chrome/locale/et/global.properties            |   32 +-
 chrome/locale/eu/composer.dtd                 |   25 +-
 chrome/locale/eu/global.properties            |   36 +-
 chrome/locale/eu/overlay.dtd                  |    2 +-
 chrome/locale/fa/composer.dtd                 |   22 +-
 chrome/locale/fa/global.properties            |   32 +-
 chrome/locale/fi/composer.dtd                 |   26 +-
 chrome/locale/fi/global.properties            |   34 +-
 chrome/locale/fr/composer.dtd                 |   22 +-
 chrome/locale/fr/global.properties            |   32 +-
 chrome/locale/gl/composer.dtd                 |   21 -
 chrome/locale/gl/global.properties            |   32 -
 chrome/locale/gl/overlay.dtd                  |    1 -
 chrome/locale/he/composer.dtd                 |   20 +-
 chrome/locale/he/global.properties            |   32 +-
 chrome/locale/hr/composer.dtd                 |   26 +-
 chrome/locale/hr/global.properties            |   34 +-
 chrome/locale/hr/overlay.dtd                  |    2 +-
 chrome/locale/hsb/composer.dtd                |   17 +
 chrome/locale/hsb/global.properties           |   30 +
 chrome/locale/hsb/overlay.dtd                 |    1 +
 chrome/locale/hu/composer.dtd                 |   18 +-
 chrome/locale/hu/global.properties            |   46 +-
 chrome/locale/{hy => hy-AM}/composer.dtd      |   22 +-
 chrome/locale/{hy => hy-AM}/global.properties |   44 +-
 chrome/locale/{hy => hy-AM}/overlay.dtd       |    0
 chrome/locale/id/composer.dtd                 |   17 +
 chrome/locale/id/global.properties            |   30 +
 chrome/locale/id/overlay.dtd                  |    1 +
 chrome/locale/it/composer.dtd                 |   26 +-
 chrome/locale/it/global.properties            |   32 +-
 chrome/locale/ja/composer.dtd                 |   30 +-
 chrome/locale/ja/global.properties            |   36 +-
 chrome/locale/ja/overlay.dtd                  |    2 +-
 chrome/locale/kk/composer.dtd                 |   18 +-
 chrome/locale/kk/global.properties            |   32 +-
 chrome/locale/ko/composer.dtd                 |   18 +-
 chrome/locale/ko/global.properties            |   46 +-
 chrome/locale/lt/composer.dtd                 |   22 +-
 chrome/locale/lt/global.properties            |   32 +-
 chrome/locale/nb-NO/composer.dtd              |   21 -
 chrome/locale/nb-NO/global.properties         |   32 -
 chrome/locale/nb-NO/overlay.dtd               |    1 -
 chrome/locale/nl/composer.dtd                 |   20 +-
 chrome/locale/nl/global.properties            |   32 +-
 chrome/locale/pl/composer.dtd                 |   18 +-
 chrome/locale/pl/global.properties            |   32 +-
 chrome/locale/pt-BR/composer.dtd              |   21 +-
 chrome/locale/pt-BR/global.properties         |   32 +-
 chrome/locale/pt-BR/overlay.dtd               |    2 +-
 chrome/locale/pt-PT/composer.dtd              |   20 +-
 chrome/locale/pt-PT/global.properties         |   34 +-
 chrome/locale/pt-PT/overlay.dtd               |    2 +-
 chrome/locale/ro/composer.dtd                 |   26 +-
 chrome/locale/ro/global.properties            |   36 +-
 chrome/locale/ru/composer.dtd                 |   38 +-
 chrome/locale/ru/global.properties            |   48 +-
 chrome/locale/ru/overlay.dtd                  |    2 +-
 chrome/locale/sk/composer.dtd                 |   18 +-
 chrome/locale/sk/global.properties            |   48 +-
 chrome/locale/sl/composer.dtd                 |   18 +-
 chrome/locale/sl/global.properties            |   32 +-
 chrome/locale/sq/composer.dtd                 |   30 +-
 chrome/locale/sq/global.properties            |   32 +-
 chrome/locale/sr/composer.dtd                 |   29 +-
 chrome/locale/sr/global.properties            |   46 +-
 chrome/locale/sr/overlay.dtd                  |    2 +-
 chrome/locale/sv-SE/composer.dtd              |   24 +-
 chrome/locale/sv-SE/global.properties         |   34 +-
 chrome/locale/th/composer.dtd                 |   18 +-
 chrome/locale/th/global.properties            |   30 +-
 chrome/locale/tr/composer.dtd                 |   18 +-
 chrome/locale/tr/global.properties            |   32 +-
 chrome/locale/uk/composer.dtd                 |   20 +-
 chrome/locale/uk/global.properties            |   32 +-
 chrome/locale/vi/composer.dtd                 |   24 +-
 chrome/locale/vi/global.properties            |   32 +-
 chrome/locale/vi/overlay.dtd                  |    2 +-
 chrome/locale/zh-CN/composer.dtd              |   20 +-
 chrome/locale/zh-CN/global.properties         |   32 +-
 chrome/locale/zh-TW/composer.dtd              |   26 +-
 chrome/locale/zh-TW/global.properties         |   34 +-
 chrome/locale/zh-TW/overlay.dtd               |    2 +-
 chrome/skin/composer.css                      |   18 +-
 chrome/skin/devToolsOverlay.css               |   18 +
 chrome/skin/overlay.css                       |   74 +-
 install.rdf                                   |  390 ++++---
 lib/aardvark.js                               | 1418 ++++++++++++-------------
 lib/inspectorObserver.js                      |  114 +-
 lib/inspectorObserver.js.rej                  |   36 +
 lib/keySelector.js                            |  351 +++---
 lib/main.js                                   |   94 +-
 lib/prefs.js                                  |  280 ++---
 lib/windowObserver.js                         |  134 ++-
 lib/windowWrapper.js                          |  244 ++---
 135 files changed, 4363 insertions(+), 4253 deletions(-)

diff --git a/META-INF/manifest.mf b/META-INF/manifest.mf
index 2d60cca..c4b6f3b 100644
--- a/META-INF/manifest.mf
+++ b/META-INF/manifest.mf
@@ -2,48 +2,48 @@ Manifest-Version: 1.0
 
 Name: bootstrap.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: gL6LPRv4kJrH/1lviypiNw==
-SHA1-Digest: zUR82jvzdnT+4KRLd7D9wK1Ar3E=
+MD5-Digest: 9vntrhGxfQ/9kIugQ/mVIw==
+SHA1-Digest: 9PRtRs9tQfal8VA9lzmnd0gXKP4=
 
 Name: chrome.manifest
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: RjwoJ3gs4x6bUd32TjB4KQ==
-SHA1-Digest: iuQ529KGaL4hPzWixL53EIwqxpE=
+MD5-Digest: aNzZbXFo8kSToczY+/d9Ng==
+SHA1-Digest: 710J3E4THlC6JMbA3pjzUzHPLcg=
 
 Name: chrome/content/common.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: wMXszzWM+1pJyYRIGcAuNw==
-SHA1-Digest: XT3RnyoNXLnTDSsslGpYgBJz03g=
+MD5-Digest: DpHtZjUKzJijozFf439kpQ==
+SHA1-Digest: iN94irsmUv0FtJ4wis2R3UdVYgU=
 
 Name: chrome/content/composer.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: APHgzYjgUr7568tDZGcnFg==
-SHA1-Digest: eXRbjWrf5oF5Ss3tTb6xULFsTnk=
+MD5-Digest: A8O0Vps6/v0yayxLKl/IZQ==
+SHA1-Digest: PTsDDyF5/g2bX52hWg356+FySnc=
 
 Name: chrome/content/composer.xul
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 1EH4OIWjaE/xSTswxyBcXA==
-SHA1-Digest: rCDY1m5XjgZTkqhZJhdI+uVOO8c=
+MD5-Digest: mCkAtoyCZvsVGgffFNlQpA==
+SHA1-Digest: ocTjrDvq7MJ5KuVUO974pRdh2Qg=
 
 Name: chrome/content/elementmarker.css
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 6VRZz5GW8OWBZYEPtmXI8Q==
-SHA1-Digest: KrhWeYGteospgutILRMekpelTDs=
+MD5-Digest: s6zUwn7yn4JyhVc0cIoq3A==
+SHA1-Digest: YToMcLSmzPiXrcbm1SKXg5KcZqE=
 
 Name: chrome/content/overlay.xul
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Zr1sETtnzxT+Yt//gk/1Pw==
-SHA1-Digest: W9oJJGRNP+7njMF8fDE7mPwNBm8=
+MD5-Digest: tNkpy08RMSVjzHv9QxJUFw==
+SHA1-Digest: mfCjCR5kw3t1fwApomEoDRWQbAs=
 
 Name: chrome/locale/ar/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 0tPY0Vb/MuioT5O1ZNsHCw==
-SHA1-Digest: 0zFdpMzPjx44FakxpMjKdxsN4zE=
+MD5-Digest: h3atzZHmRAeHay6zZ5l8UQ==
+SHA1-Digest: KBWS7rWBVvrj4P0dNkrzpa/tXxA=
 
 Name: chrome/locale/ar/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: CfTkOagj9umkFFbgOI+WzQ==
-SHA1-Digest: XgyZuPW1EKD68HpgrqdUpW5lDd4=
+MD5-Digest: J8ICUHHBn9/odEyl/z0UOg==
+SHA1-Digest: l1U8U2Uk+yH5+d/ZAh9fu4dLNjc=
 
 Name: chrome/locale/ar/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -52,13 +52,13 @@ SHA1-Digest: 9N9Ld7ua5U6uRfyyMfavawwiErI=
 
 Name: chrome/locale/bg/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: K5RxquLqCnMMbkFpN7E54w==
-SHA1-Digest: qgAnG1Qe9wm28NJvkeqlWhnKSuY=
+MD5-Digest: g9joQe4lYVjztEaEELa4UA==
+SHA1-Digest: 6QSGUsUK0ZmcGpGJCBGVfyM0GPw=
 
 Name: chrome/locale/bg/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: gtHtq1fZmgYLEy/54WsZHw==
-SHA1-Digest: lpvggNDCIBG2b2J/R+AdH4TfFB4=
+MD5-Digest: ffrzbbiShRroL9rw4u8P3A==
+SHA1-Digest: 8cl9lYK7aBLd7iiTJnzTK94M1PE=
 
 Name: chrome/locale/bg/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -67,13 +67,13 @@ SHA1-Digest: g241DCzes6zEjMeYScjvbmA4fng=
 
 Name: chrome/locale/ca/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: /nsE0tab0DK3uqaSHVdt0w==
-SHA1-Digest: ikPyNnlzmAgHOjwang3eYK+TmFY=
+MD5-Digest: GUMWAQS6V/Hf6BrYfpba8Q==
+SHA1-Digest: 691dTWjQ978mnJhu0gs0VZBRla4=
 
 Name: chrome/locale/ca/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: gkIz7PLjnBtMlKpMevNvcA==
-SHA1-Digest: PHx6ueRPp9eT/HimB7Yly6XmbxQ=
+MD5-Digest: pcL62WkM7wZlt2gd04fTxw==
+SHA1-Digest: N6bU+F8qMCfKBSekuZSC/QO1V8s=
 
 Name: chrome/locale/ca/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -82,58 +82,58 @@ SHA1-Digest: CmKrgeR79QDtmGMZOrUDN45em98=
 
 Name: chrome/locale/cs/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 1IPLCPS6Xs3pP9rR/eRrzg==
-SHA1-Digest: rT+6y9ijqkOAllPEDIO3BgQph20=
+MD5-Digest: nL8P8I3XCCuFxxcHK4Tg2A==
+SHA1-Digest: oYuLKH9aDdzvc3IzoivFny6poHA=
 
 Name: chrome/locale/cs/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: VlcsQJ8dzES733p6qYtLiw==
-SHA1-Digest: Kpu4NcvyDcqUPzC+GXInmyxtudg=
+MD5-Digest: JD2OKvc3IB/C5pzbs3iC9Q==
+SHA1-Digest: amXJk0DKOhqNKE1j3pdUfeb5lgo=
 
 Name: chrome/locale/cs/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: tJAuABaYDVUaEJlpC4GB1Q==
 SHA1-Digest: hcLA8j1ixIitEjXkXKL5L2RzBjM=
 
-Name: chrome/locale/da/composer.dtd
+Name: chrome/locale/de/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 21t41h7BoyBK18jvxuU5yw==
-SHA1-Digest: S1NnhKOfZNZEOJeqFpM//5jbChs=
+MD5-Digest: YUkOKUNoxRaK15MkwIKVAg==
+SHA1-Digest: +UHVS4tx9WPpJoTyQWIyuzQb9qQ=
 
-Name: chrome/locale/da/global.properties
+Name: chrome/locale/de/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: HS7G99U6MhoaJFY1X5utyw==
-SHA1-Digest: HAiRzSoGN1VIRHvT2mUnkLPIGV4=
+MD5-Digest: noypR+HzmHO7xUtxcFkpXw==
+SHA1-Digest: WN9ZSA9FSk/EDFQXIYp45DNfSdQ=
 
-Name: chrome/locale/da/overlay.dtd
+Name: chrome/locale/de/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: qBLaHbuHfRxnEtbvxCDdbQ==
-SHA1-Digest: fmu1TFpqn2oY2DaXvSxWQqsqrs8=
+MD5-Digest: 9ZwsbboPqz405oOsxZxxSA==
+SHA1-Digest: LHZrqH+lYbQfPwKK5jdSyxIl7PM=
 
-Name: chrome/locale/de/composer.dtd
+Name: chrome/locale/dsb/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: uastIxR/OVXw2AIGVRLGyA==
-SHA1-Digest: 7TCODyx+CGwbQ5VDSn/DhUJZSlg=
+MD5-Digest: OIYlUhQ2XeZBR2QHnHGXQA==
+SHA1-Digest: KC1wnaO9uGaD4gNQTRltFlA9MBk=
 
-Name: chrome/locale/de/global.properties
+Name: chrome/locale/dsb/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Tx4zNvokEnHRtXeiLfM9IQ==
-SHA1-Digest: KnPWO59PMpSQf//M1gnem+TifUY=
+MD5-Digest: DCxTwft/2chRykBHFxcwSw==
+SHA1-Digest: wLwvZKDroVhyxp3CRO3B18oHemI=
 
-Name: chrome/locale/de/overlay.dtd
+Name: chrome/locale/dsb/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 37GZaigXA0kF9Hk3W5LBtA==
-SHA1-Digest: yYbH5Zggn1gMQNK4OtURZ3Eb+AY=
+MD5-Digest: BHpKogsznqyYLgDUbjWcOg==
+SHA1-Digest: /A9rNtyofZ+jSCe8dk1lT38Gg8Y=
 
 Name: chrome/locale/el/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 3xJE1P/uWb4x/uJ4RZdwWg==
-SHA1-Digest: zboXtWvEfDCh9b/8iWKqHDzpe9s=
+MD5-Digest: jp3HpK1kc9ClPYydiJ+uLQ==
+SHA1-Digest: uyB+sTGlUln05SKjvH7LRMHHYWg=
 
 Name: chrome/locale/el/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: uL7fHeH2aPgEuFM12ooMBA==
-SHA1-Digest: nW4+P2xVh41ekRfqvcMB3qYpTKI=
+MD5-Digest: DGFGkZa3XKY6PzlrTAhP6Q==
+SHA1-Digest: 6M7J9w3BFmaDWyyJuvsNJXFVYVg=
 
 Name: chrome/locale/el/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -142,13 +142,13 @@ SHA1-Digest: vlPTGRWZ1aBSfG8vzK16fjWPYyU=
 
 Name: chrome/locale/en-GB/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: d4h9F5Gnt+43sZr66U0dng==
-SHA1-Digest: TxsiAzb2QW4My5RgkYNfWlJTlDc=
+MD5-Digest: gbGNJZxJABMQlMJ8ka0LfQ==
+SHA1-Digest: HlDaJzawDXr0FEadVlF+D7S8Mwc=
 
 Name: chrome/locale/en-GB/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: s/YtodQzPjV1P27T7o4kxg==
-SHA1-Digest: DSFS6F6yE8er8gKfAo3+7RuAmxU=
+MD5-Digest: EKuoSE2T999A8NgZSDGJ8A==
+SHA1-Digest: 5ZSTtsU7L4HQ2iCSJy75gP51gHo=
 
 Name: chrome/locale/en-GB/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -157,13 +157,13 @@ SHA1-Digest: 27JvQ0igJbIzb+Leq9Wlca2FMnI=
 
 Name: chrome/locale/en-US/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: O6JXdazbN/dN3MEyyf7nsg==
-SHA1-Digest: Mn4qZMkqAjrH0jkN6X22Vxmkg6M=
+MD5-Digest: 3K5bYixHxj0n0zpBgM7v8w==
+SHA1-Digest: 7secxgcPQyhScoG9ijAkIzinrTY=
 
 Name: chrome/locale/en-US/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: kZVq8vUotMSBU0OTEhzoPw==
-SHA1-Digest: B2Ny644wAV8DA+6GsSCphgZFkNs=
+MD5-Digest: ftLlMz8/Gt16XpoD7Tnn2g==
+SHA1-Digest: lZgXHNIybFeh8iTRJCu12zc2Bfo=
 
 Name: chrome/locale/en-US/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -172,13 +172,13 @@ SHA1-Digest: 1W6UVWZJmUtfWrSgNDoK6rNU7+4=
 
 Name: chrome/locale/es-AR/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: HmgF0xLsBVinX4CMPS2Vqw==
-SHA1-Digest: pOUcnShJA5LOFM8lLv3gQdVpT1A=
+MD5-Digest: NWl2f8R9+25e3jEqMXWkWQ==
+SHA1-Digest: Y7Fx6nW3HUfdiL8nw3KoqH94I0A=
 
 Name: chrome/locale/es-AR/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: EaWCGYsYuUHx4zeJm46Ydw==
-SHA1-Digest: wThjP2SHqNS8jlaiU0wcmRyNquA=
+MD5-Digest: ulvt67e3masy+Ml82oScVw==
+SHA1-Digest: aiKMRJEktQCwx1NUhB+FpolAxGY=
 
 Name: chrome/locale/es-AR/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -187,13 +187,13 @@ SHA1-Digest: NphaHQEBu2GVTchgqBwnVv6ye9Y=
 
 Name: chrome/locale/es-ES/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: sVS3Mvcvcv2/nCt6oXKbsQ==
-SHA1-Digest: /0pqZsskOR4pXKoBnTBqi/Qvq6A=
+MD5-Digest: J/uzEG2zVDKSRj7hLxgHMQ==
+SHA1-Digest: ndktNiemtVgvV2mhe/few545MNc=
 
 Name: chrome/locale/es-ES/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: md+2au4XiPBawkH6wZL9Fg==
-SHA1-Digest: uWBQOkJKDjAF1mB//jcn4xO5lfU=
+MD5-Digest: 3xoZz+IcYiPU+vEe/rtR/g==
+SHA1-Digest: ip65OuyArJhZ85LQnAa291XhfZM=
 
 Name: chrome/locale/es-ES/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -202,13 +202,13 @@ SHA1-Digest: StIAf2wFCKHFsAAwJWwD2o+bZlY=
 
 Name: chrome/locale/es-MX/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: qFZOF6Bu1V5+i1Pw7NIkiA==
-SHA1-Digest: lYOp4DybwNPgcsiS2AhDL0oajjY=
+MD5-Digest: 7j2iCRHO5ZaEAvnpDQjp6Q==
+SHA1-Digest: wFuxpAMx3EndNJpg8Aeu6Cs9jcg=
 
 Name: chrome/locale/es-MX/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 4QrR5WSZ2HV/Z3VNuG7pRw==
-SHA1-Digest: w7OG+FobCLq2JhnpnLfG81WT+Cw=
+MD5-Digest: kJ+rSLJfN7RQwJEQf/Q7cg==
+SHA1-Digest: LeAgh62MEGtGxqAMyq9RT0UqQUg=
 
 Name: chrome/locale/es-MX/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -217,13 +217,13 @@ SHA1-Digest: ZtoAAFOTgHV6nDbVrqioLY7qS2Q=
 
 Name: chrome/locale/et/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: O3CaExzJXVpQ8k4aIRmP8g==
-SHA1-Digest: ccRjXhA7npitmjABlylUKeDqKJ8=
+MD5-Digest: uchO8OtAqsjouzpQVw2NuQ==
+SHA1-Digest: gNVSa8YQEpOXXUla9/YyKtU2j80=
 
 Name: chrome/locale/et/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: n1bcItn6TCflJNnFMYmiqg==
-SHA1-Digest: UTPyLaZj7QDzUqIbkT+5eWSwTTs=
+MD5-Digest: J+X017nBV7e24SWgwKzSlA==
+SHA1-Digest: qKxQZdIWereihVQL+hn6cunij6c=
 
 Name: chrome/locale/et/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -232,28 +232,28 @@ SHA1-Digest: g/zHGFOBAIHu3x+9pNjB0IWHlSg=
 
 Name: chrome/locale/eu/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: aueCdC5u4sx3URjopXOfFQ==
-SHA1-Digest: fCzurXdR7b5utEOVl1hlYZCsoGI=
+MD5-Digest: fPhYkV11YcLFcQ4zh3sqvg==
+SHA1-Digest: zlTasxgUZdGDrcIJuavwCLPGKls=
 
 Name: chrome/locale/eu/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: JqrRCjEhaNWWhzsgG8m0Sg==
-SHA1-Digest: 59YF/CrI7s/qpM7c/huQuNiAu94=
+MD5-Digest: bMzL7A7NjMGNIcM8Xp3Q3g==
+SHA1-Digest: 5r3wNoHVUUxHns7FJ9EIjQVjvDs=
 
 Name: chrome/locale/eu/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 2WxPgYMe3E5ZckVsRuWM7w==
-SHA1-Digest: rr1g6g4h8+12u9y6yPt2sUNbXus=
+MD5-Digest: 3kpY7HZ499jjMdP4GEpqQQ==
+SHA1-Digest: K2JJiFkSCilyP2ArajrQey+kbo4=
 
 Name: chrome/locale/fa/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: rmfnlEFGCx13v3L0gR1QUQ==
-SHA1-Digest: uddFK0s2F2LdEl8gICnZ/cDTg8Q=
+MD5-Digest: IdKQquqiDOw5xFqqZL21AA==
+SHA1-Digest: 1p63xTGc7DhFYgby8PyEvVlfweA=
 
 Name: chrome/locale/fa/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 6QqdGXrDZdFpwiwWbj/I2Q==
-SHA1-Digest: TCHmS9QSAfRFBsX6hiiMYJ9xGlE=
+MD5-Digest: Xve+P3bGQ5TSpk0F2CN/Cg==
+SHA1-Digest: /oautSIP0gCohoJOEzNTgD43fNY=
 
 Name: chrome/locale/fa/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -262,13 +262,13 @@ SHA1-Digest: +4pKeMeKC57cY+elC53ELAlPLYc=
 
 Name: chrome/locale/fi/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: aNH0T5zsVpKdbxZ2sruHkg==
-SHA1-Digest: hQV3HFd9W5+tADjSojSVyXiV23U=
+MD5-Digest: 2JXrFISeVaf0jfKLbjH//w==
+SHA1-Digest: CWoXQ7mtVcy8GV1zXEeaPtmSgb0=
 
 Name: chrome/locale/fi/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Wgl3rcNiaAt+SjyWYzsA+g==
-SHA1-Digest: PAk0K9TWXq3fUPZejPEKcj7TYRQ=
+MD5-Digest: hRBvQP+/62QTIs8CwrWesQ==
+SHA1-Digest: I5HKEAurDeNvyYyUBhl3FVzZjss=
 
 Name: chrome/locale/fi/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -277,43 +277,28 @@ SHA1-Digest: YSPW9ojrStnbZIrec29eYuAst8c=
 
 Name: chrome/locale/fr/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: V7sCzo6V6hFeH+EsGv67qg==
-SHA1-Digest: jl4axI481UR/Y6DUhscY4uIOSNE=
+MD5-Digest: uDT5SDedGz2B8pR81305Pw==
+SHA1-Digest: SV+Ir+qWICvOYB3+UegZotSAQHQ=
 
 Name: chrome/locale/fr/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: C9bgLlGlV0DKLuk7urVeuw==
-SHA1-Digest: tlX1kt/4etL7481+3aIBOUSVLF8=
+MD5-Digest: x+IaxP4Tx7Gjtw38mOlDUA==
+SHA1-Digest: hSIJh/FnFadHFiPCS+ZKKlOUohk=
 
 Name: chrome/locale/fr/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: woZIZdBTqkiNwFH7ORM61w==
 SHA1-Digest: nLC8zSw4WrlmTAvzHkm7SoQXmVg=
 
-Name: chrome/locale/gl/composer.dtd
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: 73nPqaD9G/L97ZBFKF2+Cg==
-SHA1-Digest: lXHW7pcjsxhpy+pY7UijnDIQI4s=
-
-Name: chrome/locale/gl/global.properties
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: rOhv5QTgxUERfGFDCd8gKQ==
-SHA1-Digest: nx6RnpzMzziCs9tcwTyFakvST7o=
-
-Name: chrome/locale/gl/overlay.dtd
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: GHnkUDPJvlwZUIk3DSNP0Q==
-SHA1-Digest: ey8+rv3bOKqhZsoQGtcSlKdbpdg=
-
 Name: chrome/locale/he/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: bpWN0KrxIy5cgo+G5Th2ag==
-SHA1-Digest: 6Gy9kor9IGi8IjGM8ixq17bBXvY=
+MD5-Digest: aOoe365477yG1XYtnz6lCA==
+SHA1-Digest: 5DUidtkxUT3DK9V93fG/F6YKU60=
 
 Name: chrome/locale/he/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: d/Zd0+cPL7uXJKn069WZkA==
-SHA1-Digest: R9U70dETjW4YB/4kh4R3yngl18M=
+MD5-Digest: sJaeovx9v57k5hpKAiGrmw==
+SHA1-Digest: zoplCU+3bw73+W6uIKQDAUmV0gc=
 
 Name: chrome/locale/he/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -322,58 +307,88 @@ SHA1-Digest: kcxklqAJpgoqd4q617N1BjT0SFg=
 
 Name: chrome/locale/hr/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: HOqaVtQCfKFIQn8FgDwD2w==
-SHA1-Digest: yD26vdX6Ha65wFr9AZA9puBcXXY=
+MD5-Digest: jPucgKFmCligiNpIDuwO4g==
+SHA1-Digest: ZGHg1NFD39A5Yr6OXH70cHIz2g8=
 
 Name: chrome/locale/hr/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: IeqLXxuiHYb1V08nCnrIlQ==
-SHA1-Digest: O538uP8YXouRnV4UTKO6eJt5smo=
+MD5-Digest: ou6qcwJfitpfrF6pjwBdcw==
+SHA1-Digest: 9uMw0bK2gBd4QMfaZ+yZVwpjx6I=
 
 Name: chrome/locale/hr/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: PTZ0Okm/EIUTf/rEfUJgCQ==
-SHA1-Digest: AI25kJFeq1R8JyBdIRBEkPSQxYk=
+MD5-Digest: R2N9t44S+lzfkUYC/vOUFw==
+SHA1-Digest: XHE37n+3Yh5nEecnkovQDiprkGQ=
+
+Name: chrome/locale/hsb/composer.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: qz3M3VHrYxaaRIgsvr/AoA==
+SHA1-Digest: /Wce3ahB/BoUJ8i6Zk05QqaLSBg=
+
+Name: chrome/locale/hsb/global.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: q//8R7vnkRUqT+3+6l1fcA==
+SHA1-Digest: 0jj7q7m8rU6/spvTl9C0LnVBVp4=
+
+Name: chrome/locale/hsb/overlay.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 1x4sXnqdtWTw2o3x3z3n5A==
+SHA1-Digest: bWHHbvO4lJotEuzT8L2jj5jVavQ=
 
 Name: chrome/locale/hu/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 6wVNXN7ZwGgtJkiw2p/wWw==
-SHA1-Digest: cYlE6Owh1W7RZFL5N8gRh1+ZcCc=
+MD5-Digest: b04ubcg2xlbRGONJc9YN3A==
+SHA1-Digest: 0UKfGdJAAGxvjchGKEFvOBrPtWk=
 
 Name: chrome/locale/hu/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 2RqsIKboDJrNyOGbppbh3Q==
-SHA1-Digest: XujvSz01u75VTWnuurjn8RdxCj0=
+MD5-Digest: 90sdadtnGUcvrG9U1hg5WQ==
+SHA1-Digest: OvO+Jzu7CmFD/oeCcvzIzvCYWfU=
 
 Name: chrome/locale/hu/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: nSyznhq/Nsg8fkiYF/pPMw==
 SHA1-Digest: A5XQ8Mnjly8WrY/5gM0FJEGod0E=
 
-Name: chrome/locale/hy/composer.dtd
+Name: chrome/locale/hy-AM/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: CseIPp53uIIKe5/g1ipwFw==
-SHA1-Digest: E4oSHnnAE0vhhT0YMTpQu3RdLq0=
+MD5-Digest: k1tTb9UdEd0VKUhErRSJvQ==
+SHA1-Digest: choIg8LMVlZY6IGL5Ef1WcinLqM=
 
-Name: chrome/locale/hy/global.properties
+Name: chrome/locale/hy-AM/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: rTN/+8q5W7w8GBshlIBbwA==
-SHA1-Digest: 894+fABUzsSwh3TikWjX7VfJ9lQ=
+MD5-Digest: oGgeYLKwg8npghM6MvntuA==
+SHA1-Digest: n76bc3BZr0Z1TRJs1fu7gNXQS4c=
 
-Name: chrome/locale/hy/overlay.dtd
+Name: chrome/locale/hy-AM/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: Ontn/Gxr6Jj6AUy6FSbqvA==
 SHA1-Digest: vwh59Usfz5ZJhig9O6vvdMHFGck=
 
+Name: chrome/locale/id/composer.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: rIOi5RDox0lcslumjGFaJg==
+SHA1-Digest: Jf3+zM/6fbQfmkNYqxIAxQdmB7E=
+
+Name: chrome/locale/id/global.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: oV3kKYd3wn35Mj0kcXeilQ==
+SHA1-Digest: VyoBc9/8IauKDVHnd9xbHWXOgik=
+
+Name: chrome/locale/id/overlay.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: uAwfm/ZZ60a0U3WD5VSt/w==
+SHA1-Digest: MJaqgGlEjAh8gccJmulv42u7P4I=
+
 Name: chrome/locale/it/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: PPHKtmjl4QmVhUFL6q39QQ==
-SHA1-Digest: iHqB/lhLW4OTSXUXVa5IkPs7HZc=
+MD5-Digest: LMkRHVUyXOzMLTzFrBmbwA==
+SHA1-Digest: sTxOBauEBHqsSyhC+MowT17Zn2s=
 
 Name: chrome/locale/it/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 09VBMm7E3HDZ1G+3wrKGJg==
-SHA1-Digest: LZRqrANsobKYAXI0ToWUBPMxIAY=
+MD5-Digest: jOHb+T/YXSx6Q3iv5j8eTw==
+SHA1-Digest: oKK1w7PJS6CHQtYi56l37oj4gDI=
 
 Name: chrome/locale/it/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -382,28 +397,28 @@ SHA1-Digest: EtfZteXBdSIw1Ne6sNfMiUTzLgQ=
 
 Name: chrome/locale/ja/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: rv6tiK28WLflqENuMDz20A==
-SHA1-Digest: NGbSrGg+Eqlf/Im1xsVOZt0PDnY=
+MD5-Digest: qYlJltt54vrvXva34u7K+g==
+SHA1-Digest: DJtmtIfD5zUeVfeBLsGLSaReKRI=
 
 Name: chrome/locale/ja/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: RRYpeQ3rOn9W34O5EU9uxA==
-SHA1-Digest: 0rIWGBhOTuHgKYtvmMuCK30bvo0=
+MD5-Digest: p8uR1pfGaevi9hsy+cK79w==
+SHA1-Digest: XkfZTtTono3vGncuihpsBU68DZ4=
 
 Name: chrome/locale/ja/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: vtYnt1MoQkmrY9Yy2WNB9w==
-SHA1-Digest: JMdr8aM+0BgVk5ALffDFGZr/wRU=
+MD5-Digest: u7wI7OPG8BMwoICFuv34DQ==
+SHA1-Digest: UZw+4GmJ9PaKFZdETz3H/8PT/MM=
 
 Name: chrome/locale/kk/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 3h2UZe6zHVWJ/VcUrR1RFw==
-SHA1-Digest: ngvIqKrDyQTNR0P+XxjmY72nI1I=
+MD5-Digest: jPhJwB5z17PI/lNXxHGO9w==
+SHA1-Digest: YftU+OHjJ1M+roKlJEqF0FEg9yg=
 
 Name: chrome/locale/kk/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 1ciquSq/6EzBOmuGcRC4Ag==
-SHA1-Digest: mg9bWoZPYb1RsYNW5xuvnroAZsw=
+MD5-Digest: vySdn3BqGhbhMXWbzW5Hkw==
+SHA1-Digest: nTyGEjo4meT4Xhq/zyh/spd4mKs=
 
 Name: chrome/locale/kk/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -412,13 +427,13 @@ SHA1-Digest: 7liyLG/bwRE46l8ybLuK4DugkLE=
 
 Name: chrome/locale/ko/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: BbpCLlcMB95rDnwQ42gNTw==
-SHA1-Digest: vAijBcnzK9oKitjgfWpmT1Fiji8=
+MD5-Digest: Qso0JbpH+Xn0Hd5xpdJAlA==
+SHA1-Digest: tdXHQ2tZjgfbey8Lh/TsRbNcE2k=
 
 Name: chrome/locale/ko/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: ipylQvYiVEFH6/N7ptAVVA==
-SHA1-Digest: SZSjT0oZA4gztJFz+/tCAKPbSuY=
+MD5-Digest: Xa07iLG9s2YkCtbCA4oIMQ==
+SHA1-Digest: lEN3y0P7vL2EyD1aCLmm7ChDM9g=
 
 Name: chrome/locale/ko/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -427,43 +442,28 @@ SHA1-Digest: YnEJaubFsYZIAwqICoW9nG+pFec=
 
 Name: chrome/locale/lt/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: yCgx4E2MqsMxpdbzjysbAw==
-SHA1-Digest: C5NWKbiEVUXLUa2azwteooCOI3M=
+MD5-Digest: G3p5uR9mXSTqBxSdyc6BYg==
+SHA1-Digest: NKT9BDRA8yvvmSU8NtHJCvcuw5c=
 
 Name: chrome/locale/lt/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: dRChPbeQEqc35ZJcdUjeuw==
-SHA1-Digest: 2OtsiNMV2e5MSK0xuj0cVC97ucU=
+MD5-Digest: niyz66f0/LFPG4k8ZkvK1g==
+SHA1-Digest: dwVgJg4Jja5p7qz9tUbi8Xl3lj8=
 
 Name: chrome/locale/lt/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: t5T3VEPQsLvrkIFnzfD1TA==
 SHA1-Digest: cVS1Hnn/hHnhlEtY/6VcOC9JY/Y=
 
-Name: chrome/locale/nb-NO/composer.dtd
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: aYBKJzwHOwYA/PUgD7YiHw==
-SHA1-Digest: 7eqo0tGwVuytaOsf9WN+n4TbzP0=
-
-Name: chrome/locale/nb-NO/global.properties
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: n2wXpGTFP4fiPJpWcw/SCA==
-SHA1-Digest: yT1tvGthOoB7CdSqaaYgfDA6yG4=
-
-Name: chrome/locale/nb-NO/overlay.dtd
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: 0qu341eH/kd+FjID17Sycg==
-SHA1-Digest: +LmEPm1mkoQ3PLc0IHV+KOzRuLw=
-
 Name: chrome/locale/nl/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: wRwLCRE/eshrcg8WLCETrQ==
-SHA1-Digest: gk/AIWMmYmasXgfBNWvocGEkXXg=
+MD5-Digest: qb5K96izVb+t2bVTflWxFg==
+SHA1-Digest: TNO6tbNDgei61iTSLC1ofwpwkDs=
 
 Name: chrome/locale/nl/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: WJ/vD2nUFO7QgG2pzDMyyQ==
-SHA1-Digest: fDab2NKX2x94TgyjRNkDLbd0PsM=
+MD5-Digest: let5cfMgZ+KB8ZOnJLLVLg==
+SHA1-Digest: eaJXffrY2+e8O+TSDba/EfpUITs=
 
 Name: chrome/locale/nl/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -472,13 +472,13 @@ SHA1-Digest: vIsrUK1GAjTh+GGwsx4oP8lFesw=
 
 Name: chrome/locale/pl/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: wjPV9qomXdTJRlN59vb9gA==
-SHA1-Digest: ewRJp6GxLE0wJzvTh1v73wg3n7A=
+MD5-Digest: MD5iWkInRBNMqwLoTxMjvA==
+SHA1-Digest: UoYwbn94pNzarjHbXE/uTLLBsSo=
 
 Name: chrome/locale/pl/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: HBSh0mLARXFQzMSplavN8A==
-SHA1-Digest: MJL1JG0aLWQ3axdg3idUiu8zTzw=
+MD5-Digest: isDFr7YKvigRDim5Lk4QVw==
+SHA1-Digest: NTenno8xKsp5LQTUT0qph9W1pqU=
 
 Name: chrome/locale/pl/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -487,43 +487,43 @@ SHA1-Digest: 9lJXg8mfcoEQijH80ziWuW+Tj14=
 
 Name: chrome/locale/pt-BR/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: tUxfMhp2ii1OpKHRIgHoAQ==
-SHA1-Digest: qbBp0e9UGo0f+QtMIgv3qL9SHvU=
+MD5-Digest: 9mjf56Ynw8sd1kGKt5Yglg==
+SHA1-Digest: AxQYMI3XbOZn7UD22Y4yJv7giSY=
 
 Name: chrome/locale/pt-BR/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: bD2mYzy8JJmLwVErWjODOQ==
-SHA1-Digest: wpbbCwpQLGqV3EQXFbvTaxXps3s=
+MD5-Digest: 2Py68kUYAjGvbXfxWUqwng==
+SHA1-Digest: 8a835BJ/DAH56IQ6hHVMxkMGJ4s=
 
 Name: chrome/locale/pt-BR/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: UN9MbTJAOMop9DnPfJegYg==
-SHA1-Digest: +Poq3yyoRXp7eVOOSghDSgucsmk=
+MD5-Digest: GZKOyLERU5EyTzclxWiesQ==
+SHA1-Digest: 7neSwhbpNzTiriGfpU1AdwE4oug=
 
 Name: chrome/locale/pt-PT/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: uRRFSts8h5vO8c9TtoxbdA==
-SHA1-Digest: qo0QXQ5FF2Y3BgiL1JCPdf7fiao=
+MD5-Digest: l2gVf7nTlLQu4tA3xJhbLQ==
+SHA1-Digest: LwK7uYng/bO+tB9aSW1au6L6Y8c=
 
 Name: chrome/locale/pt-PT/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: IdoFIzXXY4IEKDPcVhx3MQ==
-SHA1-Digest: 0h3q9GVuf9CILrpFJUP1CCqpNe4=
+MD5-Digest: /OBhjLaf+Sx+XIRshghz5w==
+SHA1-Digest: TSlDhc/97NPUoUvVanx1ek6ucwQ=
 
 Name: chrome/locale/pt-PT/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: hmpKf8nYE23wITrLrowAKQ==
-SHA1-Digest: YQNgSAehraI6oz7z7853JzdlX0M=
+MD5-Digest: lN/2uQ8T+CvO1x186EOovQ==
+SHA1-Digest: 5fJKlxRUROsiNkl784Yd3RZjTyY=
 
 Name: chrome/locale/ro/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: cit+3abREO8OO/NmZItD3g==
-SHA1-Digest: t/GYnJGrWsBkbOPsiCwgUi3sSEQ=
+MD5-Digest: Cjp3zoxYe+S0TJs2da6cjg==
+SHA1-Digest: EJKAHUgk7YmWQj/Rs0qapn2y9wQ=
 
 Name: chrome/locale/ro/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: OkgBD1V6idbbTmseaGfpSA==
-SHA1-Digest: cRyglMWaWKF4vNnZOgQvJFOTbPg=
+MD5-Digest: 8SHqynwaIPXLBSdDiFI4pw==
+SHA1-Digest: oE3B6OECCAkUTOhnBJUMxzmAe0s=
 
 Name: chrome/locale/ro/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -532,28 +532,28 @@ SHA1-Digest: ldlN+/PUPC3sMQcFfgJNTN3NBOM=
 
 Name: chrome/locale/ru/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: JBmQj0+WmlAegfjTqmbrDQ==
-SHA1-Digest: n1BFEW4eldD4HeUd216x1SE1ZMs=
+MD5-Digest: Vq88dVDpdlnaF003X3GNaA==
+SHA1-Digest: /3tcIaHZni2BKvRtDbLlsf8ta1w=
 
 Name: chrome/locale/ru/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: od64lwuY2Ax9OHEhYiTlpw==
-SHA1-Digest: BdkY3v/mwpzJy3NDGAwyBls52mg=
+MD5-Digest: abZI2uCJi60evO3tO0x3qw==
+SHA1-Digest: zxpeVtYfP8K61eULPxdMNntQX9o=
 
 Name: chrome/locale/ru/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: RYdXIfQ6WRFAkZ2yJOcLUw==
-SHA1-Digest: oMGCQsAHt4Wsyw7odGj2zOZ0vA8=
+MD5-Digest: r7XqxRfrS000EFs+9NChqA==
+SHA1-Digest: tiOd3CTXun8J6iJifeBsItWr6UQ=
 
 Name: chrome/locale/sk/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: +rBc/ZPS81wHq+Hu2Rf2OQ==
-SHA1-Digest: 6j60g+koJ839F+I1Hoc83x3koMA=
+MD5-Digest: RRu6JpFQFB48gggW0+/3Bg==
+SHA1-Digest: BxIwMNhmnaJYScm5yMFHtGPMFS4=
 
 Name: chrome/locale/sk/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: ej1IgKnJ+EYlA76sM0Is8A==
-SHA1-Digest: UFzRPB/57tDAgTXIEVhAz0SMe+I=
+MD5-Digest: h7W+Ce9hWCxp8lBh4twLTg==
+SHA1-Digest: 0Hpf6Cwb4V8/n4cWbaipkj+PdBs=
 
 Name: chrome/locale/sk/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -562,13 +562,13 @@ SHA1-Digest: KhoiASDlcn33vszpUsd0H0/Julo=
 
 Name: chrome/locale/sl/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 5RjLW+G1p8bFOb0Fd5Bi/w==
-SHA1-Digest: 2+pdYbK/b7VQ/zkUOsHa2l/QowY=
+MD5-Digest: AVNoE+4Os2t5FtkBH4HQXg==
+SHA1-Digest: +Q8YtX1AISZPwXBirQRkGyWNtTs=
 
 Name: chrome/locale/sl/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: IKo3x4NQ6mjZGSM7UDc6fA==
-SHA1-Digest: VmwNPNvyEMLdKZQ0CD42kyYRo3Q=
+MD5-Digest: RBtrL8yTY5hgDgmeKvK5Kw==
+SHA1-Digest: WQuX26sP14cKPf8HJmGEs7GyUGw=
 
 Name: chrome/locale/sl/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -577,13 +577,13 @@ SHA1-Digest: +z/ILbJ/RwiP9WgnYOtDf80tuw0=
 
 Name: chrome/locale/sq/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: srvDDXU1EaoCfMX7AqJeVA==
-SHA1-Digest: wVe9wH7TbpDsWivtUQVYzwLy5do=
+MD5-Digest: v6KiLLSYotXVymMWlxNPtw==
+SHA1-Digest: Dvdkita32G3ZtXsJlB6xlLJb8yI=
 
 Name: chrome/locale/sq/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Hck4oNNGyq+PMN9dRLbeYQ==
-SHA1-Digest: WGLO9HOa8/2intpXUaBSx5FoWhY=
+MD5-Digest: NjoX+qjm9i3VhJHuzxQq0w==
+SHA1-Digest: fovjD3r0DxUi2msFkJvrbm6RrEM=
 
 Name: chrome/locale/sq/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -592,28 +592,28 @@ SHA1-Digest: XwgAy9RUmKBfVUSrru9vg3ln0ro=
 
 Name: chrome/locale/sr/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: ByTBCXJmVtWT7pCL5y88tg==
-SHA1-Digest: D3Ui5kqGdogbAL3tqiX6P8kdkms=
+MD5-Digest: 8irfCfqoSDDyaID+j32Erw==
+SHA1-Digest: A4iwIlyVD3XShvBTnKLiJPFn5Cw=
 
 Name: chrome/locale/sr/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: KveUNa4t5DIBo4Sio9T45A==
-SHA1-Digest: TAs+H/ll1p9VgXhO0SniIzBuLRo=
+MD5-Digest: AD+g3u7LYlXvf+/8gftZjQ==
+SHA1-Digest: PUBHE+J5Q+hkfW/76UFelHxP4Zo=
 
 Name: chrome/locale/sr/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: H5vCr3x81Le+fwhL2Nk/kw==
-SHA1-Digest: qUjDSyv3VDGIAwS7B/+67V2r3Oo=
+MD5-Digest: MTI8kAlgwT046x0H/OKJ2A==
+SHA1-Digest: cZefpDwj8KEdPW6yX9d/TTzTgcs=
 
 Name: chrome/locale/sv-SE/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: nRnp2eke8tVSCWA6mmxuMQ==
-SHA1-Digest: MlFpbAyECd+Wy0QjT756LuDrP8s=
+MD5-Digest: zFEQCOFi71TG5bMrZjCXZw==
+SHA1-Digest: R8CN0ON80qsMKG7Ks2FF6ylwY18=
 
 Name: chrome/locale/sv-SE/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: iYokswSM4J1dHGrAbkIXMw==
-SHA1-Digest: qkmfrISJythHfWg249XbyVspxQk=
+MD5-Digest: KZ6dHUuuGgTyqC0Sv+xUSg==
+SHA1-Digest: wK5me6QzKpDGjJk0UWmDT8CTmRs=
 
 Name: chrome/locale/sv-SE/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -622,13 +622,13 @@ SHA1-Digest: nVAtW8LPgoOheQb8QS+bMpl7NKg=
 
 Name: chrome/locale/th/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: +Fw1T+GToC58AE2XEbLpWA==
-SHA1-Digest: F+zouDWq0tbDuU40oMshYJFTS/k=
+MD5-Digest: pkey28r+YKbkNZMAWDn+0A==
+SHA1-Digest: yZwUSI8yIAC85c2AolBs/iWuV6A=
 
 Name: chrome/locale/th/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 6tSRdSxYteb9wsTQzaQXtA==
-SHA1-Digest: 0qV5jGAuc+/ILqbtOITN3sp9QFQ=
+MD5-Digest: t7VihnloLOoIReQSQIDBfw==
+SHA1-Digest: Yxtx0meIqZNzgeree3p2xIadPBA=
 
 Name: chrome/locale/th/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -637,13 +637,13 @@ SHA1-Digest: DKLyxMEbsuTrF8KxGx/kvTenZt4=
 
 Name: chrome/locale/tr/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: GfA1o86ACBtJrgf/TwnuPw==
-SHA1-Digest: HVY4L2AZUWwffWFdM8VtHih6C7A=
+MD5-Digest: 6wcDzEagA6C44/ZBFVKPtA==
+SHA1-Digest: 7XOc7V/tAOKrM6kd6A5PD4L6brY=
 
 Name: chrome/locale/tr/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: f3G1aKxbn8K5BYzrfibdng==
-SHA1-Digest: u590DDZGHijajMnZjOJXD2kG5tE=
+MD5-Digest: 1tlg0z/dS+e6a9q10u+KZg==
+SHA1-Digest: rmdDx/5bfYKra6XzIUp+2ABMJuY=
 
 Name: chrome/locale/tr/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -652,13 +652,13 @@ SHA1-Digest: TtZihrMbqnlksAXIzLqAfheo3Ss=
 
 Name: chrome/locale/uk/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: CPlL4TBdnZ6T90kkbk4YtA==
-SHA1-Digest: KKs2s6fZttala9PQAc1E5MUNyvM=
+MD5-Digest: wU/XvS86xh431CB6ZJAE0A==
+SHA1-Digest: Biem5ViQj10UAz1hYSCXiB4d754=
 
 Name: chrome/locale/uk/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: bfGOspRjq5s0V027NREuWg==
-SHA1-Digest: 70UsNqvTP60HkpzrMsvDKxhBREs=
+MD5-Digest: 7GnKtBisbUy7hrk69ndxEw==
+SHA1-Digest: hNepjrMXoEBLl0IWnhNF6QNPH2g=
 
 Name: chrome/locale/uk/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -667,28 +667,28 @@ SHA1-Digest: aSh4KDl5OF4LTs8yr09RQFPdW+Q=
 
 Name: chrome/locale/vi/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 8hhXzfvTpR5rqlNkMkXmTA==
-SHA1-Digest: eHBJtP3/EnHasFdga19L0ITK5P0=
+MD5-Digest: Dh+ztaLQ1czNCOEXuvvjsQ==
+SHA1-Digest: 6kiT6PEhdBoQMpkMmZSrJywafVk=
 
 Name: chrome/locale/vi/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: OVu5Utb9m93MomG6wmXYNQ==
-SHA1-Digest: kRA4LNAR1MkvdkWADc6145BO5OI=
+MD5-Digest: FefjCOVQ2XqpPQGjQuj6pQ==
+SHA1-Digest: BlEKvIZjLy3gpUfzaU3zP8WfrlQ=
 
 Name: chrome/locale/vi/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: NEwobHDyw9tt7z8F0JuonQ==
-SHA1-Digest: bbqnWgYCBQx/lrhTx0p0KSGzKtw=
+MD5-Digest: Hkodk4EvdhshzHu4CT/jtA==
+SHA1-Digest: KqQEFI7aUqCnib3p01g3sgUXaNs=
 
 Name: chrome/locale/zh-CN/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: LrPn8wHcsW/us1MqOr+TYQ==
-SHA1-Digest: DzrxWw29dvQWXjuECpH3H5wjA7w=
+MD5-Digest: ZjrVzNhCjQGI/swwM+h5IQ==
+SHA1-Digest: HclpEdSguOweyNatS58UMFoDeJo=
 
 Name: chrome/locale/zh-CN/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 4Dk2RScWPLbSlTJ7+seWIA==
-SHA1-Digest: RfqaoOUuS9HUCMBMwZ1Ec5skEhA=
+MD5-Digest: HpG2q4vWb6i000x8Ggv9DA==
+SHA1-Digest: 6de2BYwxf9loDtVZlKs5lWBmhIw=
 
 Name: chrome/locale/zh-CN/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -697,28 +697,33 @@ SHA1-Digest: VSbSzh1+x7KM9M5XL55nuzF2jmk=
 
 Name: chrome/locale/zh-TW/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 1mp5aqVN/RkndO2VpnkFqQ==
-SHA1-Digest: SWaWTbRvDxPTXNMuy3EGwhRonhA=
+MD5-Digest: 9ww55Vb7EgbH50CNxxA8bg==
+SHA1-Digest: WDBDRNzPy4kdIhHbLQgCBBYkS9s=
 
 Name: chrome/locale/zh-TW/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 9lqBA66dCy59kIj1nRc6Xg==
-SHA1-Digest: oGjVMNww90eVkPJxAkhMi6vzM50=
+MD5-Digest: yGMOPu7kKgZwrQMZ13/PKQ==
+SHA1-Digest: Ka2yfoKMOqstH4MnPjuKYOzewHM=
 
 Name: chrome/locale/zh-TW/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 82VVvxkvGJPjfufEzQPH5g==
-SHA1-Digest: CbqeA4t/8/3on1+NNVM+BGgaTv8=
+MD5-Digest: X+mdTHTFed4Qtg2uLN3F0Q==
+SHA1-Digest: WVIH6Caxg1lzL9rcDlwbY2arqBE=
 
 Name: chrome/skin/composer.css
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: s9BbunCKqSpocjRWtCAtrQ==
-SHA1-Digest: ewcjjII+IDCXhr/4xCN90JJLNCA=
+MD5-Digest: fS3NQNPUr5tGrvprbaRBzQ==
+SHA1-Digest: 6bb5txOFUGnAqzHsfpOuiGhdSW4=
+
+Name: chrome/skin/devToolsOverlay.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: qiZ0AlPsI9KTrxhzygBB9Q==
+SHA1-Digest: BQJRv0kUXNescqLzGEi8/PkIDWU=
 
 Name: chrome/skin/overlay.css
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: O4RhwUGdEGQ4xivqeLLG4w==
-SHA1-Digest: yvlcLokH+EbUFMOaVakTKiu8RcU=
+MD5-Digest: C9gSDJWj/1abZdPUdPfOvA==
+SHA1-Digest: XIstnyq45lplqE5/o4L8FVWlo8E=
 
 Name: defaults/prefs.js
 Digest-Algorithms: MD5 SHA1
@@ -737,40 +742,45 @@ SHA1-Digest: rV1KVAqpaXZFjvXgenbf1xJPxOM=
 
 Name: install.rdf
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: rT8Nnr4sj0q4nL2k6GJapQ==
-SHA1-Digest: 1L3k8HiOB7CghUoID9mGzFyH1Ac=
+MD5-Digest: Tczvxg1tSdPW9SEyemSZeA==
+SHA1-Digest: cbysFEVv9zhwv0S6lrrNs0+19rE=
 
 Name: lib/aardvark.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: UYpBIE3Yef2KwNdlMnBvqA==
-SHA1-Digest: lzOwvelYyr5Ph8p2dZvzC8szWbg=
+MD5-Digest: XomSzYOF/Qv9ZqRCZokSyw==
+SHA1-Digest: oVK7wN+4YvkYzkTI+cXPIx6hMQ8=
 
 Name: lib/inspectorObserver.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: FM9TpWLbRNYjDDVWpGKrlw==
-SHA1-Digest: id2XtVEZgIiMTImfanrvrqJT5Q8=
+MD5-Digest: il74NPA8vEdLzOWyNY1iPw==
+SHA1-Digest: tjMHkuBhfkJt0YPUYR7v4Or6ql8=
+
+Name: lib/inspectorObserver.js.rej
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: i2MHFqNCQBHOwzPlIDIxCQ==
+SHA1-Digest: olQJf0xL9DYUeVySV9Pbto1lxP4=
 
 Name: lib/keySelector.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: rKfPeRBkh5R64dmWXJ5VCA==
-SHA1-Digest: 9NxABnBD3BKxyIjc59A+b0Bd/cY=
+MD5-Digest: WjEHMJWE6aEIAblQXo1PoA==
+SHA1-Digest: xunIbikM7YfB5C8IDtpBYbfnbUw=
 
 Name: lib/main.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: qVjwAQvNUIkmm02V4DcI1A==
-SHA1-Digest: TyBQD+vnOiEfIzrpoM5Ja9KGyFg=
+MD5-Digest: BNTI7cgMXDc3N2Kg79v23A==
+SHA1-Digest: bJvxV9+BQY7BEBt7bbuPyR/hfnA=
 
 Name: lib/prefs.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: ASvPdPMUY78dknZkseeOWA==
-SHA1-Digest: tenoJDgmTd4kL6OWAS3AaJ7dNz8=
+MD5-Digest: 4cA5uy7UZtR/3xu/MhijyA==
+SHA1-Digest: oQWH4Jl7cV3XRU8gxOwzwqWxSbY=
 
 Name: lib/windowObserver.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: x9oulWY5giVMsA/L5OsLWQ==
-SHA1-Digest: 8xZeScg72DWNQ+FKlYRANOaTFkY=
+MD5-Digest: B5Zl/w6etMAbYlSVFycy/Q==
+SHA1-Digest: FkWUpmbdnvJcwla3Y92smb6af9s=
 
 Name: lib/windowWrapper.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: kfSxYhJHkY1CVNMgYMQWiw==
-SHA1-Digest: fA4y/LbQ2t612M29AP5K+hyZSVU=
+MD5-Digest: QxMSnooGSaeWbRy6PEYMnw==
+SHA1-Digest: dbHYubPyJiSNi8t6k/1zr+rlPBg=
diff --git a/META-INF/zigbert.rsa b/META-INF/zigbert.rsa
index 63d6bbc..93599b4 100644
Binary files a/META-INF/zigbert.rsa and b/META-INF/zigbert.rsa differ
diff --git a/META-INF/zigbert.sf b/META-INF/zigbert.sf
index f38c07c..76fe360 100644
--- a/META-INF/zigbert.sf
+++ b/META-INF/zigbert.sf
@@ -5,48 +5,48 @@ SHA1-Digest: d/6Z68ulBRyiureYHLr1x/FPYaw=
 
 Name: bootstrap.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: S79vnJZXVqc/MholzVPEDg==
-SHA1-Digest: D6in+k3TMAhSAscSmQsSXNz6y/8=
+MD5-Digest: RFqAdNotKlo7wGmh3rF0Zg==
+SHA1-Digest: PMk2lg8pf0vh9gUEGE1/8OJ+oLY=
 
 Name: chrome.manifest
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: se5c+m5Yl9f02L4F5UyWGg==
-SHA1-Digest: uHbXVyOR00sNBAcK6fe9pFd+zVY=
+MD5-Digest: liRbNv+31qxt4A/80JyviQ==
+SHA1-Digest: KZbDeHeJ6c3+cnuWfcm4Ergu5sA=
 
 Name: chrome/content/common.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: +vd1T7eL8U7Ye++84L3z5g==
-SHA1-Digest: R+JduEncOrBL77slM0U8pQT+Ld0=
+MD5-Digest: g5f7DYU6dirGjrRRg4vEww==
+SHA1-Digest: MjOprIjeoVM++jtvM5VhLidnG88=
 
 Name: chrome/content/composer.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: U0Y9yTXUmynC+2RpP5Du1g==
-SHA1-Digest: c7R+SCcOHbs1qTd5qnKkNbOpSGQ=
+MD5-Digest: YUm8xPvQM71nAztcptqFMQ==
+SHA1-Digest: lfFhjjsQZjxF4r0PgEb5RGiJ170=
 
 Name: chrome/content/composer.xul
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 0koK8WCljLQW8+fZjnBrNw==
-SHA1-Digest: SdwQGnVLHFVSp/adkcmHsjkrDik=
+MD5-Digest: czeKm1aH1W8R1mb8pWS5lQ==
+SHA1-Digest: AaPUF1sfsLzV/F92YBPO9RfRDyA=
 
 Name: chrome/content/elementmarker.css
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Pg4iByIkZGQZkPsV4kgccg==
-SHA1-Digest: wVZ2b3zJpU5W+8/T46UhVsvKxwI=
+MD5-Digest: 8GF8qw4ZnY5l5P/WQCgnTQ==
+SHA1-Digest: g/OR4Fe1Eq+RPycm9/rVVcPL1+0=
 
 Name: chrome/content/overlay.xul
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: maIVKiaziIBZMmp7ILe8KA==
-SHA1-Digest: aZjNmxhw4wBKB8EUMv2xJihpU10=
+MD5-Digest: yKiicpY3zlJfyMRzF4x3jQ==
+SHA1-Digest: 7D//gXvNWRTw+preXdyEXKBkKvY=
 
 Name: chrome/locale/ar/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: INBYOh66Vh3IqiDVqGGaYw==
-SHA1-Digest: VD34sJSOk4Q+CXWTATGWcW4OYis=
+MD5-Digest: fgBECIm/qW+0QOUrgPbmjQ==
+SHA1-Digest: i6Ztr7Jyw+PKAxFLv837ysqkFRs=
 
 Name: chrome/locale/ar/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: +Wt3nfKforVkYc1U0IS6yA==
-SHA1-Digest: D/CpLdySCkUMafKwtU0w9PZ2KH4=
+MD5-Digest: MkwfxnfoRhSStzDhb8mxpw==
+SHA1-Digest: pCHndD6EkTn8c61n5qomaE2p0qo=
 
 Name: chrome/locale/ar/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -55,13 +55,13 @@ SHA1-Digest: 55CDv8Y7DM1tMbtlfqCj3dM3cBY=
 
 Name: chrome/locale/bg/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: ugmLBxTv0OeQxETKdKuDAg==
-SHA1-Digest: 3itLnJdIToy1V0EKcFe8zxy5zQQ=
+MD5-Digest: qz/CAa4tHN2E7M8CrEsGxQ==
+SHA1-Digest: h1PPMKyuN35ZWqEyUkVCC9SseAs=
 
 Name: chrome/locale/bg/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 9/YAqPcOXPYXCiwUdZ1qhg==
-SHA1-Digest: qcLyfld+1Uo08pU0xgrZqUqQNsg=
+MD5-Digest: OMkPWHcN+lAPPIhmIa16LA==
+SHA1-Digest: idxP/Hnx6Ivrffw1K8d8tziGk2k=
 
 Name: chrome/locale/bg/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -70,13 +70,13 @@ SHA1-Digest: CXvuIis+4Gsu29pSqIyg0TSNrlM=
 
 Name: chrome/locale/ca/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: naHXfIPvHt/cdRiOaAU+Xw==
-SHA1-Digest: i/ABDIZBMDEzUxEG1Z0biQLmvkU=
+MD5-Digest: Fbtqyg0vWM0Y3yqZeYmgHw==
+SHA1-Digest: 5ui5Xtr9sBSwErcSzIwEjfSv8Bw=
 
 Name: chrome/locale/ca/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: tqZsaZP7KDC8e9qazvQ6WQ==
-SHA1-Digest: 3rvJmhwGZPLfj5y3NgKTkhaVzCQ=
+MD5-Digest: hCqelCw1BEnsjZmea91/9g==
+SHA1-Digest: 6K6dRzyECI6a6O1frVSWJ3OFPO0=
 
 Name: chrome/locale/ca/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -85,58 +85,58 @@ SHA1-Digest: 722atMfuxfT7Qd80CbHxf13utM4=
 
 Name: chrome/locale/cs/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: CK2RKo8EYvzvxVyNVClWZQ==
-SHA1-Digest: gkCK9kmYK5tDfCS1lz4jrAI/PcQ=
+MD5-Digest: ABiNFD4JOkeC3z4iIly8yg==
+SHA1-Digest: VXzRyPRqO9dGF9Lm63uxoOkqWg4=
 
 Name: chrome/locale/cs/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: YkwOtOxEh0jSlg09r8bFPA==
-SHA1-Digest: 58OuDy7+Yc7znj67+IiIKbahFDY=
+MD5-Digest: 7hUAlr9cLvXdSP2LxlYjhw==
+SHA1-Digest: wQB80rY9QSbrbfJERJsBAwuYsGk=
 
 Name: chrome/locale/cs/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: o/S8kqlqRtJcB4fw+CQc+Q==
 SHA1-Digest: 1wcqzODHUk+iN+DHfgVrPH83qJM=
 
-Name: chrome/locale/da/composer.dtd
+Name: chrome/locale/de/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: wqosZ0DXJtTzHb9ocNJg/A==
-SHA1-Digest: JLhRKKL9Wf+q7UY2WQh14DMmRUo=
+MD5-Digest: 1kPk3GZXlHAncXBIrvF0lw==
+SHA1-Digest: IaHsMoFn9aaiuYUVzlYc+C4TUS0=
 
-Name: chrome/locale/da/global.properties
+Name: chrome/locale/de/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: /j6LtuxItsZSAF419xi5ig==
-SHA1-Digest: MJd2p0aO6Ope50+wOjoUltIDDvw=
+MD5-Digest: a4xbnVJD94zV8wEtGaRylA==
+SHA1-Digest: 8rr3MnYXvkJDLq5zW4t954LfaxI=
 
-Name: chrome/locale/da/overlay.dtd
+Name: chrome/locale/de/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: HLcQ9roZDNC0zLCaX8uhuA==
-SHA1-Digest: 7NZE2hPxM/QnyOr4/H95vxwtDx4=
+MD5-Digest: BfpiKHC0x69+r+nkebALaQ==
+SHA1-Digest: QJ9ug4eMS56sBDASu/VXaXN3BE4=
 
-Name: chrome/locale/de/composer.dtd
+Name: chrome/locale/dsb/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: QBIbnEqsF8gnU7Nm323wgg==
-SHA1-Digest: zWKQYixdb98m/+tdIey28eGnBe8=
+MD5-Digest: /7+PHeP8827/neZWJKK37Q==
+SHA1-Digest: bB4e7xDhhfPgG3ml8VpgHg+JJtU=
 
-Name: chrome/locale/de/global.properties
+Name: chrome/locale/dsb/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: XgeMvzuyDQBPrTmgw9ArQg==
-SHA1-Digest: u7VafeuIuJJ8xmVpQyeUT98hsAA=
+MD5-Digest: Lboj1zf459+0b70gJAe8hA==
+SHA1-Digest: u5VwhgBCS55wnRcXh69WxsKCp0U=
 
-Name: chrome/locale/de/overlay.dtd
+Name: chrome/locale/dsb/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: J2vF3ja2FUYR3gX+NWGc0g==
-SHA1-Digest: 4luUzwwjYrFY1NrIvIR/lLdztNo=
+MD5-Digest: RsFmTCFGNp9R/qzisAvQBg==
+SHA1-Digest: z6u51iiw/4p4Ow+XyLmasDLMHuU=
 
 Name: chrome/locale/el/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: RrN0sLCbKv9pcNMAzbSLrA==
-SHA1-Digest: 5fyAHaPwXLoXxiowt2b5LZmBRX0=
+MD5-Digest: T3IStvj+sUeL3uRrINNnvA==
+SHA1-Digest: IEPEhA7jvP+u47OWR3MqnlyUWRs=
 
 Name: chrome/locale/el/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: tK3kRTzzHFYtboL7Njbs1Q==
-SHA1-Digest: qeTYIkEiMnhA6w8qq8een9j5Erw=
+MD5-Digest: zK9Sz3T2wcWNNv+LgeYlYg==
+SHA1-Digest: iNE7o4ZFJ+sogm4x7Diyyi7liTE=
 
 Name: chrome/locale/el/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -145,13 +145,13 @@ SHA1-Digest: r+67BL32wouJkR8QdRWfuHCZWzY=
 
 Name: chrome/locale/en-GB/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: /UlkaI27TnPIspBpnQVERA==
-SHA1-Digest: s6Ynu5QRF73Asj+ST+PfYNe0vDw=
+MD5-Digest: tWfASxWvU4Ackbkeu+7x3A==
+SHA1-Digest: 383c7BKy9mPtMlAZBZSiI+Fgt/U=
 
 Name: chrome/locale/en-GB/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: VsyIlAU2iz6camynqMVXRg==
-SHA1-Digest: KmdZLAMZS+/0YkGPuI3nVt9AWqc=
+MD5-Digest: 3pnHRgLpSNHNsM6zfGVZXA==
+SHA1-Digest: c0Kbapj76rOqWG8QSiL0i4gDwoI=
 
 Name: chrome/locale/en-GB/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -160,13 +160,13 @@ SHA1-Digest: 4j+dEWvDnMEEGyBDVTUv1fhgidA=
 
 Name: chrome/locale/en-US/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: yjrALGnZbEw1QATjo+9OQA==
-SHA1-Digest: HM8YQs71O63q4gwA93WBP3a4ZrI=
+MD5-Digest: sxUOeusOSrDITJCtsr8fgw==
+SHA1-Digest: a29nrAdEDtp83jzsFypJE3h/SPU=
 
 Name: chrome/locale/en-US/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: bUIB4/TZXMPtqDAXUJfW8w==
-SHA1-Digest: EU0CZnfDRTVmzGV22SQ4lsDZ+oM=
+MD5-Digest: NMzHwe7mJzc/lAGOuy5xew==
+SHA1-Digest: MX7SWhciEes56otWyj5XjkCH+iA=
 
 Name: chrome/locale/en-US/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -175,13 +175,13 @@ SHA1-Digest: 29ruAGAuPDVEI9gpQk76PY1VaFA=
 
 Name: chrome/locale/es-AR/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 7xAKXV1j3Xc66QrCpybz/g==
-SHA1-Digest: 2WLGc+jvo0c+OoCGP6jcYPqHj2I=
+MD5-Digest: TXA8yf6g2/k3bqVTJFR9dQ==
+SHA1-Digest: 0TqflY4iFRzJbMZg2J/HTl3Jdso=
 
 Name: chrome/locale/es-AR/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: pPPkBDP2jbKRAl3KZ3Ap8g==
-SHA1-Digest: b97A5hPDxhcAFK341XPpmpfKoic=
+MD5-Digest: zFguZ9m2blywwcEnHWxyiQ==
+SHA1-Digest: 7IXxrQ1Iahf25rJ8CYHBcZlTmeA=
 
 Name: chrome/locale/es-AR/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -190,13 +190,13 @@ SHA1-Digest: ZJ/gZLdLyd091DGF8IUATYhB3B4=
 
 Name: chrome/locale/es-ES/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: eYZi0rfY4yGyEBTXRkCBRw==
-SHA1-Digest: rNudPYNmoUH9bldEV86IvKT3bds=
+MD5-Digest: 3eWqncBZGJ7rXd3NqcX5iQ==
+SHA1-Digest: D98vCFigsH/or8VXowf9D33KG7o=
 
 Name: chrome/locale/es-ES/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: zMXyz7FAuLyRQsdpL20e8Q==
-SHA1-Digest: kQln91hCjCFH33hnEmmHDGR1qe4=
+MD5-Digest: li8LLid11U9EqmSDHRCAow==
+SHA1-Digest: iZ8lKRMyAk2xD6q0/MYuLOBzFlE=
 
 Name: chrome/locale/es-ES/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -205,13 +205,13 @@ SHA1-Digest: MddeaKOhEumR29NKan/V5k4soEA=
 
 Name: chrome/locale/es-MX/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: AWxD1/UYlZW/hoTpeGuirQ==
-SHA1-Digest: glqO9ci7qNB27qfhQ50tX9yqIO8=
+MD5-Digest: 0bNsjdtPUsyRl7miD/mbSg==
+SHA1-Digest: a0REYzXp54ki8vEU7jHeBTjw/B4=
 
 Name: chrome/locale/es-MX/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 9QgpXcrQNpsXw2sFAHCnSQ==
-SHA1-Digest: Vp2I26oC7abGYwLewPVcLdzejQY=
+MD5-Digest: DJmGMZPBx4BpuvqvEnNtiQ==
+SHA1-Digest: 7SiTuUpLPzmz+69iyxKFJz+R7/Y=
 
 Name: chrome/locale/es-MX/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -220,13 +220,13 @@ SHA1-Digest: 5PkkE4k2071WkTRJbIMwuApQ+aU=
 
 Name: chrome/locale/et/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: HRbqnuaDPsVwidw625qUFg==
-SHA1-Digest: zEY/OxmZvvFWbEDHlArY8WEKpmg=
+MD5-Digest: bm9vSU6e5W8mKKdEBwoYeQ==
+SHA1-Digest: l6QI4qgbbx82Vxtoo1QzoO1paL8=
 
 Name: chrome/locale/et/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 0cZPTqwSvL5W45aDOet7jg==
-SHA1-Digest: fY0iNwFQ8Sxr+Q3Rq+OPfWsIuUM=
+MD5-Digest: /aRIUAAmroyRfXf6WVQUaQ==
+SHA1-Digest: GD8iEhTBX1yOndJoOun070RGjfY=
 
 Name: chrome/locale/et/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -235,28 +235,28 @@ SHA1-Digest: Oph7BW92f5ry/dWW/tJi2Pf6EB8=
 
 Name: chrome/locale/eu/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: HcFM/4a97i9GviPzpP3dDg==
-SHA1-Digest: 4z75+To8a2T+4wdR1yE0GuXUkos=
+MD5-Digest: B3n2HaAur9SvipzSvH/0VQ==
+SHA1-Digest: jT+LWUvng95f2uGS2mN18gaeMTo=
 
 Name: chrome/locale/eu/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: d+uTXxDMdBrOb3E9fAz8Vg==
-SHA1-Digest: Ht27mmrqE1ldml8jl2QZkP5M32M=
+MD5-Digest: hyf2gUXss3ySLCOVgFSa+w==
+SHA1-Digest: 9xhsZf/4GWZSOy/UW/SpV1xJOHs=
 
 Name: chrome/locale/eu/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: SgNX95T4Mx6vlwrAg4QhgA==
-SHA1-Digest: o4QX5HgOwtSnAW9uzVUs4cAXCg4=
+MD5-Digest: WhjIKw1oqEjGZY5U1NHrkw==
+SHA1-Digest: k3GFMehOlborrio0y9/sDij80+M=
 
 Name: chrome/locale/fa/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: nW3h50y0kp4QrsNqoUfP+Q==
-SHA1-Digest: Cc7A0Iz3Cjb+yecGDokNj6PCM08=
+MD5-Digest: Oo4qMkueFQUR/YYNHG0WZg==
+SHA1-Digest: Yx5fajim6fByLESheeLxrw7dNu0=
 
 Name: chrome/locale/fa/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Fv1+nvpDiwl/SWAhNbGCwA==
-SHA1-Digest: WW4R+IYQ13AD846/mlIok4vm8+o=
+MD5-Digest: zeAkO1IGDtyNhk3G+IQdbQ==
+SHA1-Digest: Vbx4qxmcShYDPyivFoK7ecETo6A=
 
 Name: chrome/locale/fa/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -265,13 +265,13 @@ SHA1-Digest: feVk8/AgAejtn16MyZeiNS5o4Bk=
 
 Name: chrome/locale/fi/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: UIt8MO/nioBOhBoeHdvxpw==
-SHA1-Digest: mhUAHdQeV+yfL41DGwx4U0cjoBs=
+MD5-Digest: kx5BlXRNvXwwlju5yR5W+g==
+SHA1-Digest: g6FHZ25DTPt+bGQwM5DJJQ3yY+0=
 
 Name: chrome/locale/fi/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: IcUybD2Q6vniNE+if+0sFw==
-SHA1-Digest: E5/dCMzKfNKLvZ8lt4ERcMpaN2I=
+MD5-Digest: J86RNK8BViImo5JQ1K3ltg==
+SHA1-Digest: a5wDWuzjvAV3fnGoRig2g+l719M=
 
 Name: chrome/locale/fi/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -280,43 +280,28 @@ SHA1-Digest: K8zikOws7pSHGsWPvrCDU9JI20Y=
 
 Name: chrome/locale/fr/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Lha8SE18BxViRJFulwbdUQ==
-SHA1-Digest: rDaCMs4jXjPJd0rouXVNH2YGJRA=
+MD5-Digest: fmvahVB716Gr/0ywWOlqtg==
+SHA1-Digest: OkIcVPbgYMAN95HjYvazvIZL+Og=
 
 Name: chrome/locale/fr/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: N5kmJ0L1w7UxYi9U1zsQ2g==
-SHA1-Digest: xeLv9u9EYDFTh1ihtTmL001BJkE=
+MD5-Digest: Ft+TpNMc9kWlGMshXNCrQw==
+SHA1-Digest: 3mAqxhtSuhx3ZmKbpioCyNPu3lk=
 
 Name: chrome/locale/fr/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: JYgqsilhcme2b5qqsTrcmQ==
 SHA1-Digest: sKwqTuC5hdNVqQY/8D7+tHOpVbQ=
 
-Name: chrome/locale/gl/composer.dtd
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: 1rcklQSayeOKHOADD4Ju1g==
-SHA1-Digest: 3NkXZsB9wYU56YqKaSXTbnocNGI=
-
-Name: chrome/locale/gl/global.properties
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: nQICJq/Cpeok7Lkl3aTfiw==
-SHA1-Digest: bqFoYRbftKtgCIqNcxr4b46IBic=
-
-Name: chrome/locale/gl/overlay.dtd
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: M0BcOO10r8SEfquzhpJklw==
-SHA1-Digest: Bq66wpjrd27eESCDLWXylsfYH50=
-
 Name: chrome/locale/he/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: w/trHc24ai6Xu8oDwH/LSw==
-SHA1-Digest: mcjy4zW/id6fxvTvtKYsB/2oETs=
+MD5-Digest: VloMJDfzMLByotvdZnaAWA==
+SHA1-Digest: NIfgOrbZQHpFNnWdNQRBa8pWJz8=
 
 Name: chrome/locale/he/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: sywwg5dpD3HxEFW9O1S17w==
-SHA1-Digest: WHEQyMoUpnz28gCDR/MuWG70K/k=
+MD5-Digest: w0FDDFWQWtbyVIXFAC2m6g==
+SHA1-Digest: Joym2t+98JCGq4vk3hloe5A8z+Q=
 
 Name: chrome/locale/he/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -325,58 +310,88 @@ SHA1-Digest: fTFiN2GCIOqpIBG+FFfSrpJn1O8=
 
 Name: chrome/locale/hr/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: nLK3h1pguMqhcY62SDmFYw==
-SHA1-Digest: K8uKZwiQltmAh/MmPE0zRE6sA0I=
+MD5-Digest: WZfozFKoWMNUjpa0qZayjg==
+SHA1-Digest: csPZXcXu70PIepbsJ+V79HM2IHQ=
 
 Name: chrome/locale/hr/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: bGYSOI5gOb8qugILdD5I1Q==
-SHA1-Digest: wmMk2p4b8OnO6OouCa3XTgMtyAo=
+MD5-Digest: 9g58aWDb5XMD+krMmv7V0A==
+SHA1-Digest: ncEZeyOgkxDx2wHid7Ktv59/mGk=
 
 Name: chrome/locale/hr/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 5geF+EvXpcPpch4Z3RTYbA==
-SHA1-Digest: BZ1IfbZsWWhRhIRWGr3eZb4VMVg=
+MD5-Digest: 04qRYX+PW/QBfyo9zN9urw==
+SHA1-Digest: bS7pdTLt+kc6DhNBnBsZtD+Veo0=
+
+Name: chrome/locale/hsb/composer.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: J+dK7Slm9kJwrYZErsqjaQ==
+SHA1-Digest: WDCEgkwRz31X0k02R1YOXGXfydg=
+
+Name: chrome/locale/hsb/global.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: yR8TrZZK5ai9WRsi0rzLpQ==
+SHA1-Digest: x+4qfQNRw9gNLhMqCxTMvEbzy3w=
+
+Name: chrome/locale/hsb/overlay.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: tKZ4esMACbv7nuzE96Fh/Q==
+SHA1-Digest: oz0cTrMpZGiD/ShXGfKV0us1F6k=
 
 Name: chrome/locale/hu/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Dsdx26sZqrsxuBLp4yzdDw==
-SHA1-Digest: 5wFs8s2nLf7BOY0ISGGy821pwOg=
+MD5-Digest: alVdnFsQb+5eDUMEMRqKqQ==
+SHA1-Digest: qTNL1jbcr9N3XA0y4/tyyJLYw5A=
 
 Name: chrome/locale/hu/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: OqOO5F3qJEjssPVp4Nf4TA==
-SHA1-Digest: bPJYp8wyO8MOMPsOVUQXWQunGpc=
+MD5-Digest: TjokEDlZdptTGYg4UrTakw==
+SHA1-Digest: gzNZhPt0+jjGfH8a3nhUcazYHlM=
 
 Name: chrome/locale/hu/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: 6R9zxFn9V7Kl3A4nk8xfMw==
 SHA1-Digest: k4kZ9Q62Ws5gtS4Ukjkrmc5HR6I=
 
-Name: chrome/locale/hy/composer.dtd
+Name: chrome/locale/hy-AM/composer.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: DtyJV/JyqQk3hoQT48RBGA==
+SHA1-Digest: k1UuZTuDNhRIZPOUdlbWV+TOSD4=
+
+Name: chrome/locale/hy-AM/global.properties
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: sLdTFP/GL7TlUhd9oGYKcg==
+SHA1-Digest: yQ1uBH543JhY8FIkAtFZ7CPm8X8=
+
+Name: chrome/locale/hy-AM/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Tu3GxySqT4vYn0BbVeW8vA==
-SHA1-Digest: 1geIK8KsVJGJF3S2hg/Ma1rp86c=
+MD5-Digest: PwfktyxXEHt4O6eyTaKvXw==
+SHA1-Digest: EpAM322gKQtYAxmrP56+ouNfy9Q=
 
-Name: chrome/locale/hy/global.properties
+Name: chrome/locale/id/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: JVt/cKy1wOL1OSAao1Gc8A==
-SHA1-Digest: JGypfyaS9HLxYtICOBIkTe0dohQ=
+MD5-Digest: cgn7bE4ATRpjMWET5OlPAg==
+SHA1-Digest: MHAgympNBn0T0bkgjOlfTlH3m5Y=
 
-Name: chrome/locale/hy/overlay.dtd
+Name: chrome/locale/id/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: b89BJzxbd4GBbL1gEQFaXw==
-SHA1-Digest: uujjq1WruP5ntE1YX7ba3B5BOjI=
+MD5-Digest: aYXYv5XJcS4scpE1LSOPnA==
+SHA1-Digest: Kdwm+2n3/IIhegUG/IrmU3iwyBY=
+
+Name: chrome/locale/id/overlay.dtd
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: Bu2dPNcW96w+AkiyHPFFJQ==
+SHA1-Digest: U/SDeugGcWwEAlFtEdHQmSaM9dg=
 
 Name: chrome/locale/it/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 08IJfqJFGvjrydYYOc+zfw==
-SHA1-Digest: Gx3BXZZRnrNK0I7o4NaaFAyVlq0=
+MD5-Digest: My4al7KAINdVE2gFDDO18w==
+SHA1-Digest: kIzEYgUaqTYXjvylD2Gnh3dnTI8=
 
 Name: chrome/locale/it/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: LKuHa1UbuDPoDx6KwunsQw==
-SHA1-Digest: KAy2q6DbA1BtxdcFJ9EkDzCymsk=
+MD5-Digest: Pxmd2gq1X9dnLvKpFUnLDQ==
+SHA1-Digest: raSqKuHZvKH7V39XwNcGcyKd8bk=
 
 Name: chrome/locale/it/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -385,28 +400,28 @@ SHA1-Digest: 8uKydP3ru5jcl554yaTGXcH+JJw=
 
 Name: chrome/locale/ja/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: q3Zik8770ndJgrj3eHw19Q==
-SHA1-Digest: ik7k86ik5uhFViZ0R/Vhm61cORw=
+MD5-Digest: PEIf8PtFmmx8cRzTIerDDA==
+SHA1-Digest: RXcSD5iwLaemegUAi8M70Xq5BTc=
 
 Name: chrome/locale/ja/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 3vw7/8DxAdd4JEZ9hlF5jQ==
-SHA1-Digest: FfuPx/Wc4zofH/6w6C/uo9LIK0I=
+MD5-Digest: yEDDDvAxHptqMe0ymBfNdQ==
+SHA1-Digest: OEe2wqBBUppFAbYiItMwO15rX8c=
 
 Name: chrome/locale/ja/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: E1MCMs591OEnNGbKNdEeQQ==
-SHA1-Digest: vWCco207oizn5NWDQjMVGQ3W7zw=
+MD5-Digest: tXeKCdHtm/oWpPBxMdL2Bw==
+SHA1-Digest: yQu1oZlYqAfnvBFcWYmr9omrenk=
 
 Name: chrome/locale/kk/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: eJjPssJla/MpMXQX2vaGaQ==
-SHA1-Digest: P65UML5xAaqQPSl4M6a4UeS/Yro=
+MD5-Digest: NoX9oiDWhM5gbg2dWKIF5Q==
+SHA1-Digest: mav2wL9bkQ08/yLJ7dCc6IWDhAw=
 
 Name: chrome/locale/kk/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: sDgG448yg9Y1k165RXl6TA==
-SHA1-Digest: 7h2an2zPyhIRyw/uStqlvlVTR0I=
+MD5-Digest: zYuVA2cqgk2FUz9eHIIiSw==
+SHA1-Digest: vMjMP04N+1+pvZmPDxDY49EZYps=
 
 Name: chrome/locale/kk/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -415,13 +430,13 @@ SHA1-Digest: fHqW0SQqoojFxJdrhIw3ahoiw+E=
 
 Name: chrome/locale/ko/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: N0IiZmo42O+t2SOsIO04nQ==
-SHA1-Digest: pCM/qNpEg8rFy17TCtXFCLm4gOw=
+MD5-Digest: JHn1EiUr88ly0S09UxFtdw==
+SHA1-Digest: we70i0juECtSFOtuvzrO0DzMl30=
 
 Name: chrome/locale/ko/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 79nlnePV5eShvPFia41XyQ==
-SHA1-Digest: 23+uytQVxbbkejWfn7u+bvrIYvk=
+MD5-Digest: p/6qZSte6L49ZLPsjMnxsQ==
+SHA1-Digest: dx9rWjPptJ5FncYE7D3F+v+fMRs=
 
 Name: chrome/locale/ko/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -430,43 +445,28 @@ SHA1-Digest: fTMd8/bkmEVI82y7tHxobZGFnI8=
 
 Name: chrome/locale/lt/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 7gpzpg5qYztMRejWtNyJ8Q==
-SHA1-Digest: sXB5rPKBWFrxujG/efemf2TDjSc=
+MD5-Digest: CYY7zTK2fHOTJLveOBSjUg==
+SHA1-Digest: A8SFtnNrE+5nj8GoCZrZfwUxODU=
 
 Name: chrome/locale/lt/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: X4mEbUbFYoKmBLUTg33p6Q==
-SHA1-Digest: qOBuROXV2237qF+UDc//L6ctOxo=
+MD5-Digest: uVouxxu5Is2bo30ZW7UXzg==
+SHA1-Digest: nhMi8uhJyMzl5w5XJ095tZBGPiU=
 
 Name: chrome/locale/lt/overlay.dtd
 Digest-Algorithms: MD5 SHA1
 MD5-Digest: CqaYADfZUWCTofIE1q0mlg==
 SHA1-Digest: G4gKeNx+PXyWCvuBAnXWD0/Hia0=
 
-Name: chrome/locale/nb-NO/composer.dtd
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: ZRJ9p49Op2pG4Z29C3M/6A==
-SHA1-Digest: wQw8GFZGrRgbpuLtUS40wlIzY+k=
-
-Name: chrome/locale/nb-NO/global.properties
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: nAOYvphSN+53oNmXQcXqTA==
-SHA1-Digest: rtNiyWJHt9qWpCSof8YH0hpU0es=
-
-Name: chrome/locale/nb-NO/overlay.dtd
-Digest-Algorithms: MD5 SHA1
-MD5-Digest: 6CY4DpIJOQWpabqes+6y4g==
-SHA1-Digest: ZIjmwg6gBD+fWyOjlIWJdIGeYeE=
-
 Name: chrome/locale/nl/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 7SGYHFlid6pHm+qw0rIhWg==
-SHA1-Digest: LvPdoOtBFWhkJj2eTRIxkH1CL0w=
+MD5-Digest: MVVlohqkMUklvcbaDLLA2A==
+SHA1-Digest: /Ai/HCPS6q+LsiopNL2Q+JtzXn0=
 
 Name: chrome/locale/nl/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: cBN1PlQzzAg4FdJ4K+Gf1Q==
-SHA1-Digest: FBKzxqqL8YfbdtzH983TONx06VQ=
+MD5-Digest: 6aMhGziYC3WbOMhAsSSyOg==
+SHA1-Digest: GhUeI/kPb3p3cJ4n+krFHF5glz4=
 
 Name: chrome/locale/nl/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -475,13 +475,13 @@ SHA1-Digest: pNR8+UFBj+1W22UtjY7zD4eatA4=
 
 Name: chrome/locale/pl/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: NkhFDHRDj8r/BrMpywtNyA==
-SHA1-Digest: NWTMzcadyzkaQv2TqynSgkXbluM=
+MD5-Digest: /Vo04EFMQu94JEAvx0nxNQ==
+SHA1-Digest: yVhTdHr1cOOmKIbm7KwElN3txhw=
 
 Name: chrome/locale/pl/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: KhyhnuHPw12THl3mAj0p1g==
-SHA1-Digest: NTIucYsbefb3a06YBw8kG7Bv5a0=
+MD5-Digest: wfasshcfJw/l2VKGYrVihw==
+SHA1-Digest: rutGNqJoZDglV8RRUUaBFmFQnwk=
 
 Name: chrome/locale/pl/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -490,43 +490,43 @@ SHA1-Digest: I8HNLxQck/r7U0ldz9hn4WCLlFY=
 
 Name: chrome/locale/pt-BR/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: MOBw/mQ+GaqSvEMiiFRlpw==
-SHA1-Digest: Uo6IEoxeVNwjGJ4rcsGdWdZ/9xY=
+MD5-Digest: CQ3I/EDR3+l9P2YW7LpC+A==
+SHA1-Digest: qhHOrQ7oLRev1zd8LfcuEeDosrU=
 
 Name: chrome/locale/pt-BR/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: N1T14MOjvewYpN5FQDoN3w==
-SHA1-Digest: lIw4fkPtM0fWjmn6ZLDi23j5lcc=
+MD5-Digest: 6Z5MDTVFgMJROqdeCRgxGQ==
+SHA1-Digest: dlXSF8F0GwqTaI+JsyTfCMI7PAg=
 
 Name: chrome/locale/pt-BR/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 85E8OjGvhT/+0x/Tz/81xA==
-SHA1-Digest: amydloN9UG6gR2fZZULw2o/CU/0=
+MD5-Digest: DQVtEKfUxSmZrOM/T2e42Q==
+SHA1-Digest: f7C8Xy6bNJgeorv4j8H2kFohets=
 
 Name: chrome/locale/pt-PT/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: c811W8EebbBuh/mhkbwi+w==
-SHA1-Digest: cSE9HCKFAN6KXaSGHYC3pk/rv8A=
+MD5-Digest: /tgswBLVRg/iJrpuYPWhSw==
+SHA1-Digest: ILj3XHUnyd+5FjrFA7SNGUjvSs8=
 
 Name: chrome/locale/pt-PT/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: piRjRvtaRv/peXdoa56NJQ==
-SHA1-Digest: Na0K6uCnSI44DcPWkxY6ytCelq8=
+MD5-Digest: /k0iCqLNnQB6Of/gBgcakg==
+SHA1-Digest: 7FQPy8Nnlr9afHq7D/cVOxsEDmw=
 
 Name: chrome/locale/pt-PT/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: tHs88YPf6tiRyhAqggamuA==
-SHA1-Digest: cKdWML0NLV9gDVfWlbqtRiiwX4U=
+MD5-Digest: 8s952QfS2Ksng/fltA5DIQ==
+SHA1-Digest: MBy7QPeUx6e3S5YurIaBj00t29U=
 
 Name: chrome/locale/ro/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: G1vHV3+mB+wVPI2zqDHoBg==
-SHA1-Digest: tS8ijfFTNI9HgwDhxUhRoePLd3k=
+MD5-Digest: AbcgeR7PL0t0TfFmi6hKmg==
+SHA1-Digest: 3nuCP36qVhJuBCsrf1kfZzzBqaY=
 
 Name: chrome/locale/ro/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: ycLX82zlrmal5C/3lreDGA==
-SHA1-Digest: H2w7Rp0pYkFk5owtdvVWSuBhXE8=
+MD5-Digest: iKSJhjF7EZTZgjyWV21J5A==
+SHA1-Digest: GVCDLt5tH1cKAJSgkyWumG0hrO8=
 
 Name: chrome/locale/ro/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -535,28 +535,28 @@ SHA1-Digest: brJvK9t9FAlyMI3lUQcJYweAeJk=
 
 Name: chrome/locale/ru/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 7o57aph24rcQ/npkjTDG1Q==
-SHA1-Digest: 1GeXVEmgLd1ZtErjuZAYZxHaE8M=
+MD5-Digest: 8JvY2DP1Nkwzz0JyH/iyAQ==
+SHA1-Digest: /Kv/4TlFbKAjukEAd9zHQm/5c2A=
 
 Name: chrome/locale/ru/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: idCFXzAj6qt8KZr4CbSX2g==
-SHA1-Digest: pLA2w4BqgdaLI2q22Myq3yzW5Lc=
+MD5-Digest: 2UjotMvCkmXo1r9Noqi/gw==
+SHA1-Digest: /VMGfhu+q2cRjahbOdw5algNzHk=
 
 Name: chrome/locale/ru/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: zS9+lTMTx11mbjsCHY2f6g==
-SHA1-Digest: 2b53khLKiT6C//A2vzUogBrXw8Y=
+MD5-Digest: Naf7Ishp45Cgs5Uxzw3cbg==
+SHA1-Digest: 5uWLGWnqussYFhPh7O84yCr8UK0=
 
 Name: chrome/locale/sk/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: KPIgDY25sIto/1ZbEWbGcw==
-SHA1-Digest: zNR1N8d3LtcMBNtRb3mVtcCpVaw=
+MD5-Digest: rJP2cF3Vdu8lDFBPRpVuPA==
+SHA1-Digest: zDGlDwki+5isW7C/m/cEfBhYIPw=
 
 Name: chrome/locale/sk/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: nAuJfxW2u+ihVdLkckQFrw==
-SHA1-Digest: LMrmYo6sJVmyE0bKU6OC6fE3a/A=
+MD5-Digest: /Zr4Sg0Zm0a3L71E1GWHXw==
+SHA1-Digest: /RMNeRJPgR5t5m2H6jUJHrkFD70=
 
 Name: chrome/locale/sk/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -565,13 +565,13 @@ SHA1-Digest: YKYDc9jyUvYkaaVCavKeQ3VkdSU=
 
 Name: chrome/locale/sl/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: F+6kPH36Y7wgNxOXYLFUWA==
-SHA1-Digest: hYSNpBufKesxAxgSA260ESdSh3Y=
+MD5-Digest: tsvAV3rm8T1GNRajUoeXbw==
+SHA1-Digest: +2CYXeP82+GDgZ3gOtY2obqGOZI=
 
 Name: chrome/locale/sl/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: iF0pQPq2AJCJaI4JUY8myw==
-SHA1-Digest: Qh4WnStv6sowtUBresZ/8VszyJ8=
+MD5-Digest: K90zWk2Bqj5Fm83+Gjl8uA==
+SHA1-Digest: r56i5ToTAjcpNzquhkgIvnbIcdc=
 
 Name: chrome/locale/sl/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -580,13 +580,13 @@ SHA1-Digest: Ok2H/xf9mhMM2Zhp/iPIo7qJIE8=
 
 Name: chrome/locale/sq/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 25ql8gYB5T0WiEwmos/qyw==
-SHA1-Digest: 7e1V4+k/A7ZxrCIpjncF4cedBAg=
+MD5-Digest: qlKUG1GBVdD1U0XoiElBrQ==
+SHA1-Digest: 5EaC7ycZxCthcNI3UfvYLx0Z91E=
 
 Name: chrome/locale/sq/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: d6nISyjg8liafwObFZbl6g==
-SHA1-Digest: AapestPD5cS7C/6wIV8wuPy9kNA=
+MD5-Digest: Tmz+s+6zgo7mAXj/IW88Zw==
+SHA1-Digest: 6KO0i/6zdvw+sRgKkLLgIjNmSKg=
 
 Name: chrome/locale/sq/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -595,28 +595,28 @@ SHA1-Digest: OB7eVSIXb28qDL6CmxO7LzV429Y=
 
 Name: chrome/locale/sr/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: vGssJrUDRGgvr3NSL80hiw==
-SHA1-Digest: BBgTInXfHtxyIuem833+1pNgDlY=
+MD5-Digest: GWs5IDc4zlvHY5Z1nQWSbQ==
+SHA1-Digest: G4w7i2ZzduDSk7SikIpuak9YQ4Y=
 
 Name: chrome/locale/sr/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 8YMbi+HYhLlubHisaDmNcA==
-SHA1-Digest: qIjQJwJjl10rC3Civ9kv+yesi2Y=
+MD5-Digest: oi8iVw/3jRhm4ktYpBdGwA==
+SHA1-Digest: jhZEAZdjlgchjlvF9isj2ERcCkA=
 
 Name: chrome/locale/sr/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 9WqXX1FgdEI12mN5cSO+SQ==
-SHA1-Digest: beHjOCLmrjl/oIo+ivsaWPDPT/g=
+MD5-Digest: wuvgxqD1zIVN/jO92C+xNg==
+SHA1-Digest: eUzH8UnqVW7FrV+ZiifNW26fJ9g=
 
 Name: chrome/locale/sv-SE/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Gy/qUVAgAo1T07xQ1rg+Vw==
-SHA1-Digest: FgS9yPOdc+sdCf6yOEOiMt+jNh0=
+MD5-Digest: zDnGkEyPXDuir5hWGDSDrQ==
+SHA1-Digest: hRfI9vOBUdB4pUvyLTfJnT1P5pk=
 
 Name: chrome/locale/sv-SE/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 87KwD4ZBiqg1aQRcHcUUIA==
-SHA1-Digest: a5izjXRk2la0mD4gJ4qauTC4LZY=
+MD5-Digest: FLvhi0kAAw7Jh0V+r/OiPg==
+SHA1-Digest: wnVdDvRmrszTGthdvvLVPACNh64=
 
 Name: chrome/locale/sv-SE/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -625,13 +625,13 @@ SHA1-Digest: 1AG8FY8/1QAoJcq4TceYgMvl6HY=
 
 Name: chrome/locale/th/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 8Q/X5tROpmHTnbkHDri+lg==
-SHA1-Digest: kvYUBZ7iPb72/fOcZcQGAIW5qk0=
+MD5-Digest: gvadi3LfhhcMH2bJxvXCvQ==
+SHA1-Digest: eNFvR5JauTuMa2kOLNKErt7lC6E=
 
 Name: chrome/locale/th/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: dyhLuG2oZG5+tH5uSolJ6w==
-SHA1-Digest: aMycbtD/+ijxIQAvDR656bhgZgs=
+MD5-Digest: bUdyPifi9h3LzTwIIpQCFQ==
+SHA1-Digest: GPL46koDhnpQOw5Dkx6LG7V/1Ro=
 
 Name: chrome/locale/th/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -640,13 +640,13 @@ SHA1-Digest: DjtnrrxXVawVqnXvtycuebNiOiY=
 
 Name: chrome/locale/tr/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: LONKw3uXuglFA6GIqvYgVQ==
-SHA1-Digest: gLYuwqnd4UAOAlR374UN+i6NLyc=
+MD5-Digest: 2f6ep1+Hox9toq6TRlxoUg==
+SHA1-Digest: D6+88p3W3jfMAbVb5/Jc5eRC/JE=
 
 Name: chrome/locale/tr/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: MTEYPD+9fEs3mZkR9R5fYg==
-SHA1-Digest: xUGJ5Grns104cklX1VtdVdd0/vI=
+MD5-Digest: wLgWotlwGbEUUt5mJtt2NA==
+SHA1-Digest: pG3TinSGZsHVeuQStvwL/wG18JE=
 
 Name: chrome/locale/tr/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -655,13 +655,13 @@ SHA1-Digest: TUATxV7/4nBW5avrSXpsHVNuz3w=
 
 Name: chrome/locale/uk/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: kVI2BUJwC7DuufibLfj6BQ==
-SHA1-Digest: /XRJV+RIkhGYxUndOiTX+6YJAzk=
+MD5-Digest: YirCiv9mWY4r/l4AnBneag==
+SHA1-Digest: 9QVirmN0KtrbPw3vDaKwQRfbi5s=
 
 Name: chrome/locale/uk/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Jt4RK2T9Jyk1nvs1FHy3qQ==
-SHA1-Digest: u8y7z8LKMWQpb4PKKWrM/+pM2o0=
+MD5-Digest: 6M8KgOUU0Rrv9lXn1xoAWg==
+SHA1-Digest: jSOHF7CGZ8yhf1LlQnxWhzZ5+k8=
 
 Name: chrome/locale/uk/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -670,28 +670,28 @@ SHA1-Digest: ENx1Rs6Z/Iwxv87U1Oh/0V2cUhY=
 
 Name: chrome/locale/vi/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 3eJCOXU4G35c6PzMQpfmvg==
-SHA1-Digest: STH/3/CKZuFguSSdYPR5qhYp3Cc=
+MD5-Digest: YDgceEGlujs8mEDsD0tOxw==
+SHA1-Digest: P2lWAG8WdxpePSDcMRNZmn3zqYA=
 
 Name: chrome/locale/vi/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Frh91sLqcYEVb64a6T0+Cw==
-SHA1-Digest: EsGIxZkz9YLJXDstTfDb216294A=
+MD5-Digest: g+2uPc/ERK4odbJt2/Elww==
+SHA1-Digest: YffkxHOZVxJEME2YVSsX+uGCKMA=
 
 Name: chrome/locale/vi/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: XZawGwsDtPwdoQkWm/529A==
-SHA1-Digest: 1VC+oD/EzHEbQbT7aINcuLs3ebQ=
+MD5-Digest: MEPatpzi8KdeL+t40jLjiw==
+SHA1-Digest: ytPx4JvMkZ4YS4dYL1SoEFW0g2E=
 
 Name: chrome/locale/zh-CN/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: RorJZ8KmWZwsI/8PotcGOw==
-SHA1-Digest: rXgR3Gy+sSUMu/eTHtlP0ZKzrc4=
+MD5-Digest: zl9Cal8QUlrd6x7EXPvKtQ==
+SHA1-Digest: cZCHSxjcONblBhePPbmXk0wPaS4=
 
 Name: chrome/locale/zh-CN/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: EBVivdfbg90Kj4i+c9PKuQ==
-SHA1-Digest: xCp0IYlHggumI+UU4b14kBj3Ppo=
+MD5-Digest: tYySpt9AUenNcKR3dnyZxQ==
+SHA1-Digest: yGJq6gh13xUshFd4LUI2vjm2d7s=
 
 Name: chrome/locale/zh-CN/overlay.dtd
 Digest-Algorithms: MD5 SHA1
@@ -700,28 +700,33 @@ SHA1-Digest: TfrRNX2fZ6gXTFJaSuNt0eWzG3A=
 
 Name: chrome/locale/zh-TW/composer.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: wSigYVZa4CZnajE8dx5f2g==
-SHA1-Digest: t38y1deSRtIgnOUlco6DUw/U/nQ=
+MD5-Digest: gLIET91Yfn3yDgAlEYf0tA==
+SHA1-Digest: w4xWwa1Og9DV44Z58sCox3mrc88=
 
 Name: chrome/locale/zh-TW/global.properties
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: V/Rpc+05EB7cZH9jz0DCFw==
-SHA1-Digest: i7au1BbmUigVr2IpC6TitB2oKyM=
+MD5-Digest: a7BBhhaNcNm+lKMC3tAmUA==
+SHA1-Digest: sN+t8IXQq4Rzrk+9pOGc921WgI4=
 
 Name: chrome/locale/zh-TW/overlay.dtd
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: shTnAhzvu5yJS2nSMZq0Gw==
-SHA1-Digest: XDpPyUB/sojc6TQz+Eu2Miibh+U=
+MD5-Digest: cpnN/05I6HoNuYpqh0N8jA==
+SHA1-Digest: gUzvcqbd+9fEKCOxFpDpAIu1zpg=
 
 Name: chrome/skin/composer.css
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: xUb2HwDX0paWLRofyhGObg==
-SHA1-Digest: 87k/AsFLnUxKSWBEOsH6x3N7fGw=
+MD5-Digest: 7SL7oabaKbiPwmRjV3ysug==
+SHA1-Digest: rxTLi8Nji5dy1xCPCFKGhOCFqdQ=
+
+Name: chrome/skin/devToolsOverlay.css
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: 19hQZt92gCNkNoF3Hclc0Q==
+SHA1-Digest: pX1s2ZM3iCC3AhN9FnXGw+mW4o8=
 
 Name: chrome/skin/overlay.css
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: IClAzEA1ypXvg1N/fVOnzw==
-SHA1-Digest: A+y394o/7MUUqKiR5f6qGA3FpL0=
+MD5-Digest: tMVIHjoSP5HK6wLN+C5x1Q==
+SHA1-Digest: v2xlK9NBllaFRyF6VyPcPbe6C6U=
 
 Name: defaults/prefs.js
 Digest-Algorithms: MD5 SHA1
@@ -740,40 +745,45 @@ SHA1-Digest: +FIespFvU9pvnnsGgh/SZ04BrsM=
 
 Name: install.rdf
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: DMDzprv/PhoWpyEAlze0Ow==
-SHA1-Digest: BHSMEY0U2su5LaPNL7uKNu1VMl0=
+MD5-Digest: n+ptVThye1g0TkLhuczdlQ==
+SHA1-Digest: GSRSFccf04oLfCo/MqRnbDfdwKs=
 
 Name: lib/aardvark.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: mzEM82HZKr/jfcbc0l8QjQ==
-SHA1-Digest: oVP5PWiNHibjRcbXRh+0gnWqkiI=
+MD5-Digest: s8pDdV9/IZcquYNnQ4yFEA==
+SHA1-Digest: FH6Jicg/ig0lAO7/QJTqdMRsXC0=
 
 Name: lib/inspectorObserver.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: Ek9MUL5M5aExLjzx4j1MOQ==
-SHA1-Digest: Ic00WlGphF1Why0OQ62R4BLRXyQ=
+MD5-Digest: i4umbMP2F+stLKpXcHaCbQ==
+SHA1-Digest: gLhE5C6EgYR5hWoMx+fHKVWEbaA=
+
+Name: lib/inspectorObserver.js.rej
+Digest-Algorithms: MD5 SHA1
+MD5-Digest: R1E2IXKYUuM5JGU5qCJuPg==
+SHA1-Digest: mjqOfOPaq/ujpeWWdbLM9k2Z4Ns=
 
 Name: lib/keySelector.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: AEdTZG7jReGjmfUs2GlkXA==
-SHA1-Digest: V5MPLb3cknGfTbvSQgDfDAkdUos=
+MD5-Digest: inTpCa3ftqCa/fOGBKsjPQ==
+SHA1-Digest: mFwME16nyHrT3wCuUFgcuEkzFMM=
 
 Name: lib/main.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: otAMqKq8NvJ/mRrh7o71Lg==
-SHA1-Digest: 8TP/t5i2lZmJVoA0mSyFvdCTJ2E=
+MD5-Digest: UUYwl0vHZPcQOvuGPBrkng==
+SHA1-Digest: c3aTzSyyVuCST0u8uih5Fp1PGzM=
 
 Name: lib/prefs.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: V/zMOdEM7Iv0tW8456puiw==
-SHA1-Digest: 56sGloxnzkoTNmlN09iPl80GTgk=
+MD5-Digest: 3iVPIgqF6bLO57p9uONN9Q==
+SHA1-Digest: SRc0L3eFcWCDx+ms0kek1DOxdyM=
 
 Name: lib/windowObserver.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: jBJalrZh5CeNB0JRSpZ9Ug==
-SHA1-Digest: 2cAV6+EN2WOYNh91BfG4ilbuCBs=
+MD5-Digest: M4JDU7raFTJcnLoS0SEgsw==
+SHA1-Digest: veAYxTDODvZrwsEoxslVIvSvqN0=
 
 Name: lib/windowWrapper.js
 Digest-Algorithms: MD5 SHA1
-MD5-Digest: 0gZPqUEeH34gKU10jFr8Yg==
-SHA1-Digest: K7k0s3CKa2F0mNHv5LpsCrnEJHI=
+MD5-Digest: gE0BrnSmt/1tXgCufZYtCg==
+SHA1-Digest: mgY8U4PBtd5eDUkLEMtZ7pcQjh8=
diff --git a/bootstrap.js b/bootstrap.js
index 9287f9d..0b9aa0f 100644
--- a/bootstrap.js
+++ b/bootstrap.js
@@ -1,7 +1,18 @@
 /*
- * This Source Code is subject to the terms of the Mozilla Public License
- * version 2.0 (the "License"). You can obtain a copy of the License at
- * http://mozilla.org/MPL/2.0/.
+ * This file is part of the Adblock Plus build tools,
+ * Copyright (C) 2006-2014 Eyeo GmbH
+ *
+ * Adblock Plus is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * Adblock Plus is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 const Cc = Components.classes;
@@ -9,52 +20,60 @@ const Ci = Components.interfaces;
 const Cr = Components.results;
 const Cu = Components.utils;
 
-Cu.import("resource://gre/modules/Services.jsm");
+let {Services, atob, btoa, File, TextDecoder, TextEncoder} = Cu.import("resource://gre/modules/Services.jsm", null);
 
 let addonData = null;
 
 function startup(params, reason)
 {
-	addonData = params;
-	if (Services.vc.compare(Services.appinfo.platformVersion, "10.0") < 0)
-	{
-		Components.manager.addBootstrappedManifestLocation(params.installPath);
-		onShutdown.add(function() Components.manager.removeBootstrappedManifestLocation(params.installPath));
-	}
-	Services.obs.addObserver(RequireObserver, "elemhidehelper-require", true);
-	onShutdown.add(function() Services.obs.removeObserver(RequireObserver, "elemhidehelper-require"));
+  addonData = params;
+  Services.obs.addObserver(RequireObserver, "elemhidehelper-require", true);
+  onShutdown.add(function() Services.obs.removeObserver(RequireObserver, "elemhidehelper-require"));
 
-	require("main");
+  require("main");
 }
 
 function shutdown(params, reason)
 {
-	let windowNames = ["ehh:composer"];
-	for (let i = 0; i < windowNames.length; i++)
-	{
-		let enumerator = Services.wm.getEnumerator(windowNames[i]);
-		while (enumerator.hasMoreElements())
-		{
-			let window = enumerator.getNext().QueryInterface(Ci.nsIDOMWindow);
-			window.setTimeout("window.close()", 0); // Closing immediately might not work due to modal windows
-			try
-			{
-				window.close();
-			} catch(e) {}
-		}
-	}
-	onShutdown.done = true;
-	for (let i = shutdownHandlers.length - 1; i >= 0; i --)
-	{
-		try
-		{
-			shutdownHandlers[i]();
-		}
-		catch (e)
-		{
-			Cu.reportError(e);
-		}
-	}
+  let windowNames = ["ehh:composer"];
+  for (let i = 0; i < windowNames.length; i++)
+  {
+    let enumerator = Services.wm.getEnumerator(windowNames[i]);
+    while (enumerator.hasMoreElements())
+    {
+      let window = enumerator.getNext().QueryInterface(Ci.nsIDOMWindow);
+      window.setTimeout("window.close()", 0); // Closing immediately might not work due to modal windows
+      try
+      {
+        window.close();
+      } catch(e) {}
+    }
+  }
+  onShutdown.done = true;
+  for (let i = shutdownHandlers.length - 1; i >= 0; i --)
+  {
+    try
+    {
+      shutdownHandlers[i]();
+    }
+    catch (e)
+    {
+      Cu.reportError(e);
+    }
+  }
+  shutdownHandlers = null;
+
+  // Make sure to release our ties to the modules even if the sandbox cannot be
+  // released for some reason.
+  for (let key in require.scopes)
+  {
+    let scope = require.scopes[key];
+    let list = Object.keys(scope);
+    for (let i = 0; i < list.length; i++)
+      scope[list[i]] = null;
+  }
+  require.scopes = null;
+  addonData = null;
 }
 
 function install(params, reason) {}
@@ -65,69 +84,76 @@ function uninstall(params, reason)
 let shutdownHandlers = [];
 let onShutdown =
 {
-	done: false,
-	add: function(handler)
-	{
-		if (shutdownHandlers.indexOf(handler) < 0)
-			shutdownHandlers.push(handler);
-	},
-	remove: function(handler)
-	{
-		let index = shutdownHandlers.indexOf(handler);
-		if (index >= 0)
-			shutdownHandlers.splice(index, 1);
-	}
+  done: false,
+  add: function(handler)
+  {
+    if (shutdownHandlers.indexOf(handler) < 0)
+      shutdownHandlers.push(handler);
+  },
+  remove: function(handler)
+  {
+    let index = shutdownHandlers.indexOf(handler);
+    if (index >= 0)
+      shutdownHandlers.splice(index, 1);
+  }
 };
 
 function require(module)
 {
-	let scopes = require.scopes;
-	if (!(module in scopes))
-	{
-		if (module == "info")
-		{
-			let applications = {"{a23983c0-fd0e-11dc-95ff-0800200c9a66}": "fennec", "toolkit at mozilla.org": "toolkit", "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}": "firefox", "dlm at emusic.com": "emusic", "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}": "seamonkey", "{aa3c5121-dab2-40e2-81ca-7ea25febc110}": "fennec2", "{a79fe89b-6662-4ff4-8e88-09950ad4dfde}": "conkeror", "{aa5ca914-c309-495d-91cf-3141bbb04115}": "midbrowser", "songbird at songbirdnest.com": "songbird", "prism at developer.mozilla.org": "prism", "{3 [...]
-			let appID = Services.appinfo.ID;
+  let scopes = require.scopes;
+  if (!(module in scopes))
+  {
+    if (module == "info")
+    {
+      let applications = {"{a23983c0-fd0e-11dc-95ff-0800200c9a66}": "fennec", "toolkit at mozilla.org": "toolkit", "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}": "firefox", "dlm at emusic.com": "emusic", "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}": "seamonkey", "{aa3c5121-dab2-40e2-81ca-7ea25febc110}": "fennec2", "{a79fe89b-6662-4ff4-8e88-09950ad4dfde}": "conkeror", "{aa5ca914-c309-495d-91cf-3141bbb04115}": "midbrowser", "songbird at songbirdnest.com": "songbird", "prism at developer.mozilla.org": "prism",  [...]
+      let appInfo = Services.appinfo;
 
-			scopes[module] = {};
-			scopes[module].exports =
-			{
-				addonID: addonData.id,
-				addonVersion: addonData.version,
-				addonRoot: addonData.resourceURI.spec,
-				addonName: "elemhidehelper",
-				application: (appID in applications ? applications[appID] : "other"),
-			};
-		}
-		else
-		{
-			scopes[module] = {
-				Cc: Cc,
-				Ci: Ci,
-				Cr: Cr,
-				Cu: Cu,
-				require: require,
-				
-				onShutdown: onShutdown,
-				
-				exports: {}};
-			Services.scriptloader.loadSubScript(addonData.resourceURI.spec + "lib/" + module + ".js", scopes[module]);
-		}
-	}
-	return scopes[module].exports;
+      scopes[module] = {};
+      scopes[module].exports =
+      {
+        addonID: addonData.id,
+        addonVersion: addonData.version,
+        addonRoot: addonData.resourceURI.spec,
+        addonName: "elemhidehelper",
+        application: (appInfo.ID in applications ? applications[appInfo.ID] : "other"),
+        applicationVersion: appInfo.version,
+        platform: "gecko",
+        platformVersion: appInfo.platformVersion
+      };
+    }
+    else
+    {
+      let url = addonData.resourceURI.spec + "lib/" + module + ".js";
+      scopes[module] = {
+        Cc: Cc,
+        Ci: Ci,
+        Cr: Cr,
+        Cu: Cu,
+        atob: atob,
+        btoa: btoa,
+        File: File,
+        require: require,
+        
+        onShutdown: onShutdown,
+        
+        exports: {}};
+      Services.scriptloader.loadSubScript(url, scopes[module]);
+    }
+  }
+  return scopes[module].exports;
 }
 require.scopes = {__proto__: null};
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 let RequireObserver =
 {
-	observe: function(subject, topic, data)
-	{
-		if (topic == "elemhidehelper-require")
-		{
-			subject.wrappedJSObject.exports = require(data);
-		}
-	},
+  observe: function(subject, topic, data)
+  {
+    if (topic == "elemhidehelper-require")
+    {
+      subject.wrappedJSObject.exports = require(data);
+    }
+  },
 
-	QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
+  QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
 };
\ No newline at end of file
diff --git a/chrome.manifest b/chrome.manifest
index d53faab..d235b54 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -5,8 +5,8 @@ locale    elemhidehelper ar chrome/locale/ar/
 locale    elemhidehelper bg chrome/locale/bg/
 locale    elemhidehelper ca chrome/locale/ca/
 locale    elemhidehelper cs chrome/locale/cs/
-locale    elemhidehelper da chrome/locale/da/
 locale    elemhidehelper de chrome/locale/de/
+locale    elemhidehelper dsb chrome/locale/dsb/
 locale    elemhidehelper el chrome/locale/el/
 locale    elemhidehelper en-GB chrome/locale/en-GB/
 locale    elemhidehelper es-AR chrome/locale/es-AR/
@@ -17,17 +17,17 @@ locale    elemhidehelper eu chrome/locale/eu/
 locale    elemhidehelper fa chrome/locale/fa/
 locale    elemhidehelper fi chrome/locale/fi/
 locale    elemhidehelper fr chrome/locale/fr/
-locale    elemhidehelper gl chrome/locale/gl/
 locale    elemhidehelper he chrome/locale/he/
 locale    elemhidehelper hr chrome/locale/hr/
+locale    elemhidehelper hsb chrome/locale/hsb/
 locale    elemhidehelper hu chrome/locale/hu/
-locale    elemhidehelper hy chrome/locale/hy/
+locale    elemhidehelper hy-AM chrome/locale/hy-AM/
+locale    elemhidehelper id chrome/locale/id/
 locale    elemhidehelper it chrome/locale/it/
 locale    elemhidehelper ja chrome/locale/ja/
 locale    elemhidehelper kk chrome/locale/kk/
 locale    elemhidehelper ko chrome/locale/ko/
 locale    elemhidehelper lt chrome/locale/lt/
-locale    elemhidehelper nb-NO chrome/locale/nb-NO/
 locale    elemhidehelper nl chrome/locale/nl/
 locale    elemhidehelper pl chrome/locale/pl/
 locale    elemhidehelper pt-BR chrome/locale/pt-BR/
diff --git a/chrome/content/common.js b/chrome/content/common.js
index 3ac3c90..cf56df1 100644
--- a/chrome/content/common.js
+++ b/chrome/content/common.js
@@ -13,10 +13,10 @@ Cu.import("resource://gre/modules/Services.jsm");
 
 function require(module)
 {
-	let result = {};
-	result.wrappedJSObject = result;
-	Services.obs.notifyObservers(result, "elemhidehelper-require", module);
-	return result.exports;
+  let result = {};
+  result.wrappedJSObject = result;
+  Services.obs.notifyObservers(result, "elemhidehelper-require", module);
+  return result.exports;
 }
 
 function E(id) document.getElementById(id);
diff --git a/chrome/content/composer.js b/chrome/content/composer.js
index f2c8b62..77b180d 100644
--- a/chrome/content/composer.js
+++ b/chrome/content/composer.js
@@ -23,44 +23,44 @@ Cu.import(abpURL.spec);
  *******************/
 
 function NodeData(node, parentNode) {
-	this.tagName = {value: node.tagName, checked: false};
-
-	if (typeof parentNode == "undefined")
-		parentNode = (node.parentNode && node.parentNode.nodeType == node.ELEMENT_NODE ? new NodeData(node.parentNode) : null);
-	this.parentNode = parentNode;
-
-	var prevSibling = node.previousSibling;
-	while (prevSibling && prevSibling.nodeType != node.ELEMENT_NODE)
-		prevSibling = prevSibling.previousSibling;
-	this.prevSibling = (prevSibling ? new NodeData(prevSibling, this.parentNode) : null);
-
-	if (parentNode && !prevSibling)
-		this.firstChild = {checked: false};
-
-	var nextSibling = node.nextSibling;
-	while (nextSibling && nextSibling.nodeType != node.ELEMENT_NODE)
-		nextSibling = nextSibling.nextSibling;
-	if (parentNode && !nextSibling)
-		this.lastChild = {checked: false};
-
-	this.attributes = [];
-	for (var i = 0; i < node.attributes.length; i++) {
-		var attribute = node.attributes[i];
-		var data = {name: attribute.name, value: attribute.value, selected: attribute.value, checked: false};
-		if (data.name == "id" || data.name == "class")
-			this.attributes.unshift(data);
-		else
-			this.attributes.push(data);
-	}
-
-	if (this.attributes.length >= 2 && this.attributes[1].name == "id") {
-		// Make sure ID attribute comes first
-		var tmp = this.attributes[1];
-		this.attributes[1] = this.attributes[0];
-		this.attributes[0] = tmp;
-	}
-
-	this.customCSS = {selected: "", checked: false};
+  this.tagName = {value: node.tagName, checked: false};
+
+  if (typeof parentNode == "undefined")
+    parentNode = (node.parentNode && node.parentNode.nodeType == node.ELEMENT_NODE ? new NodeData(node.parentNode) : null);
+  this.parentNode = parentNode;
+
+  var prevSibling = node.previousSibling;
+  while (prevSibling && prevSibling.nodeType != node.ELEMENT_NODE)
+    prevSibling = prevSibling.previousSibling;
+  this.prevSibling = (prevSibling ? new NodeData(prevSibling, this.parentNode) : null);
+
+  if (parentNode && !prevSibling)
+    this.firstChild = {checked: false};
+
+  var nextSibling = node.nextSibling;
+  while (nextSibling && nextSibling.nodeType != node.ELEMENT_NODE)
+    nextSibling = nextSibling.nextSibling;
+  if (parentNode && !nextSibling)
+    this.lastChild = {checked: false};
+
+  this.attributes = [];
+  for (var i = 0; i < node.attributes.length; i++) {
+    var attribute = node.attributes[i];
+    var data = {name: attribute.name, value: attribute.value, selected: attribute.value, checked: false};
+    if (data.name == "id" || data.name == "class")
+      this.attributes.unshift(data);
+    else
+      this.attributes.push(data);
+  }
+
+  if (this.attributes.length >= 2 && this.attributes[1].name == "id") {
+    // Make sure ID attribute comes first
+    var tmp = this.attributes[1];
+    this.attributes[1] = this.attributes[0];
+    this.attributes[0] = tmp;
+  }
+
+  this.customCSS = {selected: "", checked: false};
 }
 
 /*******************
@@ -68,46 +68,46 @@ function NodeData(node, parentNode) {
  *******************/
 
 function TreeView(tree) {
-	var origView = tree.view;
-	this.getRowProperties = TreeView_getRowProperties;
-	this.getCellProperties = TreeView_getCellProperties;
+  var origView = tree.view;
+  this.getRowProperties = TreeView_getRowProperties;
+  this.getCellProperties = TreeView_getCellProperties;
 
-	createQIProxy(this, origView);
+  createQIProxy(this, origView);
 
-	for (var key in origView) {
-		if (this.hasOwnProperty(key))
-			continue;
+  for (var key in origView) {
+    if (this.hasOwnProperty(key))
+      continue;
 
-		createPropertyProxy(this, origView, key);
-	}
+    createPropertyProxy(this, origView, key);
+  }
 
-	tree.view = this;
+  tree.view = this;
 }
 
 function createQIProxy(obj, orig) {
-	obj.QueryInterface = function(iid) {
-		var impl = orig.QueryInterface(iid);
-		if (impl != orig)
-			throw Cr.NS_ERROR_NO_INTERFACE;
+  obj.QueryInterface = function(iid) {
+    var impl = orig.QueryInterface(iid);
+    if (impl != orig)
+      throw Cr.NS_ERROR_NO_INTERFACE;
 
-		return obj;
-	};
+    return obj;
+  };
 }
 
 function createPropertyProxy(obj, orig, key) {
-	if (typeof orig[key] == "function") {
-		obj[key] = function() {
-			return orig[key].apply(orig, arguments);
-		};
-	}
-	else {
-		obj.__defineGetter__(key, function() {
-			return orig[key];
-		});
-		obj.__defineSetter__(key, function(value) {
-			orig[key] = value;
-		});
-	}
+  if (typeof orig[key] == "function") {
+    obj[key] = function() {
+      return orig[key].apply(orig, arguments);
+    };
+  }
+  else {
+    obj.__defineGetter__(key, function() {
+      return orig[key];
+    });
+    obj.__defineSetter__(key, function(value) {
+      orig[key] = value;
+    });
+  }
 }
 
 var atomService = Cc["@mozilla.org/atom-service;1"].getService(Ci.nsIAtomService);
@@ -115,16 +115,16 @@ var selectedAtom = atomService.getAtom("selected-false");
 var anchorAtom = atomService.getAtom("anchor");
 
 function TreeView_getRowProperties(row, properties) {
-	if (!this.selection.isSelected(row))
-		properties.AppendElement(selectedAtom);
+  if (!this.selection.isSelected(row))
+    properties.AppendElement(selectedAtom);
 
-	var item = this.getItemAtIndex(row);
-	if (item && (item.nodeData.expression != "*" || item.nodeData == nodeData))
-		properties.AppendElement(anchorAtom);
+  var item = this.getItemAtIndex(row);
+  if (item && (item.nodeData.expression != "*" || item.nodeData == nodeData))
+    properties.AppendElement(anchorAtom);
 }
 
 function TreeView_getCellProperties(row, col, properties) {
-	this.getRowProperties(row, properties);
+  this.getRowProperties(row, properties);
 }
 
 /*********************
@@ -132,501 +132,513 @@ function TreeView_getCellProperties(row, col, properties) {
  *********************/
 
 function init() {
-	var element = window.arguments[0];
-	doc = element.ownerDocument;
-	var wnd = doc.defaultView;
-
-	// Check whether element hiding group is disabled
-	let subscription = AdblockPlus.getSubscription("~eh~");
-	if (subscription && subscription.disabled)
-	{
-		let warning = document.getElementById("groupDisabledWarning");
-		if (/\?1\?/.test(warning.textContent))
-			warning.textContent = warning.textContent.replace(/\?1\?/g, subscription.title);
-		warning.hidden = false;
-	}
-
-	nodeData = new NodeData(element);
-	nodeData.tagName.checked = true;
-	if (nodeData.attributes.length > 0)
-	{
-		let maxLen = 0;
-		let bestAttr = null;
-		for (let i = 0; i < nodeData.attributes.length; i++)
-		{
-			let len = nodeData.attributes[i].value.length;
-			if ((nodeData.attributes[i].name == "id" || nodeData.attributes[i].name == "class") && len)
-			{
-				len = 0x7FFFFFFF;
-				nodeData.tagName.checked = false;
-			}
-			if (len > maxLen)
-			{
-				maxLen = len;
-				bestAttr = nodeData.attributes[i];
-			}
-		}
-		if (bestAttr)
-		{
-			bestAttr.selected = bestAttr.value;
-			bestAttr.checked = true;
-		}
-	}
-
-	let domain = wnd.location.hostname;
-	let selectedDomain;
-	switch (Prefs.composer_defaultDomain)
-	{
-		case 0:
-			selectedDomain = "";
-			break;
-		case 1:
-			try
-			{
-				// EffectiveTLDService will throw for IP addresses, just go to the next case then
-				let effectiveTLD = Cc["@mozilla.org/network/effective-tld-service;1"].getService(Ci.nsIEffectiveTLDService);
-				selectedDomain = effectiveTLD.getPublicSuffixFromHost(domain);
-				break;
-			} catch (e) {}
-		case 2:
-			try
-			{
-				// EffectiveTLDService will throw for IP addresses, just go to the next case then
-				let effectiveTLD = Cc["@mozilla.org/network/effective-tld-service;1"].getService(Ci.nsIEffectiveTLDService);
-				selectedDomain = effectiveTLD.getBaseDomainFromHost(domain);
-				break;
-			} catch (e) {}
-		case 3:
-			selectedDomain = domain.replace(/^www\./, "");
-			break;
-		default:
-			selectedDomain = domain;
-			break;
-	}
-	domainData = {value: domain, selected: selectedDomain};
-
-	fillDomains(domainData);
-	fillNodes(nodeData);
-	setAdvancedMode(document.documentElement.getAttribute("advancedMode") == "true");
-	updateExpression();
-
-	setTimeout(function() {
-		document.getElementById("domainGroup").selectedItem.focus();
-		if (document.getElementById("preview").checked)
-			togglePreview(true);
-	}, 0);
+  var element = window.arguments[0];
+  doc = element.ownerDocument;
+  var wnd = doc.defaultView;
+
+  // Check whether element hiding group is disabled
+  let subscription = AdblockPlus.getSubscription("~eh~");
+  if (subscription && subscription.disabled)
+  {
+    let warning = document.getElementById("groupDisabledWarning");
+    if (/\?1\?/.test(warning.textContent))
+      warning.textContent = warning.textContent.replace(/\?1\?/g, subscription.title);
+    warning.hidden = false;
+  }
+
+  nodeData = new NodeData(element);
+  nodeData.tagName.checked = true;
+  if (nodeData.attributes.length > 0)
+  {
+    let maxLen = 0;
+    let bestAttr = null;
+    for (let i = 0; i < nodeData.attributes.length; i++)
+    {
+      let len = nodeData.attributes[i].value.length;
+      if ((nodeData.attributes[i].name == "id" || nodeData.attributes[i].name == "class") && len)
+      {
+        len = 0x7FFFFFFF;
+        nodeData.tagName.checked = false;
+      }
+      if (len > maxLen)
+      {
+        maxLen = len;
+        bestAttr = nodeData.attributes[i];
+      }
+    }
+    if (bestAttr)
+    {
+      bestAttr.selected = bestAttr.value;
+      bestAttr.checked = true;
+    }
+  }
+
+  let domain = wnd.location.hostname;
+  let selectedDomain;
+  switch (Prefs.composer_defaultDomain)
+  {
+    case 0:
+      selectedDomain = "";
+      break;
+    case 1:
+      try
+      {
+        // EffectiveTLDService will throw for IP addresses, just go to the next case then
+        let effectiveTLD = Cc["@mozilla.org/network/effective-tld-service;1"].getService(Ci.nsIEffectiveTLDService);
+        selectedDomain = effectiveTLD.getPublicSuffixFromHost(domain);
+        break;
+      } catch (e) {}
+    case 2:
+      try
+      {
+        // EffectiveTLDService will throw for IP addresses, just go to the next case then
+        let effectiveTLD = Cc["@mozilla.org/network/effective-tld-service;1"].getService(Ci.nsIEffectiveTLDService);
+        selectedDomain = effectiveTLD.getBaseDomainFromHost(domain);
+        break;
+      } catch (e) {}
+    case 3:
+      selectedDomain = domain.replace(/^www\./, "");
+      break;
+    default:
+      selectedDomain = domain;
+      break;
+  }
+  domainData = {value: domain, selected: selectedDomain};
+
+  fillDomains(domainData);
+  fillNodes(nodeData);
+  setAdvancedMode(document.documentElement.getAttribute("advancedMode") == "true");
+  updateExpression();
+
+  setTimeout(function() {
+    document.getElementById("domainGroup").selectedItem.focus();
+    if (document.getElementById("preview").checked)
+      togglePreview(true);
+  }, 0);
 }
 
 function updateExpression()
 {
-	var curNode = nodeData;
-
-	function escapeName(name)
-	{
-		return name.replace(/([^\w\-])/g, "\\$1")
-							 .replace(/\\([\{\}])/g, escapeChar);
-	}
-
-	while (curNode)
-	{
-		let expression = (curNode.tagName.checked ? curNode.tagName.value : "");
-
-		for (var i = 0; i < curNode.attributes.length; i++)
-		{
-			var attr = curNode.attributes[i];
-
-			if (attr.checked) {
-				var escapedName = escapeName(attr.name);
-				if (attr.selected != "")
-				{
-					var op = "*=";
-					if (attr.selected == attr.value)
-						op = "=";
-					else if (attr.value.substr(0, attr.selected.length) == attr.selected)
-						op = "^=";
-					else if (attr.value.substr(attr.value.length - attr.selected.length) == attr.selected)
-						op = "$=";
-	
-					let useFallback = false;
-					if (attr.name == "id" && op == "=")
-						expression += "#" + escapeName(attr.selected).replace(/^([^a-zA-Z\\])/, escapeChar).replace(/\\(\s)$/, escapeChar);
-					else if (attr.name == "class" && /\S/.test(attr.selected))
-					{
-						let knownClasses = {};
-						for each (let cls in attr.value.split(/\s+/))
-							knownClasses[cls] = true;
-
-						let classes = attr.selected.split(/\s+/).filter(function(cls) cls != "");
-						if (classes.every(function(cls) knownClasses.hasOwnProperty(cls)))
-							expression += "." + classes.map(escapeName).join(".");
-						else
-							useFallback = true;
-					}
-					else
-						useFallback = true;
-
-					if (useFallback)
-					{
-						var escapedValue = attr.selected.replace(/(["\\])/g, '\\$1')
-																						.replace(/([\{\}])/g, escapeChar)
-																						.replace(/([^\S ])/g, escapeChar);
-						expression += "[" + escapedName + op + '"' + escapedValue + '"' + "]";
-					}
-				}
-				else
-				{
-					expression += "[" + escapedName + "]";
-				}
-			}
-		}
-
-		if (curNode.customCSS.checked && curNode.customCSS.selected != "")
-		{
-			expression += curNode.customCSS.selected
-																			.replace(/([\{\}])/g, escapeChar)
-																			.replace(/([^\S ])/g, escapeChar);
-		}
-
-		if ("firstChild" in curNode && curNode.firstChild.checked)
-			expression += ":first-child";
-		if ("lastChild" in curNode && curNode.lastChild.checked)
-			expression += ":last-child";
-
-		if (expression == "")
-			expression = "*";
-
-		curNode.expression = expression;
-
-		if (curNode.prevSibling)
-			curNode = curNode.prevSibling;
-		else
-			curNode = curNode.parentNode;
-	}
-
-	let expression = nodeData.expression;
-
-	var isParent = false;
-	var isRemoteParent = false;
-	var siblingCount = 0;
-	var firstRun = true;
-
-	var curData = nodeData;
-	while (curData) {
-		if (!firstRun && curData.expression != "*") {
-			var parentRelation = "";
-			if (isRemoteParent)
-				parentRelation = " ";
-			else if (isParent)
-				parentRelation = " > ";
-
-			var siblingRelation = "";
-			for (var i = 0; i < siblingCount; i++)
-				siblingRelation += "* + ";
-			siblingRelation = siblingRelation.replace(/^\*/, '');
-
-			var relation;
-			if (parentRelation != "" && siblingRelation != "")
-				relation = siblingRelation + "*" + parentRelation;
-			else if (parentRelation != "")
-				relation = parentRelation;
-			else
-				relation = siblingRelation;
-
-			expression = curData.expression + relation + expression;
-
-			isParent = false;
-			isRemoteParent = false;
-			siblingCount = 0;
-		}
-		firstRun = false;
-
-		if (curData.prevSibling) {
-			siblingCount++;
-			curData = curData.prevSibling;
-		}
-		else if (curData.parentNode) {
-			siblingCount = 0;
-			if (isParent)
-				isRemoteParent = true;
-			else
-				isParent = true;
-			curData = curData.parentNode;
-		}
-		else
-			curData = null;
-	}
-
-	stylesheetData = expression + "{display: none !important;}";
-	expression = domainData.selected + "##" + expression;
-
-	document.getElementById("expression").value = expression;
-
-	var tree = document.getElementById("nodes-tree");
-	if (tree.view && tree.view.selection)
-		tree.treeBoxObject.invalidateRow(tree.view.selection.currentIndex);
-
-	if (previewStyle)
-		previewStyle.textContent = stylesheetData;
+  var curNode = nodeData;
+
+  function escapeName(name)
+  {
+    return name.replace(/([^\w\-])/g, "\\$1")
+               .replace(/\\([\{\}])/g, escapeChar);
+  }
+
+  while (curNode)
+  {
+    let expression = (curNode.tagName.checked ? curNode.tagName.value : "");
+
+    for (var i = 0; i < curNode.attributes.length; i++)
+    {
+      var attr = curNode.attributes[i];
+
+      if (attr.checked) {
+        var escapedName = escapeName(attr.name);
+        if (attr.selected != "")
+        {
+          var op = "*=";
+          if (attr.selected == attr.value)
+            op = "=";
+          else if (attr.value.substr(0, attr.selected.length) == attr.selected)
+            op = "^=";
+          else if (attr.value.substr(attr.value.length - attr.selected.length) == attr.selected)
+            op = "$=";
+  
+          let useFallback = false;
+          if (attr.name == "id" && op == "=")
+            expression += "#" + escapeName(attr.selected).replace(/^([^a-zA-Z\\])/, escapeChar).replace(/\\(\s)$/, escapeChar);
+          else if (attr.name == "class" && /\S/.test(attr.selected))
+          {
+            let knownClasses = {};
+            for each (let cls in attr.value.split(/\s+/))
+              knownClasses[cls] = true;
+
+            let classes = attr.selected.split(/\s+/).filter(function(cls) cls != "");
+            if (classes.every(function(cls) knownClasses.hasOwnProperty(cls)))
+              expression += "." + classes.map(escapeName).join(".");
+            else
+              useFallback = true;
+          }
+          else
+            useFallback = true;
+
+          if (useFallback)
+          {
+            var escapedValue = attr.selected.replace(/(["\\])/g, '\\$1')
+                                            .replace(/([\{\}])/g, escapeChar)
+                                            .replace(/([^\S ])/g, escapeChar);
+            expression += "[" + escapedName + op + '"' + escapedValue + '"' + "]";
+          }
+        }
+        else
+        {
+          expression += "[" + escapedName + "]";
+        }
+      }
+    }
+
+    if (curNode.customCSS.checked && curNode.customCSS.selected != "")
+    {
+      expression += curNode.customCSS.selected
+                                      .replace(/([\{\}])/g, escapeChar)
+                                      .replace(/([^\S ])/g, escapeChar);
+    }
+
+    if ("firstChild" in curNode && curNode.firstChild.checked)
+      expression += ":first-child";
+    if ("lastChild" in curNode && curNode.lastChild.checked)
+      expression += ":last-child";
+
+    if (expression == "")
+      expression = "*";
+
+    curNode.expression = expression;
+
+    if (curNode.prevSibling)
+      curNode = curNode.prevSibling;
+    else
+      curNode = curNode.parentNode;
+  }
+
+  let expression = nodeData.expression;
+
+  var isParent = false;
+  var isRemoteParent = false;
+  var siblingCount = 0;
+  var firstRun = true;
+
+  var curData = nodeData;
+  while (curData) {
+    if (!firstRun && curData.expression != "*") {
+      var parentRelation = "";
+      if (isRemoteParent)
+        parentRelation = " ";
+      else if (isParent)
+        parentRelation = " > ";
+
+      var siblingRelation = "";
+      for (var i = 0; i < siblingCount; i++)
+        siblingRelation += "* + ";
+      siblingRelation = siblingRelation.replace(/^\*/, '');
+
+      var relation;
+      if (parentRelation != "" && siblingRelation != "")
+        relation = siblingRelation + "*" + parentRelation;
+      else if (parentRelation != "")
+        relation = parentRelation;
+      else
+        relation = siblingRelation;
+
+      expression = curData.expression + relation + expression;
+
+      isParent = false;
+      isRemoteParent = false;
+      siblingCount = 0;
+    }
+    firstRun = false;
+
+    if (curData.prevSibling) {
+      siblingCount++;
+      curData = curData.prevSibling;
+    }
+    else if (curData.parentNode) {
+      siblingCount = 0;
+      if (isParent)
+        isRemoteParent = true;
+      else
+        isParent = true;
+      curData = curData.parentNode;
+    }
+    else
+      curData = null;
+  }
+
+  stylesheetData = expression + "{display: none !important;}";
+  expression = domainData.selected + "##" + expression;
+
+  document.getElementById("expression").value = expression;
+
+  var tree = document.getElementById("nodes-tree");
+  if (tree.view && tree.view.selection)
+    tree.treeBoxObject.invalidateRow(tree.view.selection.currentIndex);
+
+  if (previewStyle)
+    previewStyle.textContent = stylesheetData;
 }
 
 function escapeChar(dummy, match)
 {
-	return "\\" + match.charCodeAt(0).toString(16) + " ";
+  return "\\" + match.charCodeAt(0).toString(16) + " ";
 }
 
 function fillDomains(domainData) {
-	var list = document.getElementById("domainGroup");
-
-	var commandHandler = function() {
-		changeDomain(this);
-	};
-
-	var node = document.createElement("radio");
-	node.setAttribute("label", list.getAttribute("_labelnone"));
-	node.setAttribute("value", "");
-	node.addEventListener("command", commandHandler, false);
-	if (domainData.selected == "")
-		node.setAttribute("selected", "true");
-	list.appendChild(node);
-
-	var parts = domainData.value.split(".");
-	if (parts[0] == "")
-		parts.splice(0, 1);
-
-	for (var i = 1; i <= parts.length; i++) {
-		var curDomain = parts.slice(parts.length - i).join(".");
-
-		node = document.createElement("radio");
-		node.setAttribute("label", curDomain)
-		node.setAttribute("value", curDomain);
-		node.addEventListener("command", commandHandler, false);
-		if (domainData.selected == curDomain)
-			node.setAttribute("selected", "true");
-		list.appendChild(node);
-	}
+  var list = document.getElementById("domainGroup");
+
+  var commandHandler = function() {
+    changeDomain(this);
+  };
+
+  var node = document.createElement("radio");
+  node.setAttribute("label", list.getAttribute("_labelnone"));
+  node.setAttribute("value", "");
+  node.addEventListener("command", commandHandler, false);
+  if (domainData.selected == "")
+    node.setAttribute("selected", "true");
+  list.appendChild(node);
+
+  var parts = domainData.value.split(".");
+  if (parts[0] == "")
+    parts.shift();
+
+  for (var i = 1; i <= parts.length; i++) {
+    if (parts[parts.length - i] == "")
+      continue;
+
+    var curDomain = parts.slice(parts.length - i).join(".");
+
+    node = document.createElement("radio");
+    node.setAttribute("label", curDomain)
+    node.setAttribute("value", curDomain);
+    node.addEventListener("command", commandHandler, false);
+    if (domainData.selected == curDomain)
+      node.setAttribute("selected", "true");
+    list.appendChild(node);
+  }
 }
 
 function fillNodes(nodeData) {
-	var curContainer = document.createElement("treechildren");
-	var curChildren = null;
-	while (nodeData) {
-		var id = "";
-		var className = "";
-		var i = 0;
-		if (nodeData.attributes.length > i && nodeData.attributes[i].name == "id")
-			id = nodeData.attributes[i++].value;
-		if (nodeData.attributes.length > i && nodeData.attributes[i].name == "class")
-			className = nodeData.attributes[i++].value;
-
-		var item = document.createElement("treeitem");
-		var row = document.createElement("treerow");
-
-		var cell = document.createElement("treecell");
-		cell.setAttribute("label", nodeData.tagName.value);
-		row.appendChild(cell);
-
-		cell = document.createElement("treecell");
-		cell.setAttribute("label", id);
-		row.appendChild(cell);
-
-		cell = document.createElement("treecell");
-		cell.setAttribute("label", className);
-		row.appendChild(cell);
-
-		item.appendChild(row);
-		item.nodeData = nodeData;
-
-		if (curChildren) {
-			item.appendChild(curChildren);
-			item.setAttribute("container", "true");
-			item.setAttribute("open", "true");
-		}
-		curChildren = null;
-
-		if (curContainer.firstChild)
-			curContainer.insertBefore(item, curContainer.firstChild);
-		else
-			curContainer.appendChild(item);
-
-		if (nodeData.prevSibling)
-			nodeData = nodeData.prevSibling;
-		else if (nodeData.parentNode) {
-			curChildren = curContainer;
-			curContainer = document.createElement("treechildren");
-			nodeData = nodeData.parentNode;
-		}
-		else
-			nodeData = null;
-	}
-
-	var tree = document.getElementById("nodes-tree");
-	var body = document.getElementById("nodes-tree-children");
-	while (curContainer.firstChild)
-		body.appendChild(curContainer.firstChild);
+  var curContainer = document.createElement("treechildren");
+  var curChildren = null;
+  while (nodeData) {
+    var id = "";
+    var className = "";
+    var i = 0;
+    if (nodeData.attributes.length > i && nodeData.attributes[i].name == "id")
+      id = nodeData.attributes[i++].value;
+    if (nodeData.attributes.length > i && nodeData.attributes[i].name == "class")
+      className = nodeData.attributes[i++].value;
+
+    var item = document.createElement("treeitem");
+    var row = document.createElement("treerow");
+
+    var cell = document.createElement("treecell");
+    cell.setAttribute("label", nodeData.tagName.value);
+    row.appendChild(cell);
+
+    cell = document.createElement("treecell");
+    cell.setAttribute("label", id);
+    row.appendChild(cell);
+
+    cell = document.createElement("treecell");
+    cell.setAttribute("label", className);
+    row.appendChild(cell);
+
+    item.appendChild(row);
+    item.nodeData = nodeData;
+
+    if (curChildren) {
+      item.appendChild(curChildren);
+      item.setAttribute("container", "true");
+      item.setAttribute("open", "true");
+    }
+    curChildren = null;
+
+    if (curContainer.firstChild)
+      curContainer.insertBefore(item, curContainer.firstChild);
+    else
+      curContainer.appendChild(item);
+
+    if (nodeData.prevSibling)
+      nodeData = nodeData.prevSibling;
+    else if (nodeData.parentNode) {
+      curChildren = curContainer;
+      curContainer = document.createElement("treechildren");
+      nodeData = nodeData.parentNode;
+    }
+    else
+      nodeData = null;
+  }
+
+  var tree = document.getElementById("nodes-tree");
+  var body = document.getElementById("nodes-tree-children");
+  while (curContainer.firstChild)
+    body.appendChild(curContainer.firstChild);
 }
 
 function createAttribute(template, attr, text, value)
 {
-	template = E(template == "basic" ? "basicAttributeTemplate" : "advancedAttributeTemplate");
-
-	let result = template.cloneNode(true);
-	result.removeAttribute("id");
-	result.removeAttribute("hidden");
-	result.attr = attr;
-
-	let checkbox = result.getElementsByClassName("checkbox")[0];
-	checkbox.setAttribute("checked", attr.checked);
-	checkbox.attr = attr;
-
-	let label = result.getElementsByClassName("label");
-	if (label.length)
-	{
-		label = label[0];
-		label.setAttribute("value", text);
-
-		let randID = "i" + String(Math.random()).replace(/\D/g, "");
-		checkbox.setAttribute("id", randID);
-		label.setAttribute("control", randID);
-	}
-	else
-		checkbox.setAttribute("label", text);
-
-	let textbox = result.getElementsByClassName("textbox");
-	if (textbox.length)
-	{
-		textbox = textbox[0];
-		textbox.setAttribute("value", value);
-		textbox.attr = attr;
-	}
-
-	return result;
+  template = E(template == "basic" ? "basicAttributeTemplate" : "advancedAttributeTemplate");
+
+  let result = template.cloneNode(true);
+  result.removeAttribute("id");
+  result.removeAttribute("hidden");
+  result.attr = attr;
+
+  let checkbox = result.getElementsByClassName("checkbox")[0];
+  checkbox.setAttribute("checked", attr.checked);
+  checkbox.attr = attr;
+
+  let label = result.getElementsByClassName("label");
+  if (label.length)
+  {
+    label = label[0];
+    label.setAttribute("value", text);
+
+    let randID = "i" + String(Math.random()).replace(/\D/g, "");
+    checkbox.setAttribute("id", randID);
+    label.setAttribute("control", randID);
+  }
+  else
+    checkbox.setAttribute("label", text);
+
+  let textbox = result.getElementsByClassName("textbox");
+  if (textbox.length)
+  {
+    textbox = textbox[0];
+    textbox.setAttribute("value", value);
+    textbox.attr = attr;
+  }
+
+  return result;
 }
 
 function fillAttributes(nodeData)
 {
-	selectedNode = nodeData;
-
-	let list = document.getElementById("attributes-list");
-	while(list.firstChild)
-		list.removeChild(list.firstChild);
-
-	// Add tag name entry
-	let node = createAttribute("basic", nodeData.tagName, list.getAttribute("_labeltagname") + " " + nodeData.tagName.value);
-	list.appendChild(node);
-
-	// Add first/last child entries
-	if (advancedMode && "firstChild" in nodeData)
-	{
-		node = createAttribute("basic", nodeData.firstChild, list.getAttribute("_labelfirstchild"));
-		list.appendChild(node);
-	}
-	if (advancedMode && "lastChild" in nodeData)
-	{
-		node = createAttribute("basic", nodeData.lastChild, list.getAttribute("_labellastchild"));
-		list.appendChild(node);
-	}
-
-	// Add attribute entries
-	for (let i = 0; i < nodeData.attributes.length; i++)
-	{
-		let attr = nodeData.attributes[i];
-		node = createAttribute(advancedMode ? "advanced" : "basic", attr, attr.name + ": " + attr.value, attr.selected);
-		list.appendChild(node);
-	}
-
-	if (advancedMode)
-	{
-		// Add custom CSS entry
-		node = createAttribute("advanced", nodeData.customCSS, list.getAttribute("_labelcustom"), nodeData.customCSS.selected);
-		list.appendChild(node);
-	}
+  selectedNode = nodeData;
+
+  let list = document.getElementById("attributes-list");
+  while(list.firstChild)
+    list.removeChild(list.firstChild);
+
+  // Add tag name entry
+  let node = createAttribute("basic", nodeData.tagName, list.getAttribute("_labeltagname") + " " + nodeData.tagName.value);
+  list.appendChild(node);
+
+  // Add first/last child entries
+  if (advancedMode && "firstChild" in nodeData)
+  {
+    node = createAttribute("basic", nodeData.firstChild, list.getAttribute("_labelfirstchild"));
+    list.appendChild(node);
+  }
+  if (advancedMode && "lastChild" in nodeData)
+  {
+    node = createAttribute("basic", nodeData.lastChild, list.getAttribute("_labellastchild"));
+    list.appendChild(node);
+  }
+
+  // Add attribute entries
+  for (let i = 0; i < nodeData.attributes.length; i++)
+  {
+    let attr = nodeData.attributes[i];
+    node = createAttribute(advancedMode ? "advanced" : "basic", attr, attr.name + ": " + attr.value, attr.selected);
+    list.appendChild(node);
+  }
+
+  if (advancedMode)
+  {
+    // Add custom CSS entry
+    node = createAttribute("advanced", nodeData.customCSS, list.getAttribute("_labelcustom"), nodeData.customCSS.selected);
+    list.appendChild(node);
+  }
 }
 
 function togglePreview(preview) {
-	if (preview) {
-		if (!previewStyle || !previewStyle.parentNode) {
-			previewStyle = doc.createElementNS("http://www.w3.org/1999/xhtml", "style");
-			previewStyle.setAttribute("type", "text/css");
-			doc.documentElement.appendChild(previewStyle);
-		}
-		previewStyle.textContent = stylesheetData;
-	}
-	else {
-		if (previewStyle && previewStyle.parentNode)
-			previewStyle.parentNode.removeChild(previewStyle);
-		previewStyle = null;
-	}
+  if (preview) {
+    if (!previewStyle || !previewStyle.parentNode) {
+      previewStyle = doc.createElementNS("http://www.w3.org/1999/xhtml", "style");
+      previewStyle.setAttribute("type", "text/css");
+      doc.documentElement.appendChild(previewStyle);
+    }
+    previewStyle.textContent = stylesheetData;
+  }
+  else {
+    try
+    {
+      if (previewStyle && previewStyle.parentNode)
+        previewStyle.parentNode.removeChild(previewStyle);
+    }
+    catch (e)
+    {
+      // if the window was closed (reloaded) we end up with dead object reference
+      // https://bugzilla.mozilla.org/show_bug.cgi?id=695480
+      // just ignore this case
+    }
+    previewStyle = null;
+  }
 }
 
 function changeDomain(node) {
-	domainData.selected = node.getAttribute("value");
-	updateExpression();
+  domainData.selected = node.getAttribute("value");
+  updateExpression();
 }
 
 function toggleAttr(node) {
-	node.attr.checked = node.checked;
-	updateExpression();
+  node.attr.checked = node.checked;
+  updateExpression();
 }
 
 function setSelectedAttrValue(node) {
-	node.attr.selected = node.value;
-	if (node.attr.checked)
-		updateExpression();
+  node.attr.selected = node.value;
+  if (node.attr.checked)
+    updateExpression();
 }
 
 function setAdvancedMode(mode) {
-	advancedMode = mode;
+  advancedMode = mode;
 
-	var dialog = document.documentElement;
-	dialog.setAttribute("advancedMode", advancedMode);
+  var dialog = document.documentElement;
+  dialog.setAttribute("advancedMode", advancedMode);
 
-	var button = dialog.getButton("disclosure");
-	button.setAttribute("label", dialog.getAttribute(advancedMode ? "buttonlabeldisclosure_off" : "buttonlabeldisclosure_on"));
+  var button = dialog.getButton("disclosure");
+  button.setAttribute("label", dialog.getAttribute(advancedMode ? "buttonlabeldisclosure_off" : "buttonlabeldisclosure_on"));
 
-	fillAttributes(nodeData);
+  fillAttributes(nodeData);
 
-	if (advancedMode) {
-		setTimeout(function() {
-			var tree = document.getElementById("nodes-tree");
+  if (advancedMode) {
+    setTimeout(function() {
+      var tree = document.getElementById("nodes-tree");
 
-			if (!treeView)
-				treeView = new TreeView(tree);
+      if (!treeView)
+        treeView = new TreeView(tree);
 
-			if (selectedNode) {
-				// Expand all containers
-				var items = tree.getElementsByTagName("treeitem");
-				for (var i = 0; i < items.length; i++)
-					if (items[i].getAttribute("container") == "true")
-						items[i].setAttribute("open", "true");
+      if (selectedNode) {
+        // Expand all containers
+        var items = tree.getElementsByTagName("treeitem");
+        for (var i = 0; i < items.length; i++)
+          if (items[i].getAttribute("container") == "true")
+            items[i].setAttribute("open", "true");
 
-				tree.treeBoxObject.ensureRowIsVisible(tree.view.rowCount - 1);
-				tree.view.selection.select(tree.view.rowCount - 1);
-			}
-		}, 0);
-	}
+        tree.treeBoxObject.ensureRowIsVisible(tree.view.rowCount - 1);
+        tree.view.selection.select(tree.view.rowCount - 1);
+      }
+    }, 0);
+  }
 }
 
 function updateNodeSelection() {
-	var tree = document.getElementById("nodes-tree");
-	var selection = tree.view.selection;
-	if (selection.count < 1)
-		return;
+  var tree = document.getElementById("nodes-tree");
+  var selection = tree.view.selection;
+  if (selection.count < 1)
+    return;
 
-	var min = {};
-	selection.getRangeAt(0, min, {});
+  var min = {};
+  selection.getRangeAt(0, min, {});
 
-	var item = tree.view
-								 .QueryInterface(Ci.nsITreeContentView)
-								 .getItemAtIndex(min.value);
-	if (!item || !item.nodeData)
-		return;
+  var item = tree.view
+                 .QueryInterface(Ci.nsITreeContentView)
+                 .getItemAtIndex(min.value);
+  if (!item || !item.nodeData)
+    return;
 
-	fillAttributes(item.nodeData);
+  fillAttributes(item.nodeData);
 }
 
 function addExpression()
 {
-	AdblockPlus.addPatterns([document.getElementById("expression").value]);
+  AdblockPlus.addPatterns([document.getElementById("expression").value]);
 
-	togglePreview(false);
+  togglePreview(false);
 }
diff --git a/chrome/content/composer.xul b/chrome/content/composer.xul
index a4f09e0..4e57dbc 100644
--- a/chrome/content/composer.xul
+++ b/chrome/content/composer.xul
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
 
 <!-- This Source Code is subject to the terms of the Mozilla Public License
-	 - version 2.0 (the "License"). You can obtain a copy of the License at
-	 - http://mozilla.org/MPL/2.0/. -->
+   - version 2.0 (the "License"). You can obtain a copy of the License at
+   - http://mozilla.org/MPL/2.0/. -->
 
 <!DOCTYPE overlay SYSTEM "chrome://elemhidehelper/locale/composer.dtd">
 
@@ -10,75 +10,75 @@
 <?xml-stylesheet href="chrome://elemhidehelper/skin/composer.css" type="text/css"?>
 
 <dialog id="ehh-composer"
-		xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-		title="&dialog.title;"
-		onload="init()"
-		ondialogaccept="addExpression();"
-		ondialogdisclosure="setAdvancedMode(!advancedMode);"
-		onunload="togglePreview(false);"
-		buttons="accept,cancel,disclosure"
-		width="600px"
-		height="400px"
-		persist="screenX screenY width height sizemode advancedMode"
-		advancedMode="false"
-		buttonlabelaccept="&accept.label;"
-		buttonlabeldisclosure="&advanced.label;"
-		buttonlabeldisclosure_on="&advanced.label;"
-		buttonlabeldisclosure_off="&basic.label;"
-		windowtype="ehh:composer">
-	<script type="application/x-javascript;version=1.7" src="common.js"/>
-	<script type="application/x-javascript;version=1.7" src="composer.js"/>
-	
-	<description id="groupDisabledWarning" hidden="true">&groupDisabled.warning;</description>
+    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+    title="&dialog.title;"
+    onload="init()"
+    ondialogaccept="addExpression();"
+    ondialogdisclosure="setAdvancedMode(!advancedMode);"
+    onunload="togglePreview(false);"
+    buttons="accept,cancel,disclosure"
+    width="600px"
+    height="400px"
+    persist="screenX screenY width height sizemode advancedMode"
+    advancedMode="false"
+    buttonlabelaccept="&accept.label;"
+    buttonlabeldisclosure="&advanced.label;"
+    buttonlabeldisclosure_on="&advanced.label;"
+    buttonlabeldisclosure_off="&basic.label;"
+    windowtype="ehh:composer">
+  <script type="application/x-javascript;version=1.7" src="common.js"/>
+  <script type="application/x-javascript;version=1.7" src="composer.js"/>
+  
+  <description id="groupDisabledWarning" hidden="true">&groupDisabled.warning;</description>
 
-	<vbox id="expressionBox">
-		<label control="expression" value="&expression.label;"/>
-		<hbox>
-			<textbox id="expression" flex="1" readonly="true"/>
-			<checkbox id="preview" label="&preview.label;" checked="true" oncommand="togglePreview(this.checked)" persist="checked"/>
-		</hbox>
-	</vbox>
+  <vbox id="expressionBox">
+    <label control="expression" value="&expression.label;"/>
+    <hbox>
+      <textbox id="expression" flex="1" readonly="true"/>
+      <checkbox id="preview" label="&preview.label;" checked="true" oncommand="togglePreview(this.checked)" persist="checked"/>
+    </hbox>
+  </vbox>
 
-	<hbox id="basicAttributeTemplate" class="attribute basic" hidden="true">
-		<checkbox class="checkbox" oncommand="toggleAttr(this);"/>
-	</hbox>
+  <hbox id="basicAttributeTemplate" class="attribute basic" hidden="true">
+    <checkbox class="checkbox" oncommand="toggleAttr(this);"/>
+  </hbox>
 
-	<hbox id="advancedAttributeTemplate" class="attribute advanced" hidden="true">
-		<checkbox class="checkbox" oncommand="toggleAttr(this);"/>
-		<vbox flex="1">
-			<label class="label" onclick="this.parentNode.previousSibling.click();"/>
-			<textbox class="textbox" oninput="setSelectedAttrValue(this);"/>
-		</vbox>
-	</hbox>
+  <hbox id="advancedAttributeTemplate" class="attribute advanced" hidden="true">
+    <checkbox class="checkbox" oncommand="toggleAttr(this);"/>
+    <vbox flex="1">
+      <label class="label" onclick="this.parentNode.previousSibling.click();"/>
+      <textbox class="textbox" oninput="setSelectedAttrValue(this);"/>
+    </vbox>
+  </hbox>
 
-	<hbox id="choices" flex="1">
-		<groupbox id="domain" orient="vertical">
-			<caption label="&domain.label;"/>
-			<scrollbox flex="1" orient="vertical">
-				<radiogroup id="domainGroup" _labelnone="&domain.none.label;"/>
-			</scrollbox>
-		</groupbox>
-		<groupbox id="attributes" flex="2">
-			<caption label="&attributes.label;"/>
-			<hbox flex="1">
-				<tree id="nodes-tree" width="200" seltype="single" enableColumnDrag="true" onselect="updateNodeSelection()" persist="width">
-					<treecols>
-						<treecol id="nodes-tree-node" label="&nodes-tree.node.label;" primary="true" width="200" persist="width ordinal hidden"/>
-						<splitter class="tree-splitter" resizeafter="grow"/>
-						<treecol id="nodes-tree-id" label="&nodes-tree.id.label;" width="80" persist="width ordinal hidden"/>
-						<splitter class="tree-splitter" resizeafter="grow"/>
-						<treecol id="nodes-tree-class" label="&nodes-tree.class.label;" width="80" persist="width ordinal hidden"/>
-						<splitter class="tree-splitter" resizeafter="grow"/>
-					</treecols>
-					<treechildren id="nodes-tree-children"/>
-				</tree>
-				<splitter id="nodes-tree-splitter"/>
-				<scrollbox id="attributes-list" orient="vertical" flex="1"
-						_labeltagname="&attributes.tagname.label;"
-						_labelfirstchild="&attributes.firstchild.label;"
-						_labellastchild="&attributes.lastchild.label;"
-						_labelcustom="&attributes.custom.label;"/>
-			</hbox>
-		</groupbox>
-	</hbox>
+  <hbox id="choices" flex="1">
+    <groupbox id="domain" orient="vertical">
+      <caption label="&domain.label;"/>
+      <scrollbox flex="1" orient="vertical">
+        <radiogroup id="domainGroup" _labelnone="&domain.none.label;"/>
+      </scrollbox>
+    </groupbox>
+    <groupbox id="attributes" flex="2">
+      <caption label="&attributes.label;"/>
+      <hbox flex="1">
+        <tree id="nodes-tree" width="200" seltype="single" enableColumnDrag="true" onselect="updateNodeSelection()" persist="width">
+          <treecols>
+            <treecol id="nodes-tree-node" label="&nodes-tree.node.label;" primary="true" width="200" persist="width ordinal hidden"/>
+            <splitter class="tree-splitter" resizeafter="grow"/>
+            <treecol id="nodes-tree-id" label="&nodes-tree.id.label;" width="80" persist="width ordinal hidden"/>
+            <splitter class="tree-splitter" resizeafter="grow"/>
+            <treecol id="nodes-tree-class" label="&nodes-tree.class.label;" width="80" persist="width ordinal hidden"/>
+            <splitter class="tree-splitter" resizeafter="grow"/>
+          </treecols>
+          <treechildren id="nodes-tree-children"/>
+        </tree>
+        <splitter id="nodes-tree-splitter"/>
+        <scrollbox id="attributes-list" orient="vertical" flex="1"
+            _labeltagname="&attributes.tagname.label;"
+            _labelfirstchild="&attributes.firstchild.label;"
+            _labellastchild="&attributes.lastchild.label;"
+            _labelcustom="&attributes.custom.label;"/>
+      </hbox>
+    </groupbox>
+  </hbox>
 </dialog>
diff --git a/chrome/content/elementmarker.css b/chrome/content/elementmarker.css
index 8c1a83c..238fd84 100644
--- a/chrome/content/elementmarker.css
+++ b/chrome/content/elementmarker.css
@@ -7,110 +7,110 @@
 @namespace url("http://www.w3.org/1999/xhtml");
 
 .%%CLASS%%,
-.%%CLASS%% > .label,
-.%%CLASS%% > .label > .labelTag,
-.%%CLASS%% > .label > .labelAddition,
-.%%CLASS%% > .border
+.%%CLASS%% > .ehh-label,
+.%%CLASS%% > .ehh-label > .ehh-labelTag,
+.%%CLASS%% > .ehh-label > .ehh-labelAddition,
+.%%CLASS%% > .ehh-border
 {
-	display: block !important;
-	position: static !important;
-	float: none !important;
-	clear: none !important;
-	right: auto !important;
-	bottom: auto !important;
-	z-index: 2147483647 !important;
+  display: block !important;
+  position: static !important;
+  float: none !important;
+  clear: none !important;
+  right: auto !important;
+  bottom: auto !important;
+  z-index: 2147483647 !important;
 
-	background: transparent !important;
-	border: none !important;
-	clip: auto !important;
-	cursor: auto !important;
-	margin: 0px !important;
-	max-width: none !important;
-	max-height: none !important;
-	min-width: 0px !important;
-	min-height: 0px !important;
-	opacity: 1 !important;
-	outline: none !important;
-	padding: 0px !important;
-	visibility: visible !important;
-	-moz-binding: none !important;
-	border-radius: 0px !important;
-	-moz-user-focus: none !important;
-	-moz-user-input: none !important;
-	-moz-user-select: none !important;
+  background: transparent !important;
+  border: none !important;
+  clip: auto !important;
+  cursor: auto !important;
+  margin: 0px !important;
+  max-width: none !important;
+  max-height: none !important;
+  min-width: 0px !important;
+  min-height: 0px !important;
+  opacity: 1 !important;
+  outline: none !important;
+  padding: 0px !important;
+  text-indent: 0px !important;
+  visibility: visible !important;
+  -moz-binding: none !important;
+  border-radius: 0px !important;
+  -moz-user-focus: none !important;
+  -moz-user-input: none !important;
+  -moz-user-select: none !important;
 }
 
 .%%CLASS%%
 {
-	position: fixed !important;
+  position: fixed !important;
 
-	width: auto !important;
-	height: auto !important;
+  width: auto !important;
+  height: auto !important;
 }
 
-.%%CLASS%% > .border
+.%%CLASS%% > .ehh-border
 {
-	border: 2px solid #ff0000 !important;
-	top: auto !important;
-	left: auto !important;
+  border: 2px solid #ff0000 !important;
+  top: auto !important;
+  left: auto !important;
 }
 
-.%%CLASS%% > .label
+.%%CLASS%% > .ehh-label
 {
-	float: left !important;
-	background-color: #fff0cc !important;
-	border-color: #000000 !important;
-	border-width: 0px 2px 1px 2px !important;
-	border-style: solid !important;
-	border-bottom-left-radius: 6px !important;
-	border-bottom-right-radius: 6px !important;
-	padding: 2px 5px !important;
-	top: auto !important;
-	left: auto !important;
-	width: auto !important;
-	height: auto !important;
+  float: left !important;
+  background-color: #fff0cc !important;
+  border-color: #000000 !important;
+  border-width: 0px 2px 1px 2px !important;
+  border-style: solid !important;
+  border-bottom-left-radius: 6px !important;
+  border-bottom-right-radius: 6px !important;
+  padding: 2px 5px !important;
+  top: auto !important;
+  left: auto !important;
+  width: auto !important;
+  height: auto !important;
 }
 
-.%%CLASS%% > .label.onTop
+.%%CLASS%% > .ehh-label.onTop
 {
-	position: relative !important;
-	left: 5px !important;
-	top: -25px !important;
-	border-top-width: 1px !important;
-	border-radius: 6px !important;
+  position: relative !important;
+  left: 5px !important;
+  top: -25px !important;
+  border-top-width: 1px !important;
+  border-radius: 6px !important;
 }
 
-.%%CLASS%% > .label > .labelTag,
-.%%CLASS%% > .label > .labelAddition
+.%%CLASS%% > .ehh-label > .ehh-labelTag,
+.%%CLASS%% > .ehh-label > .ehh-labelAddition
 {
-	display: inline !important;
-	font-family: Arial !important;
-	font-size: 12px !important;
-	color: #000000 !important;
+  display: inline !important;
+  font-family: Arial !important;
+  font-size: 12px !important;
+  color: #000000 !important;
 
-	top: auto !important;
-	left: auto !important;
-	width: auto !important;
-	height: auto !important;
-	direction: ltr !important;
-	font-size-adjust: none !important;
-	font-stretch: normal !important;
-	font-style: normal !important;
-	font-variant: normal !important;
-	font-weight: normal !important;
-	letter-spacing: normal !important;
-	line-height: normal !important;
-	text-align: start !important;
-	text-decoration: none !important;
-	text-indent: 0px !important;
-	text-shadow: none !important;
-	text-transform: none !important;
-	text-transform: none !important;
-	white-space: normal !important;
-	word-spacing: 0px !important;
+  top: auto !important;
+  left: auto !important;
+  width: auto !important;
+  height: auto !important;
+  direction: ltr !important;
+  font-size-adjust: none !important;
+  font-stretch: normal !important;
+  font-style: normal !important;
+  font-variant: normal !important;
+  font-weight: normal !important;
+  letter-spacing: normal !important;
+  line-height: normal !important;
+  text-align: start !important;
+  text-decoration: none !important;
+  text-shadow: none !important;
+  text-transform: none !important;
+  text-transform: none !important;
+  white-space: normal !important;
+  word-spacing: 0px !important;
 }
 
-.%%CLASS%% > .label > .labelTag
+.%%CLASS%% > .ehh-label > .ehh-labelTag
 {
-	font-weight: bold !important;
+  font-weight: bold !important;
 }
diff --git a/chrome/content/overlay.xul b/chrome/content/overlay.xul
index 20c3447..1d231a2 100644
--- a/chrome/content/overlay.xul
+++ b/chrome/content/overlay.xul
@@ -1,37 +1,37 @@
 <?xml version="1.0"?>
 
 <!-- This Source Code is subject to the terms of the Mozilla Public License
-	 - version 2.0 (the "License"). You can obtain a copy of the License at
-	 - http://mozilla.org/MPL/2.0/. -->
+   - version 2.0 (the "License"). You can obtain a copy of the License at
+   - http://mozilla.org/MPL/2.0/. -->
 
 <!DOCTYPE overlay SYSTEM "chrome://elemhidehelper/locale/overlay.dtd">
 
 <popupset id="ehh-popupset"
-		xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-		xmlns:html="http://www.w3.org/1999/xhtml">
-	<tooltip id="ehh-helpbox" noautohide="true" orient="vertical">
-		<description id="ehh-helpbox-title" value="&helpbox.title;"/>
+    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+    xmlns:html="http://www.w3.org/1999/xhtml">
+  <tooltip id="ehh-helpbox" noautohide="true" orient="vertical">
+    <description id="ehh-helpbox-title" value="&helpbox.title;"/>
 
-		<grid flex="1">
-			<columns>
-				<column/>
-				<column flex="1"/>
-			</columns>
-			<rows id="ehh-helpbox-rows"/>
-		</grid>
-	</tooltip>
-	<tooltip id="ehh-commandlabel" noautohide="true">
-		<hbox align="center">
-			<description id="ehh-commandlabel-key"/>
-			<description id="ehh-commandlabel-alternativeKey"/>
-			<description id="ehh-commandlabel-label"/>
-		</hbox>
-	</tooltip>
-	<tooltip id="ehh-viewsource" noautohide="true" orient="vertical"/>
-	<tooltip id="ehh-elementmarker">
-		<html:div>
-			<html:div class="border"/>
-			<html:div class="label"><html:span class="labelTag"/><html:span class="labelAddition"/></html:div>
-		</html:div>
-	</tooltip>
+    <grid flex="1">
+      <columns>
+        <column/>
+        <column flex="1"/>
+      </columns>
+      <rows id="ehh-helpbox-rows"/>
+    </grid>
+  </tooltip>
+  <tooltip id="ehh-commandlabel" noautohide="true">
+    <hbox align="center">
+      <description id="ehh-commandlabel-key"/>
+      <description id="ehh-commandlabel-alternativeKey"/>
+      <description id="ehh-commandlabel-label"/>
+    </hbox>
+  </tooltip>
+  <tooltip id="ehh-viewsource" noautohide="true" orient="vertical"/>
+  <tooltip id="ehh-elementmarker">
+    <html:div>
+      <html:div class="ehh-border"/>
+      <html:div class="ehh-label"><html:span class="ehh-labelTag"/><html:span class="ehh-labelAddition"/></html:div>
+    </html:div>
+  </tooltip>
 </popupset>
diff --git a/chrome/locale/ar/composer.dtd b/chrome/locale/ar/composer.dtd
index 32695e1..7ac7846 100644
--- a/chrome/locale/ar/composer.dtd
+++ b/chrome/locale/ar/composer.dtd
@@ -1,21 +1,17 @@
-<!ENTITY dialog.title "إنشاء قاعدة لإخفاء العناصر">
+<!ENTITY preview.label "عرض أولي">
 <!ENTITY accept.label "إنشاء قاعدة فلتر">
-<!ENTITY advanced.label "عرض متقدم">
-<!ENTITY basic.label "عرض أساسي">
+<!ENTITY attributes.lastchild.label "الابن الأخير">
 <!ENTITY expression.label "قاعدة فلتر">
-<!ENTITY preview.label "عرض أولي">
 <!ENTITY domain.label "تثبيت للنطاق">
-<!ENTITY domain.none.label "أي نطاق (غير مستحسن)">
-<!ENTITY nodes-tree.node.label "فرع">
-<!ENTITY nodes-tree.id.label "id">
+<!ENTITY nodes-tree.id.label "معرف">
+<!ENTITY groupDisabled.warning "مجموعة عوامل تصفية "?1?" أنه سيتم إضافة عامل التصفية هذا إلى معطل حاليا.   يمكنك لا يزال إضافة عامل التصفية ولكن أنها لن تطبق إلا إذا كنت تمكين تصفية المجموعة في تفضيلات زائد.">
 <!ENTITY nodes-tree.class.label "فئة (class)">
-<!ENTITY attributes.label "طلب خصائص">
+<!ENTITY advanced.label "عرض متقدم">
 <!ENTITY attributes.tagname.label "اسم الوسم (Tag)">
+<!ENTITY domain.none.label "أي نطاق (غير مستحسن)">
+<!ENTITY dialog.title "إنشاء قاعدة لإخفاء العناصر">
+<!ENTITY basic.label "عرض أساسي">
+<!ENTITY attributes.label "طلب خصائص">
 <!ENTITY attributes.firstchild.label "الابن الأول">
-<!ENTITY attributes.lastchild.label "الابن الأخير">
 <!ENTITY attributes.custom.label "CSS مخصص">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
+<!ENTITY nodes-tree.node.label "فرع">
diff --git a/chrome/locale/ar/global.properties b/chrome/locale/ar/global.properties
index 8e79f95..6f49cd2 100644
--- a/chrome/locale/ar/global.properties
+++ b/chrome/locale/ar/global.properties
@@ -1,32 +1,30 @@
 command.select.key=خ
-command.select.label=اختيار عنصر
-command.wider.key=ر
-command.wider.label=أعرض
+command.viewSource.label=عرض المصدر
 command.narrower.key=ض
-command.narrower.label=أضيق
-command.quit.key=خ
-command.quit.label=خروج
-command.blinkElement.key=و
-command.blinkElement.label=عنصر وامض
 command.viewSource.key=ع
-command.viewSource.label=عرض المصدر
-command.viewSourceWindow.key=ص
-command.viewSourceWindow.label=عرض المصدر (في نافذة منفصلة)
+command.blinkElement.label=عنصر وامض
+stopselection.label=إلغاء اختيار العنصر
+inspector.button.tooltiptext=إنشاء عنصر إخفاء القاعدة لإخفاء هذا العنصر ومنها مماثلة مع زائد
+command.blinkElement.key=و
+command.wider.label=أعرض
+command.narrower.label=أضيق
 command.showMenu.key=س
+command.select.label=اختيار عنصر
+command.quit.label=خروج
+command.lock.key=س
 command.showMenu.label=إظهارإخفاء المساعدة
+command.viewSourceWindow.label=عرض المصدر (في نافذة منفصلة)
 selectelement.label=اختيار عنصر لإخفاؤه
-stopselection.label=إلغاء اختيار العنصر
+command.lock.label=قفل أو فتح الإختيار
+command.viewSourceWindow.key=ص
+command.wider.key=ر
+command.quit.key=ق
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/bg/composer.dtd b/chrome/locale/bg/composer.dtd
index 77d9b4c..db94913 100644
--- a/chrome/locale/bg/composer.dtd
+++ b/chrome/locale/bg/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Съставяне на правило за скриване на елемент">
-<!ENTITY groupDisabled.warning "Филтриращата група "?1?" на този филтър които ще бъде добавен е моменто изключена. Вие пак можете да добавите филтъра, но няма да бъде приложен докато не активиране филтриращата група от Adblock Plus настройки.">
+<!ENTITY preview.label "Преглед">
 <!ENTITY accept.label "Добавяне на правило за филтриране">
-<!ENTITY advanced.label "Разширен изглед">
-<!ENTITY basic.label "Основен изглед">
+<!ENTITY attributes.lastchild.label "Последен елемент">
 <!ENTITY expression.label "Правило за филтриране">
-<!ENTITY preview.label "Преглед">
 <!ENTITY domain.label "Свързване с домейн">
-<!ENTITY domain.none.label "Всеки домейн (не се препоръчва)">
-<!ENTITY nodes-tree.node.label "Точка">
 <!ENTITY nodes-tree.id.label "идентификатор">
+<!ENTITY groupDisabled.warning "Филтриращата група "?1?" на този филтър които ще бъде добавен е моменто изключена. Вие пак можете да добавите филтъра, но няма да бъде приложен докато не активиране филтриращата група от Adblock Plus настройки.">
 <!ENTITY nodes-tree.class.label "Клас">
+<!ENTITY advanced.label "Разширен изглед">
+<!ENTITY attributes.tagname.label "Име на етикета:">
+<!ENTITY domain.none.label "Всеки домейн (не се препоръчва)">
+<!ENTITY dialog.title "Съставяне на правило за скриване на елемент">
+<!ENTITY basic.label "Основен изглед">
 <!ENTITY attributes.label "Изисква атрибути">
-<!ENTITY attributes.tagname.label "Име на тага:">
 <!ENTITY attributes.firstchild.label "Първи наследник">
-<!ENTITY attributes.lastchild.label "Последен наслрдник">
-<!ENTITY attributes.custom.label "Custom CSS:">
+<!ENTITY attributes.custom.label "Собствени CSS:">
+<!ENTITY nodes-tree.node.label "Точка">
diff --git a/chrome/locale/bg/global.properties b/chrome/locale/bg/global.properties
index 0f44803..160f835 100644
--- a/chrome/locale/bg/global.properties
+++ b/chrome/locale/bg/global.properties
@@ -1,32 +1,30 @@
-command.select.key=S
+selectelement.label=Изберете елемент за скриване
+command.narrower.key=N
+command.blinkElement.label=мигащ елемент
+command.blinkElement.alternativeKey=Ф
 command.select.label=избор на елемент
+stopselection.label=Прекъсване на избора на елемент
+command.narrower.alternativeKey=х
+command.viewSourceWindow.key=U
 command.wider.key=W
+inspector.button.tooltiptext=Създаване на елемент скриване правило да се скрие този елемент и подобни на тях с Adblock Плюс
 command.wider.label=по-широк
-command.narrower.key=N
 command.narrower.label=по-тесен
-command.lock.key=I
-command.lock.label=заключи/отключи избраното
-command.quit.key=Q
-command.quit.label=изход от избора
-command.blinkElement.key=B
-command.blinkElement.label=мигащ елемент
-command.viewSource.key=V
-command.viewSource.label=преглед на източника
-command.viewSourceWindow.key=U
-command.viewSourceWindow.label=преглед на източника (в отделен прозорец)
 command.showMenu.key=H
 command.showMenu.label=показва/скрива /помощ
 command.select.alternativeKey=я
-command.wider.alternativeKey=у
-command.narrower.alternativeKey=х
-command.lock.alternativeKey=с
 command.quit.alternativeKey=з
-command.blinkElement.alternativeKey=Ф
-command.viewSource.alternativeKey=т
-command.viewSourceWindow.alternativeKey=к
+command.viewSource.key=V
+command.blinkElement.key=B
 command.showMenu.alternativeKey=г
-selectelement.label=Изберете елемент за скриване
-stopselection.label=Прекъсване на избора на елемент
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
-inspector.button.accesskey=A
-inspector.button.label=Hide with ABP
+command.lock.key=I
+command.viewSourceWindow.alternativeKey=к
+command.wider.alternativeKey=у
+command.quit.key=Q
+command.select.key=S
+command.viewSource.label=преглед на източника
+command.lock.label=заключи/отключи избраното
+command.viewSource.alternativeKey=т
+command.quit.label=изход от избора
+command.lock.alternativeKey=с
+command.viewSourceWindow.label=преглед на източника (в отделен прозорец)
diff --git a/chrome/locale/ca/composer.dtd b/chrome/locale/ca/composer.dtd
index 5cdf557..e5ee3b4 100644
--- a/chrome/locale/ca/composer.dtd
+++ b/chrome/locale/ca/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title "Composa la norma per amagar">
+<!ENTITY preview.label "Vista prèvia">
 <!ENTITY accept.label "Afegeix norma de filtre">
-<!ENTITY advanced.label "Vista avançada">
-<!ENTITY basic.label "Vista bàsica">
+<!ENTITY attributes.lastchild.label "Darrer atrib">
 <!ENTITY expression.label "Norma de filtre">
-<!ENTITY preview.label "Vista prèvia">
 <!ENTITY domain.label "Encega per al domini">
-<!ENTITY domain.none.label "qualsevol domini (no recomanat)">
-<!ENTITY nodes-tree.node.label "Node">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Requereix atributs">
+<!ENTITY groupDisabled.warning "El grup de filtres "?1?" el qual serà afegit aquest filtre actualment està desactivat.
+	Encara pots afegir el filtre però no serà aplicat excepte que activis el grup de filtres
+	En les preferències d'AdBlock Plus.">
+<!ENTITY nodes-tree.class.label "clase">
+<!ENTITY advanced.label "Vista avançada">
 <!ENTITY attributes.tagname.label "Nom de l'etiqueta:">
+<!ENTITY domain.none.label "qualsevol domini (no recomanat)">
+<!ENTITY dialog.title "Composa la norma d'omissió d'elements">
+<!ENTITY basic.label "Vista bàsica">
+<!ENTITY attributes.label "Requereix atributs">
 <!ENTITY attributes.firstchild.label "Primer atrib">
-<!ENTITY attributes.lastchild.label "Darrer atrib">
 <!ENTITY attributes.custom.label "CSS personalitzat:">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
+<!ENTITY nodes-tree.node.label "Node">
diff --git a/chrome/locale/ca/global.properties b/chrome/locale/ca/global.properties
index c70ae86..2369a49 100644
--- a/chrome/locale/ca/global.properties
+++ b/chrome/locale/ca/global.properties
@@ -1,32 +1,30 @@
 command.select.key=s
-command.select.label=selecciona element
-command.wider.key=w
-command.wider.label=més ample
+command.viewSource.label=veure font
 command.narrower.key=n
-command.narrower.label=més estret
-command.quit.key=q
-command.quit.label=elimina selecció
-command.blinkElement.key=b
-command.blinkElement.label=salta element
 command.viewSource.key=v
-command.viewSource.label=veure font
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=veure font (en una altra finestra)
+command.blinkElement.label=salta element
+stopselection.label=Avorta selecció d'elements
+inspector.button.tooltiptext=Crea una norma d'omissió d'element per amagar aquest element i d'altes similars amb AdBlockPlus
+command.blinkElement.key=b
+command.wider.label=més ample
+command.narrower.label=més estret
 command.showMenu.key=h
+command.select.label=selecciona element
+command.quit.label=elimina selecció
+command.lock.key=I
 command.showMenu.label=mostra/amaga ajuda
+command.viewSourceWindow.label=veure font (en una altra finestra)
 selectelement.label=Tria element a amagar
-stopselection.label=Avorta selecció d'elements
+command.lock.label=Bloca/Desbloca la secció
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/cs/composer.dtd b/chrome/locale/cs/composer.dtd
index c7fe37e..d1d4482 100644
--- a/chrome/locale/cs/composer.dtd
+++ b/chrome/locale/cs/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Vytvořit pravidlo pro skrývání elementu">
-<!ENTITY groupDisabled.warning "Skupina filtrů "?1?", do které bude tento filtr přidán, je v tuto chvíli zakázána. Filtr můžete přidat, ale nebude použit, dokud nepovolíte skupinu v Předvolbách Adblock Plus.">
-<!ENTITY accept.label "Přidat pravidlo">
-<!ENTITY advanced.label "Rozšířené rozhraní">
-<!ENTITY basic.label "Základní rozhraní">
-<!ENTITY expression.label "Pravidlo">
 <!ENTITY preview.label "Náhled">
+<!ENTITY accept.label "Přidat pravidlo">
+<!ENTITY attributes.lastchild.label "Poslední potomek">
+<!ENTITY expression.label "Pravidlo pro blokování prvků">
 <!ENTITY domain.label "Pro doménu">
+<!ENTITY nodes-tree.id.label "ID">
+<!ENTITY groupDisabled.warning "Skupina filtrů "?1?", do které bude tento filtr přidán, je v tuto chvíli zakázána. Filtr můžete přidat, ale nebude použit, dokud nepovolíte skupinu v Předvolbách Adblock Plus.">
+<!ENTITY nodes-tree.class.label "třída">
+<!ENTITY advanced.label "Rozšířené rozhraní">
+<!ENTITY attributes.tagname.label "Jméno tagu:">
 <!ENTITY domain.none.label "Jakákoli doména (nedoporučuje se)">
-<!ENTITY nodes-tree.node.label "Node">
-<!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
+<!ENTITY dialog.title "Vytvořit pravidlo pro skrývání elementu">
+<!ENTITY basic.label "Základní rozhraní">
 <!ENTITY attributes.label "Požadované atributy">
-<!ENTITY attributes.tagname.label "Jméno tagu:">
 <!ENTITY attributes.firstchild.label "První potomek">
-<!ENTITY attributes.lastchild.label "Poslední potomek">
 <!ENTITY attributes.custom.label "Vlastní CSS:">
+<!ENTITY nodes-tree.node.label "Uzel">
diff --git a/chrome/locale/cs/global.properties b/chrome/locale/cs/global.properties
index a63b2e8..88c2421 100644
--- a/chrome/locale/cs/global.properties
+++ b/chrome/locale/cs/global.properties
@@ -1,26 +1,24 @@
 command.select.key=v
-command.select.label=vybrat element
-command.wider.key=r
-command.wider.label=rozšířit
+command.viewSource.label=zobrazit zdroj
 command.narrower.key=z
-command.narrower.label=zúžit
-command.lock.key=k
-command.lock.label=zamknout/odemknout výběr
-command.quit.key=u
-command.quit.label=ukončit výběr
-command.blinkElement.key=b
-command.blinkElement.label=zablikat elementem
 command.viewSource.key=d
-command.viewSource.label=zobrazit zdroj
-command.viewSourceWindow.key=o
-command.viewSourceWindow.label=zobrazit zdroj (v novém okně)
+command.blinkElement.label=zablikat elementem
+stopselection.label=Zrušit výběr elementu
+inspector.button.tooltiptext=Vytvořit pravidlo skrývání prvků pro tento a podobné prvky s Adblockem Plus
+command.blinkElement.key=b
+command.wider.label=rozšířit
+command.narrower.label=zúžit
 command.showMenu.key=n
+command.select.label=vybrat element
+command.quit.label=ukončit výběr
+command.lock.key=k
 command.showMenu.label=zobrazit/skrýt nápovědu
+command.viewSourceWindow.label=zobrazit zdroj (v novém okně)
 selectelement.label=Vybrat element ke skrytí
-stopselection.label=Zrušit výběr elementu
-inspector.button.label=Skrýt s ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Vytvořit pravidlo skrývání prvků pro tento a podobné prvky s Adblockem Plus
+command.lock.label=zamknout/odemknout výběr
+command.viewSourceWindow.key=o
+command.wider.key=r
+command.quit.key=u
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/da/composer.dtd b/chrome/locale/da/composer.dtd
deleted file mode 100644
index 45336c1..0000000
--- a/chrome/locale/da/composer.dtd
+++ /dev/null
@@ -1,21 +0,0 @@
-<!ENTITY dialog.title "Sammensæt elementskjulningsregel">
-<!ENTITY accept.label "Tilføj filterregel">
-<!ENTITY advanced.label "Avanceret visning">
-<!ENTITY basic.label "Basisvisning">
-<!ENTITY expression.label "Filterregel">
-<!ENTITY preview.label "Forhåndsvisning">
-<!ENTITY domain.label "Bind til domæne">
-<!ENTITY domain.none.label "Ethvert domæne (anbefales ikke)">
-<!ENTITY nodes-tree.node.label "Node">
-<!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Kræver attributter">
-<!ENTITY attributes.tagname.label "Tag navn:">
-<!ENTITY attributes.firstchild.label "Første underliggende">
-<!ENTITY attributes.lastchild.label "Sidste underliggende">
-<!ENTITY attributes.custom.label "Brugertilpasset CSS:">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
diff --git a/chrome/locale/da/global.properties b/chrome/locale/da/global.properties
deleted file mode 100644
index 638f354..0000000
--- a/chrome/locale/da/global.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-command.select.key=v
-command.select.label=vælg element
-command.wider.key=r
-command.wider.label=bredere
-command.narrower.key=s
-command.narrower.label=smallere
-command.quit.key=a
-command.quit.label=afslut valg
-command.blinkElement.key=b
-command.blinkElement.label=blink element
-command.viewSource.key=k
-command.viewSource.label=vis kildekode
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=vis kildekode (i separat vindue)
-command.showMenu.key=h
-command.showMenu.label=vis/skjul hjælp
-selectelement.label=Vælg element der skal skjules
-stopselection.label=Annuller elementvalg
-command.blinkElement.alternativeKey=
-command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
-command.select.alternativeKey=
-command.quit.alternativeKey=
-command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
-command.viewSourceWindow.alternativeKey=
-command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
-command.viewSource.alternativeKey=
-command.lock.alternativeKey=
diff --git a/chrome/locale/da/overlay.dtd b/chrome/locale/da/overlay.dtd
deleted file mode 100644
index 2d049cd..0000000
--- a/chrome/locale/da/overlay.dtd
+++ /dev/null
@@ -1 +0,0 @@
-<!ENTITY helpbox.title "Elementvalg - Genvejstaster">
diff --git a/chrome/locale/de/composer.dtd b/chrome/locale/de/composer.dtd
index 7d39cf2..6fa264b 100644
--- a/chrome/locale/de/composer.dtd
+++ b/chrome/locale/de/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title             "Regel zum Verstecken des Elements zusammenstellen">
-<!ENTITY groupDisabled.warning    "
-	Die Filtergruppe "?1?", in die dieser Filter eingefügt wird, ist derzeit deaktiviert.
-	Sie können den Filter trotzdem hinzufügen, dieser wird jedoch erst angewandt,
-	wenn Sie diese Filtergruppe in den Einstellungen von Adblock Plus aktivieren.
-">
-<!ENTITY accept.label             "Filterregel hinzufügen">
-<!ENTITY advanced.label           "Erweiterte Ansicht">
-<!ENTITY basic.label              "Standardansicht">
-<!ENTITY expression.label         "Filterregel">
-<!ENTITY preview.label            "Vorschau">
-<!ENTITY domain.label             "An Domain-Namen binden">
-<!ENTITY domain.none.label        "Alle Domains (nicht empfohlen)">
-<!ENTITY nodes-tree.node.label    "Knoten">
-<!ENTITY nodes-tree.id.label      "id">
-<!ENTITY nodes-tree.class.label   "class">
-<!ENTITY attributes.label         "Benötigte Attribute">
+<!ENTITY preview.label "Vorschau">
+<!ENTITY accept.label "Filterregel hinzufügen">
+<!ENTITY attributes.lastchild.label "Letzter Kindsknoten">
+<!ENTITY expression.label "Filterregel">
+<!ENTITY domain.label "An Domain-Namen binden">
+<!ENTITY nodes-tree.id.label "ID">
+<!ENTITY groupDisabled.warning "Die Filtergruppe "?1?", in die dieser Filter eingefügt wird, ist derzeit deaktiviert.
+  Sie können den Filter trotzdem hinzufügen, dieser wird jedoch erst angewandt,
+  wenn Sie diese Filtergruppe in den Einstellungen von Adblock Plus aktivieren.">
+<!ENTITY nodes-tree.class.label "Klasse">
+<!ENTITY advanced.label "Erweiterte Ansicht">
 <!ENTITY attributes.tagname.label "Knotenname:">
-<!ENTITY attributes.firstchild.label  "Erster Kindsknoten">
-<!ENTITY attributes.lastchild.label   "Letzter Kindsknoten">
-<!ENTITY attributes.custom.label  "Zusätzlicher CSS-Ausdruck:">
+<!ENTITY domain.none.label "Alle Domains (nicht empfohlen)">
+<!ENTITY dialog.title "Regel zum Verstecken des Elements zusammenstellen">
+<!ENTITY basic.label "Standardansicht">
+<!ENTITY attributes.label "Benötigte Attribute">
+<!ENTITY attributes.firstchild.label "Erster Kindsknoten">
+<!ENTITY attributes.custom.label "Zusätzlicher CSS-Ausdruck:">
+<!ENTITY nodes-tree.node.label "Knoten">
diff --git a/chrome/locale/de/global.properties b/chrome/locale/de/global.properties
index 39c64a7..d4c0acf 100644
--- a/chrome/locale/de/global.properties
+++ b/chrome/locale/de/global.properties
@@ -1,36 +1,30 @@
 command.select.key=s
-command.select.label=Element auswählen
-command.wider.key=w
-command.wider.label=erweitern
+command.viewSource.label=Quelltext anzeigen
 command.narrower.key=k
+command.viewSource.key=v
+command.blinkElement.label=Element blinken lassen
+stopselection.label=Element-Auswahl abbrechen
+inspector.button.tooltiptext=Eine Versteckregel für Adblock Plus erstellen, um dieses Element und ähnliche zu verstecken
+command.blinkElement.key=b
+command.wider.label=erweitern
 command.narrower.label=verkleinern
+command.showMenu.key=h
+command.select.label=Element auswählen
+command.quit.label=Auswahl abbrechen
 command.lock.key=f
+command.showMenu.label=Hilfe anzeigen/verstecken
+command.viewSourceWindow.label=Quelltext anzeigen (im anderen Fenster)
+selectelement.label=Element zum Verstecken auswählen
 command.lock.label=Auswahl fixieren/fortsetzen
-command.quit.key=q
-command.quit.label=Auswahl abbrechen
-command.blinkElement.key=b
-command.blinkElement.label=Element blinken lassen
-command.viewSource.key=v
-command.viewSource.label=Quelltext anzeigen
 command.viewSourceWindow.key=u
-command.viewSourceWindow.label=Quelltext anzeigen (im anderen Fenster)
-command.showMenu.key=h
-command.showMenu.label=Hilfe anzeigen/verstecken
-
-# Optional: alternative set of command keys, e.g. Latin letters instead of Cyrillic. Set these keys if the users could be using two different keyboard layouts.
-command.select.alternativeKey=
-command.wider.alternativeKey=
+command.wider.key=w
+command.quit.key=q
+command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-command.lock.alternativeKey=
+command.select.alternativeKey=
 command.quit.alternativeKey=
-command.blinkElement.alternativeKey=
-command.viewSource.alternativeKey=
-command.viewSourceWindow.alternativeKey=
 command.showMenu.alternativeKey=
-
-selectelement.label=Element zum Verstecken auswählen
-stopselection.label=Element-Auswahl abbrechen
-
-inspector.button.label=Mit ABP verstecken
-inspector.button.accesskey=v
-inspector.button.tooltiptext=Eine Versteckregel für Adblock Plus erstellen, um dieses Element und ähnliche zu verstecken
+command.viewSourceWindow.alternativeKey=
+command.wider.alternativeKey=
+command.viewSource.alternativeKey=
+command.lock.alternativeKey=
diff --git a/chrome/locale/de/overlay.dtd b/chrome/locale/de/overlay.dtd
index d979587..4766726 100644
--- a/chrome/locale/de/overlay.dtd
+++ b/chrome/locale/de/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title            "Element-Auswahl - Tastenbelegung">
+<!ENTITY helpbox.title "Element-Auswahl - Tastenbelegung">
diff --git a/chrome/locale/dsb/composer.dtd b/chrome/locale/dsb/composer.dtd
new file mode 100644
index 0000000..4938001
--- /dev/null
+++ b/chrome/locale/dsb/composer.dtd
@@ -0,0 +1,17 @@
+<!ENTITY preview.label "Pśeglěd">
+<!ENTITY accept.label "Pšawidło za chowanje elementa pśidaś">
+<!ENTITY attributes.lastchild.label "Slědne góle">
+<!ENTITY expression.label "Pšawidło za chowanje elementa">
+<!ENTITY domain.label "Na domenu wězaś">
+<!ENTITY nodes-tree.id.label "ID">
+<!ENTITY groupDisabled.warning "Toś ta filtrowa kupka "?1?", kótarejž se toś ten filter pśidawa, jo tuchylu znjemóžnjona. Móžoš hyšći filter pśidaś, ale njebuźo se nałožowaś, snaźkuli zmóžnjaš filtrowu kupku w nastajenjach Adblock Plus.">
+<!ENTITY nodes-tree.class.label "klasa">
+<!ENTITY advanced.label "Rozšyrjony naglěd">
+<!ENTITY attributes.tagname.label "Mě elementa:">
+<!ENTITY domain.none.label "Někaka domena (njepśiraźujo se)">
+<!ENTITY dialog.title "Pšawidło za chowanje elementa pisaś">
+<!ENTITY basic.label "Zakładny naglěd">
+<!ENTITY attributes.label "Atributy pominaś">
+<!ENTITY attributes.firstchild.label "Prědne góle">
+<!ENTITY attributes.custom.label "Swójski CSS:">
+<!ENTITY nodes-tree.node.label "Suk">
diff --git a/chrome/locale/dsb/global.properties b/chrome/locale/dsb/global.properties
new file mode 100644
index 0000000..08388e5
--- /dev/null
+++ b/chrome/locale/dsb/global.properties
@@ -0,0 +1,30 @@
+selectelement.label=Element wubraś, kótaryž ma se schowaś
+command.narrower.key=u
+command.blinkElement.label=element blinkaś daś
+command.blinkElement.alternativeKey= 
+command.select.label=element wubraś
+stopselection.label=Wuběranje elementa pśetergnuś
+command.narrower.alternativeKey= 
+command.viewSourceWindow.key=d
+command.wider.key=r
+inspector.button.tooltiptext=Wubjeŕśo pšawidło za chowanje elementa, aby toś tón element a pódobne z Adblock Plus schował
+command.wider.label=šyrjej
+command.narrower.label=wusčej
+command.showMenu.key=m
+command.showMenu.label=pomoc pokazaś/schowaś
+command.select.alternativeKey= 
+command.quit.alternativeKey= 
+command.viewSource.key=t
+command.blinkElement.key=b
+command.showMenu.alternativeKey= 
+command.lock.key=z
+command.viewSourceWindow.alternativeKey= 
+command.wider.alternativeKey= 
+command.quit.key=k
+command.select.key=w
+command.viewSource.label=žrědłowy tekst pokazaś
+command.lock.label=wuběrk zastajiś/zastajenje wótpóraś
+command.viewSource.alternativeKey= 
+command.quit.label=wuběrk spušćiś
+command.lock.alternativeKey= 
+command.viewSourceWindow.label=žrědłowy tekst pokazaś (we wósebnem woknje)
diff --git a/chrome/locale/dsb/overlay.dtd b/chrome/locale/dsb/overlay.dtd
new file mode 100644
index 0000000..4aea2f1
--- /dev/null
+++ b/chrome/locale/dsb/overlay.dtd
@@ -0,0 +1 @@
+<!ENTITY helpbox.title "Tastowe skrotconki za wubranje elementow">
diff --git a/chrome/locale/el/composer.dtd b/chrome/locale/el/composer.dtd
index d1dd4e3..47cf9e4 100644
--- a/chrome/locale/el/composer.dtd
+++ b/chrome/locale/el/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Συγγραφή κανόνα απόκρυψης στοιχείου">
-<!ENTITY groupDisabled.warning "Η ομάδα φίλτρων "?1?" στην οποία αυτό το φίλτρο θα προστεθεί είναι απενεργοποιημένη. Μπορείτε να προσθέσετε το φίλτρο αλλά αυτό δεν θα εφαρμοστεί μέχρι να ενεργοποιήσετε την ομάδα φίλτρων από τις προτιμήσεις του Adblock Plus.">
+<!ENTITY preview.label "Προεπισκόπηση">
 <!ENTITY accept.label "Προσθήκη κανόνα φίλτρου">
-<!ENTITY advanced.label "Λεπτομερής προβολή">
-<!ENTITY basic.label "Βασική προβολή">
+<!ENTITY attributes.lastchild.label "Τελευταίος απόγονος">
 <!ENTITY expression.label "Κανόνας φίλτρου">
-<!ENTITY preview.label "Προεπισκόπηση">
 <!ENTITY domain.label "Προσκόλληση στον τομέα">
-<!ENTITY domain.none.label "Οποιοδήποτε (δεν προτείνεται)">
-<!ENTITY nodes-tree.node.label "Κόμβος">
 <!ENTITY nodes-tree.id.label "αναγνωριστικό">
+<!ENTITY groupDisabled.warning "Η ομάδα φίλτρων "?1?" στην οποία αυτό το φίλτρο θα προστεθεί είναι απενεργοποιημένη. Μπορείτε να προσθέσετε το φίλτρο αλλά αυτό δεν θα εφαρμοστεί μέχρι να ενεργοποιήσετε την ομάδα φίλτρων από τις προτιμήσεις του Adblock Plus.">
 <!ENTITY nodes-tree.class.label "κλάση">
-<!ENTITY attributes.label "Απαίτηση ιδιοτήτων">
+<!ENTITY advanced.label "Λεπτομερής προβολή">
 <!ENTITY attributes.tagname.label "Ετικέτα:">
+<!ENTITY domain.none.label "Οποιοδήποτε (δεν προτείνεται)">
+<!ENTITY dialog.title "Συγγραφή κανόνα απόκρυψης στοιχείου">
+<!ENTITY basic.label "Βασική προβολή">
+<!ENTITY attributes.label "Απαίτηση ιδιοτήτων">
 <!ENTITY attributes.firstchild.label "Πρώτος απόγονος">
-<!ENTITY attributes.lastchild.label "Τελευταίος απόγονος">
 <!ENTITY attributes.custom.label "Προσαρμοσμένο CSS:">
+<!ENTITY nodes-tree.node.label "Κόμβος">
diff --git a/chrome/locale/el/global.properties b/chrome/locale/el/global.properties
index 9364616..35cc71a 100644
--- a/chrome/locale/el/global.properties
+++ b/chrome/locale/el/global.properties
@@ -1,32 +1,30 @@
-command.select.key=ε
+selectelement.label=Επιλογή στοιχείων για απόκρυψη
+command.narrower.key=σ
+command.blinkElement.label=επισήμανση στοιχείου
+command.blinkElement.alternativeKey=b
 command.select.label=επιλογή στοιχείου
+stopselection.label=Ακύρωση επιλογής στοιχείων
+command.narrower.alternativeKey=n
+command.viewSourceWindow.key=ο
 command.wider.key=π
+inspector.button.tooltiptext=Δημιουργείστε ένα κανόνα απόκρυψης στοιχείων για να απομακρυνθεί αυτό το στοιχείο και παρόμοια με το Adblock Plus
 command.wider.label=πλατύτερο
-command.narrower.key=σ
 command.narrower.label=στενότερο
-command.lock.key=κ
-command.lock.label=κλείδωμα/ξεκλείδωμα επιλογής
-command.quit.key=δ
-command.quit.label=διακοπή επιλογής
-command.blinkElement.key=ν
-command.blinkElement.label=επισήμανση στοιχείου
-command.viewSource.key=ρ
-command.viewSource.label=προβολή πηγαίου κώδικα
-command.viewSourceWindow.key=ο
-command.viewSourceWindow.label=προβολή κώδικα (σε ξεχωριστό παράθυρο)
 command.showMenu.key=β
 command.showMenu.label=εμφάνιση/απόκρυψη βοήθειας
 command.select.alternativeKey=s
-command.wider.alternativeKey=w
-command.narrower.alternativeKey=n
-command.lock.alternativeKey=l
 command.quit.alternativeKey=q
-command.blinkElement.alternativeKey=b
-command.viewSource.alternativeKey=v
-command.viewSourceWindow.alternativeKey=u
+command.viewSource.key=ρ
+command.blinkElement.key=ν
 command.showMenu.alternativeKey=h
-selectelement.label=Επιλογή στοιχείων για απόκρυψη
-stopselection.label=Ακύρωση επιλογής στοιχείων
-inspector.button.label=Απόκρυψη με το ABP
-inspector.button.accesskey=Α
-inspector.button.tooltiptext=Δημιουργείστε ένα κανόνα απόκρυψης στοιχείων για να απομακρυνθεί αυτό το στοιχείο και παρόμοια με το Adblock Plus
+command.lock.key=κ
+command.viewSourceWindow.alternativeKey=u
+command.wider.alternativeKey=w
+command.quit.key=δ
+command.select.key=ε
+command.viewSource.label=προβολή πηγαίου κώδικα
+command.lock.label=κλείδωμα/ξεκλείδωμα επιλογής
+command.viewSource.alternativeKey=v
+command.quit.label=διακοπή επιλογής
+command.lock.alternativeKey=l
+command.viewSourceWindow.label=προβολή κώδικα (σε ξεχωριστό παράθυρο)
diff --git a/chrome/locale/en-GB/composer.dtd b/chrome/locale/en-GB/composer.dtd
index 11be55e..69e382f 100644
--- a/chrome/locale/en-GB/composer.dtd
+++ b/chrome/locale/en-GB/composer.dtd
@@ -1,19 +1,19 @@
-<!ENTITY dialog.title "Compose element hiding rule">
-<!ENTITY groupDisabled.warning "The filter group "?1?" that this filter will be added to is currently disabled.
-	You can still add the filter but it will not be applied unless you enable the filter group
-	in Adblock Plus preferences.">
+<!ENTITY preview.label "Preview">
 <!ENTITY accept.label "Add filter rule">
-<!ENTITY advanced.label "Advanced view">
-<!ENTITY basic.label "Basic view">
+<!ENTITY attributes.lastchild.label "Last child">
 <!ENTITY expression.label "Filter rule">
-<!ENTITY preview.label "Preview">
 <!ENTITY domain.label "Bind to domain">
-<!ENTITY domain.none.label "Any domain (not recommended)">
-<!ENTITY nodes-tree.node.label "Node">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "The filter group "?1?" that this filter will be added to is currently disabled.
+	You can still add the filter but it will not be applied unless you enable the filter group
+	in Adblock Plus preferences.">
 <!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Require attributes">
+<!ENTITY advanced.label "Advanced view">
 <!ENTITY attributes.tagname.label "Tag name:">
+<!ENTITY domain.none.label "Any domain (not recommended)">
+<!ENTITY dialog.title "Compose element hiding rule">
+<!ENTITY basic.label "Basic view">
+<!ENTITY attributes.label "Require attributes">
 <!ENTITY attributes.firstchild.label "First child">
-<!ENTITY attributes.lastchild.label "Last child">
 <!ENTITY attributes.custom.label "Custom CSS:">
+<!ENTITY nodes-tree.node.label "Node">
diff --git a/chrome/locale/en-GB/global.properties b/chrome/locale/en-GB/global.properties
index 9f0815e..4d66b19 100644
--- a/chrome/locale/en-GB/global.properties
+++ b/chrome/locale/en-GB/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=select element
-command.wider.key=w
-command.wider.label=wider
+command.viewSource.label=view source
 command.narrower.key=n
-command.narrower.label=narrower
-command.lock.key=l
-command.lock.label=lock/unlock selection
-command.quit.key=q
-command.quit.label=quit selection
-command.blinkElement.key=b
-command.blinkElement.label=blink element
 command.viewSource.key=v
-command.viewSource.label=view source
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=view source (in separate window)
+command.blinkElement.label=blink element
+stopselection.label=Abort element selection
+inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
+command.blinkElement.key=b
+command.wider.label=wider
+command.narrower.label=narrower
 command.showMenu.key=h
+command.select.label=select element
+command.quit.label=quit selection
+command.lock.key=l
 command.showMenu.label=show/hide help
+command.viewSourceWindow.label=view source (in separate window)
 selectelement.label=Select element to hide
-stopselection.label=Abort element selection
-inspector.button.label=Hide with ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
+command.lock.label=lock/unlock selection
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/en-US/composer.dtd b/chrome/locale/en-US/composer.dtd
index b8ca94a..c54f144 100644
--- a/chrome/locale/en-US/composer.dtd
+++ b/chrome/locale/en-US/composer.dtd
@@ -1,8 +1,8 @@
 <!ENTITY dialog.title             "Compose element hiding rule">
 <!ENTITY groupDisabled.warning    "
-	The filter group "?1?" that this filter will be added to is currently disabled.
-	You can still add the filter but it will not be applied unless you enable the filter group
-	in Adblock Plus preferences.
+  The filter group "?1?" that this filter will be added to is currently disabled.
+  You can still add the filter but it will not be applied unless you enable the filter group
+  in Adblock Plus preferences.
 ">
 <!ENTITY accept.label             "Add element hiding rule">
 <!ENTITY advanced.label           "Advanced view">
diff --git a/chrome/locale/en-US/global.properties b/chrome/locale/en-US/global.properties
index 186e77b..4ad994a 100644
--- a/chrome/locale/en-US/global.properties
+++ b/chrome/locale/en-US/global.properties
@@ -31,6 +31,4 @@ command.showMenu.alternativeKey=
 selectelement.label=Select an element to hide
 stopselection.label=Abort element selection
 
-inspector.button.label=Hide with ABP
-inspector.button.accesskey=A
 inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
diff --git a/chrome/locale/es-AR/composer.dtd b/chrome/locale/es-AR/composer.dtd
index f207355..5fe97db 100644
--- a/chrome/locale/es-AR/composer.dtd
+++ b/chrome/locale/es-AR/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Redactar regla ocultadora de elementos">
-<!ENTITY groupDisabled.warning "El grupo de filtros "?1?" en el que se va a agregar este filtro, está actualmente deshabilitado. Podés agregar el filtro de todas maneras, pero no será aplicado a menos que habilites el grupo de filtros en las preferencias de Adblock Plus.">
+<!ENTITY preview.label "Previsualización">
 <!ENTITY accept.label "Agregar regla de filtros">
-<!ENTITY advanced.label "Vista avanzada">
-<!ENTITY basic.label "Vista básica">
+<!ENTITY attributes.lastchild.label "Último hijo">
 <!ENTITY expression.label "Regla de filtro">
-<!ENTITY preview.label "Previsualización">
 <!ENTITY domain.label "Unido al dominio">
-<!ENTITY domain.none.label "Cualquier dominio (no recomendado)">
-<!ENTITY nodes-tree.node.label "Nodo">
 <!ENTITY nodes-tree.id.label "identificación">
+<!ENTITY groupDisabled.warning "El grupo de filtros "?1?" en el que se va a agregar este filtro, está actualmente deshabilitado. Podés agregar el filtro de todos modos, pero no será aplicado a menos que habilités el grupo de filtros en las preferencias de Adblock Plus.">
 <!ENTITY nodes-tree.class.label "clase">
-<!ENTITY attributes.label "Requiere atributos">
+<!ENTITY advanced.label "Vista avanzada">
 <!ENTITY attributes.tagname.label "Nombre de etiqueta:">
+<!ENTITY domain.none.label "Cualquier dominio (no recomendado)">
+<!ENTITY dialog.title "Redactar regla ocultadora de elementos">
+<!ENTITY basic.label "Vista básica">
+<!ENTITY attributes.label "Requiere atributos">
 <!ENTITY attributes.firstchild.label "Primer hijo">
-<!ENTITY attributes.lastchild.label "Último hijo">
 <!ENTITY attributes.custom.label "CSS personalizado:">
+<!ENTITY nodes-tree.node.label "Nodo">
diff --git a/chrome/locale/es-AR/global.properties b/chrome/locale/es-AR/global.properties
index 36f4dfc..b9aac69 100644
--- a/chrome/locale/es-AR/global.properties
+++ b/chrome/locale/es-AR/global.properties
@@ -1,32 +1,30 @@
-command.select.key=s
-command.select.label=seleccionar elemento
 command.wider.key=c
-command.wider.label=más ancho
-command.narrower.key=g
-command.narrower.label=más angosto
-command.lock.key=l
+command.viewSource.label=ver fuente
 command.lock.label=bloquear/desbloquear selección
-command.quit.key=r
-command.quit.label=selección rápida
-command.blinkElement.key=p
 command.blinkElement.label=elemento parpadeante
-command.viewSource.key=v
-command.viewSource.label=ver fuente
-command.viewSourceWindow.key=t
-command.viewSourceWindow.label=ver fuente (en una nueva ventana)
+inspector.button.tooltiptext=Crear una regla para ocultar este elementos y otros similares con Adblock Plus
+command.blinkElement.key=p
+command.wider.label=más ancho
+command.narrower.label=más angosto
 command.showMenu.key=y
+command.select.label=seleccionar elemento
+command.quit.label=cancelar selección
+stopselection.label=Cancelar la selección del elemento
 command.showMenu.label=mostrar/ocultar ayuda
 selectelement.label=Seleccionar elemento para ocultar
-stopselection.label=Cancelar la selección del elemento
+command.narrower.key=g
+command.viewSourceWindow.key=t
+command.viewSourceWindow.label=ver fuente (en una nueva ventana)
+command.quit.key=r
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
+command.viewSource.key=v
 command.showMenu.alternativeKey=
-inspector.button.accesskey=A
+command.lock.key=l
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
+command.select.key=s
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/es-ES/composer.dtd b/chrome/locale/es-ES/composer.dtd
index 05678cb..5996975 100644
--- a/chrome/locale/es-ES/composer.dtd
+++ b/chrome/locale/es-ES/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Componer regla de ocultación de elementos">
-<!ENTITY groupDisabled.warning "El grupo de filtros "?1?" al que se añadirá este filtro está desactivado. Puede añadir el filtro pero no se aplicará a menos que active el grupo de filtros en las preferencias de Adblock Plus.">
+<!ENTITY preview.label "Vista previa">
 <!ENTITY accept.label "Añadir filtro">
-<!ENTITY advanced.label "Vista avanzada">
-<!ENTITY basic.label "Vista básica">
+<!ENTITY attributes.lastchild.label "Último hijo">
 <!ENTITY expression.label "Filtro">
-<!ENTITY preview.label "Vista previa">
 <!ENTITY domain.label "Vincular a un dominio web">
-<!ENTITY domain.none.label "Cualquier dominio web (no recomendable)">
-<!ENTITY nodes-tree.node.label "Nodo">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "El grupo de filtros "?1?" al que se añadirá este filtro está desactivado. Puede añadir el filtro pero no se aplicará a menos que active el grupo de filtros en las preferencias de Adblock Plus.">
 <!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Atributos requeridos">
+<!ENTITY advanced.label "Vista avanzada">
 <!ENTITY attributes.tagname.label "Nombre de etiqueta (tag):">
+<!ENTITY domain.none.label "Cualquier dominio web (no recomendable)">
+<!ENTITY dialog.title "Componer regla de ocultación de elementos">
+<!ENTITY basic.label "Vista básica">
+<!ENTITY attributes.label "Atributos requeridos">
 <!ENTITY attributes.firstchild.label "Primer hijo">
-<!ENTITY attributes.lastchild.label "Último hijo">
 <!ENTITY attributes.custom.label "CSS personalizado:">
+<!ENTITY nodes-tree.node.label "Nodo">
diff --git a/chrome/locale/es-ES/global.properties b/chrome/locale/es-ES/global.properties
index 0c389ea..c095be3 100644
--- a/chrome/locale/es-ES/global.properties
+++ b/chrome/locale/es-ES/global.properties
@@ -1,26 +1,24 @@
-command.select.key=s
-command.select.label=seleccionar elemento
-command.wider.key=a
-command.wider.label=ampliar
+command.select.key=l
+command.viewSource.label=ver código fuente
 command.narrower.key=r
-command.narrower.label=reducir
-command.lock.key=q
-command.lock.label=bloquear/desbloquear selección
-command.quit.key=c
-command.quit.label=cancelar selección
-command.blinkElement.key=p
-command.blinkElement.label=resaltar con parpadeo
 command.viewSource.key=f
-command.viewSource.label=ver código fuente
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=ver código fuente (en otra ventana)
+command.blinkElement.label=resaltar con parpadeo
+stopselection.label=Abortar la selección del elemento
+inspector.button.tooltiptext=Crea una regla de ocultación de elementos para ocultar este elemento y otros similares con Adblock Plus
+command.blinkElement.key=p
+command.wider.label=ampliar
+command.narrower.label=reducir
 command.showMenu.key=m
+command.select.label=seleccionar elemento
+command.quit.label=cancelar selección
+command.lock.key=q
 command.showMenu.label=mostrar/ocultar ayuda
+command.viewSourceWindow.label=ver código fuente (en otra ventana)
 selectelement.label=Seleccionar elemento a ocultar
-stopselection.label=Abortar la selección del elemento
-inspector.button.label=Ocultar con ABP
-inspector.button.accesskey=O
-inspector.button.tooltiptext=Crea una regla de ocultación de elementos para ocultar este elemento y otros similares con Adblock Plus
+command.lock.label=bloquear/desbloquear selección
+command.viewSourceWindow.key=v
+command.wider.key=a
+command.quit.key=c
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/es-MX/composer.dtd b/chrome/locale/es-MX/composer.dtd
index 5eed042..4b0c4f4 100644
--- a/chrome/locale/es-MX/composer.dtd
+++ b/chrome/locale/es-MX/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Desarrollar regla para ocultar elementos">
-<!ENTITY groupDisabled.warning "El grupo de filtros "?1?" al cual se planea añadir este filtro se encuentra deshabilitado. Puede continuar añadiendo el filtro pero no se aplicará hasta que habilite el grupo del filtros ubicado en las preferencias de Adblock Plus.">
+<!ENTITY preview.label "Pre visualizar">
 <!ENTITY accept.label "Agregar una regla para ocultar elementos">
-<!ENTITY advanced.label "Vista avanzada">
-<!ENTITY basic.label "Vista básica">
+<!ENTITY attributes.lastchild.label "Ultimo hijo">
 <!ENTITY expression.label "Regla de elemento oculto (filtro)">
-<!ENTITY preview.label "Pre visualizar">
 <!ENTITY domain.label "Vincular a un dominio">
-<!ENTITY domain.none.label "Cualquier dominio (no se recomienda)">
-<!ENTITY nodes-tree.node.label "Nodo">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "El grupo de filtros "?1?" al cual se planea añadir este filtro se encuentra deshabilitado. Puede continuar añadiendo el filtro pero no se aplicará hasta que habilite el grupo del filtros ubicado en las preferencias de Adblock Plus.">
 <!ENTITY nodes-tree.class.label "clase">
-<!ENTITY attributes.label "Atributos requeridos">
+<!ENTITY advanced.label "Vista avanzada">
 <!ENTITY attributes.tagname.label "Nombre de etiqueta (Tag):">
+<!ENTITY domain.none.label "Cualquier dominio (no se recomienda)">
+<!ENTITY dialog.title "Desarrollar regla para ocultar elementos">
+<!ENTITY basic.label "Vista básica">
+<!ENTITY attributes.label "Atributos requeridos">
 <!ENTITY attributes.firstchild.label "Primer hijo">
-<!ENTITY attributes.lastchild.label "Ultimo hijo">
 <!ENTITY attributes.custom.label "CSS Personalizado:">
+<!ENTITY nodes-tree.node.label "Nodo">
diff --git a/chrome/locale/es-MX/global.properties b/chrome/locale/es-MX/global.properties
index 9865679..e95c98e 100644
--- a/chrome/locale/es-MX/global.properties
+++ b/chrome/locale/es-MX/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=seleccionar elemento
-command.wider.key=i
-command.wider.label=ampliar
+command.viewSource.label=ver código fuente (source)
 command.narrower.key=r
-command.narrower.label=reducir
-command.lock.key=b
-command.lock.label=bloquear/desbloquear selección
-command.quit.key=c
-command.quit.label=cancelar selección
-command.blinkElement.key=t
-command.blinkElement.label=resaltar parpadeando
 command.viewSource.key=v
-command.viewSource.label=ver código fuente (source)
-command.viewSourceWindow.key=f
-command.viewSourceWindow.label=ver código fuente (source) en una ventana
+command.blinkElement.label=resaltar parpadeando
+stopselection.label=Deshacer selección de elemento
+inspector.button.tooltiptext=Crear una regla de elemento oculto para ocultar este elemento y similares con Adblock Plus
+command.blinkElement.key=t
+command.wider.label=ampliar
+command.narrower.label=reducir
 command.showMenu.key=y
+command.select.label=seleccionar elemento
+command.quit.label=cancelar selección
+command.lock.key=b
 command.showMenu.label=mostrar/ocultar ayuda
+command.viewSourceWindow.label=ver código fuente (source) en una ventana
 selectelement.label=Seleccione un elemento para ocultar
-stopselection.label=Deshacer selección de elemento
-inspector.button.label=Ocultar con ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Crear una regla de elemento oculto para ocultar este elemento y similares con Adblock Plus
+command.lock.label=bloquear/desbloquear selección
+command.viewSourceWindow.key=f
+command.wider.key=i
+command.quit.key=c
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/et/composer.dtd b/chrome/locale/et/composer.dtd
index 6a4cdd5..9be39ad 100644
--- a/chrome/locale/et/composer.dtd
+++ b/chrome/locale/et/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title "Kombineeri elemendi peitmise reeglit">
+<!ENTITY preview.label "Eelvaade">
 <!ENTITY accept.label "Lisa filtri reegel">
-<!ENTITY advanced.label "Arenenud vaade">
-<!ENTITY basic.label "Põhiline vaade">
+<!ENTITY attributes.lastchild.label "Viimane laps">
 <!ENTITY expression.label "Filtri reegel">
-<!ENTITY preview.label "Eelvaade">
 <!ENTITY domain.label "Seo domeeniga">
-<!ENTITY domain.none.label "Iga domeeniga (pole soovitatav)">
-<!ENTITY nodes-tree.node.label "Sõlm">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "Filtrite grupp "?1?", kuhu see filter lisatakse on praegu keelatud.
+  Sa võid küll filtri lisada, kuid seda ei rakendata enne, kui see filtrite grupp Adblock Plus
+  sätetes on lubatud.">
 <!ENTITY nodes-tree.class.label "klass">
-<!ENTITY attributes.label "Nõua attribuute">
+<!ENTITY advanced.label "Arenenud vaade">
 <!ENTITY attributes.tagname.label "Märksõna nimi:">
+<!ENTITY domain.none.label "Iga domeeniga (pole soovitatav)">
+<!ENTITY dialog.title "Kombineeri elemendi peitmise reeglit">
+<!ENTITY basic.label "Põhiline vaade">
+<!ENTITY attributes.label "Nõua attribuute">
 <!ENTITY attributes.firstchild.label "Esimene laps">
-<!ENTITY attributes.lastchild.label "Viimane laps">
 <!ENTITY attributes.custom.label "Kohandatud CSS">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
+<!ENTITY nodes-tree.node.label "Sõlm">
diff --git a/chrome/locale/et/global.properties b/chrome/locale/et/global.properties
index cd481c8..3bc3e23 100644
--- a/chrome/locale/et/global.properties
+++ b/chrome/locale/et/global.properties
@@ -1,32 +1,30 @@
 command.select.key=v
-command.select.label=vali element
-command.wider.key=l
-command.wider.label=laiem
+command.viewSource.label=vaata allikat
 command.narrower.key=k
-command.narrower.label=kitsam
-command.quit.key=s
-command.quit.label=sulge valimine
-command.blinkElement.key=p
-command.blinkElement.label=pilguta elementi
 command.viewSource.key=a
-command.viewSource.label=vaata allikat
-command.viewSourceWindow.key=t
-command.viewSourceWindow.label=vaata allikat (eraldi aknas)
+command.blinkElement.label=pilguta elementi
+stopselection.label=Katkesta elementide valimine
+inspector.button.tooltiptext=Loo elemendi peitmise reegel, et peita see ja teised sarnased elemendid Adblock Plus abil
+command.blinkElement.key=p
+command.wider.label=laiem
+command.narrower.label=kitsam
 command.showMenu.key=n
+command.select.label=vali element
+command.quit.label=sulge valimine
+command.lock.key=l
 command.showMenu.label=näita/peida abi
+command.viewSourceWindow.label=vaata allikat (eraldi aknas)
 selectelement.label=Vali elemente et peita
-stopselection.label=Katkesta elementide valimine
+command.lock.label=lukustada/avada valik
+command.viewSourceWindow.key=t
+command.wider.key=m
+command.quit.key=s
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/eu/composer.dtd b/chrome/locale/eu/composer.dtd
index 1e36359..c21360c 100644
--- a/chrome/locale/eu/composer.dtd
+++ b/chrome/locale/eu/composer.dtd
@@ -1,21 +1,18 @@
-<!ENTITY dialog.title "Sortu elementu ezkutatze araua">
+<!ENTITY preview.label "Aurreikusi">
 <!ENTITY accept.label "Gehitu iragazki ararua">
-<!ENTITY advanced.label "Ikuspegi hedatua">
-<!ENTITY basic.label "Ikuspegi soila">
+<!ENTITY attributes.lastchild.label "Azken kumea">
 <!ENTITY expression.label "Iragazki araua">
-<!ENTITY preview.label "Aurreikusi">
 <!ENTITY domain.label "Batu domeinu batera">
-<!ENTITY domain.none.label "Edozein domeinu (ez da gomendatzen)">
-<!ENTITY nodes-tree.node.label "Nodoa">
 <!ENTITY nodes-tree.id.label "id-a">
+<!ENTITY groupDisabled.warning "Iragazki hau "?1?" iragazki taldera gehituko da, baina talde hau desgaituta dago.
+Iragazkia gehitu dezakezu oraindik ere, baina ez du eraginik izango iragazki taldea gaitu ezean Adblock Plus hobespenetan.">
 <!ENTITY nodes-tree.class.label "klasea">
-<!ENTITY attributes.label "Beharrezko atributua">
+<!ENTITY advanced.label "Ikuspegi hedatua">
 <!ENTITY attributes.tagname.label "Etiketa izena:">
+<!ENTITY domain.none.label "Edozein domeinu (ez da gomendatzen)">
+<!ENTITY dialog.title "Sortu elementu ezkutatze araua">
+<!ENTITY basic.label "Ikuspegi soila">
+<!ENTITY attributes.label "Beharrezko atributua">
 <!ENTITY attributes.firstchild.label "Lehen kumea">
-<!ENTITY attributes.lastchild.label "Azken kumea">
-<!ENTITY attributes.custom.label "CSS pertsonlizatua:">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
+<!ENTITY attributes.custom.label "CSS pertsonalizatua:">
+<!ENTITY nodes-tree.node.label "Nodoa">
diff --git a/chrome/locale/eu/global.properties b/chrome/locale/eu/global.properties
index e68cdab..b81be8e 100644
--- a/chrome/locale/eu/global.properties
+++ b/chrome/locale/eu/global.properties
@@ -1,32 +1,30 @@
-command.select.key=s
-command.select.label=hautatu elementua
-command.wider.key=z
-command.wider.label=zabalago
+command.select.key=h
+command.viewSource.label=ikusi iturburua
 command.narrower.key=e
+command.viewSource.key=i
+command.blinkElement.label=elementu keinua
+stopselection.label=Utzi elementu hautapena
+inspector.button.tooltiptext=Sortu elementu ezkutatze araua elementu hau eta antzeko beste batzuk ezkutatzeko Adblock Plus erabilita
+command.blinkElement.key=k
+command.wider.label=zabalago
 command.narrower.label=estuago
-command.quit.key=t
+command.showMenu.key=l
+command.select.label=hautatu elementua
 command.quit.label=utzi hautapena
-command.blinkElement.key=k
-command.blinkElement.label=elementu keinua
-command.viewSource.key=i
-command.viewSource.label=ikusi iturburua
-command.viewSourceWindow.key=l
-command.viewSourceWindow.label=ikusi iturburua (leiho berezian)
-command.showMenu.key=a
+command.lock.key=b
 command.showMenu.label=erakutsi/ezkutatu laguntza
-selectelement.label=Hautatu ezkutatzeko elementu bat
-stopselection.label=Utzi elementu hautapena
+command.viewSourceWindow.label=ikusi iturburua (leiho berezian)
+selectelement.label=Ezkutatu elementua
+command.lock.label=blokeatu/desblokeatu aukeraketa
+command.viewSourceWindow.key=t
+command.wider.key=z
+command.quit.key=u
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/eu/overlay.dtd b/chrome/locale/eu/overlay.dtd
index 781e726..4bc46f1 100644
--- a/chrome/locale/eu/overlay.dtd
+++ b/chrome/locale/eu/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title "Elementu ekintzak - Laster-teklak">
+<!ENTITY helpbox.title "Elementuak aukeratzeko laster-teklak">
diff --git a/chrome/locale/fa/composer.dtd b/chrome/locale/fa/composer.dtd
index 4b5ce17..aa77785 100644
--- a/chrome/locale/fa/composer.dtd
+++ b/chrome/locale/fa/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "نوشت قانون پنهان کردن">
-<!ENTITY groupDisabled.warning "فیلتر گروه "?1?" که این فیلتر به آن اضافه خواهد شد در حال حاضر فعال نیست. شما هنوز میتوانید فیلتر را اضافه کنید اما افزودن آن اعمال نخواهد شد مگر اینکه شما این گروه را قادر بسازید در ادبلاک ترجلیهات.">
-<!ENTITY accept.label "اضافه قانون صافی">
-<!ENTITY advanced.label "دیده پیشرفته">
-<!ENTITY basic.label "دیده اساسی‌">
-<!ENTITY expression.label "قانون صافی">
 <!ENTITY preview.label "پيش ديد">
-<!ENTITY domain.label "مقید به دومین">
-<!ENTITY domain.none.label "(هر دومین (توصیه نمی‌شود">
-<!ENTITY nodes-tree.node.label "گره یا ند">
+<!ENTITY accept.label "اضافه کردن قانون پنهان سازی">
+<!ENTITY attributes.lastchild.label "بچه آخر">
+<!ENTITY expression.label "قانون پنهان سازی">
+<!ENTITY domain.label "اتصال دادن به دامنه">
 <!ENTITY nodes-tree.id.label "نشانی‌">
+<!ENTITY groupDisabled.warning "فیلتر گروه "?1?" که این فیلتر به آن اضافه خواهد شد در حال حاضر فعال نیست. شما هنوز میتوانید فیلتر را اضافه کنید اما افزودن آن اعمال نخواهد شد مگر اینکه شما این گروه فیلتر را در تنظیمات Adblock Plus فعال کنید.">
 <!ENTITY nodes-tree.class.label "گروه">
-<!ENTITY attributes.label "نشان را مستلزم کن">
+<!ENTITY advanced.label "نمای  پیشرفته نرم افزار">
 <!ENTITY attributes.tagname.label "اسم علامت">
+<!ENTITY domain.none.label "هر دامنه ای (توصیه نمی شود)">
+<!ENTITY dialog.title "نوشت قانون پنهان کردن">
+<!ENTITY basic.label "نمای اساسی">
+<!ENTITY attributes.label "نشان را مستلزم کن">
 <!ENTITY attributes.firstchild.label "بچه اول">
-<!ENTITY attributes.lastchild.label "بچه آخر">
 <!ENTITY attributes.custom.label "سفارشی CSS">
+<!ENTITY nodes-tree.node.label "گره یا ند">
diff --git a/chrome/locale/fa/global.properties b/chrome/locale/fa/global.properties
index ff6272d..ced0185 100644
--- a/chrome/locale/fa/global.properties
+++ b/chrome/locale/fa/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=انتخاب اساس
-command.wider.key=w
-command.wider.label=گشادتر
+command.viewSource.label=دیده منبع
 command.narrower.key=n
-command.narrower.label=تنگتر
-command.lock.key=l
-command.lock.label=انتخاب قفل/باز
-command.quit.key=q
-command.quit.label=ترک انتخاب
-command.blinkElement.key=b
-command.blinkElement.label=چشمک اساس
 command.viewSource.key=v
-command.viewSource.label=دیده منبع
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=دیده منبع در صفحه دگر
+command.blinkElement.label=چشمک اساس
+stopselection.label=لغو انتخاب اساس
+inspector.button.tooltiptext=ایجاد قانون مخفی کردن برای این انصر و مشابهای دیگر با ادبلاک
+command.blinkElement.key=b
+command.wider.label=گشادتر
+command.narrower.label=تنگتر
 command.showMenu.key=h
+command.select.label=انتخاب اساس
+command.quit.label=ترک انتخاب
+command.lock.key=l
 command.showMenu.label=کمک نشان/پنهان
+command.viewSourceWindow.label=دیده منبع در صفحه دگر
 selectelement.label=انتخاب اساس برای پنهان
-stopselection.label=لغو انتخاب اساس
-inspector.button.label=پنهان با ادبلاک
-inspector.button.accesskey=ا
-inspector.button.tooltiptext=ایجاد قانون مخفی کردن برای این انصر و مشابهای دیگر با ادبلاک
+command.lock.label=انتخاب قفل/باز
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/fi/composer.dtd b/chrome/locale/fi/composer.dtd
index 67d32dd..dd18374 100644
--- a/chrome/locale/fi/composer.dtd
+++ b/chrome/locale/fi/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title "Täytä elementin piilotussääntö">
+<!ENTITY preview.label "Esikatselu">
 <!ENTITY accept.label "Lisää suodatin">
-<!ENTITY advanced.label "Lisänäkymä">
-<!ENTITY basic.label "Perusnäkymä">
+<!ENTITY attributes.lastchild.label "Viimeinen">
 <!ENTITY expression.label "Suodatinsääntö">
-<!ENTITY preview.label "Esikatselu">
 <!ENTITY domain.label "Liitä verkkonimeen">
-<!ENTITY domain.none.label "kaikkiin verkkonimiin (ei suositeltua)">
-<!ENTITY nodes-tree.node.label "Kohta">
-<!ENTITY nodes-tree.id.label "id">
+<!ENTITY nodes-tree.id.label "tunnus">
+<!ENTITY groupDisabled.warning "Suodatinryhmä "?1?", johon tämä suodatin lisätään, ei ole tällä hetkellä käytössä.
+  Voit silti lisätä suodattimen, mutta sitä ei oteta käyttöön, ellet ota suodatinryhmää käyttöön
+  Adblock Plus:n asetuksissa.">
 <!ENTITY nodes-tree.class.label "luokka">
-<!ENTITY attributes.label "Vaadi attribuutit">
+<!ENTITY advanced.label "Lisänäkymä">
 <!ENTITY attributes.tagname.label "Nimike:">
+<!ENTITY domain.none.label "kaikkiin verkkonimiin (ei suositella)">
+<!ENTITY dialog.title "Kirjoita suodatin">
+<!ENTITY basic.label "Perusnäkymä">
+<!ENTITY attributes.label "Vaadi attribuutit">
 <!ENTITY attributes.firstchild.label "Ensimmäinen">
-<!ENTITY attributes.lastchild.label "Viimeinen">
 <!ENTITY attributes.custom.label "Oma CSS:">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
+<!ENTITY nodes-tree.node.label "Kohta">
diff --git a/chrome/locale/fi/global.properties b/chrome/locale/fi/global.properties
index 5c67102..9a33582 100644
--- a/chrome/locale/fi/global.properties
+++ b/chrome/locale/fi/global.properties
@@ -1,32 +1,30 @@
-command.select.key=S
-command.select.label=valitse elementti
-command.wider.key=w
-command.wider.label=leveämpi
+command.select.key=s
+command.viewSource.label=näytä lähdekoodi
 command.narrower.key=n
-command.narrower.label=kapeampi
-command.quit.key=q
-command.quit.label=lopeta valitseminen
-command.blinkElement.key=b
-command.blinkElement.label=vilkuta elementtiä
 command.viewSource.key=v
-command.viewSource.label=näytä lähdekoodi
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=näytä lähdekoodi(erillisessä ikkunassa)
+command.blinkElement.label=vilkuta elementtiä
+stopselection.label=Keskeytä elementin valinta
+inspector.button.tooltiptext=Luo suodatin, joka piilottaa tämän ja muut samankaltaiset elementit Adblock Plus:lla
+command.blinkElement.key=b
+command.wider.label=leveämpi
+command.narrower.label=kapeampi
 command.showMenu.key=h
+command.select.label=valitse elementti
+command.quit.label=lopeta valitseminen
+command.lock.key=l
 command.showMenu.label=näytä/piilota ohje
+command.viewSourceWindow.label=näytä lähdekoodi(erillisessä ikkunassa)
 selectelement.label=Valitse piilotettava elementti
-stopselection.label=Keskeytä elementin valinta
+command.lock.label=lukitse valinta/avaa valinnan lukitus
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/fr/composer.dtd b/chrome/locale/fr/composer.dtd
index d1d557d..a1bd278 100644
--- a/chrome/locale/fr/composer.dtd
+++ b/chrome/locale/fr/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Création de filtres pour masquer des éléments">
-<!ENTITY groupDisabled.warning "Le groupe de filtres "?1?" auquel ce filtre sera ajouté est actuellement désactivé. Vous pouvez cependant l'ajouter mais il ne sera pas appliqué tant que vous n'aurez pas activé le groupe de filtres  dans les préférences d'Adblock Plus.">
+<!ENTITY preview.label "Aperçu">
 <!ENTITY accept.label "Ajouter le filtre">
-<!ENTITY advanced.label "Affichage avancé">
-<!ENTITY basic.label "Affichage basique">
+<!ENTITY attributes.lastchild.label "Dernier élément enfant">
 <!ENTITY expression.label "Filtre">
-<!ENTITY preview.label "Aperçu">
 <!ENTITY domain.label "Associé au domaine">
-<!ENTITY domain.none.label "Tout domaine (non recommandé)">
-<!ENTITY nodes-tree.node.label "Noeud">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Attributs requis">
+<!ENTITY groupDisabled.warning "Le groupe de filtres "?1?" auquel ce filtre sera ajouté est actuellement désactivé. Vous pouvez cependant l'ajouter mais il ne sera pas appliqué tant que vous n'aurez pas activé le groupe de filtres  dans les préférences d'Adblock Plus.">
+<!ENTITY nodes-tree.class.label "classe">
+<!ENTITY advanced.label "Affichage avancé">
 <!ENTITY attributes.tagname.label "Nom de la balise :">
+<!ENTITY domain.none.label "Tout domaine (non recommandé)">
+<!ENTITY dialog.title "Création de filtres pour masquer des éléments">
+<!ENTITY basic.label "Affichage basique">
+<!ENTITY attributes.label "Attributs requis">
 <!ENTITY attributes.firstchild.label "Premier élément enfant">
-<!ENTITY attributes.lastchild.label "Dernier élément enfant">
-<!ENTITY attributes.custom.label "CSS personnalisée :">
+<!ENTITY attributes.custom.label "CSS personnalisé :">
+<!ENTITY nodes-tree.node.label "Nœud">
diff --git a/chrome/locale/fr/global.properties b/chrome/locale/fr/global.properties
index 1d547a0..b1177b0 100644
--- a/chrome/locale/fr/global.properties
+++ b/chrome/locale/fr/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=sélectionner un élément
-command.wider.key=t
-command.wider.label=étendre la sélection
+command.viewSource.label=afficher le code source
 command.narrower.key=r
-command.narrower.label=réduire la sélection
-command.lock.key=v
-command.lock.label=verrouiller/déverrouiller la sélection
-command.quit.key=q
-command.quit.label=quitter le mode "sélection"
-command.blinkElement.key=c
-command.blinkElement.label=faire clignoter l'élément
 command.viewSource.key=o
-command.viewSource.label=afficher la source
-command.viewSourceWindow.key=f
-command.viewSourceWindow.label=afficher la source (dans une nouvelle fenêtre)
+command.blinkElement.label=faire clignoter l'élément
+stopselection.label=Quitter le mode de sélection d'élément
+inspector.button.tooltiptext=Créer une règle de masquage d'élément pour masquer cet élément et similaires avec Adblock Plus
+command.blinkElement.key=c
+command.wider.label=étendre la sélection
+command.narrower.label=réduire la sélection
 command.showMenu.key=a
+command.select.label=sélectionner un élément
+command.quit.label=quitter le mode "sélection"
+command.lock.key=v
 command.showMenu.label=afficher/masquer l'aide
+command.viewSourceWindow.label=afficher le code source (dans une nouvelle fenêtre)
 selectelement.label=Sélectionner un élément à masquer
-stopselection.label=Quitter le mode "sélection d'élément"
-inspector.button.label=Masquer avec ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Créer une règle de masquage d'élément pour masquer cet élément et similaires avec Adblock Plus
+command.lock.label=verrouiller/déverrouiller la sélection
+command.viewSourceWindow.key=f
+command.wider.key=t
+command.quit.key=Q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/gl/composer.dtd b/chrome/locale/gl/composer.dtd
deleted file mode 100644
index 5515776..0000000
--- a/chrome/locale/gl/composer.dtd
+++ /dev/null
@@ -1,21 +0,0 @@
-<!ENTITY dialog.title "Compor regra de ocultamento de elementos">
-<!ENTITY accept.label "Engadie regra de filtro">
-<!ENTITY advanced.label "Vista avanzada">
-<!ENTITY basic.label "Vista básica">
-<!ENTITY expression.label "Regra de filtro">
-<!ENTITY preview.label "Vista previa">
-<!ENTITY domain.label "Obrigar a dominio">
-<!ENTITY domain.none.label "Calquera dominio (non recomendado)">
-<!ENTITY nodes-tree.node.label "Nodo">
-<!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "clase">
-<!ENTITY attributes.label "Requirir atributos">
-<!ENTITY attributes.tagname.label "Nome da etiqueta:">
-<!ENTITY attributes.firstchild.label "Primeiro fillo">
-<!ENTITY attributes.lastchild.label "Último fillo">
-<!ENTITY attributes.custom.label "CSS personalizado">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
diff --git a/chrome/locale/gl/global.properties b/chrome/locale/gl/global.properties
deleted file mode 100644
index eece69c..0000000
--- a/chrome/locale/gl/global.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-command.select.key=s
-command.select.label=seleccionar elemento
-command.wider.key=w
-command.wider.label=máis amplo
-command.narrower.key=n
-command.narrower.label=máis estreito
-command.quit.key=q
-command.quit.label=deixar a selección
-command.blinkElement.key=b
-command.blinkElement.label=parpadear elemento
-command.viewSource.key=v
-command.viewSource.label=Ver código fonte
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=Ver código fonte (en fiestra aparte)
-command.showMenu.key=h
-command.showMenu.label=mostrar/ocultar a axuda
-selectelement.label=Escolla elemento para ocultar
-stopselection.label=Cancelar a escolla de elemento
-command.blinkElement.alternativeKey=
-command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
-command.select.alternativeKey=
-command.quit.alternativeKey=
-command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
-command.viewSourceWindow.alternativeKey=
-command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
-command.viewSource.alternativeKey=
-command.lock.alternativeKey=
diff --git a/chrome/locale/gl/overlay.dtd b/chrome/locale/gl/overlay.dtd
deleted file mode 100644
index 7a2340d..0000000
--- a/chrome/locale/gl/overlay.dtd
+++ /dev/null
@@ -1 +0,0 @@
-<!ENTITY helpbox.title "Escolla de elemento - teclas rápidas">
diff --git a/chrome/locale/he/composer.dtd b/chrome/locale/he/composer.dtd
index 46d03d1..ff499b8 100644
--- a/chrome/locale/he/composer.dtd
+++ b/chrome/locale/he/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "הלחנת חוק הסתרת אלמנט">
-<!ENTITY groupDisabled.warning "קבוצת הסינון "?1?" שמסנן זה יוסיף מנוטרלת כרגע. ניתן עדיין להוסיף את המסנן אבל הוא לא יוחל אלא אם תאפשר קבוצת הסינון בהעדפות Adblock Plus.">
+<!ENTITY preview.label "תצוגה מקדימה">
 <!ENTITY accept.label "הוספת חוק סינון">
-<!ENTITY advanced.label "תצוגה מתקדמת">
-<!ENTITY basic.label "תצוגה בסיסית">
+<!ENTITY attributes.lastchild.label "ילד אחרון">
 <!ENTITY expression.label "חוק סינון">
-<!ENTITY preview.label "תצוגה מקדימה">
-<!ENTITY domain.label "קשר למתחם">
-<!ENTITY domain.none.label "כל מתחם (לא מומלץ)">
-<!ENTITY nodes-tree.node.label "צומת">
+<!ENTITY domain.label "קשר לכתובת האתר">
 <!ENTITY nodes-tree.id.label "זהות">
+<!ENTITY groupDisabled.warning "קבוצת הסינון "?1?" שמסנן זה יוסיף מנוטרלת כרגע. ניתן עדיין להוסיף את המסנן אבל הוא לא יפעל אלא אם תאפשר את קבוצת הסינון בהעדפות Adblock Plus.">
 <!ENTITY nodes-tree.class.label "מחלקה">
-<!ENTITY attributes.label "דורש תכונות">
+<!ENTITY advanced.label "תצוגה מתקדמת">
 <!ENTITY attributes.tagname.label "שם התווית:">
+<!ENTITY domain.none.label "כל כתובת אתר (לא מומלץ)">
+<!ENTITY dialog.title "הלחנת חוק הסתרת אלמנט">
+<!ENTITY basic.label "תצוגה בסיסית">
+<!ENTITY attributes.label "דורש תכונות">
 <!ENTITY attributes.firstchild.label "ילד ראשון">
-<!ENTITY attributes.lastchild.label "ילד אחרון">
 <!ENTITY attributes.custom.label "CSS מותאם:">
+<!ENTITY nodes-tree.node.label "צומת">
diff --git a/chrome/locale/he/global.properties b/chrome/locale/he/global.properties
index 8ab7d9e..f196259 100644
--- a/chrome/locale/he/global.properties
+++ b/chrome/locale/he/global.properties
@@ -1,26 +1,24 @@
 command.select.key=ב
-command.select.label=בחירת אלמנט
-command.wider.key=ר
-command.wider.label=רחב יותר
+command.viewSource.label=הצגת מקור
 command.narrower.key=צ
-command.narrower.label=צר יותר
-command.lock.key=נ
-command.lock.label=נעילת/פתיחת הבחירה
-command.quit.key=ע
-command.quit.label=עזיבת בחירה
-command.blinkElement.key=ל
-command.blinkElement.label=אלמנט מהבהב
 command.viewSource.key=ג
-command.viewSource.label=הצגת מקור
-command.viewSourceWindow.key=ק
-command.viewSourceWindow.label=הצגת מקור (בחלון נפרד)
+command.blinkElement.label=אלמנט מהבהב
+stopselection.label=ביטול בחירת האלמנט
+inspector.button.tooltiptext=יצירת חוק הסתרת אלמנטים להסתרת אלמנט זה ודומים לו עם Adblock Plus
+command.blinkElement.key=ל
+command.wider.label=רחב יותר
+command.narrower.label=צר יותר
 command.showMenu.key=ת
+command.select.label=בחירת אלמנט
+command.quit.label=עזיבת בחירה
+command.lock.key=נ
 command.showMenu.label=הצגה או הסתרת העזרה
+command.viewSourceWindow.label=הצגת מקור (בחלון נפרד)
 selectelement.label=בחירת אלמנט להסתרה
-stopselection.label=ביטול בחירת האלמנט
-inspector.button.label=הסתרה באמצעות ABP
-inspector.button.accesskey=מ
-inspector.button.tooltiptext=יצירת חוק הסתרת אלמנטים להסתרת אלמנט זה ודומים לו עם Adblock Plus
+command.lock.label=נעילת/פתיחת הבחירה
+command.viewSourceWindow.key=ק
+command.wider.key=ר
+command.quit.key=ע
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/hr/composer.dtd b/chrome/locale/hr/composer.dtd
index 3e70013..8b1d353 100644
--- a/chrome/locale/hr/composer.dtd
+++ b/chrome/locale/hr/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title "Složite pravilo skrivanja elemenata">
+<!ENTITY preview.label "Pregled">
 <!ENTITY accept.label "Dodaj pravilo filtra">
-<!ENTITY advanced.label "Napredni pogled">
-<!ENTITY basic.label "Osnovni pogled">
+<!ENTITY attributes.lastchild.label "Zadnji izdanak">
 <!ENTITY expression.label "Pravilo filtra">
-<!ENTITY preview.label "Pregled">
 <!ENTITY domain.label "Poveži na domenu">
-<!ENTITY domain.none.label "Bilo koja domena (nije preporučljivo)">
-<!ENTITY nodes-tree.node.label "Član">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Potrebni atributi">
+<!ENTITY groupDisabled.warning "Grupi filtera "?1?" će biti dodan ovaj filter koji će trenutno biti onemogućen.
+  Još uvijek možete dodati filter ali neće biti primjenjen dok ne omogućite grupu filtera
+  u Adblock Plus Postavkama filtera.">
+<!ENTITY nodes-tree.class.label "klasa">
+<!ENTITY advanced.label "Napredni pogled">
 <!ENTITY attributes.tagname.label "Naziv oznake:">
+<!ENTITY domain.none.label "Bilo koja domena (nije preporučljivo)">
+<!ENTITY dialog.title "Složite pravilo skrivanja elemenata">
+<!ENTITY basic.label "Osnovni pogled">
+<!ENTITY attributes.label "Potrebna svojstva">
 <!ENTITY attributes.firstchild.label "Prvi izdanak">
-<!ENTITY attributes.lastchild.label "Zadnji izdanak">
 <!ENTITY attributes.custom.label "Prilagođeni CSS:">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
+<!ENTITY nodes-tree.node.label "Čvorište">
diff --git a/chrome/locale/hr/global.properties b/chrome/locale/hr/global.properties
index 0a6025a..76536e9 100644
--- a/chrome/locale/hr/global.properties
+++ b/chrome/locale/hr/global.properties
@@ -1,32 +1,30 @@
 command.select.key=o
-command.select.label=odaberi element
-command.wider.key=š
-command.wider.label=šire
+command.viewSource.label=pogledaj izvor
 command.narrower.key=u
-command.narrower.label=uže
-command.quit.key=p
-command.quit.label=prekini odabir
-command.blinkElement.key=ž
-command.blinkElement.label=žmigaj element
 command.viewSource.key=g
-command.viewSource.label=pogledaj izvorni kod
-command.viewSourceWindow.key=z
-command.viewSourceWindow.label=pogledaj izvorni kod (u odvojenom prozoru)
+command.blinkElement.label=žmigaj element
+stopselection.label=Prekini odabir elementa
+inspector.button.tooltiptext=Stvori pravilo sakrivanja elementa za sakrivanje ovog elementa i sličnih njemu sa Adblock Plus-om
+command.blinkElement.key=ž
+command.wider.label=šire
+command.narrower.label=uže
 command.showMenu.key=k
+command.select.label=odaberi element
+command.quit.label=prekini odabir
+command.lock.key=l
 command.showMenu.label=prikaži/sakrij pomoć
-selectelement.label=Odaberite element za sakriti
-stopselection.label=Prekini odabiranje elementa
+command.viewSourceWindow.label=pogledaj izvor (u odvojenom prozoru)
+selectelement.label=Odaberite element za sakrivanje
+command.lock.label=zaključaj/odključaj odabir
+command.viewSourceWindow.key=z
+command.wider.key=š
+command.quit.key=p
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/hr/overlay.dtd b/chrome/locale/hr/overlay.dtd
index b4d7dd3..fd2e0cb 100644
--- a/chrome/locale/hr/overlay.dtd
+++ b/chrome/locale/hr/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title "Odabiranje elementa - Tipkovničke kratice">
+<!ENTITY helpbox.title "Prečaci tipkovnice odabira elemenata">
diff --git a/chrome/locale/hsb/composer.dtd b/chrome/locale/hsb/composer.dtd
new file mode 100644
index 0000000..2d9c176
--- /dev/null
+++ b/chrome/locale/hsb/composer.dtd
@@ -0,0 +1,17 @@
+<!ENTITY preview.label "Přehlad">
+<!ENTITY accept.label "Prawidło za chowanje elementa přidać">
+<!ENTITY attributes.lastchild.label "Poslednje dźěćo">
+<!ENTITY expression.label "Prawidło za chowanje elementa">
+<!ENTITY domain.label "Na domenu wjazać">
+<!ENTITY nodes-tree.id.label "ID">
+<!ENTITY groupDisabled.warning "Tuta filtrowa skupina "?1?", kotrejž so tutón filter přidawa, je tuchwilu znjemóžnjena. Móžeš hišće filter přidać, ale njebudźe so nałožować, chibazo zmóžnješ filtrowu skupinu w nastajenjach Adblock Plus.">
+<!ENTITY nodes-tree.class.label "klasa">
+<!ENTITY advanced.label "Rozšěrjeny napohlad">
+<!ENTITY attributes.tagname.label "Mjeno elementa:">
+<!ENTITY domain.none.label "Někajka domena (njeporuča so)">
+<!ENTITY dialog.title "Prawidło za chowanje elementa spisać">
+<!ENTITY basic.label "Zakładny napohlad">
+<!ENTITY attributes.label "Atributy požadać">
+<!ENTITY attributes.firstchild.label "Prěnje dźěćo">
+<!ENTITY attributes.custom.label "Swójski CSS:">
+<!ENTITY nodes-tree.node.label "Suk">
diff --git a/chrome/locale/hsb/global.properties b/chrome/locale/hsb/global.properties
new file mode 100644
index 0000000..5d81993
--- /dev/null
+++ b/chrome/locale/hsb/global.properties
@@ -0,0 +1,30 @@
+selectelement.label=Element wubrać, kotryž ma so schować
+command.narrower.key=u
+command.blinkElement.label=element błyskotać dać
+command.blinkElement.alternativeKey= 
+command.select.label=element wubrać
+stopselection.label=Wuběranje elementa přetorhnyć
+command.narrower.alternativeKey= 
+command.viewSourceWindow.key=k
+command.wider.key=r
+inspector.button.tooltiptext=Wubjerće prawidło za chowanje elementa, zo by tutón element a podobne z Adblock Plus schował
+command.wider.label=šěrši
+command.narrower.label=wuši
+command.showMenu.key=m
+command.showMenu.label=pomoc pokazać/schować
+command.select.alternativeKey= 
+command.quit.alternativeKey= 
+command.viewSource.key=t
+command.blinkElement.key=b
+command.showMenu.alternativeKey= 
+command.lock.key=z
+command.viewSourceWindow.alternativeKey= 
+command.wider.alternativeKey= 
+command.quit.key=o
+command.select.key=w
+command.viewSource.label=žórłowy tekst pokazać
+command.lock.label=wuběr zawrěć/wotewrěć
+command.viewSource.alternativeKey= 
+command.quit.label=wuběr wopušćić
+command.lock.alternativeKey= 
+command.viewSourceWindow.label=žórłowy tekst pokazać (we wosebitym woknje)
diff --git a/chrome/locale/hsb/overlay.dtd b/chrome/locale/hsb/overlay.dtd
new file mode 100644
index 0000000..10a4578
--- /dev/null
+++ b/chrome/locale/hsb/overlay.dtd
@@ -0,0 +1 @@
+<!ENTITY helpbox.title "Tastowe skrótšenki za wubranje elementow">
diff --git a/chrome/locale/hu/composer.dtd b/chrome/locale/hu/composer.dtd
index 6ec8247..d42cbcd 100644
--- a/chrome/locale/hu/composer.dtd
+++ b/chrome/locale/hu/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Elemhez tartozó elrejtési szabály létrehozása">
-<!ENTITY groupDisabled.warning "A(z) "?1?" szűrőcsoport jelenleg le van tiltva. Hozzáadhatja a szűrőt, de adig nem lesz használatban, amíg a szűrőcsoport nincs engedélyezve az Adblock Plus beállításaiban.">
+<!ENTITY preview.label "Előnézet">
 <!ENTITY accept.label "Szűrő hozzáadása">
-<!ENTITY advanced.label "Haladó megjelenítés">
-<!ENTITY basic.label "Alapvető megjelenítés">
+<!ENTITY attributes.lastchild.label "Utolsó elem">
 <!ENTITY expression.label "Szűrő">
-<!ENTITY preview.label "Előnézet">
 <!ENTITY domain.label "Webhelyhez hozzácsatol">
-<!ENTITY domain.none.label "Tetszőleges webhely (nem javasolt)">
-<!ENTITY nodes-tree.node.label "Csomópont">
 <!ENTITY nodes-tree.id.label "azonosító">
+<!ENTITY groupDisabled.warning "A(z) "?1?" szűrőcsoport jelenleg le van tiltva. Hozzáadhatja a szűrőt, de adig nem lesz használatban, amíg a szűrőcsoport nincs engedélyezve az Adblock Plus beállításaiban.">
 <!ENTITY nodes-tree.class.label "osztály">
+<!ENTITY advanced.label "Haladó megjelenítés">
+<!ENTITY attributes.tagname.label "Címke:">
+<!ENTITY domain.none.label "Tetszőleges webhely (nem javasolt)">
+<!ENTITY dialog.title "Elemhez tartozó elrejtési szabály létrehozása">
+<!ENTITY basic.label "Alapvető megjelenítés">
 <!ENTITY attributes.label "Szükséges értékek">
-<!ENTITY attributes.tagname.label "Jelzőnév:">
 <!ENTITY attributes.firstchild.label "Első elem">
-<!ENTITY attributes.lastchild.label "Utolsó elem">
 <!ENTITY attributes.custom.label "Saját CSS:">
+<!ENTITY nodes-tree.node.label "Csomópont">
diff --git a/chrome/locale/hu/global.properties b/chrome/locale/hu/global.properties
index e8c59a5..4d93e57 100644
--- a/chrome/locale/hu/global.properties
+++ b/chrome/locale/hu/global.properties
@@ -1,32 +1,30 @@
-command.select.key=i
+selectelement.label=Elrejtendő elem kiválasztása
+command.narrower.key=e
+command.blinkElement.label=elem villogtatása
+command.blinkElement.alternativeKey= 
 command.select.label=elem kiválasztása
+stopselection.label=Elemkiválasztás megszakítása
+command.narrower.alternativeKey= 
+command.viewSourceWindow.key=a
 command.wider.key=z
+inspector.button.tooltiptext=Ehhez az elemhez egy elrejtés-szabály létrehozása és egy hasonló az Adblock Plus segítségével
 command.wider.label=szélesebb
-command.narrower.key=e
 command.narrower.label=keskenyebb
+command.showMenu.key=s
+command.showMenu.label=súgó megjelenítése/elrejtése
+command.select.alternativeKey= 
+command.quit.alternativeKey= 
+command.viewSource.key=f
+command.blinkElement.key=v
+command.showMenu.alternativeKey= 
 command.lock.key=j
-command.lock.label=kijelölés lezárása/feloldása
+command.viewSourceWindow.alternativeKey= 
+command.wider.alternativeKey= 
 command.quit.key=b
-command.quit.label=kiválasztás befejezése
-command.blinkElement.key=v
-command.blinkElement.label=elem villogása
-command.viewSource.key=f
+command.select.key=i
 command.viewSource.label=forráskód megjelenítése
-command.viewSourceWindow.key=a
+command.lock.label=kijelölés lezárása/feloldása
+command.viewSource.alternativeKey= 
+command.quit.label=kiválasztás befejezése
+command.lock.alternativeKey= 
 command.viewSourceWindow.label=forráskód megjelenítése (új ablakban)
-command.showMenu.key=s
-command.showMenu.label=súgó megjelenítése/elrejtése
-selectelement.label=Elrejtendő elem kiválasztása
-stopselection.label=Elemkiválasztás megszakítása
-inspector.button.label=Elrejtés ezzel: AdblockPlus
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Ehhez az elemhez egy elrejtés-szabály létrehozása és egy hasonló az Adblock Plus segítségével
-command.blinkElement.alternativeKey=
-command.narrower.alternativeKey=
-command.select.alternativeKey=
-command.quit.alternativeKey=
-command.showMenu.alternativeKey=
-command.viewSourceWindow.alternativeKey=
-command.wider.alternativeKey=
-command.viewSource.alternativeKey=
-command.lock.alternativeKey=
diff --git a/chrome/locale/hy/composer.dtd b/chrome/locale/hy-AM/composer.dtd
similarity index 83%
rename from chrome/locale/hy/composer.dtd
rename to chrome/locale/hy-AM/composer.dtd
index b88acd5..94329af 100644
--- a/chrome/locale/hy/composer.dtd
+++ b/chrome/locale/hy-AM/composer.dtd
@@ -1,20 +1,18 @@
-<!ENTITY dialog.title "Ստեղծել տարրի թաքցման կանոն">
-<!ENTITY groupDisabled.warning "
-	Ֆիլտրերի "?1?" խումբը, որին պետք է ավելացվի այս ֆիլտրը այժմ անջատված է:
-	Դուք միևնույն է կարող եք այն ավելացնել, բայց այն կաշխատի միայն խումբը միացնելուց հետո:
-">
+<!ENTITY preview.label "Նախադիտում">
 <!ENTITY accept.label "Ավելացնել ֆիլտրման կանոն">
-<!ENTITY advanced.label "Ընդլայնված տեսք">
-<!ENTITY basic.label "Պարզ տեսք">
+<!ENTITY attributes.lastchild.label "Վերջին ենթատարր">
 <!ENTITY expression.label "Ֆիլտրման կանոն">
-<!ENTITY preview.label "Նախադիտում">
 <!ENTITY domain.label "Դոմեյնից կախված">
-<!ENTITY domain.none.label "Ցանկացած դոմեյն (անցանկալի)">
-<!ENTITY nodes-tree.node.label "Տարր">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "Ֆիլտրերի "?1?" խումբը, որին պետք է ավելացվի այս ֆիլտրը այժմ անջատված է:
+	Դուք միևնույն է կարող եք այն ավելացնել, բայց այն կաշխատի միայն խումբը միացնելուց հետո:">
 <!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Պարտադիր ատրիբուտներ">
+<!ENTITY advanced.label "Ընդլայնված տեսք">
 <!ENTITY attributes.tagname.label "Տեգի անուն:">
+<!ENTITY domain.none.label "Ցանկացած դոմեյն (անցանկալի)">
+<!ENTITY dialog.title "Ստեղծել տարրի թաքցման կանոն">
+<!ENTITY basic.label "Պարզ տեսք">
+<!ENTITY attributes.label "Պարտադիր ատրիբուտներ">
 <!ENTITY attributes.firstchild.label "Առաջին ենթատարր">
-<!ENTITY attributes.lastchild.label "Վերջին ենթատարր">
 <!ENTITY attributes.custom.label "Կոնկրետ CSS:">
+<!ENTITY nodes-tree.node.label "Տարր">
diff --git a/chrome/locale/hy/global.properties b/chrome/locale/hy-AM/global.properties
similarity index 86%
rename from chrome/locale/hy/global.properties
rename to chrome/locale/hy-AM/global.properties
index 23cf393..2de0c57 100644
--- a/chrome/locale/hy/global.properties
+++ b/chrome/locale/hy-AM/global.properties
@@ -1,32 +1,30 @@
-command.select.key=s
+selectelement.label=Ընտրել թաքցվող տարրը
+command.narrower.key=n
+command.blinkElement.label=թարթել տարրը
+command.blinkElement.alternativeKey=թ
 command.select.label=ընտրել էլեմենտ
+stopselection.label=Հրաժարվել տարրերի ընտրությունից
+command.narrower.alternativeKey=ն
+command.viewSourceWindow.key=u
 command.wider.key=w
+inspector.button.tooltiptext=Թաքցնելու կանոն ստեղծել Adblock Plus-ի համար՝ ինչ-որ բան թաքցնելու համար
 command.wider.label=լայնացնել
-command.narrower.key=n
 command.narrower.label=նեղացել
-command.lock.key=l
-command.lock.label=թույլ տալ/արգելել ընտրումը
-command.quit.key=q
-command.quit.label=դուրս գալ
-command.blinkElement.key=b
-command.blinkElement.label=թարթել տարրը
-command.viewSource.key=v
-command.viewSource.label=նայել կոդը
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=նայել կոդը (առանձին պատուհանում)
 command.showMenu.key=h
 command.showMenu.label=թաքցնել/ցույց տալ օգնությունը
 command.select.alternativeKey=ը
-command.wider.alternativeKey=լ
-command.narrower.alternativeKey=ն
-command.lock.alternativeKey=ա
 command.quit.alternativeKey=դ
-command.blinkElement.alternativeKey=թ
-command.viewSource.alternativeKey=կ
-command.viewSourceWindow.alternativeKey=պ
+command.viewSource.key=v
+command.blinkElement.key=b
 command.showMenu.alternativeKey=մ
-selectelement.label=Ընտրել թաքցվող տարրը
-stopselection.label=Հրաժարվել տարրերի ընտրությունից
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
-inspector.button.accesskey=A
-inspector.button.label=Hide with ABP
+command.lock.key=l
+command.viewSourceWindow.alternativeKey=պ
+command.wider.alternativeKey=լ
+command.quit.key=q
+command.select.key=s
+command.viewSource.label=նայել կոդը
+command.lock.label=թույլ տալ/արգելել ընտրումը
+command.viewSource.alternativeKey=կ
+command.quit.label=դուրս գալ
+command.lock.alternativeKey=ա
+command.viewSourceWindow.label=նայել կոդը (առանձին պատուհանում)
diff --git a/chrome/locale/hy/overlay.dtd b/chrome/locale/hy-AM/overlay.dtd
similarity index 100%
rename from chrome/locale/hy/overlay.dtd
rename to chrome/locale/hy-AM/overlay.dtd
diff --git a/chrome/locale/id/composer.dtd b/chrome/locale/id/composer.dtd
new file mode 100644
index 0000000..8ecdb75
--- /dev/null
+++ b/chrome/locale/id/composer.dtd
@@ -0,0 +1,17 @@
+<!ENTITY preview.label "Pratinjau">
+<!ENTITY accept.label "Tambahkan aturan penyembunyian elemen">
+<!ENTITY attributes.lastchild.label "Anak terakhir">
+<!ENTITY expression.label "Aturan penyembunyian elemen">
+<!ENTITY domain.label "Mengikat ke domain">
+<!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "Penyaring grup "?1?" yang mana filter ini akan ditambahkan ke sedang dinonaktifkan. Anda masih dapat menambahkan penyaring namun itu tidak akan diterapkan kecuali Anda mengaktifkan penyaring grup di preferensi Adblock Plus.">
+<!ENTITY nodes-tree.class.label "kelas">
+<!ENTITY advanced.label "Tampilan lanjutan">
+<!ENTITY attributes.tagname.label "Nama tag:">
+<!ENTITY domain.none.label "Domain apapun (tidak disarankan)">
+<!ENTITY dialog.title "Membuat aturan penyembunyian elemen">
+<!ENTITY basic.label "Tampilan dasar">
+<!ENTITY attributes.label "Memerlukan atribut">
+<!ENTITY attributes.firstchild.label "Anak pertama">
+<!ENTITY attributes.custom.label "Ubahsuaian CSS:">
+<!ENTITY nodes-tree.node.label "Titik">
diff --git a/chrome/locale/id/global.properties b/chrome/locale/id/global.properties
new file mode 100644
index 0000000..d6abfd5
--- /dev/null
+++ b/chrome/locale/id/global.properties
@@ -0,0 +1,30 @@
+command.select.key=s
+command.viewSource.label=Lihat sumber
+command.narrower.key=n
+command.viewSource.key=v
+command.blinkElement.label=Elemen berkedip
+stopselection.label=Batalkan pilihan elemen
+inspector.button.tooltiptext=Buat sebuah aturan penyembunyian elemen untuk menyembunyikan elemen ini dan yang mirip dengan Adblock Plus
+command.blinkElement.key=b
+command.wider.label=lebih lebar
+command.narrower.label=lebih sempit
+command.showMenu.key=h
+command.select.label=Pilih elemen
+command.quit.label=Pilihan keluar
+command.lock.key=l
+command.showMenu.label=tampilkan/sembunyikan bantuan
+command.viewSourceWindow.label=lihat sumber (dalam jendela terpisah)
+selectelement.label=Pilih sebuah elemen untuk disembunyikan
+command.lock.label=Pilihan kunci/buka kunci
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
+command.blinkElement.alternativeKey=
+command.narrower.alternativeKey=
+command.select.alternativeKey=
+command.quit.alternativeKey=
+command.showMenu.alternativeKey=
+command.viewSourceWindow.alternativeKey=
+command.wider.alternativeKey=
+command.viewSource.alternativeKey=
+command.lock.alternativeKey=
diff --git a/chrome/locale/id/overlay.dtd b/chrome/locale/id/overlay.dtd
new file mode 100644
index 0000000..2afe3a6
--- /dev/null
+++ b/chrome/locale/id/overlay.dtd
@@ -0,0 +1 @@
+<!ENTITY helpbox.title "Tombol pintas pemilihan elemen">
diff --git a/chrome/locale/it/composer.dtd b/chrome/locale/it/composer.dtd
index d0e18d3..e7c80bf 100644
--- a/chrome/locale/it/composer.dtd
+++ b/chrome/locale/it/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title "Composizione della regola per nascondere elementi">
-<!ENTITY groupDisabled.warning "
-	Il gruppo di filtri "?1?" al quale bisognerebbe aggiungere il filtro è attualmente 
-	disattivato. È comunque possibile aggiungere il filtro, ma questo verrà applicato solo dopo 
-	la riattivazione del gruppo di filtri nella finestra della impostazioni di Adblock Plus
-">
+<!ENTITY preview.label "Anteprima">
 <!ENTITY accept.label "Aggiungi regola del filtro">
-<!ENTITY advanced.label "Avanzate >>">
-<!ENTITY basic.label "<< Generali">
+<!ENTITY attributes.lastchild.label "Ultimo elemento figlio">
 <!ENTITY expression.label "Regola del filtro">
-<!ENTITY preview.label "Anteprima">
 <!ENTITY domain.label "Legame con il dominio">
-<!ENTITY domain.none.label "qualsiasi dominio (non raccomandato)">
-<!ENTITY nodes-tree.node.label "Nodo">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Attributi richiesti">
+<!ENTITY groupDisabled.warning "Il gruppo di filtri "?1?" al quale bisognerebbe aggiungere il filtro è attualmente 
+	disattivato. È comunque possibile aggiungere il filtro, ma questo verrà applicato solo dopo 
+	la riattivazione del gruppo di filtri nella finestra della impostazioni di Adblock Plus">
+<!ENTITY nodes-tree.class.label "classe">
+<!ENTITY advanced.label "Avanzate >>">
 <!ENTITY attributes.tagname.label "Nome del tag:">
+<!ENTITY domain.none.label "qualsiasi dominio (non raccomandato)">
+<!ENTITY dialog.title "Composizione della regola per nascondere elementi">
+<!ENTITY basic.label "<< Generali">
+<!ENTITY attributes.label "Attributi richiesti">
 <!ENTITY attributes.firstchild.label "Primo elemento figlio">
-<!ENTITY attributes.lastchild.label "Ultimo elemento figlio">
 <!ENTITY attributes.custom.label "CSS personalizzato:">
+<!ENTITY nodes-tree.node.label "Nodo">
diff --git a/chrome/locale/it/global.properties b/chrome/locale/it/global.properties
index c4e841b..c100e07 100644
--- a/chrome/locale/it/global.properties
+++ b/chrome/locale/it/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=seleziona l'elemento
-command.wider.key=w
-command.wider.label=allarga la selezione
+command.viewSource.label=visualizza sorgente
 command.narrower.key=n
-command.narrower.label=riduce la selezione
-command.lock.key=l
-command.lock.label=blocca/sblocca la selezione
-command.quit.key=q
-command.quit.label=esce dalla selezione
-command.blinkElement.key=b
-command.blinkElement.label=fa lampeggiare l'elemento
 command.viewSource.key=v
-command.viewSource.label=visualizza sorgente
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=visualizza sorgente (in finestra separata)
+command.blinkElement.label=fa lampeggiare l'elemento
+stopselection.label=Annulla la selezione dell'elemento
+inspector.button.tooltiptext=Crea una regola per nascondere l'elemento selezionato ed altri simili con Adblock Plus
+command.blinkElement.key=b
+command.wider.label=allarga la selezione
+command.narrower.label=riduce la selezione
 command.showMenu.key=h
+command.select.label=seleziona l'elemento
+command.quit.label=esce dalla selezione
+command.lock.key=l
 command.showMenu.label=mostra/nasconde questo pop-up
+command.viewSourceWindow.label=visualizza sorgente (in finestra separata)
 selectelement.label=Seleziona con Element Hiding Helper
-stopselection.label=Annulla la selezione dell'elemento
-inspector.button.label=Nascondi con Adblock Plus
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Crea una regola per nascondere l'elemento selezionato ed altri simili con Adblock Plus
+command.lock.label=blocca/sblocca la selezione
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/ja/composer.dtd b/chrome/locale/ja/composer.dtd
index d434248..dcf8153 100644
--- a/chrome/locale/ja/composer.dtd
+++ b/chrome/locale/ja/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "要素の非表示ルール">
-<!ENTITY groupDisabled.warning "フィルタグループ "?1?" は追加されましたが、フィルタ機能は現在無効化されているために使用できません。フィルタを追加する事はできますが、Adblock Plus の設定でグループフィルタを有効にしない限り適用されません。">
-<!ENTITY accept.label "要素の非表示ルールを追加">
-<!ENTITY advanced.label "詳細表示">
-<!ENTITY basic.label "標準表示">
-<!ENTITY expression.label "要素の非表示ルール">
 <!ENTITY preview.label "プレビュー">
-<!ENTITY domain.label "適用するドメイン">
-<!ENTITY domain.none.label "すべてのドメイン (非推奨)">
-<!ENTITY nodes-tree.node.label "ノード">
+<!ENTITY accept.label "要素の非表示フィルターを追加">
+<!ENTITY attributes.lastchild.label "最後の子要素">
+<!ENTITY expression.label "要素の非表示フィルター">
+<!ENTITY domain.label "対象にするドメイン">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "クラス">
-<!ENTITY attributes.label "非表示の条件">
-<!ENTITY attributes.tagname.label "タグの名前:">
-<!ENTITY attributes.firstchild.label "最初の直下要素">
-<!ENTITY attributes.lastchild.label "最後の直下要素">
-<!ENTITY attributes.custom.label "カスタム CSS:">
+<!ENTITY groupDisabled.warning "追加先のフィルターグループ &quot;?1?&quot; は現在無効化されています。このフィルターは追加されますが、適用するには Adblock Plus の設定でフィルターグループを有効にしてください。">
+<!ENTITY nodes-tree.class.label "class">
+<!ENTITY advanced.label "詳細表示">
+<!ENTITY attributes.tagname.label "タグ:">
+<!ENTITY domain.none.label "ドメイン制限なし (非推奨)">
+<!ENTITY dialog.title "要素の非表示フィルターを作成">
+<!ENTITY basic.label "標準設定">
+<!ENTITY attributes.label "非表示にする条件">
+<!ENTITY attributes.firstchild.label "最初の子要素">
+<!ENTITY attributes.custom.label "自作 CSS:">
+<!ENTITY nodes-tree.node.label "ノード">
diff --git a/chrome/locale/ja/global.properties b/chrome/locale/ja/global.properties
index 8882027..6579a89 100644
--- a/chrome/locale/ja/global.properties
+++ b/chrome/locale/ja/global.properties
@@ -1,26 +1,24 @@
-command.select.key=s
+command.select.key=S
+command.viewSource.label=ソースを表示
+command.narrower.key=N
+command.viewSource.key=v
+command.blinkElement.label=要素を点滅
+stopselection.label=要素の選択を中止
+inspector.button.tooltiptext=この要素や類似する要素を Adblock Plus で非表示にするルールを作成
+command.blinkElement.key=B
+command.wider.label=選択範囲を広げる
+command.narrower.label=選択範囲を絞る
+command.showMenu.key=H
 command.select.label=要素を選択
-command.wider.key=w
-command.wider.label=上のノードへ選択範囲を広げる
-command.narrower.key=n
-command.narrower.label=下のノードへ選択範囲を狭める
+command.quit.label=選択を終了
 command.lock.key=l
+command.showMenu.label=ヘルプを表示/非表示
+command.viewSourceWindow.label=新しいウィンドウでソースを表示
+selectelement.label=非表示にする要素を選択
 command.lock.label=選択の固定/解除
+command.viewSourceWindow.key=U
+command.wider.key=w
 command.quit.key=q
-command.quit.label=選択を終了
-command.blinkElement.key=b
-command.blinkElement.label=要素を点滅
-command.viewSource.key=v
-command.viewSource.label=ソースを表示
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=新しいウィンドウでソースを表示
-command.showMenu.key=h
-command.showMenu.label=ヘルプを表示/非表示
-selectelement.label=選択した要素を隠す
-stopselection.label=要素の選択を中止
-inspector.button.label=ABP で隠す
-inspector.button.accesskey=A
-inspector.button.tooltiptext=この要素に Adblock Plus でも同様に隠すための非表示ルールを作成します
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/ja/overlay.dtd b/chrome/locale/ja/overlay.dtd
index 7f1c45c..facdd49 100644
--- a/chrome/locale/ja/overlay.dtd
+++ b/chrome/locale/ja/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title "要素の選択 - キーボードショートカット">
+<!ENTITY helpbox.title "ショートカットキー">
diff --git a/chrome/locale/kk/composer.dtd b/chrome/locale/kk/composer.dtd
index 60e20d6..f214746 100644
--- a/chrome/locale/kk/composer.dtd
+++ b/chrome/locale/kk/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Элементті жасыру ережесін құрастыру">
-<!ENTITY groupDisabled.warning "Бұл фильтр қосылатын "?1?" фильтрлер тобы қазір сөндірулі тұр. Оны қоса аласыз, бірақ Adblock Plus баптауларында ол фильтр тобы іске қоспасаңыз, ол қолданылмайды.">
+<!ENTITY preview.label "Алдын-ала қарау">
 <!ENTITY accept.label "Фильтр ережесін қосу">
-<!ENTITY advanced.label "Кеңейтілген көрінісі">
-<!ENTITY basic.label "Негізгі көрінісі">
+<!ENTITY attributes.lastchild.label "Соңғы қатысты домен">
 <!ENTITY expression.label "Фильтр ережесі">
-<!ENTITY preview.label "Алдын-ала қарау">
 <!ENTITY domain.label "Доменмен байланыстыру">
-<!ENTITY domain.none.label "Кез-келген домен (ұсынылмайды)">
-<!ENTITY nodes-tree.node.label "Торап">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "Бұл фильтр қосылатын "?1?" фильтрлер тобы қазір сөндірулі тұр. Оны қоса аласыз, бірақ Adblock Plus баптауларында ол фильтр тобы іске қоспасаңыз, ол қолданылмайды.">
 <!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Керек атрибуттар">
+<!ENTITY advanced.label "Кеңейтілген көрінісі">
 <!ENTITY attributes.tagname.label "Тег аты:">
+<!ENTITY domain.none.label "Кез-келген домен (ұсынылмайды)">
+<!ENTITY dialog.title "Элементті жасыру ережесін құрастыру">
+<!ENTITY basic.label "Негізгі көрінісі">
+<!ENTITY attributes.label "Керек атрибуттар">
 <!ENTITY attributes.firstchild.label "Біріншілік қатысты домен">
-<!ENTITY attributes.lastchild.label "Соңғы қатысты домен">
 <!ENTITY attributes.custom.label "Пайдаланушы CSS:">
+<!ENTITY nodes-tree.node.label "Торап">
diff --git a/chrome/locale/kk/global.properties b/chrome/locale/kk/global.properties
index 8fc2f8d..0a77a9b 100644
--- a/chrome/locale/kk/global.properties
+++ b/chrome/locale/kk/global.properties
@@ -1,32 +1,30 @@
 command.select.key=т
-command.select.label=элементті таңдау
-command.wider.key=к
-command.wider.label=кеңейту
+command.viewSource.label=бастапқы кодын қарау
 command.narrower.key=й
-command.narrower.label=тар қылу
-command.lock.key=л
-command.lock.label=таңдауды блоктау/босату
-command.quit.key=ы
-command.quit.label=бас тарту
-command.blinkElement.key=у
-command.blinkElement.label=элементтпен көрсету
 command.viewSource.key=с
-command.viewSource.label=бастапқы кодын қарау
-command.viewSourceWindow.key=о
-command.viewSourceWindow.label=бастапқы кодын қарау (жаңа терезеде)
+command.blinkElement.label=элементтпен көрсету
+stopselection.label=Элементтер таңдаудан бас тарту
+inspector.button.tooltiptext=Осындай және осыған ұқсас элементтерді Adblock Plus көмегімен жасыру үшін жасыру ережесін жасау
+command.blinkElement.key=у
+command.wider.label=кеңейту
+command.narrower.label=тар қылу
 command.showMenu.key=з
+command.select.label=элементті таңдау
+command.quit.label=бас тарту
+command.lock.key=л
 command.showMenu.label=көмекті көрсету/жасыру
+command.viewSourceWindow.label=бастапқы кодын қарау (жаңа терезеде)
 selectelement.label=Жасырылатын элементті таңдау
-stopselection.label=Элементтер таңдаудан бас тарту
+command.lock.label=таңдауды блоктау/босату
+command.viewSourceWindow.key=о
+command.wider.key=к
+command.quit.key=ы
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/ko/composer.dtd b/chrome/locale/ko/composer.dtd
index 1ed75ec..7c9d4e1 100644
--- a/chrome/locale/ko/composer.dtd
+++ b/chrome/locale/ko/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "필터 작성">
-<!ENTITY groupDisabled.warning ""?1?" 필터 그룹의 사용 중지 : 필터 추가 가능 + 필터 적용 중지">
+<!ENTITY preview.label "미리보기">
 <!ENTITY accept.label "추가">
-<!ENTITY advanced.label "고급 보기">
-<!ENTITY basic.label "기본 보기">
+<!ENTITY attributes.lastchild.label "마지막 자식">
 <!ENTITY expression.label "새 필터">
-<!ENTITY preview.label "미리보기">
 <!ENTITY domain.label "도메인 지정">
-<!ENTITY domain.none.label "모든 도메인 (권장 안 함)">
-<!ENTITY nodes-tree.node.label "노드">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning ""?1?" 필터 그룹의 사용 중지 : 필터 추가 가능 + 필터 적용 중지">
 <!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "속성 지정">
+<!ENTITY advanced.label "고급 보기">
 <!ENTITY attributes.tagname.label "태그 이름 :">
+<!ENTITY domain.none.label "모든 도메인 (권장 안 함)">
+<!ENTITY dialog.title "필터 작성">
+<!ENTITY basic.label "기본 보기">
+<!ENTITY attributes.label "속성 지정">
 <!ENTITY attributes.firstchild.label "첫 번째 자식">
-<!ENTITY attributes.lastchild.label "마지막 자식">
 <!ENTITY attributes.custom.label "사용자 지정 CSS">
+<!ENTITY nodes-tree.node.label "노드">
diff --git a/chrome/locale/ko/global.properties b/chrome/locale/ko/global.properties
index d98cb27..9822e64 100644
--- a/chrome/locale/ko/global.properties
+++ b/chrome/locale/ko/global.properties
@@ -1,32 +1,30 @@
-command.select.key=s
+selectelement.label=숨기려는 요소 선택 (S)
+command.narrower.key=n
+command.blinkElement.label=요소 깜빡임
+command.blinkElement.alternativeKey= 
 command.select.label=요소 선택
+stopselection.label=요소 선택 중지
+command.narrower.alternativeKey= 
+command.viewSourceWindow.key=u
 command.wider.key=w
+inspector.button.tooltiptext=요소 숨김 도우미는 애드블록 플러스의 요소 숨김 필터를 작성하는 보조 확장 프로그램
 command.wider.label=선택 영역 확대
-command.narrower.key=n
 command.narrower.label=선택 영역 축소
+command.showMenu.key=h
+command.showMenu.label=단축키 설명 보기/숨김
+command.select.alternativeKey= 
+command.quit.alternativeKey= 
+command.viewSource.key=v
+command.blinkElement.key=b
+command.showMenu.alternativeKey= 
 command.lock.key=l
-command.lock.label=선택 영역 잠금/해제
+command.viewSourceWindow.alternativeKey= 
+command.wider.alternativeKey= 
 command.quit.key=q
-command.quit.label=선택 중지
-command.blinkElement.key=b
-command.blinkElement.label=요소 깜빡임
-command.viewSource.key=v
+command.select.key=s
 command.viewSource.label=소스 보기
-command.viewSourceWindow.key=u
+command.lock.label=선택 영역 잠금/해제
+command.viewSource.alternativeKey= 
+command.quit.label=선택 중지
+command.lock.alternativeKey= 
 command.viewSourceWindow.label=소스 보기 (별도 창)
-command.showMenu.key=h
-command.showMenu.label=단축키 설명 보기/숨김
-selectelement.label=숨기려는 요소 선택 (S)
-stopselection.label=요소 선택 중지
-inspector.button.label=애드블록 플러스로 요소 숨기기
-inspector.button.accesskey=A
-inspector.button.tooltiptext=요소 숨김 도우미는 애드블록 플러스의 요소 숨김 필터를 작성하는 보조 확장 프로그램
-command.blinkElement.alternativeKey=
-command.narrower.alternativeKey=
-command.select.alternativeKey=
-command.quit.alternativeKey=
-command.showMenu.alternativeKey=
-command.viewSourceWindow.alternativeKey=
-command.wider.alternativeKey=
-command.viewSource.alternativeKey=
-command.lock.alternativeKey=
diff --git a/chrome/locale/lt/composer.dtd b/chrome/locale/lt/composer.dtd
index aa75689..14eac4d 100644
--- a/chrome/locale/lt/composer.dtd
+++ b/chrome/locale/lt/composer.dtd
@@ -1,19 +1,19 @@
-<!ENTITY dialog.title "Sukurti elementų paslėpimo taisyklę">
-<!ENTITY groupDisabled.warning "	Šiuo metu filtrų grupė "?1?" į kurią bus įdėtas šis filtras yra išjungta. 
-Jūs vistiek galite pridėti filtrą, bet jis nebus pritaikytas, nebent Adblock Plus 
-nustatymuose įgalinsite šią filtrų grupę.">
+<!ENTITY preview.label "Peržiūra">
 <!ENTITY accept.label "Pridėti elemento slėpimo taisyklę">
-<!ENTITY advanced.label "Sudėtingesnis vaizdas">
-<!ENTITY basic.label "Įprastas vaizdas">
+<!ENTITY attributes.lastchild.label "Paskutinysis „child“ elementas">
 <!ENTITY expression.label "Elemento slėpimo taisyklė">
-<!ENTITY preview.label "Peržiūra">
 <!ENTITY domain.label "Susieti su domenu">
-<!ENTITY domain.none.label "Bet kokiu domenu (nerekomenduojama)">
-<!ENTITY nodes-tree.node.label "Mazgas">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "Šiuo metu filtrų grupė "?1?" į kurią bus įdėtas šis filtras yra išjungta. 
+Jūs vistiek galite pridėti filtrą, bet jis nebus pritaikytas, nebent Adblock Plus 
+nustatymuose įgalinsite šią filtrų grupę.">
 <!ENTITY nodes-tree.class.label "klasė">
-<!ENTITY attributes.label "Reikalauti savybių">
+<!ENTITY advanced.label "Sudėtingesnis vaizdas">
 <!ENTITY attributes.tagname.label "Žymės vardas:">
+<!ENTITY domain.none.label "Bet kokiu domenu (nerekomenduojama)">
+<!ENTITY dialog.title "Sukurti elementų paslėpimo taisyklę">
+<!ENTITY basic.label "Įprastas vaizdas">
+<!ENTITY attributes.label "Reikalauti savybių">
 <!ENTITY attributes.firstchild.label "Pirmasis „child“ elementas">
-<!ENTITY attributes.lastchild.label "Paskutinysis „child“ elementas">
 <!ENTITY attributes.custom.label "Pasirinktinis CSS:">
+<!ENTITY nodes-tree.node.label "Mazgas">
diff --git a/chrome/locale/lt/global.properties b/chrome/locale/lt/global.properties
index c33b780..1e5f70e 100644
--- a/chrome/locale/lt/global.properties
+++ b/chrome/locale/lt/global.properties
@@ -1,26 +1,24 @@
 command.select.key=n
-command.select.label=pasirinkti elementą
-command.wider.key=l
-command.wider.label=plačiau
+command.viewSource.label=pirminis tekstas
 command.narrower.key=s
-command.narrower.label=siauriau
-command.lock.key=u
-command.lock.label=užrakinimo/atrakinimo pasirinkimas
-command.quit.key=b
-command.quit.label=baigti pasirinkimą
-command.blinkElement.key=m
-command.blinkElement.label=mirksinti elementą
 command.viewSource.key=p
-command.viewSource.label=pirminis tekstas
-command.viewSourceWindow.key=t
-command.viewSourceWindow.label=pirminis tekstas (atskirame lange)
+command.blinkElement.label=mirksinti elementą
+stopselection.label=Atsisakyti elemento pasirinkimo
+inspector.button.tooltiptext=Sukurti elementų slėpimo taisyklę, kuri Adblock Plus pagalba, slėptų šį ir panašius į šį elementus
+command.blinkElement.key=m
+command.wider.label=plačiau
+command.narrower.label=siauriau
 command.showMenu.key=ž
+command.select.label=pasirinkti elementą
+command.quit.label=baigti pasirinkimą
+command.lock.key=u
 command.showMenu.label=rodyti/slėpti žinyną
+command.viewSourceWindow.label=pirminis tekstas (atskirame lange)
 selectelement.label=Pasirinkite elementą kurį norite slėpti
-stopselection.label=Atsisakyti elemento pasirinkimo
-inspector.button.label=Slėpti su ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Sukurti elementų slėpimo taisyklę, kuri Adblock Plus pagalba, slėptų šį ir panašius į šį elementus
+command.lock.label=užrakinimo/atrakinimo pasirinkimas
+command.viewSourceWindow.key=t
+command.wider.key=l
+command.quit.key=b
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/nb-NO/composer.dtd b/chrome/locale/nb-NO/composer.dtd
deleted file mode 100644
index ed3bdc4..0000000
--- a/chrome/locale/nb-NO/composer.dtd
+++ /dev/null
@@ -1,21 +0,0 @@
-<!ENTITY dialog.title "Lag regel for skjuling av element">
-<!ENTITY accept.label "Legg til filterregel">
-<!ENTITY advanced.label "Avansert visning">
-<!ENTITY basic.label "Vanlig visning">
-<!ENTITY expression.label "Filterregel">
-<!ENTITY preview.label "Forhåndsvisning">
-<!ENTITY domain.label "Bind til domene">
-<!ENTITY domain.none.label "Uansett domene (ikke anbefalt)">
-<!ENTITY nodes-tree.node.label "Node">
-<!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "klasse">
-<!ENTITY attributes.label "Krever følgende egenskaper">
-<!ENTITY attributes.tagname.label "Navn på merkelapp:">
-<!ENTITY attributes.firstchild.label "Første underelement">
-<!ENTITY attributes.lastchild.label "Siste underelement">
-<!ENTITY attributes.custom.label "Egendefinert CSS:">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
diff --git a/chrome/locale/nb-NO/global.properties b/chrome/locale/nb-NO/global.properties
deleted file mode 100644
index 7757178..0000000
--- a/chrome/locale/nb-NO/global.properties
+++ /dev/null
@@ -1,32 +0,0 @@
-command.select.key=s
-command.select.label=velg element
-command.wider.key=w
-command.wider.label=bredere
-command.narrower.key=n
-command.narrower.label=smalere
-command.quit.key=q
-command.quit.label=Avbryt valg
-command.blinkElement.key=b
-command.blinkElement.label=blinkende elementer
-command.viewSource.key=v
-command.viewSource.label=se kildekode
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=se kildekode (i eget vindu)
-command.showMenu.key=h
-command.showMenu.label=vis/skjul hjelp
-selectelement.label=Velg element som skal skjules
-stopselection.label=Avbryt valg av elementer
-command.blinkElement.alternativeKey=
-command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
-command.select.alternativeKey=
-command.quit.alternativeKey=
-command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
-command.viewSourceWindow.alternativeKey=
-command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
-command.viewSource.alternativeKey=
-command.lock.alternativeKey=
diff --git a/chrome/locale/nb-NO/overlay.dtd b/chrome/locale/nb-NO/overlay.dtd
deleted file mode 100644
index a83c198..0000000
--- a/chrome/locale/nb-NO/overlay.dtd
+++ /dev/null
@@ -1 +0,0 @@
-<!ENTITY helpbox.title "Valg av elementer - Hurtigtaster">
diff --git a/chrome/locale/nl/composer.dtd b/chrome/locale/nl/composer.dtd
index cd24af2..51cc99b 100644
--- a/chrome/locale/nl/composer.dtd
+++ b/chrome/locale/nl/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Regel voor verbergen van elementen opstellen">
-<!ENTITY groupDisabled.warning "De filtergroep ‘?1?’ waaraan dit filter wordt toegevoegd is momenteel uitgeschakeld. U kunt het filter nog steeds toevoegen, maar het wordt niet toegepast tenzij u de filtergroep in de Adblock Plus-voorkeuren inschakelt.">
+<!ENTITY preview.label "Voorbeeld">
 <!ENTITY accept.label "Filterregel toevoegen">
-<!ENTITY advanced.label "Geavanceerde weergave">
-<!ENTITY basic.label "Basisweergave">
+<!ENTITY attributes.lastchild.label "Laatste afgeleide">
 <!ENTITY expression.label "Filterregel">
-<!ENTITY preview.label "Voorbeeld">
 <!ENTITY domain.label "Aan domein koppelen">
-<!ENTITY domain.none.label "Elk domein (niet aanbevolen)">
-<!ENTITY nodes-tree.node.label "Node">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Attributen vereisen">
+<!ENTITY groupDisabled.warning "De filtergroep ‘?1?’ waaraan dit filter wordt toegevoegd is momenteel uitgeschakeld. U kunt het filter nog steeds toevoegen, maar het wordt niet toegepast tenzij u de filtergroep in de Adblock Plus-voorkeuren inschakelt.">
+<!ENTITY nodes-tree.class.label "klasse">
+<!ENTITY advanced.label "Geavanceerde weergave">
 <!ENTITY attributes.tagname.label "Tagnaam:">
+<!ENTITY domain.none.label "Elk domein (niet aanbevolen)">
+<!ENTITY dialog.title "Regel voor verbergen van elementen opstellen">
+<!ENTITY basic.label "Basisweergave">
+<!ENTITY attributes.label "Attributen vereist">
 <!ENTITY attributes.firstchild.label "Eerste afgeleide">
-<!ENTITY attributes.lastchild.label "Laatste afgeleide">
 <!ENTITY attributes.custom.label "Aangepaste CSS:">
+<!ENTITY nodes-tree.node.label "node">
diff --git a/chrome/locale/nl/global.properties b/chrome/locale/nl/global.properties
index bcfc88b..25710b3 100644
--- a/chrome/locale/nl/global.properties
+++ b/chrome/locale/nl/global.properties
@@ -1,26 +1,24 @@
 command.select.key=e
-command.select.label=element selecteren
-command.wider.key=b
-command.wider.label=breder
+command.viewSource.label=bron weergeven
 command.narrower.key=s
-command.narrower.label=smaller
-command.lock.key=l
-command.lock.label=selectie vergrendelen/ontgrendelen
-command.quit.key=p
-command.quit.label=selectie stoppen
-command.blinkElement.key=k
-command.blinkElement.label=element laten knipperen
 command.viewSource.key=w
-command.viewSource.label=bron weergeven
-command.viewSourceWindow.key=v
-command.viewSourceWindow.label=bron weergeven (in apart venster)
+command.blinkElement.label=element laten knipperen
+stopselection.label=Elementselectie afbreken
+inspector.button.tooltiptext=Maak een elementverbergingsregel om dit en vergelijkbare elementen te verbergen met Adblock Plus
+command.blinkElement.key=k
+command.wider.label=breder
+command.narrower.label=smaller
 command.showMenu.key=h
+command.select.label=element selecteren
+command.quit.label=selectie stoppen
+command.lock.key=l
 command.showMenu.label=help weergeven/verbergen
+command.viewSourceWindow.label=bron weergeven (in apart venster)
 selectelement.label=Te verbergen element selecteren
-stopselection.label=Elementselectie afbreken
-inspector.button.label=Verbergen met ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Maak een elementverbergingsregel om dit en vergelijkbare elementen te verbergen met Adblock Plus
+command.lock.label=selectie vergrendelen/ontgrendelen
+command.viewSourceWindow.key=v
+command.wider.key=b
+command.quit.key=p
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/pl/composer.dtd b/chrome/locale/pl/composer.dtd
index 69acf4d..23a7001 100644
--- a/chrome/locale/pl/composer.dtd
+++ b/chrome/locale/pl/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Tworzenie reguł ukrywania elementów">
-<!ENTITY groupDisabled.warning "Grupa filtru „?1?”, do której ten filtr ma być dodany jest obecnie wyłączona. Możesz dodać do niej ten filtr, ale nie będzie on działał do czasu włączenia grupy w ustawieniach Adblock Plusa.">
+<!ENTITY preview.label "Podgląd">
 <!ENTITY accept.label "Dodaj regułę filtru">
-<!ENTITY advanced.label "Widok zaawansowany">
-<!ENTITY basic.label "Widok podstawowy">
+<!ENTITY attributes.lastchild.label "ostatni potomek">
 <!ENTITY expression.label "Reguła filtru">
-<!ENTITY preview.label "Podgląd">
 <!ENTITY domain.label "Przypisz do domeny">
-<!ENTITY domain.none.label "wszystkie domeny (nie zalecane)">
-<!ENTITY nodes-tree.node.label "Węzeł">
 <!ENTITY nodes-tree.id.label "ID">
+<!ENTITY groupDisabled.warning "Grupa filtru „?1?”, do której ten filtr ma być dodany jest obecnie wyłączona. Możesz dodać do niej ten filtr, ale nie będzie on działał do czasu włączenia grupy w ustawieniach Adblock Plusa.">
 <!ENTITY nodes-tree.class.label "Klasa">
-<!ENTITY attributes.label "Atrybuty">
+<!ENTITY advanced.label "Widok zaawansowany">
 <!ENTITY attributes.tagname.label "nazwa znacznika -">
+<!ENTITY domain.none.label "wszystkie domeny (nie zalecane)">
+<!ENTITY dialog.title "Tworzenie reguł ukrywania elementów">
+<!ENTITY basic.label "Widok podstawowy">
+<!ENTITY attributes.label "Atrybuty">
 <!ENTITY attributes.firstchild.label "pierwszy potomek">
-<!ENTITY attributes.lastchild.label "ostatni potomek">
 <!ENTITY attributes.custom.label "własny CSS">
+<!ENTITY nodes-tree.node.label "Węzeł">
diff --git a/chrome/locale/pl/global.properties b/chrome/locale/pl/global.properties
index 05c0e80..a065cb8 100644
--- a/chrome/locale/pl/global.properties
+++ b/chrome/locale/pl/global.properties
@@ -1,26 +1,24 @@
 command.select.key=B
-command.select.label=- wybierz element
-command.wider.key=P
-command.wider.label=- poszerz wybór
+command.viewSource.label=- pokaż źródło
 command.narrower.key=Z
-command.narrower.label=- zawęź wybór
-command.lock.key=K
-command.lock.label=- zablokuj/odblokuj wybieranie
-command.quit.key=A
-command.quit.label=- anuluj wybieranie
-command.blinkElement.key=M
-command.blinkElement.label=- element mrugający
 command.viewSource.key=D
-command.viewSource.label=- pokaż źródło
-command.viewSourceWindow.key=R
-command.viewSourceWindow.label=- pokaż źródło w oddzielnym oknie
+command.blinkElement.label=- element mrugający
+stopselection.label=Usuń wybrane elementy
+inspector.button.tooltiptext=Tworzy regułę ukrywania tego elementu i jemu podobnych za pomocą Adblock Plusa
+command.blinkElement.key=M
+command.wider.label=- poszerz wybór
+command.narrower.label=- zawęź wybór
 command.showMenu.key=O
+command.select.label=- wybierz element
+command.quit.label=- anuluj wybieranie
+command.lock.key=K
 command.showMenu.label=- wyświetl/ukryj pomoc
+command.viewSourceWindow.label=- pokaż źródło w oddzielnym oknie
 selectelement.label=Wybierz elementy do zablokowania
-stopselection.label=Usuń wybrane elementy
-inspector.button.label=Ukryj za pomocą ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Tworzy regułę ukrywania za pomocą Adblock Plusa tego elementu i jemu podobnych
+command.lock.label=- zablokuj/odblokuj wybieranie
+command.viewSourceWindow.key=R
+command.wider.key=P
+command.quit.key=A
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/pt-BR/composer.dtd b/chrome/locale/pt-BR/composer.dtd
index 01dcc53..50bfaa3 100644
--- a/chrome/locale/pt-BR/composer.dtd
+++ b/chrome/locale/pt-BR/composer.dtd
@@ -1,17 +1,18 @@
-<!ENTITY dialog.title "Compose element hiding rule">
-<!ENTITY groupDisabled.warning "O filtro do grupo "?1?" que esse filtro irá adicionar está desabilitado. Você pode adicionar o filtro mas não será possível aplicar se o filtro do grupo não estiver habilitado nas preferências do Adblock Plus.">
+<!ENTITY preview.label "Visualizar">
 <!ENTITY accept.label "Adicionar regra de filtro">
-<!ENTITY advanced.label "Visualização avançada">
-<!ENTITY basic.label "Visualização Básica">
+<!ENTITY attributes.lastchild.label "Último filho">
 <!ENTITY expression.label "Regra de filtro">
-<!ENTITY preview.label "Pré visualização">
 <!ENTITY domain.label "Associar ao domínio">
-<!ENTITY domain.none.label "Qualquer domínio (não recomendado)">
-<!ENTITY nodes-tree.node.label "Nó">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "O grupo de filtros "?1?" ao qual este filtro será adicionado está atualmente desabilitado.
+Você pode adicionar o filtro, mas ele não será aplicado a não ser que você habilite o grupo de filtros nas preferências do Adblock Plus.">
 <!ENTITY nodes-tree.class.label "classe">
-<!ENTITY attributes.label "Atributos requeridos">
+<!ENTITY advanced.label "Visualização avançada">
 <!ENTITY attributes.tagname.label "Nome da tag:">
+<!ENTITY domain.none.label "Qualquer domínio (não recomendado)">
+<!ENTITY dialog.title "Compor regra de ocultamento de elementos">
+<!ENTITY basic.label "Visualização básica">
+<!ENTITY attributes.label "Atributos requeridos">
 <!ENTITY attributes.firstchild.label "Primeiro filho">
-<!ENTITY attributes.lastchild.label "Último filho">
-<!ENTITY attributes.custom.label "CSS Padrão:">
+<!ENTITY attributes.custom.label "CSS personalizado:">
+<!ENTITY nodes-tree.node.label "Nó">
diff --git a/chrome/locale/pt-BR/global.properties b/chrome/locale/pt-BR/global.properties
index 5c777e3..abdac56 100644
--- a/chrome/locale/pt-BR/global.properties
+++ b/chrome/locale/pt-BR/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=selecionar elemento
-command.wider.key=w
-command.wider.label=Mais largo
+command.viewSource.label=visualizar código fonte
 command.narrower.key=n
-command.narrower.label=Mais estreito
-command.lock.key=l
-command.lock.label=travar/destravar seleção
-command.quit.key=q
-command.quit.label=sair da seleção
-command.blinkElement.key=b
-command.blinkElement.label=elemento piscante
 command.viewSource.key=v
-command.viewSource.label=visualizar código fonte
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=visualizar código fonte (janela separada)
+command.blinkElement.label=piscar elemento
+stopselection.label=Cancelar seleção de elemento
+inspector.button.tooltiptext=Criar uma regra de ocultamento de elementos para ocultar este elemento e outros similares com o Adblock Plus
+command.blinkElement.key=p
+command.wider.label=Mais largo
+command.narrower.label=Mais estreito
 command.showMenu.key=h
+command.select.label=selecionar elemento
+command.quit.label=sair da seleção
+command.lock.key=l
 command.showMenu.label=mostrar/esconder ajuda
+command.viewSourceWindow.label=visualizar código fonte (janela separada)
 selectelement.label=Selecionar elemento para esconder
-stopselection.label=Cancelar seleção de elemento
-inspector.button.label=Esconder com ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Criar uma regra para esconder o elemento e inserir esse regra no Adblock Plus
+command.lock.label=travar/destravar seleção
+command.viewSourceWindow.key=o
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/pt-BR/overlay.dtd b/chrome/locale/pt-BR/overlay.dtd
index e58a24a..e7855a8 100644
--- a/chrome/locale/pt-BR/overlay.dtd
+++ b/chrome/locale/pt-BR/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title "Seleção de elemento - Teclas de Atalhos">
+<!ENTITY helpbox.title "Teclas de atalho de seleção de elementos">
diff --git a/chrome/locale/pt-PT/composer.dtd b/chrome/locale/pt-PT/composer.dtd
index f324055..b51c755 100644
--- a/chrome/locale/pt-PT/composer.dtd
+++ b/chrome/locale/pt-PT/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Criar regra para ocultar elementos">
-<!ENTITY groupDisabled.warning "O grupo de filtros "?1?" ao qual este filtro será adicionado está actualmente desactivado. Pode adicionar o filtro, no entanto, este não será aplicado até que o grupo de filtros seja activado nas preferências do Adblock Plus.">
+<!ENTITY preview.label "Pré-visualização">
 <!ENTITY accept.label "Adicionar regra de filtro">
-<!ENTITY advanced.label "Vista avançada">
-<!ENTITY basic.label "Vista básica">
+<!ENTITY attributes.lastchild.label "Último dependente">
 <!ENTITY expression.label "Regra de filtro">
-<!ENTITY preview.label "Prever">
 <!ENTITY domain.label "Associar ao domínio">
-<!ENTITY domain.none.label "Qualquer domínio (não recomendado)">
-<!ENTITY nodes-tree.node.label "Nodo">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Requer atributos">
+<!ENTITY groupDisabled.warning "O grupo de filtros "?1?" ao qual este filtro será adicionado está inativo. Pode adicionar o filtro mas este não será aplicado até que o grupo de filtros seja ativado nas preferências do Adblock Plus.">
+<!ENTITY nodes-tree.class.label "classe">
+<!ENTITY advanced.label "Vista avançada">
 <!ENTITY attributes.tagname.label "Nome da etiqueta:">
+<!ENTITY domain.none.label "Qualquer domínio (não recomendado)">
+<!ENTITY dialog.title "Criar regra para ocultar elementos">
+<!ENTITY basic.label "Vista básica">
+<!ENTITY attributes.label "Requer atributos">
 <!ENTITY attributes.firstchild.label "Primeiro dependente">
-<!ENTITY attributes.lastchild.label "Último dependente">
 <!ENTITY attributes.custom.label "CSS personalizado:">
+<!ENTITY nodes-tree.node.label "Nó">
diff --git a/chrome/locale/pt-PT/global.properties b/chrome/locale/pt-PT/global.properties
index ea50672..b8f26d3 100644
--- a/chrome/locale/pt-PT/global.properties
+++ b/chrome/locale/pt-PT/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=seleccionar elemento
-command.wider.key=a
-command.wider.label=ampliar
+command.viewSource.label=ver código fonte
 command.narrower.key=r
+command.viewSource.key=v
+command.blinkElement.label=evidenciar elemento
+stopselection.label=Abortar seleção de elemento
+inspector.button.tooltiptext=Criar regra de ocultação deste elemento e similares com o Adblock Plus
+command.blinkElement.key=e
+command.wider.label=ampliar
 command.narrower.label=reduzir
+command.showMenu.key=m
+command.select.label=selecionar elemento
+command.quit.label=cancelar seleção
 command.lock.key=l
-command.lock.label=bloquear/ desbloquear selecção
-command.quit.key=c
-command.quit.label=cancelar selecção
-command.blinkElement.key=e
-command.blinkElement.label=evidenciar elemento
-command.viewSource.key=v
-command.viewSource.label=ver código fonte
-command.viewSourceWindow.key=u
+command.showMenu.label=mostrar/ocultar ajuda
 command.viewSourceWindow.label=ver código fonte (em janela separada)
-command.showMenu.key=h
-command.showMenu.label=mostrar/ ocultar ajuda
-selectelement.label=Seleccionar elemento para ocultar
-stopselection.label=Abortar selecção de elemento
-inspector.button.label=Bloquear com ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Criar uma regra para bloquear este elemento, e outros similares, com o Adblock Plus
+selectelement.label=Selecionar elemento a ocultar
+command.lock.label=bloquear/desbloquear seleção
+command.viewSourceWindow.key=g
+command.wider.key=a
+command.quit.key=c
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/pt-PT/overlay.dtd b/chrome/locale/pt-PT/overlay.dtd
index 96b1a87..ae2ea12 100644
--- a/chrome/locale/pt-PT/overlay.dtd
+++ b/chrome/locale/pt-PT/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title "Selecção de elementos - Teclas de atalho">
+<!ENTITY helpbox.title "Teclas de atalho para seleção de elementos">
diff --git a/chrome/locale/ro/composer.dtd b/chrome/locale/ro/composer.dtd
index 6953cfc..cbc1fc3 100644
--- a/chrome/locale/ro/composer.dtd
+++ b/chrome/locale/ro/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Compunere regulă de ascundere a unui element">
-<!ENTITY groupDisabled.warning "Grupul de filtre în care acest filtru este adăugat ("?1?") este inactiv. Filtrul va fi adăugat, dar nu va fi aplicat până nu veţi reactiva grupul în meniul Prefenrinţe.">
-<!ENTITY accept.label "Adaugă regulă">
-<!ENTITY advanced.label "Mod avansat">
-<!ENTITY basic.label "Mod simplificat">
-<!ENTITY expression.label "Regulă de filtrare">
-<!ENTITY preview.label "Previzualizează">
+<!ENTITY preview.label "Previzualizare">
+<!ENTITY accept.label "Adaugă regula">
+<!ENTITY attributes.lastchild.label "Ultimul element copil">
+<!ENTITY expression.label "Regulă de ascundere a elementului">
 <!ENTITY domain.label "Asociază unui domeniu">
-<!ENTITY domain.none.label "Oricărui domeniu (nerecomandat)">
-<!ENTITY nodes-tree.node.label "Nod">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Atribute pentru filtrare">
+<!ENTITY groupDisabled.warning "Grupul de filtre "?1?" în care acest filtru va fi adăugat este momentan dezactivat. Puteți adăuga oricum filtrul, dar el nu va fi aplicat până când activați grupul de filtre din meniul de preferințe al Adblock Plus.">
+<!ENTITY nodes-tree.class.label "clasă">
+<!ENTITY advanced.label "Mod avansat">
 <!ENTITY attributes.tagname.label "Nume tag:">
-<!ENTITY attributes.firstchild.label "First child">
-<!ENTITY attributes.lastchild.label "Last child">
+<!ENTITY domain.none.label "Oricărui domeniu (nerecomandat)">
+<!ENTITY dialog.title "Compunere regulă de ascundere a unui element">
+<!ENTITY basic.label "Mod simplificat">
+<!ENTITY attributes.label "Atribute pentru filtrare">
+<!ENTITY attributes.firstchild.label "Primul element copil">
 <!ENTITY attributes.custom.label "Cod CSS particularizat:">
+<!ENTITY nodes-tree.node.label "Nod">
diff --git a/chrome/locale/ro/global.properties b/chrome/locale/ro/global.properties
index 5edb50e..76e84c1 100644
--- a/chrome/locale/ro/global.properties
+++ b/chrome/locale/ro/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=alegere element
-command.wider.key=w
-command.wider.label=lărgire selecţie
+command.viewSource.label=afișează codul sursă
 command.narrower.key=n
-command.narrower.label=restrângere selecţie
-command.lock.key=l
-command.lock.label=Blochează/deblochează selecţia
-command.quit.key=q
-command.quit.label=abandonare selecţie
-command.blinkElement.key=b
-command.blinkElement.label=semnalizare element
 command.viewSource.key=v
-command.viewSource.label=vizualizare sursă
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=vizualizare sursă (în fereastră separată)
-command.showMenu.key=h
-command.showMenu.label=afişare/ascundere ajutor
-selectelement.label=Alegere element pentru ascundere
-stopselection.label=Abandonare alegere element
-inspector.button.label=Ascunde cu ABP
-inspector.button.accesskey=A
+command.blinkElement.label=semnalizează elementul
+stopselection.label=Abandonează alegerea elementului
 inspector.button.tooltiptext=Creează o regulă pentru a ascunde cu Adblock Plus acest element, precum şi elementele similare
+command.blinkElement.key=b
+command.wider.label=lărgește selecţia
+command.narrower.label=restrânge selecţia
+command.showMenu.key=h
+command.select.label=selectează element
+command.quit.label=abandonează selecţia
+command.lock.key=l
+command.showMenu.label=afişează/ascunde ajutor
+command.viewSourceWindow.label=afișează codul sursă (într-o fereastră separată)
+selectelement.label=Alege un element pentru ascundere
+command.lock.label=blochează/deblochează selecţia
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/ru/composer.dtd b/chrome/locale/ru/composer.dtd
index de2055c..8cde726 100644
--- a/chrome/locale/ru/composer.dtd
+++ b/chrome/locale/ru/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title             "Составление правила для скрытия элемента">
-<!ENTITY groupDisabled.warning    "
-	Группа фильтров «?1?», в которую этот фильтр должен быть добавлен, сейчас отключена.
-	Вы можете добавить фильтр, но, чтобы он применился, нужно включить эту группу фильтров
-	в настройках Adblock Plus.
-">
-<!ENTITY accept.label             "Добавить фильтр">
-<!ENTITY advanced.label           "Расширенный вид">
-<!ENTITY basic.label              "Стандартный вид">
-<!ENTITY expression.label         "Фильтр">
-<!ENTITY preview.label            "Предпросмотр">
-<!ENTITY domain.label             "Привязать к домену">
-<!ENTITY domain.none.label        "Любой домен (не рекомендуется)">
-<!ENTITY nodes-tree.node.label    "Узел">
-<!ENTITY nodes-tree.id.label      "id">
-<!ENTITY nodes-tree.class.label   "class">
-<!ENTITY attributes.label         "Требуемые атрибуты">
+<!ENTITY preview.label "Предпросмотр">
+<!ENTITY accept.label "Добавить фильтр">
+<!ENTITY attributes.lastchild.label "Последний дочерний узел">
+<!ENTITY expression.label "Фильтр">
+<!ENTITY domain.label "Привязать к домену">
+<!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "Группа фильтров «?1?», в которую этот фильтр должен быть добавлен, сейчас отключена.
+  Вы можете добавить фильтр, но, чтобы он применился, нужно включить эту группу фильтров
+  в настройках Adblock Plus.">
+<!ENTITY nodes-tree.class.label "class">
+<!ENTITY advanced.label "Расширенный вид">
 <!ENTITY attributes.tagname.label "Имя тега:">
-<!ENTITY attributes.firstchild.label  "Первый дочерний узел">
-<!ENTITY attributes.lastchild.label   "Последний дочерний узел">
-<!ENTITY attributes.custom.label  "Произвольное CSS-выражение:">
+<!ENTITY domain.none.label "Любой домен (не рекомендуется)">
+<!ENTITY dialog.title "Составление правила для скрытия элемента">
+<!ENTITY basic.label "Стандартный вид">
+<!ENTITY attributes.label "Требуемые атрибуты">
+<!ENTITY attributes.firstchild.label "Первый дочерний узел">
+<!ENTITY attributes.custom.label "Произвольное CSS-выражение:">
+<!ENTITY nodes-tree.node.label "Узел">
diff --git a/chrome/locale/ru/global.properties b/chrome/locale/ru/global.properties
index 8db44a1..50d7a9d 100644
--- a/chrome/locale/ru/global.properties
+++ b/chrome/locale/ru/global.properties
@@ -1,36 +1,30 @@
-command.select.key=в
+selectelement.label=Скрыть элемент на странице
+command.narrower.key=у
+command.blinkElement.label=мигающий элемент
+command.blinkElement.alternativeKey=b
 command.select.label=выбрать элемент
+stopselection.label=Отменить выбор элемента
+command.narrower.alternativeKey=n
+command.viewSourceWindow.key=к
 command.wider.key=ш
+inspector.button.tooltiptext=Создать правило скрытия для Adblock Plus, чтобы спрятать этот элемент и похожие
 command.wider.label=расширить
-command.narrower.key=у
 command.narrower.label=сузить
-command.lock.key=б
-command.lock.label=заблокировать/разблокировать выбор
-command.quit.key=т
-command.quit.label=отмена
-command.blinkElement.key=м
-command.blinkElement.label=помигать элементом
-command.viewSource.key=х
-command.viewSource.label=просмотреть исходный код
-command.viewSourceWindow.key=к
-command.viewSourceWindow.label=просмотреть исходный код (в другом окне)
 command.showMenu.key=п
 command.showMenu.label=показать/спрятать помощь
-
-# Optional: alternative set of command keys, e.g. Latin letters instead of Cyrillic. Set these keys if the users could be using two different keyboard layouts.
 command.select.alternativeKey=s
-command.wider.alternativeKey=w
-command.narrower.alternativeKey=n
-command.lock.alternativeKey=l
 command.quit.alternativeKey=q
-command.blinkElement.alternativeKey=b
-command.viewSource.alternativeKey=v
-command.viewSourceWindow.alternativeKey=u
+command.viewSource.key=х
+command.blinkElement.key=м
 command.showMenu.alternativeKey=h
-
-selectelement.label=Скрыть элемент на странице
-stopselection.label=Отменить выбор элемента
-
-inspector.button.label=ABP: Спрятать
-inspector.button.accesskey=п
-inspector.button.tooltiptext=Создать правило скрытия для Adblock Plus, чтобы спрятать этот элемент и похожие
+command.lock.key=б
+command.viewSourceWindow.alternativeKey=u
+command.wider.alternativeKey=w
+command.quit.key=т
+command.select.key=в
+command.viewSource.label=просмотреть исходный код
+command.lock.label=заблокировать/разблокировать выбор
+command.viewSource.alternativeKey=v
+command.quit.label=отмена
+command.lock.alternativeKey=l
+command.viewSourceWindow.label=просмотреть исходный код (в другом окне)
diff --git a/chrome/locale/ru/overlay.dtd b/chrome/locale/ru/overlay.dtd
index ffd72c6..aad7be9 100644
--- a/chrome/locale/ru/overlay.dtd
+++ b/chrome/locale/ru/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title            "Выбор элемента - Горячие клавиши">
+<!ENTITY helpbox.title "Выбор элемента - Горячие клавиши">
diff --git a/chrome/locale/sk/composer.dtd b/chrome/locale/sk/composer.dtd
index 2c7a161..b460882 100644
--- a/chrome/locale/sk/composer.dtd
+++ b/chrome/locale/sk/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Vytvoriť skryté pravidlo prvku">
-<!ENTITY groupDisabled.warning "Skupina filtrov "?1?" do ktorého bude tento filter pridaný je aktuálne vypnutý. Môžete ešte filter pridať, ale nebude aplikovaný pokiaľ nezapnete skupinu filtrov v nastaveniach Adblock Plus.">
+<!ENTITY preview.label "Náhľad">
 <!ENTITY accept.label "Pridať pravidlo filtra">
-<!ENTITY advanced.label "Pokročilý náhľad">
-<!ENTITY basic.label "Základný náhľad">
+<!ENTITY attributes.lastchild.label "Posledný objekt">
 <!ENTITY expression.label "Pravidlo filtra">
-<!ENTITY preview.label "Náhľad">
 <!ENTITY domain.label "Priradiť k doméne">
-<!ENTITY domain.none.label "Ľubovoľná doména (neodporúčané)">
-<!ENTITY nodes-tree.node.label "Uzol">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "Skupina filtrov "?1?" do ktorého bude tento filter pridaný je aktuálne vypnutý. Môžete ešte filter pridať, ale nebude aplikovaný pokiaľ nezapnete skupinu filtrov v nastaveniach Adblock Plus.">
 <!ENTITY nodes-tree.class.label "trieda">
-<!ENTITY attributes.label "Požadované hodnoty">
+<!ENTITY advanced.label "Pokročilý náhľad">
 <!ENTITY attributes.tagname.label "Názov značky:">
+<!ENTITY domain.none.label "Ľubovoľná doména (neodporúčané)">
+<!ENTITY dialog.title "Vytvoriť pravidlo pre skrývanie prvkov">
+<!ENTITY basic.label "Základný náhľad">
+<!ENTITY attributes.label "Požadované hodnoty">
 <!ENTITY attributes.firstchild.label "Prvý objekt">
-<!ENTITY attributes.lastchild.label "Posledný objekt">
 <!ENTITY attributes.custom.label "Vlastné CSS:">
+<!ENTITY nodes-tree.node.label "Uzol">
diff --git a/chrome/locale/sk/global.properties b/chrome/locale/sk/global.properties
index c70d198..6630b17 100644
--- a/chrome/locale/sk/global.properties
+++ b/chrome/locale/sk/global.properties
@@ -1,32 +1,30 @@
-command.select.key=v
+selectelement.label=Vybrať prvok na skrytie
+command.narrower.key=n
+command.blinkElement.label=blikajúci prvok
+command.blinkElement.alternativeKey= 
 command.select.label=vybrať prvok
+stopselection.label=Zrušiť výber prvku
+command.narrower.alternativeKey= 
+command.viewSourceWindow.key=r
 command.wider.key=š
+inspector.button.tooltiptext=Vytvoriť pravidlo Element Hiding na skrytie tohto prvku, a podobného, pomocou Adblock Plus
 command.wider.label=širší
-command.narrower.key=n
-command.narrower.label=nižší
+command.narrower.label=užší
+command.showMenu.key=s
+command.showMenu.label=zobraziť/skryť pomocníka
+command.select.alternativeKey= 
+command.quit.alternativeKey= 
+command.viewSource.key=z
+command.blinkElement.key=b
+command.showMenu.alternativeKey= 
 command.lock.key=m
-command.lock.label=zamknúť/odomknúť výber
+command.viewSourceWindow.alternativeKey= 
+command.wider.alternativeKey= 
 command.quit.key=t
-command.quit.label=ukončiť výber
-command.blinkElement.key=b
-command.blinkElement.label=blikajúci prvok
-command.viewSource.key=z
+command.select.key=v
 command.viewSource.label=zobraziť zdrojový kód
-command.viewSourceWindow.key=r
+command.lock.label=zamknúť/odomknúť výber
+command.viewSource.alternativeKey= 
+command.quit.label=ukončiť výber
+command.lock.alternativeKey= 
 command.viewSourceWindow.label=zobraziť zdrojový kód (v oddelenom okne)
-command.showMenu.key=s
-command.showMenu.label=zobraziť/skryť pomocníka
-selectelement.label=Vybrať prvok na skrytie
-stopselection.label=Zrušiť výber prvku
-inspector.button.label=Skryť pomocou ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Vytvoriť pravidlo Element Hiding na skrytie tohto prvku a podobný pomocou Adblock Plus
-command.blinkElement.alternativeKey=
-command.narrower.alternativeKey=
-command.select.alternativeKey=
-command.quit.alternativeKey=
-command.showMenu.alternativeKey=
-command.viewSourceWindow.alternativeKey=
-command.wider.alternativeKey=
-command.viewSource.alternativeKey=
-command.lock.alternativeKey=
diff --git a/chrome/locale/sl/composer.dtd b/chrome/locale/sl/composer.dtd
index dc8a8a6..7527046 100644
--- a/chrome/locale/sl/composer.dtd
+++ b/chrome/locale/sl/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Sestavi pravila za skrivanje elementov">
-<!ENTITY groupDisabled.warning "Filtrirna skupina "?1?" h kateri dodajate trenutno pravilo je onemogočena. Vseeno lahko dodate nov filter, vendar ne bo upoštevan, dokler ne omogočite skupino v Adblock Plus nastavitvah.">
+<!ENTITY preview.label "Predogled">
 <!ENTITY accept.label "Dodaj pravilo filtriranja">
-<!ENTITY advanced.label "Napredni pogled">
-<!ENTITY basic.label "Osnovni pogled">
+<!ENTITY attributes.lastchild.label "Zadnji dedovani">
 <!ENTITY expression.label "Pravilo filtriranja">
-<!ENTITY preview.label "Predogled">
 <!ENTITY domain.label "Veži na domeno">
-<!ENTITY domain.none.label "Katerakoli domena (ni priporočljivo)">
-<!ENTITY nodes-tree.node.label "Vozel">
 <!ENTITY nodes-tree.id.label "oznaka">
+<!ENTITY groupDisabled.warning "Filtrirna skupina "?1?" h kateri dodajate trenutno pravilo je onemogočena. Vseeno lahko dodate nov filter, vendar ne bo upoštevan, dokler ne omogočite skupino v Adblock Plus nastavitvah.">
 <!ENTITY nodes-tree.class.label "razred">
-<!ENTITY attributes.label "Zahtevaj atribute">
+<!ENTITY advanced.label "Napredni pogled">
 <!ENTITY attributes.tagname.label "Ime oznake:">
+<!ENTITY domain.none.label "Katerakoli domena (ni priporočljivo)">
+<!ENTITY dialog.title "Sestavi pravila za skrivanje elementov">
+<!ENTITY basic.label "Osnovni pogled">
+<!ENTITY attributes.label "Zahtevaj atribute">
 <!ENTITY attributes.firstchild.label "Prvi dedovani">
-<!ENTITY attributes.lastchild.label "Zadnji dedovani">
 <!ENTITY attributes.custom.label "Prikrojen CSS:">
+<!ENTITY nodes-tree.node.label "Vozel">
diff --git a/chrome/locale/sl/global.properties b/chrome/locale/sl/global.properties
index 40b8e6f..665cf56 100644
--- a/chrome/locale/sl/global.properties
+++ b/chrome/locale/sl/global.properties
@@ -1,32 +1,30 @@
 command.select.key=i
-command.select.label=izberi element
-command.wider.key=š
-command.wider.label=širše
+command.viewSource.label=ogled izvorne kode
 command.narrower.key=o
-command.narrower.label=ožje
-command.lock.key=l
-command.lock.label=zakleni/odkleni izbor
-command.quit.key=q
-command.quit.label=izhod iz izbire
-command.blinkElement.key=u
 command.blinkElement.label=element naj utripa
-command.viewSource.key=v
-command.viewSource.label=ogled izvorne kode
-command.viewSourceWindow.key=z
-command.viewSourceWindow.label=ogled izvorne kode (lastno okno)
+inspector.button.tooltiptext=Ustvari pravilo za prikrivanje tega in podobnih elementov z Adblock Plus
+command.blinkElement.key=u
+command.wider.label=širše
+command.narrower.label=ožje
 command.showMenu.key=p
+command.select.label=izberi element
+command.quit.label=izhod iz izbire
+stopselection.label=Prekliči izbor elementa
 command.showMenu.label=prikaži/skrij pomoč
 selectelement.label=Izberite element, ki ga želite skriti
-stopselection.label=Prekliči izbor elementa
-inspector.button.label=Skrij z ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Ustvari pravilo za prikrivanje tega in podobnih elementov z Adblock Plus
+command.lock.label=zakleni/odkleni izbor
+command.viewSourceWindow.key=z
+command.wider.key=š
+command.viewSourceWindow.label=ogled izvorne kode (lastno okno)
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
 command.quit.alternativeKey=
+command.viewSource.key=v
 command.showMenu.alternativeKey=
+command.lock.key=l
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
+command.quit.key=q
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/sq/composer.dtd b/chrome/locale/sq/composer.dtd
index 46937cd..8dd17be 100644
--- a/chrome/locale/sq/composer.dtd
+++ b/chrome/locale/sq/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title "Harto rregull për fshehje elementi">
+<!ENTITY preview.label "Parashikim">
 <!ENTITY accept.label "Shto rregull filtri">
-<!ENTITY advanced.label "Pamje e përparuar">
-<!ENTITY basic.label "Pamje kryesore">
+<!ENTITY attributes.lastchild.label "Pjella e fundit">
 <!ENTITY expression.label "Rregull filtri">
-<!ENTITY preview.label "Parashikim">
 <!ENTITY domain.label "Lidhe tek domejni">
-<!ENTITY domain.none.label "Çdo domejn (nuk rekomandohet)">
-<!ENTITY nodes-tree.node.label "Nyje">
 <!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "klasa">
-<!ENTITY attributes.label "Kërko atribute">
+<!ENTITY groupDisabled.warning "Grupi Filtri "?1?" se ky filtër do të shtohet në është i aktivizuar i paaftë.
+Ju ende mund të shtoni filter por kjo nuk do të zbatohet nëse ju përshtatni grupin filtrin
+në preferencat AdBlock Plus.">
+<!ENTITY nodes-tree.class.label "klasë">
+<!ENTITY advanced.label "Pamje e përparuar">
 <!ENTITY attributes.tagname.label "Emri etiketues:">
-<!ENTITY attributes.firstchild.label "Fëmija i parë">
-<!ENTITY attributes.lastchild.label "Fëmija i fundit">
-<!ENTITY attributes.custom.label "CSS me porosi:">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
+<!ENTITY domain.none.label "Çdo domejn (nuk rekomandohet)">
+<!ENTITY dialog.title "Harto rregull për fshehje elementi">
+<!ENTITY basic.label "Pamje themelor">
+<!ENTITY attributes.label "Kërko atributet">
+<!ENTITY attributes.firstchild.label "Pjella e parë">
+<!ENTITY attributes.custom.label "CSS  e personalizuar:">
+<!ENTITY nodes-tree.node.label "Nyje">
diff --git a/chrome/locale/sq/global.properties b/chrome/locale/sq/global.properties
index e95904e..29e4554 100644
--- a/chrome/locale/sq/global.properties
+++ b/chrome/locale/sq/global.properties
@@ -1,32 +1,30 @@
 command.select.key=s
-command.select.label=zgjidhe elementin
-command.wider.key=w
-command.wider.label=më gjerë
+command.viewSource.label=shiko burimin
 command.narrower.key=n
-command.narrower.label=më pjerrët
-command.quit.key=q
-command.quit.label=anulo zgjedhjen
-command.blinkElement.key=b
-command.blinkElement.label=element vezullues
 command.viewSource.key=v
-command.viewSource.label=shiko burimin
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=shiko burimin (dritare e ndarë)
+command.blinkElement.label=element vezullues
+stopselection.label=Ndërpre zgjedhjen e elementit
+inspector.button.tooltiptext=Krijo një rregull Element i Fshehur për të fshehur këtë element dhe ato të ngjashme me Adblock Plus
+command.blinkElement.key=b
+command.wider.label=më gjerë
+command.narrower.label=më pjerrët
 command.showMenu.key=h
+command.select.label=zgjidhe elementin
+command.quit.label=anulo zgjedhjen
+command.lock.key=l
 command.showMenu.label=trego/fshehe ndihmën
+command.viewSourceWindow.label=shiko burimin (dritare e ndarë)
 selectelement.label=Zgjidhni elementet që do të fshihni
-stopselection.label=Ndërpre zgjedhjen e elementit
+command.lock.label=bllokoj/zhblloko përzgjedhje
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/sr/composer.dtd b/chrome/locale/sr/composer.dtd
index 12c13ca..32765c2 100644
--- a/chrome/locale/sr/composer.dtd
+++ b/chrome/locale/sr/composer.dtd
@@ -1,17 +1,18 @@
-<!ENTITY dialog.title "Састави правило о сакривању делова">
-<!ENTITY groupDisabled.warning "Група филтера „?1?” у који ће овај фиклтер бити додат је тренутно онемогућена. Можете да га додате, али неће бити примењен, осим ако не омогућите ову групу у подешавањима.">
-<!ENTITY accept.label "Додај правило о филтеру">
-<!ENTITY advanced.label "Напредни изглед">
-<!ENTITY basic.label "Једноставан изглед">
-<!ENTITY expression.label "Правило о филтеру">
 <!ENTITY preview.label "Преглед">
-<!ENTITY domain.label "Закачи за домен">
-<!ENTITY domain.none.label "Било који домен (није препоручљиво)">
-<!ENTITY nodes-tree.node.label "Чвор">
-<!ENTITY nodes-tree.id.label "ид">
-<!ENTITY nodes-tree.class.label "врста">
-<!ENTITY attributes.label "Потребне особине">
+<!ENTITY accept.label "Додај правило о сакривању елемената">
+<!ENTITY attributes.lastchild.label "Последња подређена ставка">
+<!ENTITY expression.label "Правило о сакривању елемената">
+<!ENTITY domain.label "Повежи с доменом">
+<!ENTITY nodes-tree.id.label "ID">
+<!ENTITY groupDisabled.warning "Група филтера „?1?“ у коју ће овај филтер бити додат је тренутно онемогућена.
+  Можете га додати, али неће имати ефекта све док не омогућите ову групу у поставкама Adblock Plus-а.">
+<!ENTITY nodes-tree.class.label "класа">
+<!ENTITY advanced.label "Напредни приказ">
 <!ENTITY attributes.tagname.label "Име ознаке:">
-<!ENTITY attributes.firstchild.label "Први наследник">
-<!ENTITY attributes.lastchild.label "Последњи наследник">
+<!ENTITY domain.none.label "Сваки домен (не препоручује се)">
+<!ENTITY dialog.title "Састављање правила о сакривању елемената">
+<!ENTITY basic.label "Основни приказ">
+<!ENTITY attributes.label "Потребне особине">
+<!ENTITY attributes.firstchild.label "Прва подређена ставка">
 <!ENTITY attributes.custom.label "Прилагођени CSS:">
+<!ENTITY nodes-tree.node.label "Чвор">
diff --git a/chrome/locale/sr/global.properties b/chrome/locale/sr/global.properties
index 059403b..bf2bcc1 100644
--- a/chrome/locale/sr/global.properties
+++ b/chrome/locale/sr/global.properties
@@ -1,32 +1,30 @@
-command.select.key=о
-command.select.label=одабери елемент
-command.wider.key=р
-command.wider.label=шире
+selectelement.label=Изаберите елемент који желите да сакријете
 command.narrower.key=у
-command.narrower.label=уже
-command.lock.key=з
-command.lock.label=о
-command.quit.key=к
-command.quit.label=откажи бирање
-command.blinkElement.key=т
 command.blinkElement.label=трептање елемента
-command.viewSource.key=и
-command.viewSource.label=погледај извор
+command.blinkElement.alternativeKey=t
+command.select.label=одабери елемент
+stopselection.label=Прекини избор елемента
+command.narrower.alternativeKey=u
 command.viewSourceWindow.key=п
-command.viewSourceWindow.label=погледај извор (у одвојеном прозору)
+command.wider.key=ш
+inspector.button.tooltiptext=Направите правило за сакривање елемената да бисте сакрили овај и сличне елементе помоћу Adblock Plus-а.
+command.wider.label=шире
+command.narrower.label=уже
 command.showMenu.key=м
 command.showMenu.label=прикажи/сакриј помоћ
 command.select.alternativeKey=o
-command.wider.alternativeKey=r
-command.narrower.alternativeKey=u
-command.lock.alternativeKey=z
 command.quit.alternativeKey=k
-command.blinkElement.alternativeKey=t
-command.viewSource.alternativeKey=i
-command.viewSourceWindow.alternativeKey=p
+command.viewSource.key=и
+command.blinkElement.key=т
 command.showMenu.alternativeKey=m
-selectelement.label=Изабери делове које желите да сакријете
-stopselection.label=Прекини бирање делова
-inspector.button.label=Сакриј помоћу ABP
-inspector.button.accesskey=С
-inspector.button.tooltiptext=Направите правило за сакривање елемената да бисте сакрили овај и сличне елементе помоћу Adblock Plus-а.
+command.lock.key=з
+command.viewSourceWindow.alternativeKey=p
+command.wider.alternativeKey=r
+command.quit.key=к
+command.select.key=о
+command.viewSource.label=погледај извор
+command.lock.label=закључај/откључај избор
+command.viewSource.alternativeKey=i
+command.quit.label=откажи избор
+command.lock.alternativeKey=z
+command.viewSourceWindow.label=погледај извор (у посебном прозору)
diff --git a/chrome/locale/sr/overlay.dtd b/chrome/locale/sr/overlay.dtd
index 2f9ee4e..a688b23 100644
--- a/chrome/locale/sr/overlay.dtd
+++ b/chrome/locale/sr/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title "Пречице за бирање делова">
+<!ENTITY helpbox.title "Пречице на тастатури за избор елемената">
diff --git a/chrome/locale/sv-SE/composer.dtd b/chrome/locale/sv-SE/composer.dtd
index 5c10347..fa893bd 100644
--- a/chrome/locale/sv-SE/composer.dtd
+++ b/chrome/locale/sv-SE/composer.dtd
@@ -1,21 +1,19 @@
-<!ENTITY dialog.title "Skapa filterregel för att dölja element">
-<!ENTITY groupDisabled.warning "
-	Filtergruppen "?1?" som detta filter kommer att läggas till i är för närvarande inaktiverat.
-	Du kan fortfarande lägga till filtret, men det kommer inte att tillämpas förrän du aktiverar filtergruppen
-	i Adblock Plus inställningar.
-">
+<!ENTITY preview.label "Förhandsgranska">
 <!ENTITY accept.label "Lägg till filterregel">
-<!ENTITY advanced.label "Avancerat">
-<!ENTITY basic.label "Standard">
+<!ENTITY attributes.lastchild.label "Sista underordnade">
 <!ENTITY expression.label "Filterregel">
-<!ENTITY preview.label "Förhandsgranska">
 <!ENTITY domain.label "Knyt till domän">
-<!ENTITY domain.none.label "Alla domäner (rekommenderas inte)">
-<!ENTITY nodes-tree.node.label "Nod">
 <!ENTITY nodes-tree.id.label "ID">
+<!ENTITY groupDisabled.warning "Filtergruppen "?1?" som detta filter kommer att läggas till i är för närvarande inaktiverat.
+	Du kan fortfarande lägga till filtret, men det kommer inte att tillämpas förrän du aktiverar filtergruppen
+	i Adblock Plus inställningar.">
 <!ENTITY nodes-tree.class.label "Klass">
-<!ENTITY attributes.label "Kräver attribut">
+<!ENTITY advanced.label "Avancerat">
 <!ENTITY attributes.tagname.label "Taggnamn:">
+<!ENTITY domain.none.label "Alla domäner (rekommenderas inte)">
+<!ENTITY dialog.title "Skapa filterregel för att dölja element">
+<!ENTITY basic.label "Standard">
+<!ENTITY attributes.label "Kräver attribut">
 <!ENTITY attributes.firstchild.label "Första underordnade">
-<!ENTITY attributes.lastchild.label "Sista underordnade">
 <!ENTITY attributes.custom.label "Egen CSS:">
+<!ENTITY nodes-tree.node.label "Nod">
diff --git a/chrome/locale/sv-SE/global.properties b/chrome/locale/sv-SE/global.properties
index b0454ec..543cbbc 100644
--- a/chrome/locale/sv-SE/global.properties
+++ b/chrome/locale/sv-SE/global.properties
@@ -1,26 +1,24 @@
-command.select.key=V
-command.select.label=Välj element
-command.wider.key=B
+command.select.key=v
+command.viewSource.label=Visa källkod
+command.narrower.key=s
+command.viewSource.key=k
+command.blinkElement.label=Blinka element
+stopselection.label=Avbryt elementval
+inspector.button.tooltiptext=Skapa en elementdöljningsregel för att dölja detta och liknande element med Adblock Plus
+command.blinkElement.key=i
 command.wider.label=Bredare
-command.narrower.key=S
 command.narrower.label=Smalare
-command.lock.key=å
-command.lock.label=Lås/lås upp val
-command.quit.key=A
-command.quit.label=Avbryt elementval
-command.blinkElement.key=l
-command.blinkElement.label=Blinka element
-command.viewSource.key=ä
-command.viewSource.label=Visa källkod
-command.viewSourceWindow.key=ö
-command.viewSourceWindow.label=Visa källkod (i separat fönster)
 command.showMenu.key=h
+command.select.label=Välj objekt
+command.quit.label=Avbryt elementval
+command.lock.key=å
 command.showMenu.label=Visa/dölj denna hjälpruta
+command.viewSourceWindow.label=Visa källkod (i ett separat fönster)
 selectelement.label=Välj element att dölja
-stopselection.label=Avbryt elementval
-inspector.button.label=Dölj med ABP
-inspector.button.accesskey=A
-inspector.button.tooltiptext=Skapa en elementdöljningsregel för att dölja detta och liknande element med Adblock Plus
+command.lock.label=Lås/lås upp val
+command.viewSourceWindow.key=ö
+command.wider.key=b
+command.quit.key=a
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/th/composer.dtd b/chrome/locale/th/composer.dtd
index e3cdf10..9b4b553 100644
--- a/chrome/locale/th/composer.dtd
+++ b/chrome/locale/th/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "สร้างกฎการซ่อนส่วนประกอบ">
-<!ENTITY groupDisabled.warning "กลุ่มตัวกรอง "?1?" ว่าตัวกรองนี้จะเพิ่มเข้ามาในสถานะปิดการใช้งาน คุณยังคงเพิ่มตัวกรองได้แต่จะไม่ใช้งานจนกว่าคุณจะเปิดใช้งานกลุ่มตัวกรองในการตั้งค่า Adblock Plus">
+<!ENTITY preview.label "แสดงตัวอย่าง">
 <!ENTITY accept.label "เพิ่มกฎตัวกรอง">
-<!ENTITY advanced.label "มุมมองระดับสูง">
-<!ENTITY basic.label "มุมมองพื้นฐาน">
+<!ENTITY attributes.lastchild.label "ลูกสุดท้าย">
 <!ENTITY expression.label "กฎตัวกรอง">
-<!ENTITY preview.label "แสดงตัวอย่าง">
 <!ENTITY domain.label "ยึดเหนี่ยวกับโอเมน">
-<!ENTITY domain.none.label "โดเมนใดก็ได้(ไม่แนะนำ)">
-<!ENTITY nodes-tree.node.label "สถานีเชื่อมโยง">
 <!ENTITY nodes-tree.id.label "หมายเลข">
+<!ENTITY groupDisabled.warning "กลุ่มตัวกรอง "?1?" ว่าตัวกรองนี้จะเพิ่มเข้ามาในสถานะปิดการใช้งาน คุณยังคงเพิ่มตัวกรองได้แต่จะไม่ใช้งานจนกว่าคุณจะเปิดใช้งานกลุ่มตัวกรองในการตั้งค่า Adblock Plus">
 <!ENTITY nodes-tree.class.label "กลุ่ม">
-<!ENTITY attributes.label "ต้องการลักษณะ">
+<!ENTITY advanced.label "มุมมองระดับสูง">
 <!ENTITY attributes.tagname.label "ชื่อป้ายระบุ:">
+<!ENTITY domain.none.label "โดเมนใดก็ได้(ไม่แนะนำ)">
+<!ENTITY dialog.title "สร้างกฎการซ่อนส่วนประกอบ">
+<!ENTITY basic.label "มุมมองพื้นฐาน">
+<!ENTITY attributes.label "ต้องการลักษณะ">
 <!ENTITY attributes.firstchild.label "ลูกแรก">
-<!ENTITY attributes.lastchild.label "ลูกสุดท้าย">
 <!ENTITY attributes.custom.label "ซีเอสเอสกำหนดเอง:">
+<!ENTITY nodes-tree.node.label "สถานีเชื่อมโยง">
diff --git a/chrome/locale/th/global.properties b/chrome/locale/th/global.properties
index e12ea8e..370de7c 100644
--- a/chrome/locale/th/global.properties
+++ b/chrome/locale/th/global.properties
@@ -1,32 +1,30 @@
 command.select.key=เ
-command.select.label=เลือกส่วนประกอบ
-command.wider.key=ก
-command.wider.label=กว้างขึ้น
+command.viewSource.label=ดูต้นฉบับ
 command.narrower.key=แ
-command.narrower.label=แคบขึ้น
-command.lock.key=ล
-command.lock.label=ล็อก/ปลดล็อกส่วนที่เลือก
-command.quit.key=อ
-command.quit.label=ออกจากการเลือก
-command.blinkElement.key=ส
-command.blinkElement.label=ส่วนประกอบกระพริบได้
 command.viewSource.key=ด
-command.viewSource.label=ดูต้นฉบับ
-command.viewSourceWindow.key=ฉ
-command.viewSourceWindow.label=ดูต้นฉบับ(ในหน้าต่างใหม่)
+command.blinkElement.label=ส่วนประกอบกระพริบได้
+stopselection.label=ยกเลิกการเลือกส่วนประกอบ
+command.blinkElement.key=ส
+command.wider.label=กว้างขึ้น
+command.narrower.label=แคบขึ้น
 command.showMenu.key=ซ
+command.select.label=เลือกส่วนประกอบ
+command.quit.label=ออกจากการเลือก
+command.lock.key=ล
 command.showMenu.label=แสดงหรือซ่อนตัวช่วยเหลือ
+command.viewSourceWindow.label=ดูต้นฉบับ(ในหน้าต่างใหม่)
 selectelement.label=เลือกส่วนประกอบเพื่อซ่อน
-stopselection.label=ยกเลิกการเลือกส่วนประกอบ
+command.lock.label=ล็อก/ปลดล็อกส่วนที่เลือก
+command.viewSourceWindow.key=ฉ
+command.wider.key=ก
+command.quit.key=อ
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/tr/composer.dtd b/chrome/locale/tr/composer.dtd
index 85419a9..3a9d5e3 100644
--- a/chrome/locale/tr/composer.dtd
+++ b/chrome/locale/tr/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Öğe gizleme kuralı yaz">
-<!ENTITY groupDisabled.warning "Bu süzgecin ekleneceğin "?1?" süzgeç grubu şu an devre dışı. Yine de süzgeci ekleyebilirsiniz, ancak Adblock Plus tercihlerinden bu süzgeç grubunu etkinleştirmedikçe uygulanmayacak.">
+<!ENTITY preview.label "Önizleme">
 <!ENTITY accept.label "Süzme kuralı ekle">
-<!ENTITY advanced.label "Gelişmiş görünüm">
-<!ENTITY basic.label "Temel görünüm">
+<!ENTITY attributes.lastchild.label "Son çocuk">
 <!ENTITY expression.label "Süzme kuralı">
-<!ENTITY preview.label "Önizleme">
 <!ENTITY domain.label "Alan adına bağlama">
-<!ENTITY domain.none.label "Herhangi bir alan adı (önerilmez)">
-<!ENTITY nodes-tree.node.label "Düğüm">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "Bu süzgecin ekleneceğin "?1?" süzgeç grubu şu an devre dışı. Yine de süzgeci ekleyebilirsiniz, ancak Adblock Plus tercihlerinden bu süzgeç grubunu etkinleştirmedikçe uygulanmayacak.">
 <!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "Nitelik gereklilikleri">
+<!ENTITY advanced.label "Gelişmiş görünüm">
 <!ENTITY attributes.tagname.label "Etiket adı:">
+<!ENTITY domain.none.label "Herhangi bir alan adı (önerilmez)">
+<!ENTITY dialog.title "Öge gizleme kuralı yaz">
+<!ENTITY basic.label "Temel görünüm">
+<!ENTITY attributes.label "Nitelik gereklilikleri">
 <!ENTITY attributes.firstchild.label "İlk çocuk">
-<!ENTITY attributes.lastchild.label "Son çocuk">
 <!ENTITY attributes.custom.label "Özel CSS:">
+<!ENTITY nodes-tree.node.label "Düğüm">
diff --git a/chrome/locale/tr/global.properties b/chrome/locale/tr/global.properties
index 7a670d0..06fcdc7 100644
--- a/chrome/locale/tr/global.properties
+++ b/chrome/locale/tr/global.properties
@@ -1,32 +1,30 @@
 command.select.key=s
-command.select.label=öge seç
-command.wider.key=g
-command.wider.label=daha geniş
+command.viewSource.label=kaynağa bak
 command.narrower.key=d
-command.narrower.label=daha dar
-command.lock.key=l
-command.lock.label=seçimi kilitle/kilitleme
-command.quit.key=t
-command.quit.label=seçimi terket
-command.blinkElement.key=y
-command.blinkElement.label=öğe yanıp sönsün
 command.viewSource.key=k
-command.viewSource.label=kaynağa bak
-command.viewSourceWindow.key=p
-command.viewSourceWindow.label=kaynağa başka pencerede bak
+command.blinkElement.label=öğe yanıp sönsün
+stopselection.label=Öğe seçiminden vazgeç
+inspector.button.tooltiptext=Bu ve benzer ögeleri Adblock Plus ile gizlemek için bir öge gizleme kuralı oluştur
+command.blinkElement.key=y
+command.wider.label=daha geniş
+command.narrower.label=daha dar
 command.showMenu.key=z
+command.select.label=öge seç
+command.quit.label=seçimi terket
+command.lock.key=l
 command.showMenu.label=yardımı göster/gizle
+command.viewSourceWindow.label=kaynağa başka pencerede bak
 selectelement.label=Gizlenecek öğeyi seç
-stopselection.label=Öğe seçiminden vazgeç
+command.lock.label=seçimi kilitle/kilitleme
+command.viewSourceWindow.key=p
+command.wider.key=g
+command.quit.key=t
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/uk/composer.dtd b/chrome/locale/uk/composer.dtd
index 19ad925..237327f 100644
--- a/chrome/locale/uk/composer.dtd
+++ b/chrome/locale/uk/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "Додати правило фільтрування Adblock Plus">
-<!ENTITY groupDisabled.warning "Група фільтрів «?1?», до якої буде додано цей фільтр, наразі вимкнена. Ви все одно можете додати фільтр, але він не буде застосований доки ви не увімкнете цю групу фільтрів у налаштуваннях Adblock Plus.">
+<!ENTITY preview.label "Переглянути">
 <!ENTITY accept.label "Додати фільтр">
-<!ENTITY advanced.label "Складний вигляд">
-<!ENTITY basic.label "Простий вигляд">
+<!ENTITY attributes.lastchild.label "Останній нащадок">
 <!ENTITY expression.label "Правило фільтрування">
-<!ENTITY preview.label "Переглянути">
 <!ENTITY domain.label "Прив’язати до домену">
-<!ENTITY domain.none.label "Будь-який домен (не рекомендовано)">
-<!ENTITY nodes-tree.node.label "Вузол">
-<!ENTITY nodes-tree.id.label "id">
+<!ENTITY nodes-tree.id.label "iдентифiкатор">
+<!ENTITY groupDisabled.warning "Група фільтрів «?1?», до якої буде додано цей фільтр, наразі вимкнена. Ви все одно можете додати фільтр, але він не буде застосований доки ви не увімкнете цю групу фільтрів у налаштуваннях Adblock Plus.">
 <!ENTITY nodes-tree.class.label "клас">
-<!ENTITY attributes.label "Вимагає атрибутів">
+<!ENTITY advanced.label "Розширений вигляд">
 <!ENTITY attributes.tagname.label "Ім’я теґу:">
+<!ENTITY domain.none.label "Будь-який домен (не рекомендовано)">
+<!ENTITY dialog.title "Додати правило фільтрування Adblock Plus">
+<!ENTITY basic.label "Простий вигляд">
+<!ENTITY attributes.label "Необхiднi атрибути">
 <!ENTITY attributes.firstchild.label "Перший нащадок">
-<!ENTITY attributes.lastchild.label "Останній нащадок">
 <!ENTITY attributes.custom.label "Власний CSS:">
+<!ENTITY nodes-tree.node.label "Вузол">
diff --git a/chrome/locale/uk/global.properties b/chrome/locale/uk/global.properties
index 305341d..7b17454 100644
--- a/chrome/locale/uk/global.properties
+++ b/chrome/locale/uk/global.properties
@@ -1,32 +1,30 @@
 command.select.key=о
-command.select.label=Обрати елемент
-command.wider.key=ш
-command.wider.label=ширше
+command.viewSource.label=переглянути джерело
 command.narrower.key=в
-command.narrower.label=вужче
-command.lock.key=к
-command.lock.label=заблокувати/розблокувати вибране
-command.quit.key=л
-command.quit.label=облишити вибір
-command.blinkElement.key=б
-command.blinkElement.label=блимати елементом
 command.viewSource.key=г
-command.viewSource.label=переглянути джерело
-command.viewSourceWindow.key=ж
-command.viewSourceWindow.label=переглянути джерело (в окремому вікні)
+command.blinkElement.label=блимати елементом
+stopselection.label=Скасувати вибір елементу
+inspector.button.tooltiptext=Створити правило приховання для Adblock Plus, щоби сховати цей елемент і подібні
+command.blinkElement.key=б
+command.wider.label=ширше
+command.narrower.label=вужче
 command.showMenu.key=д
+command.select.label=Обрати елемент
+command.quit.label=облишити вибір
+command.lock.key=к
 command.showMenu.label=показати/приховати підказку
+command.viewSourceWindow.label=переглянути джерело (в окремому вікні)
 selectelement.label=Оберіть небажаний елемент
-stopselection.label=Скасувати вибір елементу
+command.lock.label=заблокувати/розблокувати вибране
+command.viewSourceWindow.key=ж
+command.wider.key=ш
+command.quit.key=л
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/vi/composer.dtd b/chrome/locale/vi/composer.dtd
index 658c66e..341b611 100644
--- a/chrome/locale/vi/composer.dtd
+++ b/chrome/locale/vi/composer.dtd
@@ -1,21 +1,17 @@
-<!ENTITY dialog.title "Soạn quy luật ẩn phần tử">
+<!ENTITY preview.label "Xem trước">
 <!ENTITY accept.label "Thêm quy luật lọc">
-<!ENTITY advanced.label "Hiển thị nâng cao">
-<!ENTITY basic.label "Hiển thị cơ bản">
+<!ENTITY attributes.lastchild.label "Thuộc tính con cuối cùng">
 <!ENTITY expression.label "Quy luật lọc">
-<!ENTITY preview.label "Xem trước">
 <!ENTITY domain.label "Gắn với tên miền">
+<!ENTITY nodes-tree.id.label "định danh">
+<!ENTITY groupDisabled.warning "Nhóm lọc "?1?" mà bộ lọc hiện tại thêm vào bị vô hiệu. Bạn vẫn có thể thêm bộ lọc nhưng không được áp dụng trừ khi bạn kích hoạt nhóm lọc trong tùy chỉnh Adblock Plus.">
+<!ENTITY nodes-tree.class.label "lớp">
+<!ENTITY advanced.label "Hiển thị nâng cao">
+<!ENTITY attributes.tagname.label "Tên thẻ:">
 <!ENTITY domain.none.label "Bất kì tên miền nào (không khuyến khích)">
-<!ENTITY nodes-tree.node.label "Điểm nút">
-<!ENTITY nodes-tree.id.label "id">
-<!ENTITY nodes-tree.class.label "class">
+<!ENTITY dialog.title "Soạn quy luật ẩn phần tử">
+<!ENTITY basic.label "Hiển thị cơ bản">
 <!ENTITY attributes.label "Cần có thuộc tính">
-<!ENTITY attributes.tagname.label "Tên tag:">
 <!ENTITY attributes.firstchild.label "Thuộc tính con đầu tiên">
-<!ENTITY attributes.lastchild.label "Thuộc tính con cuối cùng">
 <!ENTITY attributes.custom.label "CSS tùy biến:">
-<!ENTITY groupDisabled.warning "
-  The filter group &quot;?1?&quot; that this filter will be added to is currently disabled.
-  You can still add the filter but it will not be applied unless you enable the filter group
-  in Adblock Plus preferences.
-">
+<!ENTITY nodes-tree.node.label "Điểm nút">
diff --git a/chrome/locale/vi/global.properties b/chrome/locale/vi/global.properties
index 754f1e9..a29cc31 100644
--- a/chrome/locale/vi/global.properties
+++ b/chrome/locale/vi/global.properties
@@ -1,32 +1,30 @@
 command.select.key=c
-command.select.label=chọn phần tử
-command.wider.key=m
-command.wider.label=mở rộng
+command.viewSource.label=xem mã nguồn
 command.narrower.key=t
-command.narrower.label=thu hẹp
-command.quit.key=h
-command.quit.label=hủy bỏ phần chọn
-command.blinkElement.key=n
-command.blinkElement.label=nhấp nháy phần tử
 command.viewSource.key=x
-command.viewSource.label=xem mã nguồn
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=xem mã nguồn (trong cửa sổ riêng)
+command.blinkElement.label=nhấp nháy phần tử
+stopselection.label=Hủy bỏ việc chọn phần tử
+inspector.button.tooltiptext=Tạo một quy tắc ẩn phần tử để ẩn phần tử này và một tương đồng với Adblock Plus
+command.blinkElement.key=n
+command.wider.label=mở rộng
+command.narrower.label=thu hẹp
 command.showMenu.key=p
+command.select.label=chọn phần tử
+command.quit.label=hủy bỏ phần chọn
+command.lock.key=k
 command.showMenu.label=hiện/ẩn trợ giúp
+command.viewSourceWindow.label=xem mã nguồn (trong cửa sổ riêng)
 selectelement.label=Chọn phần tử để ẩn
-stopselection.label=Hủy bỏ việc chọn phần tử
+command.lock.label=khóa/mở khóa phần chọn
+command.viewSourceWindow.key=e
+command.wider.key=m
+command.quit.key=h
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
-inspector.button.tooltiptext=Create an element hiding rule to hide this element and similar ones with Adblock Plus
 command.select.alternativeKey=
 command.quit.alternativeKey=
 command.showMenu.alternativeKey=
-command.lock.key=l
-inspector.button.accesskey=A
 command.viewSourceWindow.alternativeKey=
 command.wider.alternativeKey=
-inspector.button.label=Hide with ABP
-command.lock.label=lock/unlock selection
 command.viewSource.alternativeKey=
 command.lock.alternativeKey=
diff --git a/chrome/locale/vi/overlay.dtd b/chrome/locale/vi/overlay.dtd
index 205f27d..70dba18 100644
--- a/chrome/locale/vi/overlay.dtd
+++ b/chrome/locale/vi/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title "Chọn phần tử - Phím nóng">
+<!ENTITY helpbox.title "Phím tắt  chọn phần tử">
diff --git a/chrome/locale/zh-CN/composer.dtd b/chrome/locale/zh-CN/composer.dtd
index 90dd10d..1a94f71 100644
--- a/chrome/locale/zh-CN/composer.dtd
+++ b/chrome/locale/zh-CN/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "创建页面元素隐藏规则">
-<!ENTITY groupDisabled.warning "规则将要添加到的组 "?1?" 当前是禁用的, 你仍可继续添加, 但只有在 Adblock Plus选项中启用后, 规则才会生效.">
+<!ENTITY preview.label "预览">
 <!ENTITY accept.label "添加规则">
-<!ENTITY advanced.label "高级视图">
-<!ENTITY basic.label "基本视图">
+<!ENTITY attributes.lastchild.label "最后的子节点">
 <!ENTITY expression.label "规则">
-<!ENTITY preview.label "预览">
 <!ENTITY domain.label "规则应用到">
-<!ENTITY domain.none.label "任意域名(不推荐)">
-<!ENTITY nodes-tree.node.label "节点">
 <!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "规则将要添加到的组 "?1?" 当前是禁用的, 你仍可继续添加, 但只有在 Adblock Plus选项中启用后, 规则才会生效.">
 <!ENTITY nodes-tree.class.label "class">
-<!ENTITY attributes.label "属性">
+<!ENTITY advanced.label "高级视图">
 <!ENTITY attributes.tagname.label "标签:">
-<!ENTITY attributes.firstchild.label "First child">
-<!ENTITY attributes.lastchild.label "Last child">
+<!ENTITY domain.none.label "任意域名(不推荐)">
+<!ENTITY dialog.title "创建页面元素隐藏规则">
+<!ENTITY basic.label "基本视图">
+<!ENTITY attributes.label "属性">
+<!ENTITY attributes.firstchild.label "第一个子节点">
 <!ENTITY attributes.custom.label "自定义 CSS:">
+<!ENTITY nodes-tree.node.label "节点">
diff --git a/chrome/locale/zh-CN/global.properties b/chrome/locale/zh-CN/global.properties
index 1da545f..af832ac 100644
--- a/chrome/locale/zh-CN/global.properties
+++ b/chrome/locale/zh-CN/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=确定选择
-command.wider.key=w
-command.wider.label=扩大选择范围
+command.viewSource.label=查看源代码
 command.narrower.key=n
-command.narrower.label=缩小选择范围
-command.lock.key=l
-command.lock.label=锁定/解锁 选区
-command.quit.key=q
-command.quit.label=取消选择
-command.blinkElement.key=b
-command.blinkElement.label=闪烁所选
 command.viewSource.key=v
-command.viewSource.label=查看源代码
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=查看源代码(在独立的窗口)
+command.blinkElement.label=闪烁所选
+stopselection.label=取消选择
+inspector.button.tooltiptext=使用Adblock Plus创建一条规则以隐藏此元素及类似内容
+command.blinkElement.key=b
+command.wider.label=扩大选择范围
+command.narrower.label=缩小选择范围
 command.showMenu.key=h
+command.select.label=确定选择
+command.quit.label=取消选择
+command.lock.key=l
 command.showMenu.label=显示/隐藏 帮助
+command.viewSourceWindow.label=查看源代码(在独立的窗口)
 selectelement.label=选择想要隐藏的元素
-stopselection.label=取消选择
-inspector.button.label=使用ABP隐藏
-inspector.button.accesskey=A
-inspector.button.tooltiptext=使用Adblock Plus创建一条规则以隐藏此元素及类似内容
+command.lock.label=锁定/解锁 选区
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/zh-TW/composer.dtd b/chrome/locale/zh-TW/composer.dtd
index ad4a6de..f5bbb5c 100644
--- a/chrome/locale/zh-TW/composer.dtd
+++ b/chrome/locale/zh-TW/composer.dtd
@@ -1,17 +1,17 @@
-<!ENTITY dialog.title "撰寫元素隱藏規則">
-<!ENTITY groupDisabled.warning "要加入此隱藏規則的過濾群組『?1?』目前被停用。你仍然可以新增此規則,但在 Adblock Plus 偏好設定中未啟動這個群組前,這個規則是沒有作用的。">
-<!ENTITY accept.label "新增隱藏規則">
-<!ENTITY advanced.label "進階檢視">
-<!ENTITY basic.label "基本檢視">
-<!ENTITY expression.label "過濾規則">
 <!ENTITY preview.label "預覽">
+<!ENTITY accept.label "新增元素隱藏規則">
+<!ENTITY attributes.lastchild.label "Last child">
+<!ENTITY expression.label "元素隱藏規則">
 <!ENTITY domain.label "網域限制">
+<!ENTITY nodes-tree.id.label "id">
+<!ENTITY groupDisabled.warning "此隱藏規則加入的群組 "?1?" 目前被停用。您依然可以新增,但除非您在 Adblock Plus 條件偏好設定中啟用,否則不會有任何效果。">
+<!ENTITY nodes-tree.class.label "class">
+<!ENTITY advanced.label "進階檢視">
+<!ENTITY attributes.tagname.label "Tag 名稱:">
 <!ENTITY domain.none.label "所有網域(不建議)">
-<!ENTITY nodes-tree.node.label "節點">
-<!ENTITY nodes-tree.id.label "識別">
-<!ENTITY nodes-tree.class.label "分類">
-<!ENTITY attributes.label "必要屬性">
-<!ENTITY attributes.tagname.label "標籤名稱:">
-<!ENTITY attributes.firstchild.label "第一個子節點">
-<!ENTITY attributes.lastchild.label "最後一個子節點">
+<!ENTITY dialog.title "撰寫元素隱藏規則">
+<!ENTITY basic.label "基本檢視">
+<!ENTITY attributes.label "需要的屬性">
+<!ENTITY attributes.firstchild.label "First child">
 <!ENTITY attributes.custom.label "自訂 CSS:">
+<!ENTITY nodes-tree.node.label "節點">
diff --git a/chrome/locale/zh-TW/global.properties b/chrome/locale/zh-TW/global.properties
index 151a530..ed064e0 100644
--- a/chrome/locale/zh-TW/global.properties
+++ b/chrome/locale/zh-TW/global.properties
@@ -1,26 +1,24 @@
 command.select.key=s
-command.select.label=選擇元素
-command.wider.key=w
-command.wider.label=加大範圍
+command.viewSource.label=檢視原始碼
 command.narrower.key=n
-command.narrower.label=縮小範圍
-command.lock.key=l
-command.lock.label=鎖定/解除鎖定「選擇的元素」
-command.quit.key=q
-command.quit.label=離開選擇模式
-command.blinkElement.key=b
-command.blinkElement.label=閃爍元素
 command.viewSource.key=v
-command.viewSource.label=檢視原始碼
-command.viewSourceWindow.key=u
-command.viewSourceWindow.label=於新視窗檢視原始碼
-command.showMenu.key=h
-command.showMenu.label=顯示/隱藏「說明」
-selectelement.label=選擇要隱藏的元素
+command.blinkElement.label=閃爍元素
 stopselection.label=離開選擇元素模式
-inspector.button.label=使用 ABP 隱藏
-inspector.button.accesskey=A
 inspector.button.tooltiptext=建立 Adblock Plus 的元素隱藏規則來隱藏此元素及相似的元素
+command.blinkElement.key=b
+command.wider.label=加大範圍
+command.narrower.label=縮小範圍
+command.showMenu.key=h
+command.select.label=選擇元素
+command.quit.label=離開選擇模式
+command.lock.key=l
+command.showMenu.label=顯示/隱藏說明
+command.viewSourceWindow.label=檢視原始碼(開新視窗)
+selectelement.label=選擇要隱藏的元素
+command.lock.label=鎖定/解除鎖定選取範圍
+command.viewSourceWindow.key=u
+command.wider.key=w
+command.quit.key=q
 command.blinkElement.alternativeKey=
 command.narrower.alternativeKey=
 command.select.alternativeKey=
diff --git a/chrome/locale/zh-TW/overlay.dtd b/chrome/locale/zh-TW/overlay.dtd
index 46c8e79..22176c1 100644
--- a/chrome/locale/zh-TW/overlay.dtd
+++ b/chrome/locale/zh-TW/overlay.dtd
@@ -1 +1 @@
-<!ENTITY helpbox.title "選擇元素模式 - 快捷鍵">
+<!ENTITY helpbox.title "元素選擇快捷鍵">
diff --git a/chrome/skin/composer.css b/chrome/skin/composer.css
index 66b6e93..57de6fe 100644
--- a/chrome/skin/composer.css
+++ b/chrome/skin/composer.css
@@ -8,42 +8,42 @@
 
 scrollbox
 {
-	overflow: auto;
+  overflow: auto;
 }
 
 #groupDisabledWarning
 {
-	color: red;
+  color: red;
 }
 
 dialog:not([advancedMode=true]) #nodes-tree,
 dialog:not([advancedMode=true]) #nodes-tree-splitter
 {
-	display: none;
+  display: none;
 }
 
 treechildren::-moz-tree-cell-text(anchor)
 {
-	font-weight: bold;
+  font-weight: bold;
 }
 treechildren::-moz-tree-row(anchor, selected-false)
 {
-	background-color: #FFC0C0;
+  background-color: #FFC0C0;
 }
 
 .attribute
 {
-	padding: 5px;
+  padding: 5px;
 }
 .attribute > checkbox:focus + vbox
 {
-	outline: 1px dotted ThreeDDarkShadow;
+  outline: 1px dotted ThreeDDarkShadow;
 }
 .attribute .label
 {
-	-moz-user-focus: ignore;
+  -moz-user-focus: ignore;
 }
 .attribute.advanced .checkbox-label-box
 {
-	display: none;
+  display: none;
 }
diff --git a/chrome/skin/devToolsOverlay.css b/chrome/skin/devToolsOverlay.css
new file mode 100644
index 0000000..84e0353
--- /dev/null
+++ b/chrome/skin/devToolsOverlay.css
@@ -0,0 +1,18 @@
+/*
+ * This Source Code is subject to the terms of the Mozilla Public License
+ * version 2.0 (the "License"). You can obtain a copy of the License at
+ * http://mozilla.org/MPL/2.0/.
+ */
+
+ at namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+#ehh-inspector-toolbarbutton
+{
+  list-style-image: url("chrome://adblockplus/skin/abp-status-16.png");
+  -moz-image-region: rect(0px, 16px, 16px, 0px);
+}
+
+#ehh-inspector-toolbarbutton > image
+{
+  filter: none;
+}
diff --git a/chrome/skin/overlay.css b/chrome/skin/overlay.css
index 4266a05..5e54c15 100644
--- a/chrome/skin/overlay.css
+++ b/chrome/skin/overlay.css
@@ -8,97 +8,97 @@
 
 #ehh-helpbox, #ehh-commandlabel, #ehh-viewsource
 {
-	margin: 10px;
-	padding: 5px;
+  margin: 10px;
+  padding: 5px;
 }
 
 #ehh-helpbox row
 {
-	-moz-box-align: center;
+  -moz-box-align: center;
 }
 
 #ehh-helpbox .key:not(:empty)
 {
-	font-weight: bold;
-	margin: 2px 10px 2px 0px;
-	border: 1px solid black;
-	text-align: start;
-	width: 30px;
-	height: 30px;
-	padding: 2px;
-	background-color: white;
-	color: black;
-	border-radius: 3px;
+  font-weight: bold;
+  margin: 2px 10px 2px 0px;
+  border: 1px solid black;
+  text-align: start;
+  width: 30px;
+  height: 30px;
+  padding: 2px;
+  background-color: white;
+  color: black;
+  border-radius: 3px;
 }
 
 #ehh-helpbox-title
 {
-	font-size: 130%;
-	margin-bottom: 10px;
+  font-size: 130%;
+  margin-bottom: 10px;
 }
 
 #ehh-commandlabel
 {
-	font-size: 150%;
+  font-size: 150%;
 }
 
 #ehh-commandlabel-key:not(:empty), #ehh-commandlabel-alternativeKey:not(:empty)
 {
-	font-weight: bold;
-	margin: 0px 10px 0px 0px;
-	border: 1px solid black;
-	text-align: start;
-	width: 45px;
-	height: 45px;
-	padding: 2px;
-	background-color: white;
-	color: black;
-	border-radius: 4px;
+  font-weight: bold;
+  margin: 0px 10px 0px 0px;
+  border: 1px solid black;
+  text-align: start;
+  width: 45px;
+  height: 45px;
+  padding: 2px;
+  background-color: white;
+  color: black;
+  border-radius: 4px;
 }
 
 #ehh-viewsource
 {
-	max-width: none;
+  max-width: none;
 }
 
 #ehh-viewsource description,
 #ehh-viewsource hbox,
 #ehh-viewsource vbox
 {
-	margin: 0px;
+  margin: 0px;
 }
 
 #ehh-viewsource .elementBox
 {
-	border: 1px solid #CCCCCC;
-	margin: 5px;
+  border: 1px solid #CCCCCC;
+  margin: 5px;
 }
 
 #ehh-viewsource .text,
 #ehh-viewsource .cdata,
 #ehh-viewsource .comment
 {
-	margin: 0px 5px;
+  margin: 0px 5px;
 }
 
 #ehh-viewsource .tagName
 {
-	font-weight: bold;
-	color: #FF0000;
+  font-weight: bold;
+  color: #FF0000;
 }
 
 #ehh-viewsource .attrName
 {
-	margin-left: 5px;
-	color: #00FF00;
+  margin-left: 5px;
+  color: #00FF00;
 }
 
 #ehh-viewsource .attrValue
 {
-	color: #0000FF;
+  color: #0000FF;
 }
 
 #ehh-viewsource .comment
 {
-	color: #808080;
+  color: #808080;
 }
diff --git a/install.rdf b/install.rdf
index d96d784..336c6c6 100644
--- a/install.rdf
+++ b/install.rdf
@@ -1,380 +1,482 @@
 <?xml version="1.0"?>
 
-<!-- This Source Code is subject to the terms of the Mozilla Public License
-   - version 2.0 (the "License"). You can obtain a copy of the License at
-   - http://mozilla.org/MPL/2.0/. -->
+<!--
+  - This file is part of the Adblock Plus build tools,
+  - Copyright (C) 2006-2014 Eyeo GmbH
+  -
+  - Adblock Plus is free software: you can redistribute it and/or modify
+  - it under the terms of the GNU General Public License version 3 as
+  - published by the Free Software Foundation.
+  -
+  - Adblock Plus is distributed in the hope that it will be useful,
+  - but WITHOUT ANY WARRANTY; without even the implied warranty of
+  - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  - GNU General Public License for more details.
+  -
+  - You should have received a copy of the GNU General Public License
+  - along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
+  -->
 
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 
   <Description about="urn:mozilla:install-manifest">
     <em:id>elemhidehelper at adblockplus.org</em:id>
-    <em:version>1.2.3</em:version>
+    <em:version>1.3</em:version>
     <em:name>Element Hiding Helper for Adblock Plus</em:name>
     <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-    <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Kendi  [...]
+    <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
     <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
     <em:type>2</em:type>
     <em:bootstrap>true</em:bootstrap>
     <em:localized>
       <Description>
         <em:locale>ar</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>العنصر إخفاء مساعد لزائد</em:name>
+        <em:description>يساعدك في إنشاء عنصر القواعد الاختباء لزائد لمكافحة الإعلانات النصية.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>مؤيد مارديني</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>bg</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Елемент скриване помагач за Adblock Plus</em:name>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Скриване на Елементи Помагач за Adblock Plus</em:name>
         <em:description>Помага ви да създавате правила за Adblock Plus с които да скривате елементи от страниците, за борба с текстовите реклами.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Ивайло Йовчев (s0urce)</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>ca</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Element Hiding Helper per Adblock Plus</em:name>
+        <em:description>T'ajuda a crear normes d'omissió d'elements per l'AdBlock Plus per combatre els ads de text.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>CatTranslations (with other non specified contributions)</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>cs</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Pomocník skrývání prvků pro Adblock Plus</em:name>
         <em:description>Pomáhá vám v boji proti textovým reklamám zjednodušením tvorby pravidel na skrývání prkvů pro Adblock Plus.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
-    </em:localized>
-    <em:localized>
-      <Description>
-        <em:locale>da</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Jakub Tománek</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>de</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper für Adblock Plus</em:name>
         <em:description>Hilft beim Erstellen von Regeln zum Verstecken von Elementen, um mit Adblock Plus Textwerbung zu bekämpfen.</em:description>
-        <em:homepageURL>http://adblockplus.org/de/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/de/elemhidehelper</em:homepageURL>
+        <em:translator>Wladimir Palant</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
-        <em:locale>el</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:locale>dsb</em:locale>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
+        <em:description>Pomaga wam, pšawidła za chowanje elementow za Adblock Plus napóraś, aby pśeśiwo tekstowemu wabjenjeju wójował.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Michael Wolf</em:translator>
+      </Description>
+    </em:localized>
+    <em:localized>
+      <Description>
+        <em:locale>el</em:locale>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Βοηθός Απόκρυψης Στοιχείων για το Adblock Plus</em:name>
         <em:description>Βοηθά στην δημιουργία κανόνων απόκρυψης στοιχείων για το Adblock Plus για να αντιμετωπίσετε τις διαφημίσεις κειμένου.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>rookie</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>en-GB</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
         <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/en/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/en/elemhidehelper</em:homepageURL>
+        <em:translator>Mark Tyndall</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>en-US</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
         <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/en/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/en/elemhidehelper</em:homepageURL>
+        <em:translator>Wladimir Palant</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>es-AR</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Asistente ocultador de elementos para Adblock Plus</em:name>
         <em:description>Te ayuda a crear reglas para ocultar elementos, conjuntamente con Adblock Plus, para combatir las publicidades de texto.</em:description>
-        <em:homepageURL>http://adblockplus.org/es/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/es/elemhidehelper</em:homepageURL>
+        <em:translator>KNTRO</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>es-ES</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper para Adblock Plus</em:name>
         <em:description>Le ayuda a crear reglas de ocultación de elementos para Adblock Plus contra la publicidad en forma de textos.</em:description>
-        <em:homepageURL>http://adblockplus.org/es/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/es/elemhidehelper</em:homepageURL>
+        <em:translator>Urko</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>es-MX</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper para Adblock Plus</em:name>
         <em:description>Le ayuda a crear reglas para ocultar elementos no deseados para Adblock Plus para eliminar la publicidad en forma de textos.</em:description>
-        <em:homepageURL>http://adblockplus.org/es/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/es/elemhidehelper</em:homepageURL>
+        <em:translator>Ninnetyer</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>et</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
         <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>eu</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Elementuak Ezkutatzeko Adblock Plus Lagungarria</em:name>
+        <em:description>Adblock Plus erabilita elementuak ezkutatzeko arauak sortzen laguntzen dizu, testu iragarkiak borrokatzeko.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Librezale.org</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>fa</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>نرم افزار کمکی حذف تبلیغات برای Adblock Plus</em:name>
         <em:description>شما را کمک میکند با قوانین ادبلاک برای پنهان کردن آگهی‌های متنی</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>GµårÐïåñ aka Major Mike</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>fi</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
         <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>fr</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper pour Adblock Plus</em:name>
-        <em:description>Vous aide à créer des règles de masquage d'éléments pour Adblock Plus, afin de combattre les textes publicitaires.</em:description>
-        <em:homepageURL>http://adblockplus.org/fr/elemhidehelper</em:homepageURL></Description>
-    </em:localized>
-    <em:localized>
-      <Description>
-        <em:locale>gl</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:description>Vous aide à créer des règles de masquage d'éléments pour Adblock Plus, afin de lutter contre les textes publicitaires.</em:description>
+        <em:homepageURL>http://adblockplus.org/fr/elemhidehelper</em:homepageURL>
+        <em:translator>jojaba</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>he</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper עבור Adblock Plus</em:name>
-        <em:description>מסייע ליצירת חוקי הסתרת אלמנטים ל-Adblock Plus כדי להילחם במודעות הטקסט.</em:description>
-        <em:homepageURL>http://adblockplus.org/he/elemhidehelper</em:homepageURL></Description>
+        <em:description>מסייע ליצירת חוקי הסתרת אלמנטים ל-Adblock Plus כדי להילחם בפרסומות הטקסט.</em:description>
+        <em:homepageURL>http://adblockplus.org/he/elemhidehelper</em:homepageURL>
+        <em:translator>SiiiE</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>hr</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Pomoćnik sakrivanja elemenata za Adblock Plus</em:name>
+        <em:description>Pomaže vam u stvaranju pravila sakrivanja elemenata za Adblock Plus u svrhu borbe protiv tekstualnih reklama.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>gogo gogić</em:translator>
+      </Description>
+    </em:localized>
+    <em:localized>
+      <Description>
+        <em:locale>hsb</em:locale>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:description>Pomha wam, prawidła za chowanje elementow za Adblock Plus wutworić, zo by přećiwo tekstowemu wabjenju wojował.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Michael Wolf</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>hu</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper az Adblock Plushoz</em:name>
         <em:description>Elemek elrejtése szabályok alapján (Adblock Plus bővítmény).</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Mikes Kaszmán István</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
-        <em:locale>hy</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:locale>hy-AM</em:locale>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
         <em:description>Օգնում է ստեղծելու տարրերի էթաքցման կանոններ Adblock Plus-ի համար տեքստային գովազդների հետ պայքարելու համար:</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>iAbaS</em:translator>
+      </Description>
+    </em:localized>
+    <em:localized>
+      <Description>
+        <em:locale>id</em:locale>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Bantuan Penyembunyian Elemen untuk Adblock Plus</em:name>
+        <em:description>Membantu Anda membuat aturan penyembunyian elemen untuk Adblock Plus untuk melawan iklan teks.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>it</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper per Adblock Plus</em:name>
         <em:description>Permette di creare regole per nascondere gli elementi per Adblock Plus</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Luana Di Muzio</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>ja</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Adblock Plus 用に要素の非表示ルールを作成し、テキスト広告に立ち向かいます。</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:description>テキスト広告に対抗する、Adblock Plus の要素非表示ルール作成を支援します。</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>k2jp</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>kk</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Adblock Plus үшін Element Hiding Helper</em:name>
         <em:description>Мәтіндік жарнамалардан құтылу үшін Adblock Plus ережелерін жасауға көмектеседі</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Бауржан Муфтахидинов</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>ko</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
         <em:description>텍스트 광고 제거! 요소 숨김 도우미로 애드블록 플러스의 요소 숨김 필터를 작성할 수 있습니다.</em:description>
-        <em:homepageURL>http://adblockplus.org/ko/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/ko/elemhidehelper</em:homepageURL>
+        <em:translator>Maybee</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>lt</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper skirtas Adblock Plus</em:name>
         <em:description>Padeda sukurti elementų slėpimo taisykles, skirtas Adblock Plus, kovai su tekstiniais skelbimais.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
-    </em:localized>
-    <em:localized>
-      <Description>
-        <em:locale>nb-NO</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Algimantas Margevičius</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>nl</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper voor Adblock Plus</em:name>
         <em:description>Helpt u regels voor verbergen van elementen te maken voor Adblock Plus om tekstadvertenties te bestrijden.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>markh van BabelZilla.org</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>pl</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper dla Adblock Plusa</em:name>
         <em:description>Pomaga w tworzeniu reguł ukrywania elementów dla Adblock Plusa.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Leszek(teo)Życzkowski</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>pt-BR</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Ajuda a criar regras junto ao Adblock Plus para esconder propagandas.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:description>Ajuda a criar regras de ocultamento de elementos para o Adblock Plus para combater propagandas de texto.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Humberto Sartini</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>pt-PT</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper para Adblock Plus</em:name>
-        <em:description>Ajuda-o a criar regras para filtros de elementos para o Adblock Plus para combater os anúncios de texto.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:description>Ajuda-o a criar regras de ocultação de elementos para o Adblock Plus para ocultar os anúncios de texto.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Pimentel</em:translator>
+        <em:translator>Sérgio Marques</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>ro</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper pentru Adblock Plus</em:name>
-        <em:description>Ajută la crearea regulilor de ascundere Adblock Plus pentru blocarea reclamelor bazate pe texte simple.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:description>Vă ajută să creați reguli de ascundere a elementelor pentru Adblock Plus cu scopul de a bloca reclamele de tip text.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>ultravioletu</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>ru</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper для Adblock Plus</em:name>
         <em:description>Помогает при создании правил скрытия для Adblock Plus, эффективное средство борьбы с текстовой рекламой.</em:description>
-        <em:homepageURL>http://adblockplus.org/ru/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/ru/elemhidehelper</em:homepageURL>
+        <em:translator>Wladimir Palant</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>sk</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper pre Adblock Plus</em:name>
         <em:description>Pomôže vám s vytváraním pravidiel na skrývanie prvkov pre Adblock Plus a bojovať s textovými reklamami.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Ján Kendi (Jacen)</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>sl</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper za Adblock Plus</em:name>
         <em:description>Vam pomaga ustvariti pravila za skrivanje tekstovnih oglasnih blokov z Adblock Plus vtičnikom.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Tomaž Mačus</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>sq</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Ndihmues për Element i Fshehur për Adblock Plus</em:name>
+        <em:description>Ju ndihmon të krijoni rregulla Elementa i Fshehur për Adblock Plus për të luftuar reklamat teksti.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Kristi Papa</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>sr</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper за Adblock Plus</em:name>
         <em:description>Помаже да направите правила за сакривање елемената за Adblock Plus, како бисте уклонили текстуалне рекламе.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Ђорђе Васиљевић</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>sv-SE</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Element Hiding Helper för Adblock Plus</em:name>
         <em:description>Hjälper dig att skapa regler i Adblock Plus för att dölja element. Användbart mot bl.a. textreklam.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Kim Johansson</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>th</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper สำหรับ Adblock Plus</em:name>
         <em:description>ช่วยคุณสร้างกฎการซ่อนวัตถุของ Adblock Plus เพื่อสู้กับข้อความโฆษณา</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Ken</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>tr</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Adblock Plus için Element Hiding Helper</em:name>
         <em:description>Metin reklamlarıyla savaşta Adblock Plus için bileşen gizleme kuralları oluşturmanıza yardım eder.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Ahmet Serkan Tıratacı</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>uk</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper для Adblock Plus</em:name>
         <em:description>Допомогає вам створювати правила приховування для Adblock Plus і боротись з рекламою.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>Тимофій Бабич</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>vi</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>Helps you create element hiding rules for Adblock Plus to fight the text ads.</em:description>
-        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL></Description>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Trình trợ giúp Ẩn Phần tử cho Adblock Plus</em:name>
+        <em:description>Giúp bạn tạo quy tắc ẩn phần tử cho Adblock Plus để chống lại quảng cáo dạng văn bản.</em:description>
+        <em:homepageURL>http://adblockplus.org/elemhidehelper</em:homepageURL>
+        <em:translator>SITUVN</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>zh-CN</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
-        <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>方便的为 Adblock Plus 创建页面元素隐藏规则以去除文本广告.</em:description>
-        <em:homepageURL>http://adblockplus.org/zh_CN/elemhidehelper</em:homepageURL></Description>
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
+        <em:name>Adblock Plus 元素隐藏辅助工具</em:name>
+        <em:description>方便的为 Adblock Plus 创建页面元素隐藏规则以去除文本广告。</em:description>
+        <em:homepageURL>http://adblockplus.org/zh_CN/elemhidehelper</em:homepageURL>
+        <em:translator>WangKing</em:translator>
+      </Description>
     </em:localized>
     <em:localized>
       <Description>
         <em:locale>zh-TW</em:locale>
-        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor><em:translator>Ahmet Serkan Tıratacı</em:translator><em:translator>Algimantas Margevičius</em:translator><em:translator>Chris Hsu</em:translator><em:translator>Eduard Babayan (edo248)</em:translator><em:translator>GµårÐïåñ aka Major Mike</em:translator><em:translator>Humberto Sartini</em:translator><em:translator>Jakub Tománek</em:translator><em:translator>jojaba</em:translator><em:translator>Ján Ke [...]
+        <em:creator>Wladimir Palant</em:creator><em:contributor>Rob Brown</em:contributor>
         <em:name>Element Hiding Helper for Adblock Plus</em:name>
-        <em:description>輔助你建立 Adblock Plus 的元素隱藏規則來對抗廣告。</em:description>
-        <em:homepageURL>http://adblockplus.org/zh_TW/elemhidehelper</em:homepageURL></Description>
+        <em:description>協助您建立對抗文字廣告用的 Adblock Plus 元素隱藏規則。</em:description>
+        <em:homepageURL>http://adblockplus.org/zh_TW/elemhidehelper</em:homepageURL>
+        <em:translator>Chris Hsu</em:translator>
+        <em:translator>knight00931</em:translator>
+      </Description>
     </em:localized>
     <em:targetApplication>
       <Description>
@@ -388,24 +490,24 @@
       <Description>
         <!-- firefox -->
         <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
-        <em:minVersion>8.0</em:minVersion>
-        <em:maxVersion>16.0a1</em:maxVersion>
+        <em:minVersion>20.0</em:minVersion>
+        <em:maxVersion>32.0</em:maxVersion>
       </Description>
     </em:targetApplication>
     <em:targetApplication>
       <Description>
         <!-- seamonkey -->
         <em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id>
-        <em:minVersion>2.5</em:minVersion>
-        <em:maxVersion>2.13a1</em:maxVersion>
+        <em:minVersion>2.17</em:minVersion>
+        <em:maxVersion>2.29</em:maxVersion>
       </Description>
     </em:targetApplication>
     <em:targetApplication>
       <Description>
         <!-- thunderbird -->
         <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
-        <em:minVersion>8.0</em:minVersion>
-        <em:maxVersion>16.0a1</em:maxVersion>
+        <em:minVersion>20.0</em:minVersion>
+        <em:maxVersion>32.0</em:maxVersion>
       </Description>
     </em:targetApplication>
   </Description>
diff --git a/lib/aardvark.js b/lib/aardvark.js
index 03b8fab..cc45532 100644
--- a/lib/aardvark.js
+++ b/lib/aardvark.js
@@ -18,717 +18,717 @@ function E(id) {return null;}
 
 let Aardvark = exports.Aardvark =
 {
-	window: null,
-	browser: null,
-	anchorElem: null,
-	selectedElem: null,
-	isUserSelected: false,
-	lockedAnchor: null,
-	commentElem: null,
-	mouseX: -1,
-	mouseY: -1,
-	prevSelectionUpdate: -1,
-	commandLabelTimer: null,
-	viewSourceTimer: null,
-	boxElem: null,
-	paintNode: null,
-	prevPos: null,
-
-	start: function(wrapper)
-	{
-		if (!this.canSelect(wrapper.browser))
-			return;
-	
-		if (this.browser)
-			this.quit();
-	
-		this.window = wrapper.window;
-		this.browser = wrapper.browser;
-		E = function(id) wrapper.E(id);
-	
-		this.browser.addEventListener("click", this.onMouseClick, true);
-		this.browser.addEventListener("DOMMouseScroll", this.onMouseScroll, true);
-		this.browser.addEventListener("keypress", this.onKeyPress, true);
-		this.browser.addEventListener("mousemove", this.onMouseMove, true);
-		this.browser.addEventListener("select", this.quit, false);
-		this.browser.contentWindow.addEventListener("pagehide", this.onPageHide, true);
-	
-		this.browser.contentWindow.focus();
-	
-		let doc = this.browser.contentDocument;
-		this.boxElem = doc.importNode(E("ehh-elementmarker").firstElementChild.cloneNode(true), true);
-	
-		this.initHelpBox();
-	
-		if (Prefs.showhelp)
-			this.showMenu();
-	
-		// Make sure to select some element immeditely (whichever is in the center of the browser window)
-		let [wndWidth, wndHeight] = this.getWindowSize(doc.defaultView);
-		this.isUserSelected = false;
-		this.onMouseMove({clientX: wndWidth / 2, clientY: wndHeight / 2, screenX: -1, screenY: -1, target: null});
-	},
-
-	canSelect: function(browser)
-	{
-		if (!browser || !browser.contentWindow ||
-				!(browser.contentDocument instanceof Ci.nsIDOMHTMLDocument))
-		{
-			return false;
-		}
-	
-		let location = browser.contentWindow.location;
-		if (location.href == "about:blank")
-			return false;
-	
-		if (!Prefs.acceptlocalfiles &&
-				location.hostname == "" &&
-				location.protocol != "mailbox:" &&
-				location.protocol != "imap:" &&
-				location.protocol != "news:" &&
-				location.protocol != "snews:")
-		{
-			return false;
-		}
-	
-		return true;
-	},
-
-	doCommand: function(command, event)
-	{
-		if (this[command](this.selectedElem))
-		{
-			this.showCommandLabel(this.commands[command + "_key"], this.commands[command + "_altkey"], this.commands[command + "_label"]);
-			if (event)
-				event.stopPropagation();
-		}
-		if (event)
-			event.preventDefault();
-	},
-
-	showCommandLabel: function(key, alternativeKey, label)
-	{
-		if (this.commandLabelTimer)
-			this.commandLabelTimer.cancel();
-	
-		E("ehh-commandlabel-key").textContent = key.toUpperCase();
-		E("ehh-commandlabel-alternativeKey").textContent = alternativeKey.toUpperCase();
-		E("ehh-commandlabel-label").setAttribute("value", label);
-	
-		var commandLabel = E("ehh-commandlabel");
-		commandLabel.showPopup(this.window.document.documentElement, this.mouseX, this.mouseY, "tooltip", "topleft", "topleft");
-	
-		this.commandLabelTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
-		this.commandLabelTimer.initWithCallback(function()
-		{
-			commandLabel.hidePopup();
-			Aardvark.commandLabelTimer = null;
-		}, 400, Ci.nsITimer.TYPE_ONE_SHOT);
-	},
-
-	initHelpBox: function()
-	{
-		var helpBoxRows = E("ehh-helpbox-rows");
-		if (helpBoxRows.firstElementChild)
-			return;
-	
-		// Help box hasn't been filled yet, need to do it now
-		var stringService = Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService);
-		var strings = stringService.createBundle("chrome://elemhidehelper/locale/global.properties");
-	
-		for (var i = 0; i < this.commands.length; i++)
-		{
-			var command = this.commands[i];
-			var key = strings.GetStringFromName("command." + command + ".key");
-			var alternativeKey = strings.GetStringFromName("command." + command + ".alternativeKey");
-			var label = strings.GetStringFromName("command." + command + ".label");
-			this.commands[command + "_key"] = key.toLowerCase();
-			this.commands[command + "_altkey"] = alternativeKey.toLowerCase();
-			this.commands[command + "_label"] = label;
-	
-			var row = this.window.document.createElement("row");
-			helpBoxRows.appendChild(row);
-	
-			var element = this.window.document.createElement("description");
-			element.textContent = key.toUpperCase();
-			element.className = "key";
-			row.appendChild(element);
-	
-			var element = this.window.document.createElement("description");
-			element.textContent = alternativeKey.toUpperCase();
-			element.className = "key";
-			row.appendChild(element);
-	
-			element = this.window.document.createElement("description");
-			element.setAttribute("value", label);
-			element.className = "label";
-			row.appendChild(element);
-		}
-	},
-
-	hideTooltips: function()
-	{
-		let tooltips = ["ehh-helpbox", "ehh-commandlabel", "ehh-viewsource"];
-		for (let i = 0; i < tooltips.length; i++)
-		{
-			let tooltip = E(tooltips[i]);
-			if (tooltip)
-				tooltip.hidePopup();
-		}
-	},
-
-	onMouseClick: function(event)
-	{
-		if (event.button != 0 || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
-			return;
-	
-		this.doCommand("select", event);
-	},
-
-	onMouseScroll: function(event)
-	{
-		if (!event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
-			return;
-	
-		if ("axis" in event && event.axis != event.VERTICAL_AXIS)
-			return;
-	
-		for (let i = 0; i < Math.abs(event.detail); i++)
-			this.doCommand(event.detail > 0 ? "wider" : "narrower", event);
-	},
-
-	onKeyPress: function(event)
-	{
-		if (event.altKey || event.ctrlKey || event.metaKey)
-			return;
-	
-		var command = null;
-		if (event.keyCode == event.DOM_VK_ESCAPE)
-			command = "quit";
-		else if (event.keyCode == event.DOM_VK_RETURN)
-			command = "select";
-		else if (event.charCode)
-		{
-			var key = String.fromCharCode(event.charCode).toLowerCase();
-			var commands = this.commands;
-			for (var i = 0; i < commands.length; i++)
-				if (commands[commands[i] + "_key"] == key || commands[commands[i] + "_altkey"] == key)
-					command = commands[i];
-		}
-	
-		if (command)
-			this.doCommand(command, event);
-	},
-
-	onPageHide: function(event)
-	{
-		this.doCommand("quit", null);
-	},
-
-	onMouseMove: function(event)
-	{
-		this.mouseX = event.screenX;
-		this.mouseY = event.screenY;
-	
-		this.hideSelection();
-	
-		let x = event.clientX;
-		let y = event.clientY;
-	
-		// We might have coordinates relative to a frame, recalculate relative to top window
-		let node = event.target;
-		while (node && node.ownerDocument && node.ownerDocument.defaultView && node.ownerDocument.defaultView.frameElement)
-		{
-			node = node.ownerDocument.defaultView.frameElement;
-			let rect = node.getBoundingClientRect();
-			x += rect.left;
-			y += rect.top;
-		}
-	
-		let elem = this.browser.contentDocument.elementFromPoint(x, y);
-		while (elem && "contentDocument" in elem && this.canSelect(elem))
-		{
-			let rect = elem.getBoundingClientRect();
-			x -= rect.left;
-			y -= rect.top;
-			elem = elem.contentDocument.elementFromPoint(x, y);
-		}
-	
-		if (elem)
-		{
-			if (!this.lockedAnchor)
-				this.setAnchorElement(elem);
-			else
-			{
-				this.lockedAnchor = elem;
-				this.selectElement(this.selectedElem);
-			}
-		}
-	},
-
-	onAfterPaint: function()
-	{
-		// Don't update position too often
-		if (this.selectedElem && Date.now() - this.prevSelectionUpdate > 20)
-		{
-			let pos = this.getElementPosition(this.selectedElem);
-			if (!this.prevPos || this.prevPos.left != pos.left || this.prevPos.right != pos.right
-												|| this.prevPos.top != pos.top || this.prevPos.bottom != pos.bottom)
-			{
-				this.selectElement(this.selectedElem);
-			}
-		}
-	},
-
-	setAnchorElement: function(anchor)
-	{
-		this.anchorElem = anchor;
-	
-		let newSelection = anchor;
-		if (this.isUserSelected)
-		{
-			// User chose an element via wider/narrower commands, keep the selection if
-			// out new anchor is still a child of that element
-			let e = newSelection;
-			while (e && e != this.selectedElem)
-				e = this.getParentElement(e);
-	
-			if (e)
-				newSelection = this.selectedElem;
-			else
-				this.isUserSelected = false;
-		}
-	
-		this.selectElement(newSelection);
-	},
-
-	appendDescription: function(node, value, className)
-	{
-		var descr = this.window.document.createElement("description");
-		descr.setAttribute("value", value);
-		if (className)
-			descr.setAttribute("class", className);
-		node.appendChild(descr);
-	},
-
-	/**************************
-	 * Element marker display *
-	 **************************/
-
-	getElementLabel: function(elem)
-	{
-		let tagName = elem.tagName.toLowerCase();
-		let addition = "";
-		if (elem.id != "")
-			addition += ", id: " + elem.id;
-		if (elem.className != "")
-			addition += ", class: " + elem.className;
-		if (elem.style.cssText != "")
-			addition += ", style: " + elem.style.cssText;
-			
-		return [tagName, addition];
-	},
-
-	selectElement: function(elem)
-	{
-		this.selectedElem = elem;
-		this.prevSelectionUpdate = Date.now();
-	
-		let border = this.boxElem.getElementsByClassName("border")[0];
-		let label = this.boxElem.getElementsByClassName("label")[0];
-		let labelTag = this.boxElem.getElementsByClassName("labelTag")[0];
-		let labelAddition = this.boxElem.getElementsByClassName("labelAddition")[0];
-
-		if (this.boxElem.parentNode)
-			this.boxElem.parentNode.removeChild(this.boxElem);
-	
-		let doc = this.browser.contentDocument;
-		let [wndWidth, wndHeight] = this.getWindowSize(doc.defaultView);
-
-		let pos = this.getElementPosition(elem);
-		this.boxElem.style.left = Math.min(pos.left - 1, wndWidth - 2) + "px";
-		this.boxElem.style.top = Math.min(pos.top - 1, wndHeight - 2) + "px";
-		border.style.width = Math.max(pos.right - pos.left - 2, 0) + "px";
-		border.style.height = Math.max(pos.bottom - pos.top - 2, 0) + "px";
-	
-		[labelTag.textContent, labelAddition.textContent] = this.getElementLabel(elem);
-	
-		// If there is not enough space to show the label move it up a little
-		if (pos.bottom < wndHeight - 25)
-			label.className = "label";
-		else
-			label.className = "label onTop";
-		
-		doc.documentElement.appendChild(this.boxElem);
-
-		this.paintNode = doc.defaultView;
-		if (this.paintNode)
-		{
-			this.prevPos = pos;
-			this.paintNode.addEventListener("MozAfterPaint", this.onAfterPaint, false);
-		}
-	},
-
-	hideSelection: function()
-	{
-		if (this.boxElem.parentNode)
-			this.boxElem.parentNode.removeChild(this.boxElem);
-
-		if (this.paintNode)
-			this.paintNode.removeEventListener("MozAfterPaint", this.onAfterPaint, false);
-		this.paintNode = null;
-		this.prevPos = null;
-	},
-
-	getWindowSize: function(wnd)
-	{
-		return [wnd.innerWidth, wnd.innerHeight];
-	},
-
-	getElementPosition: function(element)
-	{
-		// Restrict rectangle coordinates by the boundaries of a window's client area
-		function intersectRect(rect, wnd)
-		{
-			let [wndWidth, wndHeight] = this.getWindowSize(wnd);
-			rect.left = Math.max(rect.left, 0);
-			rect.top = Math.max(rect.top, 0);
-			rect.right = Math.min(rect.right, wndWidth);
-			rect.bottom = Math.min(rect.bottom, wndHeight);
-		}
-	
-		let rect = element.getBoundingClientRect();
-		let wnd = element.ownerDocument.defaultView;
-	
-		rect = {left: rect.left, top: rect.top,
-						right: rect.right, bottom: rect.bottom};
-		while (true)
-		{
-			intersectRect.call(this, rect, wnd);
-	
-			if (!wnd.frameElement)
-				break;
-	
-			// Recalculate coordinates to be relative to frame's parent window
-			let frameElement = wnd.frameElement;
-			wnd = frameElement.ownerDocument.defaultView;
-	
-			let frameRect = frameElement.getBoundingClientRect();
-			let frameStyle = wnd.getComputedStyle(frameElement, null);
-			let relLeft = frameRect.left + parseFloat(frameStyle.borderLeftWidth) + parseFloat(frameStyle.paddingLeft);
-			let relTop = frameRect.top + parseFloat(frameStyle.borderTopWidth) + parseFloat(frameStyle.paddingTop);
-	
-			rect.left += relLeft;
-			rect.right += relLeft;
-			rect.top += relTop;
-			rect.bottom += relTop;
-		}
-	
-		return rect;
-	},
-
-	getParentElement: function(elem)
-	{
-		let result = elem.parentNode;
-		if (result && result.nodeType == Ci.nsIDOMElement.DOCUMENT_NODE && result.defaultView && result.defaultView.frameElement)
-			result = result.defaultView.frameElement;
-	
-		if (result && result.nodeType != Ci.nsIDOMElement.ELEMENT_NODE)
-			return null;
-	
-		return result;
-	},
-
-	/***************************
-	 * Commands implementation *
-	 ***************************/
-
-	commands: [
-		"select",
-		"wider",
-		"narrower",
-		"lock",
-		"quit",
-		"blinkElement",
-		"viewSource",
-		"viewSourceWindow",
-		"showMenu"
-	],
-
-	wider: function(elem)
-	{
-		if (!elem)
-			return false;
-	
-		let newElem = this.getParentElement(elem);
-		if (!newElem)
-			return false;
-		
-		this.isUserSelected = true;
-		this.selectElement(newElem);
-		return true;
-	},
-
-	narrower: function(elem)
-	{
-		if (elem)
-		{
-			// Search selected element in the parent chain, starting with the anchor element.
-			// We need to select the element just before the selected one.
-			let e = this.anchorElem;
-			let newElem = null;
-			while (e && e != elem)
-			{
-				newElem = e;
-				e = this.getParentElement(e);
-			}
-	
-			if (!e || !newElem)
-				return false;
-	
-			this.isUserSelected = true;
-			this.selectElement(newElem);
-			return true;
-		}
-		return false;
-	},
-
-	lock: function(elem)
-	{
-		if (!elem)
-			return false;
-	
-		if (this.lockedAnchor)
-		{
-			this.setAnchorElement(this.lockedAnchor);
-			this.lockedAnchor = null;
-		}
-		else
-			this.lockedAnchor = this.anchorElem;
-	
-		return true;
-	},
-	
-	quit: function()
-	{
-		if (!this.browser)
-			return false;
-	
-		if ("blinkTimer" in this)
-			this.stopBlinking();
-	
-		if (this.commandLabelTimer)
-			this.commandLabelTimer.cancel();
-		if (this.viewSourceTimer)
-			this.viewSourceTimer.cancel();
-		this.commandLabelTimer = null;
-		this.viewSourceTimer = null;
-	
-		this.hideSelection();
-		this.hideTooltips();
-		
-		this.browser.removeEventListener("click", this.onMouseClick, true);
-		this.browser.removeEventListener("DOMMouseScroll", this.onMouseScroll, true);
-		this.browser.removeEventListener("keypress", this.onKeyPress, true);
-		this.browser.removeEventListener("mousemove", this.onMouseMove, true);
-		this.browser.removeEventListener("select", this.quit, false);
-		this.browser.contentWindow.removeEventListener("pagehide", this.onPageHide, true);
-
-		this.anchorElem = null;
-		this.selectedElem = null;
-		this.window = null;
-		this.browser = null;
-		this.commentElem = null;
-		this.lockedAnchor = null;
-		this.boxElem = null;
-		E = function(id) null;
-		return false;
-	},
-
-	select: function(elem)
-	{
-		if (!elem)
-			return false;
-	
-		this.window.openDialog("chrome://elemhidehelper/content/composer.xul", "_blank",
-													 "chrome,centerscreen,resizable,dialog=no", elem);
-		this.quit();
-		return false;
-	},
-
-	blinkElement: function(elem)
-	{
-		if (!elem)
-			return false;
-	
-		if ("blinkTimer" in this)
-			this.stopBlinking();
-	
-		let counter = 0;
-		this.blinkElem = elem;
-		this.blinkOrigValue = elem.style.visibility;
-		this.blinkTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
-		this.blinkTimer.initWithCallback(function()
-		{
-			counter++;
-			elem.style.visibility = (counter % 2 == 0 ? "visible" : "hidden");
-			if (counter == 6)
-				Aardvark.stopBlinking();
-		}, 250, Ci.nsITimer.TYPE_REPEATING_SLACK);
-	
-		return true;
-	},
-
-	stopBlinking: function()
-	{
-		this.blinkTimer.cancel();
-		this.blinkElem.style.visibility = this.blinkOrigValue;
-	
-		delete this.blinkElem;
-		delete this.blinkOrigValue;
-		delete this.blinkTimer;
-	},
-
-	viewSource: function(elem)
-	{
-		if (!elem)
-			return false;
-	
-		var sourceBox = E("ehh-viewsource");
-		if (sourceBox.state == "open" && this.commentElem == elem)
-		{
-			sourceBox.hidePopup();
-			return true;
-		}
-		sourceBox.hidePopup();
-	
-		while (sourceBox.firstElementChild)
-			sourceBox.removeChild(sourceBox.firstElementChild);
-		this.getOuterHtmlFormatted(elem, sourceBox);
-		this.commentElem = elem;
-	
-		let anchor = this.window.document.documentElement;
-		let x = this.mouseX;
-		let y = this.mouseY;
-		this.viewSourceTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
-		this.viewSourceTimer.initWithCallback(function()
-		{
-			sourceBox.showPopup(anchor, x, y, "tooltip", "topleft", "topleft");
-			Aardvark.viewSourceTimer = null;
-		}, 500, Ci.nsITimer.TYPE_ONE_SHOT);
-		return true;
-	},
-
-	viewSourceWindow: function(elem)
-	{
-		if (!elem)
-			return false;
-	
-		var range = elem.ownerDocument.createRange();
-		range.selectNodeContents(elem);
-		var selection = {rangeCount: 1, getRangeAt: function() {return range}};
-	
-		this.window.openDialog("chrome://global/content/viewPartialSource.xul", "_blank", "scrollbars,resizable,chrome,dialog=no",
-													 null, null, selection, "selection");
-		return true;
-	},
-
-	getOuterHtmlFormatted: function(node, container)
-	{
-		var type = null;
-		switch (node.nodeType)
-		{
-			case node.ELEMENT_NODE:
-				var box = this.window.document.createElement("vbox");
-				box.className = "elementBox";
-	
-				var startTag = this.window.document.createElement("hbox");
-				startTag.className = "elementStartTag";
-				if (!node.firstElementChild)
-					startTag.className += " elementEndTag";
-	
-				this.appendDescription(startTag, "<", null);
-				this.appendDescription(startTag, node.tagName, "tagName");
-	
-				for (var i = 0; i < node.attributes.length; i++)
-				{
-					var attr = node.attributes[i];
-					this.appendDescription(startTag, attr.name, "attrName");
-					if (attr.value != "")
-					{
-						this.appendDescription(startTag, "=", null);
-						this.appendDescription(startTag, '"' + attr.value.replace(/"/, """) + '"', "attrValue");
-					}
-				}
-	
-				this.appendDescription(startTag, node.firstElementChild ? ">" : " />", null);
-				box.appendChild(startTag);
-	
-				if (node.firstElementChild)
-				{
-					for (var child = node.firstElementChild; child; child = child.nextElementSibling)
-						this.getOuterHtmlFormatted(child, box);
-	
-					var endTag = this.window.document.createElement("hbox");
-					endTag.className = "elementEndTag";
-					this.appendDescription(endTag, "<", null);
-					this.appendDescription(endTag, "/" + node.tagName, "tagName");
-					this.appendDescription(endTag, ">", null);
-					box.appendChild(endTag);
-				}
-				container.appendChild(box);
-				return;
-	
-			case node.TEXT_NODE:
-				type = "text";
-				break;
-			case node.CDATA_SECTION_NODE:
-				type = "cdata";
-				break;
-			case node.COMMENT_NODE:
-				type = "comment";
-				break;
-			default:
-				return;
-		}
-	
-		var text = node.nodeValue.replace(/\r/g, '').replace(/^\s+/, '').replace(/\s+$/, '');
-		if (text == "")
-			return;
-	
-		if (type != "cdata")
-		{
-			text = text.replace(/&/g, "&")
-								 .replace(/</g, "<")
-								 .replace(/>/g, ">");
-		}
-		text = text.replace(/\t/g, "  ");
-		if (type == "cdata")
-			text = "<![CDATA[" + text + "]]>";
-		else if (type == "comment")
-			text = "<!--" + text + "-->";
-	
-		var lines = text.split("\n");
-		for (var i = 0; i < lines.length; i++)
-			this.appendDescription(container, lines[i].replace(/^\s+/, '').replace(/\s+$/, ''), type);
-	},
-
-	showMenu: function()
-	{
-		var helpBox = E("ehh-helpbox");
-		if (helpBox.state == "open")
-		{
-			helpBox.hidePopup();
-			return true;
-		}
-	
-		// Show help box
-		helpBox.showPopup(this.browser, -1, -1, "tooltip", "topleft", "topleft");
-		return true;
-	}
+  window: null,
+  browser: null,
+  anchorElem: null,
+  selectedElem: null,
+  isUserSelected: false,
+  lockedAnchor: null,
+  commentElem: null,
+  mouseX: -1,
+  mouseY: -1,
+  prevSelectionUpdate: -1,
+  commandLabelTimer: null,
+  viewSourceTimer: null,
+  boxElem: null,
+  paintNode: null,
+  prevPos: null,
+
+  start: function(wrapper)
+  {
+    if (!this.canSelect(wrapper.browser))
+      return;
+  
+    if (this.browser)
+      this.quit();
+  
+    this.window = wrapper.window;
+    this.browser = wrapper.browser;
+    E = function(id) wrapper.E(id);
+  
+    this.browser.addEventListener("click", this.onMouseClick, true);
+    this.browser.addEventListener("DOMMouseScroll", this.onMouseScroll, true);
+    this.browser.addEventListener("keypress", this.onKeyPress, true);
+    this.browser.addEventListener("mousemove", this.onMouseMove, true);
+    this.browser.addEventListener("select", this.quit, false);
+    this.browser.contentWindow.addEventListener("pagehide", this.onPageHide, true);
+  
+    this.browser.contentWindow.focus();
+  
+    let doc = this.browser.contentDocument;
+    this.boxElem = doc.importNode(E("ehh-elementmarker").firstElementChild.cloneNode(true), true);
+  
+    this.initHelpBox();
+  
+    if (Prefs.showhelp)
+      this.showMenu();
+  
+    // Make sure to select some element immeditely (whichever is in the center of the browser window)
+    let [wndWidth, wndHeight] = this.getWindowSize(doc.defaultView);
+    this.isUserSelected = false;
+    this.onMouseMove({clientX: wndWidth / 2, clientY: wndHeight / 2, screenX: -1, screenY: -1, target: null});
+  },
+
+  canSelect: function(browser)
+  {
+    if (!browser || !browser.contentWindow ||
+        !(browser.contentDocument instanceof Ci.nsIDOMHTMLDocument))
+    {
+      return false;
+    }
+  
+    let location = browser.contentWindow.location;
+    if (location.href == "about:blank")
+      return false;
+  
+    if (!Prefs.acceptlocalfiles &&
+        location.hostname == "" &&
+        location.protocol != "mailbox:" &&
+        location.protocol != "imap:" &&
+        location.protocol != "news:" &&
+        location.protocol != "snews:")
+    {
+      return false;
+    }
+  
+    return true;
+  },
+
+  doCommand: function(command, event)
+  {
+    if (this[command](this.selectedElem))
+    {
+      this.showCommandLabel(this.commands[command + "_key"], this.commands[command + "_altkey"], this.commands[command + "_label"]);
+      if (event)
+        event.stopPropagation();
+    }
+    if (event)
+      event.preventDefault();
+  },
+
+  showCommandLabel: function(key, alternativeKey, label)
+  {
+    if (this.commandLabelTimer)
+      this.commandLabelTimer.cancel();
+  
+    E("ehh-commandlabel-key").textContent = key.toUpperCase();
+    E("ehh-commandlabel-alternativeKey").textContent = alternativeKey.toUpperCase();
+    E("ehh-commandlabel-label").setAttribute("value", label);
+  
+    var commandLabel = E("ehh-commandlabel");
+    commandLabel.showPopup(this.window.document.documentElement, this.mouseX, this.mouseY, "tooltip", "topleft", "topleft");
+  
+    this.commandLabelTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+    this.commandLabelTimer.initWithCallback(function()
+    {
+      commandLabel.hidePopup();
+      Aardvark.commandLabelTimer = null;
+    }, 400, Ci.nsITimer.TYPE_ONE_SHOT);
+  },
+
+  initHelpBox: function()
+  {
+    var helpBoxRows = E("ehh-helpbox-rows");
+    if (helpBoxRows.firstElementChild)
+      return;
+  
+    // Help box hasn't been filled yet, need to do it now
+    var stringService = Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService);
+    var strings = stringService.createBundle("chrome://elemhidehelper/locale/global.properties");
+  
+    for (var i = 0; i < this.commands.length; i++)
+    {
+      var command = this.commands[i];
+      var key = strings.GetStringFromName("command." + command + ".key");
+      var alternativeKey = strings.GetStringFromName("command." + command + ".alternativeKey");
+      var label = strings.GetStringFromName("command." + command + ".label");
+      this.commands[command + "_key"] = key.toLowerCase();
+      this.commands[command + "_altkey"] = alternativeKey.toLowerCase();
+      this.commands[command + "_label"] = label;
+  
+      var row = this.window.document.createElement("row");
+      helpBoxRows.appendChild(row);
+  
+      var element = this.window.document.createElement("description");
+      element.textContent = key.toUpperCase();
+      element.className = "key";
+      row.appendChild(element);
+  
+      var element = this.window.document.createElement("description");
+      element.textContent = alternativeKey.toUpperCase();
+      element.className = "key";
+      row.appendChild(element);
+  
+      element = this.window.document.createElement("description");
+      element.setAttribute("value", label);
+      element.className = "label";
+      row.appendChild(element);
+    }
+  },
+
+  hideTooltips: function()
+  {
+    let tooltips = ["ehh-helpbox", "ehh-commandlabel", "ehh-viewsource"];
+    for (let i = 0; i < tooltips.length; i++)
+    {
+      let tooltip = E(tooltips[i]);
+      if (tooltip)
+        tooltip.hidePopup();
+    }
+  },
+
+  onMouseClick: function(event)
+  {
+    if (event.button != 0 || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
+      return;
+  
+    this.doCommand("select", event);
+  },
+
+  onMouseScroll: function(event)
+  {
+    if (!event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
+      return;
+  
+    if ("axis" in event && event.axis != event.VERTICAL_AXIS)
+      return;
+  
+    for (let i = 0; i < Math.abs(event.detail); i++)
+      this.doCommand(event.detail > 0 ? "wider" : "narrower", event);
+  },
+
+  onKeyPress: function(event)
+  {
+    if (event.altKey || event.ctrlKey || event.metaKey)
+      return;
+  
+    var command = null;
+    if (event.keyCode == event.DOM_VK_ESCAPE)
+      command = "quit";
+    else if (event.keyCode == event.DOM_VK_RETURN)
+      command = "select";
+    else if (event.charCode)
+    {
+      var key = String.fromCharCode(event.charCode).toLowerCase();
+      var commands = this.commands;
+      for (var i = 0; i < commands.length; i++)
+        if (commands[commands[i] + "_key"] == key || commands[commands[i] + "_altkey"] == key)
+          command = commands[i];
+    }
+  
+    if (command)
+      this.doCommand(command, event);
+  },
+
+  onPageHide: function(event)
+  {
+    this.doCommand("quit", null);
+  },
+
+  onMouseMove: function(event)
+  {
+    this.mouseX = event.screenX;
+    this.mouseY = event.screenY;
+  
+    this.hideSelection();
+  
+    let x = event.clientX;
+    let y = event.clientY;
+  
+    // We might have coordinates relative to a frame, recalculate relative to top window
+    let node = event.target;
+    while (node && node.ownerDocument && node.ownerDocument.defaultView && node.ownerDocument.defaultView.frameElement)
+    {
+      node = node.ownerDocument.defaultView.frameElement;
+      let rect = node.getBoundingClientRect();
+      x += rect.left;
+      y += rect.top;
+    }
+  
+    let elem = this.browser.contentDocument.elementFromPoint(x, y);
+    while (elem && "contentDocument" in elem && this.canSelect(elem))
+    {
+      let rect = elem.getBoundingClientRect();
+      x -= rect.left;
+      y -= rect.top;
+      elem = elem.contentDocument.elementFromPoint(x, y);
+    }
+  
+    if (elem)
+    {
+      if (!this.lockedAnchor)
+        this.setAnchorElement(elem);
+      else
+      {
+        this.lockedAnchor = elem;
+        this.selectElement(this.selectedElem);
+      }
+    }
+  },
+
+  onAfterPaint: function()
+  {
+    // Don't update position too often
+    if (this.selectedElem && Date.now() - this.prevSelectionUpdate > 20)
+    {
+      let pos = this.getElementPosition(this.selectedElem);
+      if (!this.prevPos || this.prevPos.left != pos.left || this.prevPos.right != pos.right
+                        || this.prevPos.top != pos.top || this.prevPos.bottom != pos.bottom)
+      {
+        this.selectElement(this.selectedElem);
+      }
+    }
+  },
+
+  setAnchorElement: function(anchor)
+  {
+    this.anchorElem = anchor;
+  
+    let newSelection = anchor;
+    if (this.isUserSelected)
+    {
+      // User chose an element via wider/narrower commands, keep the selection if
+      // out new anchor is still a child of that element
+      let e = newSelection;
+      while (e && e != this.selectedElem)
+        e = this.getParentElement(e);
+  
+      if (e)
+        newSelection = this.selectedElem;
+      else
+        this.isUserSelected = false;
+    }
+  
+    this.selectElement(newSelection);
+  },
+
+  appendDescription: function(node, value, className)
+  {
+    var descr = this.window.document.createElement("description");
+    descr.setAttribute("value", value);
+    if (className)
+      descr.setAttribute("class", className);
+    node.appendChild(descr);
+  },
+
+  /**************************
+   * Element marker display *
+   **************************/
+
+  getElementLabel: function(elem)
+  {
+    let tagName = elem.tagName.toLowerCase();
+    let addition = "";
+    if (elem.id != "")
+      addition += ", id: " + elem.id;
+    if (elem.className != "")
+      addition += ", class: " + elem.className;
+    if (elem.style.cssText != "")
+      addition += ", style: " + elem.style.cssText;
+      
+    return [tagName, addition];
+  },
+
+  selectElement: function(elem)
+  {
+    this.selectedElem = elem;
+    this.prevSelectionUpdate = Date.now();
+  
+    let border = this.boxElem.getElementsByClassName("ehh-border")[0];
+    let label = this.boxElem.getElementsByClassName("ehh-label")[0];
+    let labelTag = this.boxElem.getElementsByClassName("ehh-labelTag")[0];
+    let labelAddition = this.boxElem.getElementsByClassName("ehh-labelAddition")[0];
+
+    if (this.boxElem.parentNode)
+      this.boxElem.parentNode.removeChild(this.boxElem);
+  
+    let doc = this.browser.contentDocument;
+    let [wndWidth, wndHeight] = this.getWindowSize(doc.defaultView);
+
+    let pos = this.getElementPosition(elem);
+    this.boxElem.style.left = Math.min(pos.left - 1, wndWidth - 2) + "px";
+    this.boxElem.style.top = Math.min(pos.top - 1, wndHeight - 2) + "px";
+    border.style.width = Math.max(pos.right - pos.left - 2, 0) + "px";
+    border.style.height = Math.max(pos.bottom - pos.top - 2, 0) + "px";
+  
+    [labelTag.textContent, labelAddition.textContent] = this.getElementLabel(elem);
+  
+    // If there is not enough space to show the label move it up a little
+    if (pos.bottom < wndHeight - 25)
+      label.className = "ehh-label";
+    else
+      label.className = "ehh-label onTop";
+    
+    doc.documentElement.appendChild(this.boxElem);
+
+    this.paintNode = doc.defaultView;
+    if (this.paintNode)
+    {
+      this.prevPos = pos;
+      this.paintNode.addEventListener("MozAfterPaint", this.onAfterPaint, false);
+    }
+  },
+
+  hideSelection: function()
+  {
+    if (this.boxElem.parentNode)
+      this.boxElem.parentNode.removeChild(this.boxElem);
+
+    if (this.paintNode)
+      this.paintNode.removeEventListener("MozAfterPaint", this.onAfterPaint, false);
+    this.paintNode = null;
+    this.prevPos = null;
+  },
+
+  getWindowSize: function(wnd)
+  {
+    return [wnd.innerWidth, wnd.innerHeight];
+  },
+
+  getElementPosition: function(element)
+  {
+    // Restrict rectangle coordinates by the boundaries of a window's client area
+    function intersectRect(rect, wnd)
+    {
+      let [wndWidth, wndHeight] = this.getWindowSize(wnd);
+      rect.left = Math.max(rect.left, 0);
+      rect.top = Math.max(rect.top, 0);
+      rect.right = Math.min(rect.right, wndWidth);
+      rect.bottom = Math.min(rect.bottom, wndHeight);
+    }
+  
+    let rect = element.getBoundingClientRect();
+    let wnd = element.ownerDocument.defaultView;
+  
+    rect = {left: rect.left, top: rect.top,
+            right: rect.right, bottom: rect.bottom};
+    while (true)
+    {
+      intersectRect.call(this, rect, wnd);
+  
+      if (!wnd.frameElement)
+        break;
+  
+      // Recalculate coordinates to be relative to frame's parent window
+      let frameElement = wnd.frameElement;
+      wnd = frameElement.ownerDocument.defaultView;
+  
+      let frameRect = frameElement.getBoundingClientRect();
+      let frameStyle = wnd.getComputedStyle(frameElement, null);
+      let relLeft = frameRect.left + parseFloat(frameStyle.borderLeftWidth) + parseFloat(frameStyle.paddingLeft);
+      let relTop = frameRect.top + parseFloat(frameStyle.borderTopWidth) + parseFloat(frameStyle.paddingTop);
+  
+      rect.left += relLeft;
+      rect.right += relLeft;
+      rect.top += relTop;
+      rect.bottom += relTop;
+    }
+  
+    return rect;
+  },
+
+  getParentElement: function(elem)
+  {
+    let result = elem.parentNode;
+    if (result && result.nodeType == Ci.nsIDOMElement.DOCUMENT_NODE && result.defaultView && result.defaultView.frameElement)
+      result = result.defaultView.frameElement;
+  
+    if (result && result.nodeType != Ci.nsIDOMElement.ELEMENT_NODE)
+      return null;
+  
+    return result;
+  },
+
+  /***************************
+   * Commands implementation *
+   ***************************/
+
+  commands: [
+    "select",
+    "wider",
+    "narrower",
+    "lock",
+    "quit",
+    "blinkElement",
+    "viewSource",
+    "viewSourceWindow",
+    "showMenu"
+  ],
+
+  wider: function(elem)
+  {
+    if (!elem)
+      return false;
+  
+    let newElem = this.getParentElement(elem);
+    if (!newElem)
+      return false;
+    
+    this.isUserSelected = true;
+    this.selectElement(newElem);
+    return true;
+  },
+
+  narrower: function(elem)
+  {
+    if (elem)
+    {
+      // Search selected element in the parent chain, starting with the anchor element.
+      // We need to select the element just before the selected one.
+      let e = this.anchorElem;
+      let newElem = null;
+      while (e && e != elem)
+      {
+        newElem = e;
+        e = this.getParentElement(e);
+      }
+  
+      if (!e || !newElem)
+        return false;
+  
+      this.isUserSelected = true;
+      this.selectElement(newElem);
+      return true;
+    }
+    return false;
+  },
+
+  lock: function(elem)
+  {
+    if (!elem)
+      return false;
+  
+    if (this.lockedAnchor)
+    {
+      this.setAnchorElement(this.lockedAnchor);
+      this.lockedAnchor = null;
+    }
+    else
+      this.lockedAnchor = this.anchorElem;
+  
+    return true;
+  },
+  
+  quit: function()
+  {
+    if (!this.browser)
+      return false;
+  
+    if ("blinkTimer" in this)
+      this.stopBlinking();
+  
+    if (this.commandLabelTimer)
+      this.commandLabelTimer.cancel();
+    if (this.viewSourceTimer)
+      this.viewSourceTimer.cancel();
+    this.commandLabelTimer = null;
+    this.viewSourceTimer = null;
+  
+    this.hideSelection();
+    this.hideTooltips();
+    
+    this.browser.removeEventListener("click", this.onMouseClick, true);
+    this.browser.removeEventListener("DOMMouseScroll", this.onMouseScroll, true);
+    this.browser.removeEventListener("keypress", this.onKeyPress, true);
+    this.browser.removeEventListener("mousemove", this.onMouseMove, true);
+    this.browser.removeEventListener("select", this.quit, false);
+    this.browser.contentWindow.removeEventListener("pagehide", this.onPageHide, true);
+
+    this.anchorElem = null;
+    this.selectedElem = null;
+    this.window = null;
+    this.browser = null;
+    this.commentElem = null;
+    this.lockedAnchor = null;
+    this.boxElem = null;
+    E = function(id) null;
+    return false;
+  },
+
+  select: function(elem)
+  {
+    if (!elem)
+      return false;
+  
+    this.window.openDialog("chrome://elemhidehelper/content/composer.xul", "_blank",
+                           "chrome,centerscreen,resizable,dialog=no", elem);
+    this.quit();
+    return false;
+  },
+
+  blinkElement: function(elem)
+  {
+    if (!elem)
+      return false;
+  
+    if ("blinkTimer" in this)
+      this.stopBlinking();
+  
+    let counter = 0;
+    this.blinkElem = elem;
+    this.blinkOrigValue = elem.style.visibility;
+    this.blinkTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+    this.blinkTimer.initWithCallback(function()
+    {
+      counter++;
+      elem.style.visibility = (counter % 2 == 0 ? "visible" : "hidden");
+      if (counter == 6)
+        Aardvark.stopBlinking();
+    }, 250, Ci.nsITimer.TYPE_REPEATING_SLACK);
+  
+    return true;
+  },
+
+  stopBlinking: function()
+  {
+    this.blinkTimer.cancel();
+    this.blinkElem.style.visibility = this.blinkOrigValue;
+  
+    delete this.blinkElem;
+    delete this.blinkOrigValue;
+    delete this.blinkTimer;
+  },
+
+  viewSource: function(elem)
+  {
+    if (!elem)
+      return false;
+  
+    var sourceBox = E("ehh-viewsource");
+    if (sourceBox.state == "open" && this.commentElem == elem)
+    {
+      sourceBox.hidePopup();
+      return true;
+    }
+    sourceBox.hidePopup();
+  
+    while (sourceBox.firstElementChild)
+      sourceBox.removeChild(sourceBox.firstElementChild);
+    this.getOuterHtmlFormatted(elem, sourceBox);
+    this.commentElem = elem;
+  
+    let anchor = this.window.document.documentElement;
+    let x = this.mouseX;
+    let y = this.mouseY;
+    this.viewSourceTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
+    this.viewSourceTimer.initWithCallback(function()
+    {
+      sourceBox.showPopup(anchor, x, y, "tooltip", "topleft", "topleft");
+      Aardvark.viewSourceTimer = null;
+    }, 500, Ci.nsITimer.TYPE_ONE_SHOT);
+    return true;
+  },
+
+  viewSourceWindow: function(elem)
+  {
+    if (!elem)
+      return false;
+  
+    var range = elem.ownerDocument.createRange();
+    range.selectNodeContents(elem);
+    var selection = {rangeCount: 1, getRangeAt: function() {return range}};
+  
+    this.window.openDialog("chrome://global/content/viewPartialSource.xul", "_blank", "scrollbars,resizable,chrome,dialog=no",
+                           null, null, selection, "selection");
+    return true;
+  },
+
+  getOuterHtmlFormatted: function(node, container)
+  {
+    var type = null;
+    switch (node.nodeType)
+    {
+      case node.ELEMENT_NODE:
+        var box = this.window.document.createElement("vbox");
+        box.className = "elementBox";
+  
+        var startTag = this.window.document.createElement("hbox");
+        startTag.className = "elementStartTag";
+        if (!node.firstElementChild)
+          startTag.className += " elementEndTag";
+  
+        this.appendDescription(startTag, "<", null);
+        this.appendDescription(startTag, node.tagName, "tagName");
+  
+        for (var i = 0; i < node.attributes.length; i++)
+        {
+          var attr = node.attributes[i];
+          this.appendDescription(startTag, attr.name, "attrName");
+          if (attr.value != "")
+          {
+            this.appendDescription(startTag, "=", null);
+            this.appendDescription(startTag, '"' + attr.value.replace(/"/, """) + '"', "attrValue");
+          }
+        }
+  
+        this.appendDescription(startTag, node.firstElementChild ? ">" : " />", null);
+        box.appendChild(startTag);
+  
+        if (node.firstElementChild)
+        {
+          for (var child = node.firstElementChild; child; child = child.nextElementSibling)
+            this.getOuterHtmlFormatted(child, box);
+  
+          var endTag = this.window.document.createElement("hbox");
+          endTag.className = "elementEndTag";
+          this.appendDescription(endTag, "<", null);
+          this.appendDescription(endTag, "/" + node.tagName, "tagName");
+          this.appendDescription(endTag, ">", null);
+          box.appendChild(endTag);
+        }
+        container.appendChild(box);
+        return;
+  
+      case node.TEXT_NODE:
+        type = "text";
+        break;
+      case node.CDATA_SECTION_NODE:
+        type = "cdata";
+        break;
+      case node.COMMENT_NODE:
+        type = "comment";
+        break;
+      default:
+        return;
+    }
+  
+    var text = node.nodeValue.replace(/\r/g, '').replace(/^\s+/, '').replace(/\s+$/, '');
+    if (text == "")
+      return;
+  
+    if (type != "cdata")
+    {
+      text = text.replace(/&/g, "&")
+                 .replace(/</g, "<")
+                 .replace(/>/g, ">");
+    }
+    text = text.replace(/\t/g, "  ");
+    if (type == "cdata")
+      text = "<![CDATA[" + text + "]]>";
+    else if (type == "comment")
+      text = "<!--" + text + "-->";
+  
+    var lines = text.split("\n");
+    for (var i = 0; i < lines.length; i++)
+      this.appendDescription(container, lines[i].replace(/^\s+/, '').replace(/\s+$/, ''), type);
+  },
+
+  showMenu: function()
+  {
+    var helpBox = E("ehh-helpbox");
+    if (helpBox.state == "open")
+    {
+      helpBox.hidePopup();
+      return true;
+    }
+  
+    // Show help box
+    helpBox.showPopup(this.browser, -1, -1, "tooltip", "topleft", "topleft");
+    return true;
+  }
 }
 
 // Makes sure event handlers like Aardvark.onKeyPress always have the correct
 // this pointer set.
 for each (let method in ["onMouseClick", "onMouseScroll", "onKeyPress", "onPageHide", "onMouseMove", "onAfterPaint", "quit"])
-	Aardvark[method] = Aardvark[method].bind(Aardvark);
+  Aardvark[method] = Aardvark[method].bind(Aardvark);
diff --git a/lib/inspectorObserver.js b/lib/inspectorObserver.js
index f9cf547..e2a72bc 100644
--- a/lib/inspectorObserver.js
+++ b/lib/inspectorObserver.js
@@ -4,76 +4,64 @@
  * http://mozilla.org/MPL/2.0/.
  */
 
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-
 let InspectorObserver =
 {
-	init: function()
-	{
-		Services.obs.addObserver(this, "inspector-opened", true);
-		onShutdown.add(function()
-		{
-			Services.obs.removeObserver(this, "inspector-opened");
-
-			let e = Services.ww.getWindowEnumerator();
-			while (e.hasMoreElements())
-			{
-				let window = e.getNext().QueryInterface(Ci.nsIDOMWindow);
-				let button = window.document.getElementById("inspector-abp-elemhide-toolbutton");
-				if (button)
-					button.parentNode.removeChild(button);
-			}
-		}.bind(this));
-	},
-
-	get inspectorButton()
-	{
-		// Randomize URI to work around bug 719376
-		let stringBundle = Services.strings.createBundle("chrome://elemhidehelper/locale/global.properties?" + Math.random());
-		let result = [stringBundle.GetStringFromName("inspector.button.label"), stringBundle.GetStringFromName("inspector.button.accesskey"), stringBundle.GetStringFromName("inspector.button.tooltiptext")];
-
-		delete this.inspectorButton;
-		this.__defineGetter__("inspectorButton", function() result);
-		return this.inspectorButton;
-	},
-
-	observe: function(subject, topic, data)
-	{
-		if (topic != "inspector-opened")
-			return;
+  init: function()
+  {
+    let gDevTools;
+    try
+    {
+      ({gDevTools}) = Cu.import("resource:///modules/devtools/gDevTools.jsm", null);
+    }
+    catch(e)
+    {
+      // No developer tools or unsupported version - ignore.
+      return;
+    }
 
-		let InspectorUI = subject.wrappedJSObject;
-		let window = InspectorUI.chromeWin;
-		let button = window.document.getElementById("inspector-abp-elemhide-toolbutton");
-		if (button)
-			button.parentNode.removeChild(button);
+    gDevTools.on("inspector-ready", this.inspectorReady);
+    onShutdown.add(function()
+    {
+      gDevTools.off("inspector-ready", this.inspectorReady);
+    }.bind(this));
+  },
 
-		if (!("@adblockplus.org/abp/public;1" in Cc) || !window._ehhWrapper || !require("aardvark").Aardvark.canSelect(window._ehhWrapper.browser))
-			return;
+  get inspectorButtonTooltip()
+  {
+    // Randomize URI to work around bug 719376
+    let stringBundle = Services.strings.createBundle("chrome://elemhidehelper/locale/global.properties?" + Math.random());
+    let result = stringBundle.GetStringFromName("inspector.button.tooltiptext");
 
-		let parent = window.document.getElementById("inspector-tools");
-		if (!parent)
-			return;
+    delete this.inspectorButtonTooltip;
+    this.__defineGetter__("inspectorButtonTooltip", function() result);
+    return this.inspectorButtonTooltip;
+  },
 
-		let [label, accesskey, tooltiptext] = this.inspectorButton;
-		button = window.document.createElement("toolbarbutton");
-		button.setAttribute("id", "inspector-abp-elemhide-toolbutton");
-		button.setAttribute("label", label);
-		button.setAttribute("class", "devtools-toolbarbutton");
-		button.setAttribute("accesskey", accesskey);
-		button.setAttribute("tooltiptext", tooltiptext);
-		button.setAttribute("tabindex", "0");
-		button.addEventListener("command", function()
-		{
-			InspectorUI.chromeWin.openDialog("chrome://elemhidehelper/content/composer.xul", "_blank",
-																			 "chrome,centerscreen,resizable,dialog=no", InspectorUI.selection);
-			InspectorUI.closeInspectorUI();
-		}, false);
-		parent.appendChild(button);
-	},
+  inspectorReady: function(eventName, toolbox, panel)
+  {
+    let panelWindow = panel.panelWin;
+    let inspectBtn = panelWindow.document.getElementById("inspector-breadcrumbs");
+    if (!inspectBtn)
+      return;
 
-	QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
+    let tooltiptext = InspectorObserver.inspectorButtonTooltip;
+    button = panelWindow.document.createElement("toolbarbutton");
+    button.setAttribute("id", "ehh-inspector-toolbarbutton");
+    button.setAttribute("class", "devtools-toolbarbutton");
+    button.setAttribute("tooltiptext", tooltiptext);
+    button.setAttribute("tabindex", "0");
+    button.addEventListener("command", function()
+    {
+      panelWindow.openDialog("chrome://elemhidehelper/content/composer.xul", "_blank",
+                             "chrome,centerscreen,resizable,dialog=no", panel.selection.node);
+    }, false);
+    
+    //Override button style for light DevTools theme
+    let style = panelWindow.document.createProcessingInstruction("xml-stylesheet", 'href="chrome://elemhidehelper/skin/devToolsOverlay.css" type="text/css"');
+    panelWindow.document.insertBefore(style, panelWindow.document.firstChild);
+    
+    inspectBtn.parentNode.insertBefore(button, inspectBtn);
+  }
 };
 
 InspectorObserver.init();
diff --git a/lib/inspectorObserver.js.rej b/lib/inspectorObserver.js.rej
new file mode 100644
index 0000000..b2780a1
--- /dev/null
+++ b/lib/inspectorObserver.js.rej
@@ -0,0 +1,36 @@
+--- inspectorObserver.js
++++ inspectorObserver.js
+@@ -35,17 +35,17 @@ let InspectorObserver =
+     delete this.inspectorButtonTooltip;
+     this.__defineGetter__("inspectorButtonTooltip", function() result);
+     return this.inspectorButtonTooltip;
+   },
+ 
+   inspectorReady: function(eventName, toolbox, panel)
+   {
+     let panelWindow = panel.panelWin;
+-    let inspectBtn = panelWindow.document.getElementById("inspector-inspect-toolbutton");
++    let inspectBtn = panelWindow.document.getElementById("inspector-breadcrumbs");
+     if (!inspectBtn)
+       return;
+ 
+     let tooltiptext = InspectorObserver.inspectorButtonTooltip;
+     button = panelWindow.document.createElement("toolbarbutton");
+     button.setAttribute("id", "inspector-abp-elemhide-toolbutton");
+     button.style.listStyleImage = "url('chrome://adblockplus/skin/abp-status-16.png')";
+     button.style.MozImageRegion = "rect(0px, 16px, 16px, 0px)";
+@@ -53,13 +53,13 @@ let InspectorObserver =
+     button.setAttribute("class", "devtools-toolbarbutton");
+     button.setAttribute("tooltiptext", tooltiptext);
+     button.setAttribute("tabindex", "0");
+     button.addEventListener("command", function()
+     {
+       panelWindow.openDialog("chrome://elemhidehelper/content/composer.xul", "_blank",
+                              "chrome,centerscreen,resizable,dialog=no", panel.selection.node);
+     }, false);
+-    inspectBtn.parentNode.insertBefore(button, inspectBtn.nextSibling);
++    inspectBtn.parentNode.insertBefore(button, inspectBtn);
+   }
+ };
+ 
+ InspectorObserver.init();
diff --git a/lib/keySelector.js b/lib/keySelector.js
index 0af7691..20847d9 100644
--- a/lib/keySelector.js
+++ b/lib/keySelector.js
@@ -1,20 +1,31 @@
 /*
- * This Source Code is subject to the terms of the Mozilla Public License
- * version 2.0 (the "License"). You can obtain a copy of the License at
- * http://mozilla.org/MPL/2.0/.
+ * This file is part of the Adblock Plus build tools,
+ * Copyright (C) 2006-2014 Eyeo GmbH
+ *
+ * Adblock Plus is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * Adblock Plus is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 Cu.import("resource://gre/modules/Services.jsm");
 
 let validModifiers =
 {
-	ACCEL: null,
-	CTRL: "control",
-	CONTROL: "control",
-	SHIFT: "shift",
-	ALT: "alt",
-	META: "meta",
-	__proto__: null
+  ACCEL: null,
+  CTRL: "control",
+  CONTROL: "control",
+  SHIFT: "shift",
+  ALT: "alt",
+  META: "meta",
+  __proto__: null
 };
 
 /**
@@ -22,21 +33,21 @@ let validModifiers =
  */
 function initAccelKey()
 {
-	try
-	{
-		let accelKey = Services.prefs.getIntPref("ui.key.accelKey");
-		if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_CONTROL)
-			validModifiers.ACCEL = "control";
-		else if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_ALT)
-			validModifiers.ACCEL = "alt";
-		else if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_META)
-			validModifiers.ACCEL = "meta";
-	}
-	catch(e)
-	{
-		validModifiers.ACCEL = "control";
-		Cu.reportError(e);
-	}
+  validModifiers.ACCEL = "control";
+  try
+  {
+    let accelKey = Services.prefs.getIntPref("ui.key.accelKey");
+    if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_CONTROL)
+      validModifiers.ACCEL = "control";
+    else if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_ALT)
+      validModifiers.ACCEL = "alt";
+    else if (accelKey == Ci.nsIDOMKeyEvent.DOM_VK_META)
+      validModifiers.ACCEL = "meta";
+  }
+  catch(e)
+  {
+    Cu.reportError(e);
+  }
 }
 
 exports.KeySelector = KeySelector;
@@ -50,108 +61,108 @@ exports.KeySelector = KeySelector;
  */
 function KeySelector(window)
 {
-	this._initExistingShortcuts(window);
+  this._initExistingShortcuts(window);
 }
 KeySelector.prototype =
 {
-	/**
-	 * Map listing existing shortcut keys as its keys.
-	 * @type Object
-	 */
-	_existingShortcuts: null,
-
-	/**
-	 * Sets up _existingShortcuts property for a window.
-	 */
-	_initExistingShortcuts: function(/**ChromeWindow*/ window)
-	{
-		if (!validModifiers.ACCEL)
-			initAccelKey();
-
-		this._existingShortcuts = {__proto__: null};
-
-		let keys = window.document.getElementsByTagName("key");
-		for (let i = 0; i < keys.length; i++)
-		{
-			let key = keys[i];
-			let keyData =
-			{
-				shift: false,
-				meta: false,
-				alt: false,
-				control: false,
-				char: null,
-				code: null
-			};
-
-			let keyChar = key.getAttribute("key");
-			if (keyChar && keyChar.length == 1)
-				keyData.char = keyChar.toUpperCase();
-
-			let keyCode = key.getAttribute("keycode");
-			if (keyCode && "DOM_" + keyCode.toUpperCase() in Ci.nsIDOMKeyEvent)
-				keyData.code = Ci.nsIDOMKeyEvent["DOM_" + keyCode.toUpperCase()];
-
-			if (!keyData.char && !keyData.code)
-				continue;
-
-			let keyModifiers = key.getAttribute("modifiers");
-			if (keyModifiers)
-				for each (let modifier in keyModifiers.toUpperCase().match(/\w+/g))
-					if (modifier in validModifiers)
-						keyData[validModifiers[modifier]] = true;
-
-			let canonical = [keyData.shift, keyData.meta, keyData.alt, keyData.control, keyData.char || keyData.code].join(" ");
-			this._existingShortcuts[canonical] = true;
-		}
-	},
-
-	/**
-	 * Selects a keyboard shortcut variant that isn't already taken,
-	 * parses it into an object.
-	 */
-	selectKey: function(/**String*/ variants) /**Object*/
-	{
-		for each (let variant in variants.split(/\s*,\s*/))
-		{
-			if (!variant)
-				continue;
-
-			let keyData =
-			{
-				shift: false,
-				meta: false,
-				alt: false,
-				control: false,
-				char: null,
-				code: null,
-				codeName: null
-			};
-			for each (let part in variant.toUpperCase().split(/\s+/))
-			{
-				if (part in validModifiers)
-					keyData[validModifiers[part]] = true;
-				else if (part.length == 1)
-					keyData.char = part;
-				else if ("DOM_VK_" + part in Ci.nsIDOMKeyEvent)
-				{
-					keyData.code = Ci.nsIDOMKeyEvent["DOM_VK_" + part];
-					keyData.codeName = "VK_" + part;
-				}
-			}
-
-			if (!keyData.char && !keyData.code)
-				continue;
-
-			let canonical = [keyData.shift, keyData.meta, keyData.alt, keyData.control, keyData.char || keyData.code].join(" ");
-			if (canonical in this._existingShortcuts)
-				continue;
-
-			return keyData;
-		}
-
-		return null;
-	}
+  /**
+   * Map listing existing shortcut keys as its keys.
+   * @type Object
+   */
+  _existingShortcuts: null,
+
+  /**
+   * Sets up _existingShortcuts property for a window.
+   */
+  _initExistingShortcuts: function(/**ChromeWindow*/ window)
+  {
+    if (!validModifiers.ACCEL)
+      initAccelKey();
+
+    this._existingShortcuts = {__proto__: null};
+
+    let keys = window.document.getElementsByTagName("key");
+    for (let i = 0; i < keys.length; i++)
+    {
+      let key = keys[i];
+      let keyData =
+      {
+        shift: false,
+        meta: false,
+        alt: false,
+        control: false,
+        char: null,
+        code: null
+      };
+
+      let keyChar = key.getAttribute("key");
+      if (keyChar && keyChar.length == 1)
+        keyData.char = keyChar.toUpperCase();
+
+      let keyCode = key.getAttribute("keycode");
+      if (keyCode && "DOM_" + keyCode.toUpperCase() in Ci.nsIDOMKeyEvent)
+        keyData.code = Ci.nsIDOMKeyEvent["DOM_" + keyCode.toUpperCase()];
+
+      if (!keyData.char && !keyData.code)
+        continue;
+
+      let keyModifiers = key.getAttribute("modifiers");
+      if (keyModifiers)
+        for each (let modifier in keyModifiers.toUpperCase().match(/\w+/g))
+          if (modifier in validModifiers)
+            keyData[validModifiers[modifier]] = true;
+
+      let canonical = [keyData.shift, keyData.meta, keyData.alt, keyData.control, keyData.char || keyData.code].join(" ");
+      this._existingShortcuts[canonical] = true;
+    }
+  },
+
+  /**
+   * Selects a keyboard shortcut variant that isn't already taken,
+   * parses it into an object.
+   */
+  selectKey: function(/**String*/ variants) /**Object*/
+  {
+    for each (let variant in variants.split(/\s*,\s*/))
+    {
+      if (!variant)
+        continue;
+
+      let keyData =
+      {
+        shift: false,
+        meta: false,
+        alt: false,
+        control: false,
+        char: null,
+        code: null,
+        codeName: null
+      };
+      for each (let part in variant.toUpperCase().split(/\s+/))
+      {
+        if (part in validModifiers)
+          keyData[validModifiers[part]] = true;
+        else if (part.length == 1)
+          keyData.char = part;
+        else if ("DOM_VK_" + part in Ci.nsIDOMKeyEvent)
+        {
+          keyData.code = Ci.nsIDOMKeyEvent["DOM_VK_" + part];
+          keyData.codeName = "VK_" + part;
+        }
+      }
+
+      if (!keyData.char && !keyData.code)
+        continue;
+
+      let canonical = [keyData.shift, keyData.meta, keyData.alt, keyData.control, keyData.char || keyData.code].join(" ");
+      if (canonical in this._existingShortcuts)
+        continue;
+
+      return keyData;
+    }
+
+    return null;
+  }
 };
 
 /**
@@ -160,40 +171,40 @@ KeySelector.prototype =
  */
 KeySelector.getTextForKey = function (/**Object*/ key) /**String*/
 {
-	if (!key)
-		return null;
-
-	if (!("text" in key))
-	{
-		key.text = null;
-		try
-		{
-			let stringBundle = Services.strings.createBundle("chrome://global-platform/locale/platformKeys.properties");
-			let parts = [];
-			if (key.control)
-				parts.push(stringBundle.GetStringFromName("VK_CONTROL"));
-			if (key.alt)
-				parts.push(stringBundle.GetStringFromName("VK_ALT"));
-			if (key.meta)
-				parts.push(stringBundle.GetStringFromName("VK_META"));
-			if (key.shift)
-				parts.push(stringBundle.GetStringFromName("VK_SHIFT"));
-			if (key.char)
-				parts.push(key.char.toUpperCase());
-			else
-			{
-				let stringBundle2 = Services.strings.createBundle("chrome://global/locale/keys.properties");
-				parts.push(stringBundle2.GetStringFromName(key.codeName));
-			}
-			key.text = parts.join(stringBundle.GetStringFromName("MODIFIER_SEPARATOR"));
-		}
-		catch (e)
-		{
-			Cu.reportError(e);
-			return null;
-		}
-	}
-	return key.text;
+  if (!key)
+    return null;
+
+  if (!("text" in key))
+  {
+    key.text = null;
+    try
+    {
+      let stringBundle = Services.strings.createBundle("chrome://global-platform/locale/platformKeys.properties");
+      let parts = [];
+      if (key.control)
+        parts.push(stringBundle.GetStringFromName("VK_CONTROL"));
+      if (key.alt)
+        parts.push(stringBundle.GetStringFromName("VK_ALT"));
+      if (key.meta)
+        parts.push(stringBundle.GetStringFromName("VK_META"));
+      if (key.shift)
+        parts.push(stringBundle.GetStringFromName("VK_SHIFT"));
+      if (key.char)
+        parts.push(key.char.toUpperCase());
+      else
+      {
+        let stringBundle2 = Services.strings.createBundle("chrome://global/locale/keys.properties");
+        parts.push(stringBundle2.GetStringFromName(key.codeName));
+      }
+      key.text = parts.join(stringBundle.GetStringFromName("MODIFIER_SEPARATOR"));
+    }
+    catch (e)
+    {
+      Cu.reportError(e);
+      return null;
+    }
+  }
+  return key.text;
 };
 
 /**
@@ -202,16 +213,16 @@ KeySelector.getTextForKey = function (/**Object*/ key) /**String*/
  */
 KeySelector.matchesKey = function(/**Event*/ event, /**Object*/ key) /**Boolean*/
 {
-	if (event.defaultPrevented || !key)
-		return false;
-	if (key.shift != event.shiftKey || key.alt != event.altKey)
-		return false;
-	if (key.meta != event.metaKey || key.control != event.ctrlKey)
-		return false;
-
-	if (key.char && event.charCode && String.fromCharCode(event.charCode).toUpperCase() == key.char)
-		return true;
-	if (key.code && event.keyCode && event.keyCode == key.code)
-		return true;
-	return false;
+  if (event.defaultPrevented || !key)
+    return false;
+  if (key.shift != event.shiftKey || key.alt != event.altKey)
+    return false;
+  if (key.meta != event.metaKey || key.control != event.ctrlKey)
+    return false;
+
+  if (key.char && event.charCode && String.fromCharCode(event.charCode).toUpperCase() == key.char)
+    return true;
+  if (key.code && event.keyCode && event.keyCode == key.code)
+    return true;
+  return false;
 };
diff --git a/lib/main.js b/lib/main.js
index 46ed5d4..ab7db39 100644
--- a/lib/main.js
+++ b/lib/main.js
@@ -17,21 +17,21 @@ Prefs.migrate("extensions.adblockplus.ehh.showhelp", "showhelp");
 // Window types to attach to
 let knownWindowTypes =
 {
-	"navigator:browser": true,
-	"mail:3pane": true,
-	"mail:messageWindow": true,
-	__proto__: null
+  "navigator:browser": true,
+  "mail:3pane": true,
+  "mail:messageWindow": true,
+  __proto__: null
 };
 
 // Use random marker class
 let elementMarkerClass = null;
 {
-	let rnd = [];
-	let offset = "a".charCodeAt(0);
-	for (let i = 0; i < 20; i++)
-		rnd.push(offset + Math.random() * 26);
+  let rnd = [];
+  let offset = "a".charCodeAt(0);
+  for (let i = 0; i < 20; i++)
+    rnd.push(offset + Math.random() * 26);
 
-	elementMarkerClass = String.fromCharCode.apply(String, rnd);
+  elementMarkerClass = String.fromCharCode.apply(String, rnd);
 }
 
 // Load CSS asynchronously
@@ -40,14 +40,14 @@ request.open("GET", "chrome://elemhidehelper/content/elementmarker.css");
 request.overrideMimeType("text/plain");
 request.addEventListener("load", function(event)
 {
-	if (onShutdown.done)
-		return;
-
-	let data = event.target.responseText.replace(/%%CLASS%%/g, elementMarkerClass);
-	let styleService = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
-	let styleURI = Services.io.newURI("data:text/css," + encodeURIComponent(data), null, null);
-	styleService.loadAndRegisterSheet(styleURI, Ci.nsIStyleSheetService.USER_SHEET);
-	onShutdown.add(function() styleService.unregisterSheet(styleURI, Ci.nsIStyleSheetService.USER_SHEET));
+  if (onShutdown.done)
+    return;
+
+  let data = event.target.responseText.replace(/%%CLASS%%/g, elementMarkerClass);
+  let styleService = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
+  let styleURI = Services.io.newURI("data:text/css," + encodeURIComponent(data), null, null);
+  styleService.loadAndRegisterSheet(styleURI, Ci.nsIStyleSheetService.USER_SHEET);
+  onShutdown.add(function() styleService.unregisterSheet(styleURI, Ci.nsIStyleSheetService.USER_SHEET));
 }, false);
 request.send(null);
 
@@ -56,44 +56,44 @@ request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIJSX
 request.open("GET", "chrome://elemhidehelper/content/overlay.xul");
 request.addEventListener("load", function(event)
 {
-	if (onShutdown.done)
-		return;
+  if (onShutdown.done)
+    return;
 
-	let overlay = event.target.responseXML.documentElement;
+  let overlay = event.target.responseXML.documentElement;
 
-	// Initialization done, we can start up now
-	require("inspectorObserver");
-	new WindowObserver({
-		applyToWindow: function(window)
-		{
-			let type = window.document.documentElement.getAttribute("windowtype");
-			if (!(type in knownWindowTypes) || window._ehhWrapper)
-				return;
+  // Initialization done, we can start up now
+  require("inspectorObserver");
+  new WindowObserver({
+    applyToWindow: function(window)
+    {
+      let type = window.document.documentElement.getAttribute("windowtype");
+      if (!(type in knownWindowTypes) || window._ehhWrapper)
+        return;
 
-			window.document.documentElement.appendChild(overlay.cloneNode(true));
+      window.document.documentElement.appendChild(overlay.cloneNode(true));
 
-			let style = window.document.createProcessingInstruction("xml-stylesheet", 'class="elemhidehelper-node" href="chrome://elemhidehelper/skin/overlay.css" type="text/css"');
-			window.document.insertBefore(style, window.document.firstChild);
+      let style = window.document.createProcessingInstruction("xml-stylesheet", 'class="elemhidehelper-node" href="chrome://elemhidehelper/skin/overlay.css" type="text/css"');
+      window.document.insertBefore(style, window.document.firstChild);
 
-			window._ehhWrapper = new WindowWrapper(window, elementMarkerClass);
-		},
+      window._ehhWrapper = new WindowWrapper(window, elementMarkerClass);
+    },
 
-		removeFromWindow: function(window)
-		{
-			if (!window._ehhWrapper)
-				return;
+    removeFromWindow: function(window)
+    {
+      if (!window._ehhWrapper)
+        return;
 
-			window._ehhWrapper.shutdown();
-			delete window._ehhWrapper;
+      window._ehhWrapper.shutdown();
+      delete window._ehhWrapper;
 
-			let element = window.document.getElementById(overlay.getAttribute("id"));
-			if (element)
-				element.parentNode.removeChild(element);
+      let element = window.document.getElementById(overlay.getAttribute("id"));
+      if (element)
+        element.parentNode.removeChild(element);
 
-			for (let child = window.document.firstChild; child; child = child.nextSibling)
-				if (child.nodeType == child.PROCESSING_INSTRUCTION_NODE && child.data.indexOf("elemhidehelper-node") >= 0)
-					child.parentNode.removeChild(child);
-		}
-	});
+      for (let child = window.document.firstChild; child; child = child.nextSibling)
+        if (child.nodeType == child.PROCESSING_INSTRUCTION_NODE && child.data.indexOf("elemhidehelper-node") >= 0)
+          child.parentNode.removeChild(child);
+    }
+  });
 }, false);
 request.send(null);
diff --git a/lib/prefs.js b/lib/prefs.js
index 4ea29fa..e1b6ae0 100644
--- a/lib/prefs.js
+++ b/lib/prefs.js
@@ -1,7 +1,18 @@
 /*
- * This Source Code is subject to the terms of the Mozilla Public License
- * version 2.0 (the "License"). You can obtain a copy of the License at
- * http://mozilla.org/MPL/2.0/.
+ * This file is part of the Adblock Plus build tools,
+ * Copyright (C) 2006-2014 Eyeo GmbH
+ *
+ * Adblock Plus is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * Adblock Plus is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 Cu.import("resource://gre/modules/Services.jsm");
@@ -14,36 +25,36 @@ let ignorePrefChanges = false;
 
 function init()
 {
-	// Load default preferences and set up properties for them
-	let defaultBranch = Services.prefs.getDefaultBranch(branchName);
-	let scope =
-	{
-		pref: function(pref, value)
-		{
-			if (pref.substr(0, branchName.length) != branchName)
-			{
-				Cu.reportError(new Error("Ignoring default preference " + pref + ", wrong branch."));
-				return;
-			}
-			pref = pref.substr(branchName.length);
-
-			let [getter, setter] = typeMap[typeof value];
-			setter(defaultBranch, pref, value);
-			defineProperty(pref, false, getter, setter);
-		}
-	};
-	Services.scriptloader.loadSubScript(addonRoot + "defaults/prefs.js", scope);
-
-	// Add preference change observer
-	try
-	{
-		branch.QueryInterface(Ci.nsIPrefBranch2).addObserver("", Prefs, true);
-		onShutdown.add(function() branch.removeObserver("", Prefs));
-	}
-	catch (e)
-	{
-		Cu.reportError(e);
-	}
+  // Load default preferences and set up properties for them
+  let defaultBranch = Services.prefs.getDefaultBranch(branchName);
+  let scope =
+  {
+    pref: function(pref, value)
+    {
+      if (pref.substr(0, branchName.length) != branchName)
+      {
+        Cu.reportError(new Error("Ignoring default preference " + pref + ", wrong branch."));
+        return;
+      }
+      pref = pref.substr(branchName.length);
+
+      let [getter, setter] = typeMap[typeof value];
+      setter(defaultBranch, pref, value);
+      defineProperty(pref, false, getter, setter);
+    }
+  };
+  Services.scriptloader.loadSubScript(addonRoot + "defaults/prefs.js", scope);
+
+  // Add preference change observer
+  try
+  {
+    branch.QueryInterface(Ci.nsIPrefBranch2).addObserver("", Prefs, true);
+    onShutdown.add(function() branch.removeObserver("", Prefs));
+  }
+  catch (e)
+  {
+    Cu.reportError(e);
+  }
 }
 
 /**
@@ -51,59 +62,60 @@ function init()
  */
 function defineProperty(/**String*/ name, defaultValue, /**Function*/ readFunc, /**Function*/ writeFunc)
 {
-	let value = defaultValue;
-	Prefs["_update_" + name] = function()
-	{
-		try
-		{
-			value = readFunc(branch, name);
-			triggerListeners(name);
-		}
-		catch(e)
-		{
-			Cu.reportError(e);
-		}
-	};
-	Prefs.__defineGetter__(name, function() value);
-	Prefs.__defineSetter__(name, function(newValue)
-	{
-		if (value == newValue)
-			return value;
-
-		try
-		{
-			ignorePrefChanges = true;
-			writeFunc(branch, name, newValue);
-			value = newValue;
-			triggerListeners(name);
-		}
-		catch(e)
-		{
-			Cu.reportError(e);
-		}
-		finally
-		{
-			ignorePrefChanges = false;
-		}
-		return value;
-	});
-	Prefs["_update_" + name]();
+  let value = defaultValue;
+  Prefs["_update_" + name] = function()
+  {
+    try
+    {
+      value = readFunc(branch, name);
+      triggerListeners(name);
+    }
+    catch(e)
+    {
+      Cu.reportError(e);
+    }
+  };
+  Prefs.__defineGetter__(name, function() value);
+  Prefs.__defineSetter__(name, function(newValue)
+  {
+    if (value == newValue)
+      return value;
+
+    try
+    {
+      ignorePrefChanges = true;
+      writeFunc(branch, name, newValue);
+      value = newValue;
+      Services.prefs.savePrefFile(null);
+      triggerListeners(name);
+    }
+    catch(e)
+    {
+      Cu.reportError(e);
+    }
+    finally
+    {
+      ignorePrefChanges = false;
+    }
+    return value;
+  });
+  Prefs["_update_" + name]();
 }
 
 let listeners = [];
 function triggerListeners(/**String*/ name)
 {
-	for (let i = 0; i < listeners.length; i++)
-	{
-		try
-		{
-			listeners[i](name);
-		}
-		catch(e)
-		{
-			Cu.reportError(e);
-		}
-	}
+  for (let i = 0; i < listeners.length; i++)
+  {
+    try
+    {
+      listeners[i](name);
+    }
+    catch(e)
+    {
+      Cu.reportError(e);
+    }
+  }
 }
 
 /**
@@ -114,61 +126,61 @@ function triggerListeners(/**String*/ name)
  */
 let Prefs = exports.Prefs =
 {
-	/**
-	 * Migrates an old preference to a new name.
-	 */
-	migrate: function(/**String*/ oldName, /**String*/ newName)
-	{
-		if (newName in this && Services.prefs.prefHasUserValue(oldName))
-		{
-			let [getter, setter] = typeMap[typeof this[newName]];
-			try
-			{
-				this[newName] = getter(Services.prefs, oldName);
-			} catch(e) {}
-			Services.prefs.clearUserPref(oldName);
-		}
-	},
-
-	/**
-	 * Adds a preferences listener that will be fired whenever a preference
-	 * changes.
-	 */
-	addListener: function(/**Function*/ listener)
-	{
-		if (listeners.indexOf(listener) < 0)
-			listeners.push(listener);
-	},
-
-	/**
-	 * Removes a preferences listener.
-	 */
-	removeListener: function(/**Function*/ listener)
-	{
-		let index = listeners.indexOf(listener);
-		if (index >= 0)
-			listeners.splice(index, 1);
-	},
-
-	observe: function(subject, topic, data)
-	{
-		if (ignorePrefChanges || topic != "nsPref:changed")
-			return;
-
-		if ("_update_" + data in this)
-			this["_update_" + data]();
-	},
-
-	QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
+  /**
+   * Migrates an old preference to a new name.
+   */
+  migrate: function(/**String*/ oldName, /**String*/ newName)
+  {
+    if (newName in this && Services.prefs.prefHasUserValue(oldName))
+    {
+      let [getter, setter] = typeMap[typeof this[newName]];
+      try
+      {
+        this[newName] = getter(Services.prefs, oldName);
+      } catch(e) {}
+      Services.prefs.clearUserPref(oldName);
+    }
+  },
+
+  /**
+   * Adds a preferences listener that will be fired whenever a preference
+   * changes.
+   */
+  addListener: function(/**Function*/ listener)
+  {
+    if (listeners.indexOf(listener) < 0)
+      listeners.push(listener);
+  },
+
+  /**
+   * Removes a preferences listener.
+   */
+  removeListener: function(/**Function*/ listener)
+  {
+    let index = listeners.indexOf(listener);
+    if (index >= 0)
+      listeners.splice(index, 1);
+  },
+
+  observe: function(subject, topic, data)
+  {
+    if (ignorePrefChanges || topic != "nsPref:changed")
+      return;
+
+    if ("_update_" + data in this)
+      this["_update_" + data]();
+  },
+
+  QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
 };
 
 // Getter/setter functions for difference preference types
 let typeMap =
 {
-	boolean: [getBoolPref, setBoolPref],
-	number: [getIntPref, setIntPref],
-	string: [getCharPref, setCharPref],
-	object: [getJSONPref, setJSONPref]
+  boolean: [getBoolPref, setBoolPref],
+  number: [getIntPref, setIntPref],
+  string: [getCharPref, setCharPref],
+  object: [getJSONPref, setJSONPref]
 };
 
 function getIntPref(branch, pref) branch.getIntPref(pref)
@@ -180,9 +192,9 @@ function setBoolPref(branch, pref, newValue) branch.setBoolPref(pref, newValue)
 function getCharPref(branch, pref) branch.getComplexValue(pref, Ci.nsISupportsString).data
 function setCharPref(branch, pref, newValue)
 {
-	let str = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
-	str.data = newValue;
-	branch.setComplexValue(pref, Ci.nsISupportsString, str);
+  let str = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
+  str.data = newValue;
+  branch.setComplexValue(pref, Ci.nsISupportsString, str);
 }
 
 function getJSONPref(branch, pref) JSON.parse(getCharPref(branch, pref))
diff --git a/lib/windowObserver.js b/lib/windowObserver.js
index becbe95..eb0b13a 100644
--- a/lib/windowObserver.js
+++ b/lib/windowObserver.js
@@ -1,7 +1,18 @@
 /*
- * This Source Code is subject to the terms of the Mozilla Public License
- * version 2.0 (the "License"). You can obtain a copy of the License at
- * http://mozilla.org/MPL/2.0/.
+ * This file is part of the Adblock Plus build tools,
+ * Copyright (C) 2006-2014 Eyeo GmbH
+ *
+ * Adblock Plus is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 as
+ * published by the Free Software Foundation.
+ *
+ * Adblock Plus is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 Cu.import("resource://gre/modules/Services.jsm");
@@ -21,68 +32,81 @@ exports.WindowObserver = WindowObserver;
  */
 function WindowObserver(listener, when)
 {
-	this._listener  = listener;
-	this._when = when;
+  this._listener  = listener;
+  this._when = when;
 
-	let e = Services.ww.getWindowEnumerator();
-	while (e.hasMoreElements())
-	{
-		let window = e.getNext().QueryInterface(Ci.nsIDOMWindow);
-		if (when == "start" || window.document.readyState == "complete")
-			this._listener.applyToWindow(window);
-		else
-			this.observe(window, "domwindowopened", null);
-	}
+  let windows = [];
+  let e = Services.wm.getZOrderDOMWindowEnumerator(null, true);
+  while (e.hasMoreElements())
+    windows.push(e.getNext());
 
-	Services.ww.registerNotification(this);
+  // Check if there are any windows that we missed
+  let eAll = Services.ww.getWindowEnumerator();
+  while (eAll.hasMoreElements())
+  {
+    let element = eAll.getNext();
+    if (windows.indexOf(element) < 0)
+      windows.push(element);
+  }
+  
+  for (let i = 0; i < windows.length; i++)
+  {
+    let window = windows[i].QueryInterface(Ci.nsIDOMWindow);
+    if (when == "start" || window.document.readyState == "complete")
+      this._listener.applyToWindow(window);
+    else
+      this.observe(window, "chrome-document-global-created", null);
+  }
 
-	this._shutdownHandler = function()
-	{
-		let e = Services.ww.getWindowEnumerator();
-		while (e.hasMoreElements())
-			this._listener.removeFromWindow(e.getNext().QueryInterface(Ci.nsIDOMWindow));
+  Services.obs.addObserver(this, "chrome-document-global-created", true);
 
-		Services.ww.unregisterNotification(this);
-	}.bind(this);
-	onShutdown.add(this._shutdownHandler);
+  this._shutdownHandler = function()
+  {
+    let e = Services.ww.getWindowEnumerator();
+    while (e.hasMoreElements())
+      this._listener.removeFromWindow(e.getNext().QueryInterface(Ci.nsIDOMWindow));
+
+    Services.obs.removeObserver(this, "chrome-document-global-created");
+  }.bind(this);
+  onShutdown.add(this._shutdownHandler);
 }
 WindowObserver.prototype =
 {
-	_listener: null,
-	_when: null,
-	_shutdownHandler: null,
+  _listener: null,
+  _when: null,
+  _shutdownHandler: null,
 
-	shutdown: function()
-	{
-		if (!this._shutdownHandler)
-			return;
+  shutdown: function()
+  {
+    if (!this._shutdownHandler)
+      return;
 
-		onShutdown.remove(this._shutdownHandler);
-		this._shutdownHandler();
-		this._shutdownHandler = null;
-	},
+    onShutdown.remove(this._shutdownHandler);
+    this._shutdownHandler();
+    this._shutdownHandler = null;
+  },
 
-	observe: function(subject, topic, data)
-	{
-		if (topic == "domwindowopened")
-		{
-			if (this._when == "start")
-			{
-				this._listener.applyToWindow(window);
-				return;
-			}
+  observe: function(subject, topic, data)
+  {
+    if (topic == "chrome-document-global-created")
+    {
+      let window = subject.QueryInterface(Ci.nsIDOMWindow);
+      if (this._when == "start")
+      {
+        this._listener.applyToWindow(window);
+        return;
+      }
 
-			let window = subject.QueryInterface(Ci.nsIDOMWindow);
-			let event = (this._when == "ready" ? "DOMContentLoaded" : "load");
-			let listener = function()
-			{
-				window.removeEventListener(event, listener, false);
-				if (this._shutdownHandler)
-					this._listener.applyToWindow(window);
-			}.bind(this);
-			window.addEventListener(event, listener, false);
-		}
-	},
+      let event = (this._when == "ready" ? "DOMContentLoaded" : "load");
+      let listener = function()
+      {
+        window.removeEventListener(event, listener, false);
+        if (this._shutdownHandler)
+          this._listener.applyToWindow(window);
+      }.bind(this);
+      window.addEventListener(event, listener, false);
+    }
+  },
 
-	QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
+  QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver])
 };
diff --git a/lib/windowWrapper.js b/lib/windowWrapper.js
index 8eb722b..fa0aacd 100644
--- a/lib/windowWrapper.js
+++ b/lib/windowWrapper.js
@@ -12,138 +12,138 @@ let key = undefined;
 
 function getMenuItem()
 {
-	// Randomize URI to work around bug 719376
-	let stringBundle = Services.strings.createBundle("chrome://elemhidehelper/locale/global.properties?" + Math.random());
-	let result = [stringBundle.GetStringFromName("selectelement.label"), stringBundle.GetStringFromName("stopselection.label")];
+  // Randomize URI to work around bug 719376
+  let stringBundle = Services.strings.createBundle("chrome://elemhidehelper/locale/global.properties?" + Math.random());
+  let result = [stringBundle.GetStringFromName("selectelement.label"), stringBundle.GetStringFromName("stopselection.label")];
 
-	getMenuItem = function() result;
-	return getMenuItem();
+  getMenuItem = function() result;
+  return getMenuItem();
 }
 
 exports.WindowWrapper = WindowWrapper;
 function WindowWrapper(wnd, elementMarkerClass)
 {
-	this.window = wnd;
+  this.window = wnd;
 
-	this.popupShowingHandler = this.popupShowingHandler.bind(this);
-	this.popupHiddenHandler = this.popupHiddenHandler.bind(this);
-	this.keyPressHandler = this.keyPressHandler.bind(this);
-	this.toggleSelection = this.toggleSelection.bind(this);
-	this.hideTooltips = this.hideTooltips.bind(this);
+  this.popupShowingHandler = this.popupShowingHandler.bind(this);
+  this.popupHiddenHandler = this.popupHiddenHandler.bind(this);
+  this.keyPressHandler = this.keyPressHandler.bind(this);
+  this.toggleSelection = this.toggleSelection.bind(this);
+  this.hideTooltips = this.hideTooltips.bind(this);
 
-	this.E("ehh-elementmarker").firstElementChild.setAttribute("class", elementMarkerClass);
+  this.E("ehh-elementmarker").firstElementChild.setAttribute("class", elementMarkerClass);
 
-	this.init();
+  this.init();
 }
 WindowWrapper.prototype =
 {
-	window: null,
-
-	get browser()
-	{
-		if ("gBrowser" in this.window)
-			return this.window.gBrowser;            // Firefox / SeaMonkey browser
-		else if (typeof this.window.getBrowser == "function")
-			return this.window.getBrowser();        // Thunderbird
-		else if (typeof this.window.getMessageBrowser == "function")
-			return this.window.getMessageBrowser(); // SeaMonkey mail
-
-		throw new Error("Failed to find browser element in this application");
-	},
-
-	init: function()
-	{
-		this.window.addEventListener("popupshowing", this.popupShowingHandler, false);
-		this.window.addEventListener("popuphidden", this.popupHiddenHandler, false);
-		this.window.addEventListener("keypress", this.keyPressHandler, false);
-		this.window.addEventListener("blur", this.hideTooltips, true);
-	},
-
-	shutdown: function()
-	{
-		this.window.removeEventListener("popupshowing", this.popupShowingHandler, false);
-		this.window.removeEventListener("popuphidden", this.popupHiddenHandler, false);
-		this.window.removeEventListener("keypress", this.keyPressHandler, false);
-		this.window.removeEventListener("blur", this.hideTooltips, true);
-	},
-
-	E: function(id)
-	{
-		let doc = this.window.document;
-		this.E = function(id) doc.getElementById(id);
-		return this.E(id);
-	},
-
-	popupShowingHandler: function(event)
-	{
-		let popup = event.target;
-		if (!/^(abp-(?:toolbar|status|menuitem)-)popup$/.test(popup.id))
-			return;
-
-		this.popupHiddenHandler(event);
-
-		let enabled = Aardvark.canSelect(this.browser);
-		let running = (enabled && this.browser == Aardvark.browser);
-
-		let [labelStart, labelStop] = getMenuItem();
-		let item = popup.ownerDocument.createElement("menuitem");
-		item.setAttribute("label", running ? labelStop : labelStart);
-		item.setAttribute("class", "elemhidehelper-item");
-		if (!enabled)
-			item.setAttribute("disabled", "true");
-
-		if (typeof key == "undefined")
-			this.configureKey(event.currentTarget);
-		item.setAttribute("acceltext", KeySelector.getTextForKey(key));
-
-		item.addEventListener("command", this.toggleSelection, false);
-
-		let insertBefore = null;
-		for (let child = popup.firstChild; child; child = child.nextSibling)
-			if (/-options$/.test(child.id))
-				insertBefore = child;
-		popup.insertBefore(item, insertBefore);
-	},
-
-	popupHiddenHandler: function(event)
-	{
-		let popup = event.target;
-		if (!/^(abp-(?:toolbar|status|menuitem)-)popup$/.test(popup.id))
-			return;
-
-		let items = popup.getElementsByClassName("elemhidehelper-item");
-		while (items.length)
-			items[0].parentNode.removeChild(items[0]);
-	},
-
-	keyPressHandler: function(event)
-	{
-		if (typeof key == "undefined")
-			this.configureKey(event.currentTarget);
-
-		if (KeySelector.matchesKey(event, key))
-		{
-			event.preventDefault();
-			this.toggleSelection();
-		}
-	},
-
-	configureKey: function(window)
-	{
-		key = new KeySelector(window).selectKey(Prefs.selectelement_key);
-	},
-
-	hideTooltips: function()
-	{
-		if (Aardvark.window == this.window)
-			Aardvark.hideTooltips();
-	},
-
-	toggleSelection: function()
-	{
-		if ("@adblockplus.org/abp/public;1" in Cc && this.browser != Aardvark.browser)
-			Aardvark.start(this);
-		else
-			Aardvark.quit();
-	}
+  window: null,
+
+  get browser()
+  {
+    if ("gBrowser" in this.window)
+      return this.window.gBrowser;            // Firefox / SeaMonkey browser
+    else if (typeof this.window.getBrowser == "function")
+      return this.window.getBrowser();        // Thunderbird
+    else if (typeof this.window.getMessageBrowser == "function")
+      return this.window.getMessageBrowser(); // SeaMonkey mail
+
+    throw new Error("Failed to find browser element in this application");
+  },
+
+  init: function()
+  {
+    this.window.addEventListener("popupshowing", this.popupShowingHandler, false);
+    this.window.addEventListener("popuphidden", this.popupHiddenHandler, false);
+    this.window.addEventListener("keypress", this.keyPressHandler, false);
+    this.window.addEventListener("blur", this.hideTooltips, true);
+  },
+
+  shutdown: function()
+  {
+    this.window.removeEventListener("popupshowing", this.popupShowingHandler, false);
+    this.window.removeEventListener("popuphidden", this.popupHiddenHandler, false);
+    this.window.removeEventListener("keypress", this.keyPressHandler, false);
+    this.window.removeEventListener("blur", this.hideTooltips, true);
+  },
+
+  E: function(id)
+  {
+    let doc = this.window.document;
+    this.E = function(id) doc.getElementById(id);
+    return this.E(id);
+  },
+
+  popupShowingHandler: function(event)
+  {
+    let popup = event.originalTarget;
+    if (!/^(abp-(?:toolbar|status|menuitem)-)popup$/.test(popup.id))
+      return;
+
+    this.popupHiddenHandler(event);
+
+    let enabled = Aardvark.canSelect(this.browser);
+    let running = (enabled && this.browser == Aardvark.browser);
+
+    let [labelStart, labelStop] = getMenuItem();
+    let item = popup.ownerDocument.createElement("menuitem");
+    item.setAttribute("label", running ? labelStop : labelStart);
+    item.setAttribute("class", "elemhidehelper-item");
+    if (!enabled)
+      item.setAttribute("disabled", "true");
+
+    if (typeof key == "undefined")
+      this.configureKey(event.currentTarget);
+    item.setAttribute("acceltext", KeySelector.getTextForKey(key));
+
+    item.addEventListener("command", this.toggleSelection, false);
+
+    let insertBefore = null;
+    for (let child = popup.firstChild; child; child = child.nextSibling)
+      if (/-options$/.test(child.id))
+        insertBefore = child;
+    popup.insertBefore(item, insertBefore);
+  },
+
+  popupHiddenHandler: function(event)
+  {
+    let popup = event.originalTarget;
+    if (!/^(abp-(?:toolbar|status|menuitem)-)popup$/.test(popup.id))
+      return;
+
+    let items = popup.getElementsByClassName("elemhidehelper-item");
+    while (items.length)
+      items[0].parentNode.removeChild(items[0]);
+  },
+
+  keyPressHandler: function(event)
+  {
+    if (typeof key == "undefined")
+      this.configureKey(event.currentTarget);
+
+    if (KeySelector.matchesKey(event, key))
+    {
+      event.preventDefault();
+      this.toggleSelection();
+    }
+  },
+
+  configureKey: function(window)
+  {
+    key = new KeySelector(window).selectKey(Prefs.selectelement_key);
+  },
+
+  hideTooltips: function()
+  {
+    if (Aardvark.window == this.window)
+      Aardvark.hideTooltips();
+  },
+
+  toggleSelection: function()
+  {
+    if ("@adblockplus.org/abp/public;1" in Cc && this.browser != Aardvark.browser)
+      Aardvark.start(this);
+    else
+      Aardvark.quit();
+  }
 };

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus-element-hiding-helper.git



More information about the Pkg-mozext-commits mailing list