Browse Source

removed TLD Extract

CauseFX 6 years ago
parent
commit
fe209580d0
56 changed files with 71 additions and 12114 deletions
  1. 0 1
      api/composer.json
  2. 7 200
      api/composer.lock
  3. 1 2
      api/vendor/composer/autoload_files.php
  4. 0 4
      api/vendor/composer/autoload_psr4.php
  5. 1 22
      api/vendor/composer/autoload_static.php
  6. 7 208
      api/vendor/composer/installed.json
  7. 0 46
      api/vendor/layershifter/tld-database/composer.json
  8. BIN
      api/vendor/layershifter/tld-database/logo.png
  9. 0 8642
      api/vendor/layershifter/tld-database/resources/database.php
  10. 0 19
      api/vendor/layershifter/tld-database/src/Exceptions/Exception.php
  11. 0 19
      api/vendor/layershifter/tld-database/src/Exceptions/HttpException.php
  12. 0 19
      api/vendor/layershifter/tld-database/src/Exceptions/IOException.php
  13. 0 19
      api/vendor/layershifter/tld-database/src/Exceptions/ParserException.php
  14. 0 19
      api/vendor/layershifter/tld-database/src/Exceptions/StoreException.php
  15. 0 19
      api/vendor/layershifter/tld-database/src/Exceptions/UpdateException.php
  16. 0 30
      api/vendor/layershifter/tld-database/src/Http/AdapterInterface.php
  17. 0 66
      api/vendor/layershifter/tld-database/src/Http/CurlAdapter.php
  18. 0 99
      api/vendor/layershifter/tld-database/src/Parser.php
  19. 0 144
      api/vendor/layershifter/tld-database/src/Store.php
  20. 0 119
      api/vendor/layershifter/tld-database/src/Update.php
  21. 0 44
      api/vendor/layershifter/tld-extract/composer.json
  22. 0 19
      api/vendor/layershifter/tld-extract/src/Exceptions/Exception.php
  23. 0 18
      api/vendor/layershifter/tld-extract/src/Exceptions/RuntimeException.php
  24. 0 398
      api/vendor/layershifter/tld-extract/src/Extract.php
  25. 0 67
      api/vendor/layershifter/tld-extract/src/IDN.php
  26. 0 296
      api/vendor/layershifter/tld-extract/src/Result.php
  27. 0 83
      api/vendor/layershifter/tld-extract/src/ResultInterface.php
  28. 0 37
      api/vendor/layershifter/tld-extract/src/static.php
  29. 0 8
      api/vendor/layershifter/tld-support/.codeclimate.yml
  30. 0 8
      api/vendor/layershifter/tld-support/.gitignore
  31. 0 27
      api/vendor/layershifter/tld-support/.travis.yml
  32. 0 201
      api/vendor/layershifter/tld-support/LICENSE
  33. 0 59
      api/vendor/layershifter/tld-support/README.md
  34. 0 32
      api/vendor/layershifter/tld-support/composer.json
  35. 0 26
      api/vendor/layershifter/tld-support/phpunit.xml
  36. 0 55
      api/vendor/layershifter/tld-support/src/Helpers/Arr.php
  37. 0 38
      api/vendor/layershifter/tld-support/src/Helpers/IP.php
  38. 0 25
      api/vendor/layershifter/tld-support/src/Helpers/Mixed.php
  39. 0 122
      api/vendor/layershifter/tld-support/src/Helpers/Str.php
  40. 0 64
      api/vendor/layershifter/tld-support/tests/Helpers/ArrTest.php
  41. 0 81
      api/vendor/layershifter/tld-support/tests/Helpers/IPTest.php
  42. 0 38
      api/vendor/layershifter/tld-support/tests/Helpers/Mixed.php
  43. 0 122
      api/vendor/layershifter/tld-support/tests/Helpers/StrTest.php
  44. 0 11
      api/vendor/layershifter/tld-support/tests/bootstrap.php
  45. 1 1
      api/vendor/symfony/polyfill-mbstring/LICENSE
  46. 49 2
      api/vendor/symfony/polyfill-mbstring/Mbstring.php
  47. 4 0
      api/vendor/symfony/polyfill-mbstring/bootstrap.php
  48. 1 1
      api/vendor/symfony/polyfill-mbstring/composer.json
  49. 0 45
      api/vendor/true/punycode/CHANGELOG.md
  50. 0 19
      api/vendor/true/punycode/LICENSE
  51. 0 45
      api/vendor/true/punycode/README.md
  52. 0 26
      api/vendor/true/punycode/composer.json
  53. 0 13
      api/vendor/true/punycode/src/Exception/DomainOutOfBoundsException.php
  54. 0 13
      api/vendor/true/punycode/src/Exception/LabelOutOfBoundsException.php
  55. 0 13
      api/vendor/true/punycode/src/Exception/OutOfBoundsException.php
  56. 0 360
      api/vendor/true/punycode/src/Punycode.php

+ 0 - 1
api/composer.json

@@ -10,7 +10,6 @@
     "kryptonit3/sickrage": "^1.0",
     "pusher/pusher-php-server": "^4.0",
     "pragmarx/google2fa": "^3.0",
-    "layershifter/tld-extract": "^2.0",
     "psr/log": "^1.1",
     "adldap2/adldap2": "^10.0"
   }

+ 7 - 200
api/composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "f7a4680bc682c6ee1c29f4c7d6e44c40",
+    "content-hash": "1473a4b919301bb2dba1f39810e12418",
     "packages": [
         {
             "name": "adldap2/adldap2",
@@ -527,153 +527,6 @@
             "description": "PHP Sonarr API Wrapper",
             "time": "2017-06-30T01:25:49+00:00"
         },
-        {
-            "name": "layershifter/tld-database",
-            "version": "1.0.64",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/layershifter/TLDDatabase.git",
-                "reference": "16d9b7cd195eda57c08c64f75e9dbc175320e0cc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/layershifter/TLDDatabase/zipball/16d9b7cd195eda57c08c64f75e9dbc175320e0cc",
-                "reference": "16d9b7cd195eda57c08c64f75e9dbc175320e0cc",
-                "shasum": ""
-            },
-            "require": {
-                "ext-curl": "*",
-                "layershifter/tld-support": "^1.0.0",
-                "php": "^5.5.0 || ^7.0"
-            },
-            "require-dev": {
-                "codeclimate/php-test-reporter": "dev-master",
-                "mikey179/vfsstream": "^1.6",
-                "phpmd/phpmd": "@stable",
-                "phpunit/phpunit": "^4.8 || ^5.0",
-                "squizlabs/php_codesniffer": "~2.0"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "LayerShifter\\TLDDatabase\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "Alexander Fedyashov",
-                    "email": "a@fedyashov.com"
-                }
-            ],
-            "description": "Database abstraction for Public Suffix List",
-            "keywords": [
-                "PSL",
-                "Public Suffix List",
-                "domain database",
-                "tld database"
-            ],
-            "time": "2018-11-09T09:12:04+00:00"
-        },
-        {
-            "name": "layershifter/tld-extract",
-            "version": "2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/layershifter/TLDExtract.git",
-                "reference": "236bfa0fd253e70f8db10f896e788e12b58b4a41"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/layershifter/TLDExtract/zipball/236bfa0fd253e70f8db10f896e788e12b58b4a41",
-                "reference": "236bfa0fd253e70f8db10f896e788e12b58b4a41",
-                "shasum": ""
-            },
-            "require": {
-                "layershifter/tld-database": "^1.0",
-                "layershifter/tld-support": "^1.1",
-                "php": "^5.5.0 || ^7.0",
-                "true/punycode": "^2.1.1"
-            },
-            "require-dev": {
-                "phpmd/phpmd": "@stable",
-                "phpunit/phpunit": "^4.8 || ^5.0",
-                "squizlabs/php_codesniffer": "~2.0"
-            },
-            "type": "library",
-            "autoload": {
-                "files": [
-                    "src/static.php"
-                ],
-                "psr-4": {
-                    "LayerShifter\\TLDExtract\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "Alexander Fedyashov",
-                    "email": "a@fedyashov.com"
-                }
-            ],
-            "description": "TLDExtract, library for extracting parts of domain, e.q. domain parser",
-            "keywords": [
-                "TLDExtract",
-                "domain parser"
-            ],
-            "abandoned": true,
-            "time": "2018-09-28T11:11:20+00:00"
-        },
-        {
-            "name": "layershifter/tld-support",
-            "version": "1.1.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/layershifter/TLDSupport.git",
-                "reference": "9b9eb2350db82239289f4e6eb250a2fe4865b0db"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/layershifter/TLDSupport/zipball/9b9eb2350db82239289f4e6eb250a2fe4865b0db",
-                "reference": "9b9eb2350db82239289f4e6eb250a2fe4865b0db",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.5",
-                "symfony/polyfill-mbstring": "^1.2"
-            },
-            "require-dev": {
-                "codeclimate/php-test-reporter": "dev-master",
-                "phpmd/phpmd": "@stable",
-                "phpunit/phpunit": "4.8.*",
-                "squizlabs/php_codesniffer": "2.*"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "LayerShifter\\TLDSupport\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "Alexander Fedyashov",
-                    "email": "a@fedyashov.com"
-                }
-            ],
-            "description": "Support package for TLDDatabase and TLDExtract",
-            "abandoned": true,
-            "time": "2016-06-18T12:28:04+00:00"
-        },
         {
             "name": "lcobucci/jwt",
             "version": "3.3.1",
@@ -1340,16 +1193,16 @@
         },
         {
             "name": "symfony/polyfill-mbstring",
-            "version": "v1.10.0",
+            "version": "v1.14.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/polyfill-mbstring.git",
-                "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
+                "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
-                "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2",
+                "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2",
                 "shasum": ""
             },
             "require": {
@@ -1361,7 +1214,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.9-dev"
+                    "dev-master": "1.14-dev"
                 }
             },
             "autoload": {
@@ -1395,7 +1248,7 @@
                 "portable",
                 "shim"
             ],
-            "time": "2018-09-21T13:07:52+00:00"
+            "time": "2020-01-13T11:15:53+00:00"
         },
         {
             "name": "symfony/polyfill-php56",
@@ -1685,52 +1538,6 @@
                 "laravel"
             ],
             "time": "2019-02-13T19:40:13+00:00"
-        },
-        {
-            "name": "true/punycode",
-            "version": "v2.1.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/true/php-punycode.git",
-                "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/true/php-punycode/zipball/a4d0c11a36dd7f4e7cd7096076cab6d3378a071e",
-                "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0",
-                "symfony/polyfill-mbstring": "^1.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.7",
-                "squizlabs/php_codesniffer": "~2.0"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "TrueBV\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Renan Gonçalves",
-                    "email": "renan.saddam@gmail.com"
-                }
-            ],
-            "description": "A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)",
-            "homepage": "https://github.com/true/php-punycode",
-            "keywords": [
-                "idna",
-                "punycode"
-            ],
-            "time": "2016-11-16T10:37:54+00:00"
         }
     ],
     "packages-dev": [],

+ 1 - 2
api/vendor/composer/autoload_files.php

@@ -6,10 +6,10 @@ $vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(
-    '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
     'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
     'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
     '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
+    '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
     '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php',
     '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
     '3109cb1a231dcd04bee1f9f620d46975' => $vendorDir . '/paragonie/sodium_compat/autoload.php',
@@ -17,5 +17,4 @@ return array(
     'fe62ba7e10580d903cc46d808b5961a4' => $vendorDir . '/tightenco/collect/src/Collect/Support/helpers.php',
     'caf31cc6ec7cf2241cb6f12c226c3846' => $vendorDir . '/tightenco/collect/src/Collect/Support/alias.php',
     '0097ca414fcb37c7130ac24b05f485f8' => $vendorDir . '/dibi/dibi/src/loader.php',
-    '98ac7ebbcd4b271b4f101d3af2543920' => $vendorDir . '/layershifter/tld-extract/src/static.php',
 );

+ 0 - 4
api/vendor/composer/autoload_psr4.php

@@ -6,7 +6,6 @@ $vendorDir = dirname(dirname(__FILE__));
 $baseDir = dirname($vendorDir);
 
 return array(
-    'TrueBV\\' => array($vendorDir . '/true/punycode/src'),
     'Tightenco\\Collect\\' => array($vendorDir . '/tightenco/collect/src/Collect'),
     'Symfony\\Polyfill\\Util\\' => array($vendorDir . '/symfony/polyfill-util'),
     'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'),
@@ -23,9 +22,6 @@ return array(
     'ParagonIE\\ConstantTime\\' => array($vendorDir . '/paragonie/constant_time_encoding/src'),
     'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'),
     'Lcobucci\\JWT\\' => array($vendorDir . '/lcobucci/jwt/src'),
-    'LayerShifter\\TLDSupport\\' => array($vendorDir . '/layershifter/tld-support/src'),
-    'LayerShifter\\TLDExtract\\' => array($vendorDir . '/layershifter/tld-extract/src'),
-    'LayerShifter\\TLDDatabase\\' => array($vendorDir . '/layershifter/tld-database/src'),
     'Kryptonit3\\Sonarr\\' => array($vendorDir . '/kryptonit3/sonarr/src'),
     'Kryptonit3\\SickRage\\' => array($vendorDir . '/kryptonit3/sickrage/src'),
     'Kryptonit3\\CouchPotato\\' => array($vendorDir . '/kryptonit3/couchpotato/src'),

+ 1 - 22
api/vendor/composer/autoload_static.php

@@ -7,10 +7,10 @@ namespace Composer\Autoload;
 class ComposerStaticInitcbdc783d76f8e7563dcce7d8af053ecb
 {
     public static $files = array (
-        '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
         'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
         'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
         '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
+        '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
         '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php',
         '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
         '3109cb1a231dcd04bee1f9f620d46975' => __DIR__ . '/..' . '/paragonie/sodium_compat/autoload.php',
@@ -18,13 +18,11 @@ class ComposerStaticInitcbdc783d76f8e7563dcce7d8af053ecb
         'fe62ba7e10580d903cc46d808b5961a4' => __DIR__ . '/..' . '/tightenco/collect/src/Collect/Support/helpers.php',
         'caf31cc6ec7cf2241cb6f12c226c3846' => __DIR__ . '/..' . '/tightenco/collect/src/Collect/Support/alias.php',
         '0097ca414fcb37c7130ac24b05f485f8' => __DIR__ . '/..' . '/dibi/dibi/src/loader.php',
-        '98ac7ebbcd4b271b4f101d3af2543920' => __DIR__ . '/..' . '/layershifter/tld-extract/src/static.php',
     );
 
     public static $prefixLengthsPsr4 = array (
         'T' => 
         array (
-            'TrueBV\\' => 7,
             'Tightenco\\Collect\\' => 18,
         ),
         'S' => 
@@ -50,9 +48,6 @@ class ComposerStaticInitcbdc783d76f8e7563dcce7d8af053ecb
         'L' => 
         array (
             'Lcobucci\\JWT\\' => 13,
-            'LayerShifter\\TLDSupport\\' => 24,
-            'LayerShifter\\TLDExtract\\' => 24,
-            'LayerShifter\\TLDDatabase\\' => 25,
         ),
         'K' => 
         array (
@@ -81,10 +76,6 @@ class ComposerStaticInitcbdc783d76f8e7563dcce7d8af053ecb
     );
 
     public static $prefixDirsPsr4 = array (
-        'TrueBV\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/true/punycode/src',
-        ),
         'Tightenco\\Collect\\' => 
         array (
             0 => __DIR__ . '/..' . '/tightenco/collect/src/Collect',
@@ -149,18 +140,6 @@ class ComposerStaticInitcbdc783d76f8e7563dcce7d8af053ecb
         array (
             0 => __DIR__ . '/..' . '/lcobucci/jwt/src',
         ),
-        'LayerShifter\\TLDSupport\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/layershifter/tld-support/src',
-        ),
-        'LayerShifter\\TLDExtract\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/layershifter/tld-extract/src',
-        ),
-        'LayerShifter\\TLDDatabase\\' => 
-        array (
-            0 => __DIR__ . '/..' . '/layershifter/tld-database/src',
-        ),
         'Kryptonit3\\Sonarr\\' => 
         array (
             0 => __DIR__ . '/..' . '/kryptonit3/sonarr/src',

+ 7 - 208
api/vendor/composer/installed.json

@@ -540,159 +540,6 @@
         ],
         "description": "PHP Sonarr API Wrapper"
     },
-    {
-        "name": "layershifter/tld-database",
-        "version": "1.0.64",
-        "version_normalized": "1.0.64.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/layershifter/TLDDatabase.git",
-            "reference": "16d9b7cd195eda57c08c64f75e9dbc175320e0cc"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/layershifter/TLDDatabase/zipball/16d9b7cd195eda57c08c64f75e9dbc175320e0cc",
-            "reference": "16d9b7cd195eda57c08c64f75e9dbc175320e0cc",
-            "shasum": ""
-        },
-        "require": {
-            "ext-curl": "*",
-            "layershifter/tld-support": "^1.0.0",
-            "php": "^5.5.0 || ^7.0"
-        },
-        "require-dev": {
-            "codeclimate/php-test-reporter": "dev-master",
-            "mikey179/vfsstream": "^1.6",
-            "phpmd/phpmd": "@stable",
-            "phpunit/phpunit": "^4.8 || ^5.0",
-            "squizlabs/php_codesniffer": "~2.0"
-        },
-        "time": "2018-11-09T09:12:04+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "LayerShifter\\TLDDatabase\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "Apache-2.0"
-        ],
-        "authors": [
-            {
-                "name": "Alexander Fedyashov",
-                "email": "a@fedyashov.com"
-            }
-        ],
-        "description": "Database abstraction for Public Suffix List",
-        "keywords": [
-            "PSL",
-            "Public Suffix List",
-            "domain database",
-            "tld database"
-        ]
-    },
-    {
-        "name": "layershifter/tld-extract",
-        "version": "2.0.0",
-        "version_normalized": "2.0.0.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/layershifter/TLDExtract.git",
-            "reference": "236bfa0fd253e70f8db10f896e788e12b58b4a41"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/layershifter/TLDExtract/zipball/236bfa0fd253e70f8db10f896e788e12b58b4a41",
-            "reference": "236bfa0fd253e70f8db10f896e788e12b58b4a41",
-            "shasum": ""
-        },
-        "require": {
-            "layershifter/tld-database": "^1.0",
-            "layershifter/tld-support": "^1.1",
-            "php": "^5.5.0 || ^7.0",
-            "true/punycode": "^2.1.1"
-        },
-        "require-dev": {
-            "phpmd/phpmd": "@stable",
-            "phpunit/phpunit": "^4.8 || ^5.0",
-            "squizlabs/php_codesniffer": "~2.0"
-        },
-        "time": "2018-09-28T11:11:20+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "files": [
-                "src/static.php"
-            ],
-            "psr-4": {
-                "LayerShifter\\TLDExtract\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "Apache-2.0"
-        ],
-        "authors": [
-            {
-                "name": "Alexander Fedyashov",
-                "email": "a@fedyashov.com"
-            }
-        ],
-        "description": "TLDExtract, library for extracting parts of domain, e.q. domain parser",
-        "keywords": [
-            "TLDExtract",
-            "domain parser"
-        ],
-        "abandoned": true
-    },
-    {
-        "name": "layershifter/tld-support",
-        "version": "1.1.1",
-        "version_normalized": "1.1.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/layershifter/TLDSupport.git",
-            "reference": "9b9eb2350db82239289f4e6eb250a2fe4865b0db"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/layershifter/TLDSupport/zipball/9b9eb2350db82239289f4e6eb250a2fe4865b0db",
-            "reference": "9b9eb2350db82239289f4e6eb250a2fe4865b0db",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.5",
-            "symfony/polyfill-mbstring": "^1.2"
-        },
-        "require-dev": {
-            "codeclimate/php-test-reporter": "dev-master",
-            "phpmd/phpmd": "@stable",
-            "phpunit/phpunit": "4.8.*",
-            "squizlabs/php_codesniffer": "2.*"
-        },
-        "time": "2016-06-18T12:28:04+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "LayerShifter\\TLDSupport\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "Apache-2.0"
-        ],
-        "authors": [
-            {
-                "name": "Alexander Fedyashov",
-                "email": "a@fedyashov.com"
-            }
-        ],
-        "description": "Support package for TLDDatabase and TLDExtract",
-        "abandoned": true
-    },
     {
         "name": "lcobucci/jwt",
         "version": "3.3.1",
@@ -1383,17 +1230,17 @@
     },
     {
         "name": "symfony/polyfill-mbstring",
-        "version": "v1.10.0",
-        "version_normalized": "1.10.0.0",
+        "version": "v1.14.0",
+        "version_normalized": "1.14.0.0",
         "source": {
             "type": "git",
             "url": "https://github.com/symfony/polyfill-mbstring.git",
-            "reference": "c79c051f5b3a46be09205c73b80b346e4153e494"
+            "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2"
         },
         "dist": {
             "type": "zip",
-            "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494",
-            "reference": "c79c051f5b3a46be09205c73b80b346e4153e494",
+            "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2",
+            "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2",
             "shasum": ""
         },
         "require": {
@@ -1402,11 +1249,11 @@
         "suggest": {
             "ext-mbstring": "For best performance"
         },
-        "time": "2018-09-21T13:07:52+00:00",
+        "time": "2020-01-13T11:15:53+00:00",
         "type": "library",
         "extra": {
             "branch-alias": {
-                "dev-master": "1.9-dev"
+                "dev-master": "1.14-dev"
             }
         },
         "installation-source": "dist",
@@ -1740,53 +1587,5 @@
             "collection",
             "laravel"
         ]
-    },
-    {
-        "name": "true/punycode",
-        "version": "v2.1.1",
-        "version_normalized": "2.1.1.0",
-        "source": {
-            "type": "git",
-            "url": "https://github.com/true/php-punycode.git",
-            "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e"
-        },
-        "dist": {
-            "type": "zip",
-            "url": "https://api.github.com/repos/true/php-punycode/zipball/a4d0c11a36dd7f4e7cd7096076cab6d3378a071e",
-            "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e",
-            "shasum": ""
-        },
-        "require": {
-            "php": ">=5.3.0",
-            "symfony/polyfill-mbstring": "^1.3"
-        },
-        "require-dev": {
-            "phpunit/phpunit": "~4.7",
-            "squizlabs/php_codesniffer": "~2.0"
-        },
-        "time": "2016-11-16T10:37:54+00:00",
-        "type": "library",
-        "installation-source": "dist",
-        "autoload": {
-            "psr-4": {
-                "TrueBV\\": "src/"
-            }
-        },
-        "notification-url": "https://packagist.org/downloads/",
-        "license": [
-            "MIT"
-        ],
-        "authors": [
-            {
-                "name": "Renan Gonçalves",
-                "email": "renan.saddam@gmail.com"
-            }
-        ],
-        "description": "A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)",
-        "homepage": "https://github.com/true/php-punycode",
-        "keywords": [
-            "idna",
-            "punycode"
-        ]
     }
 ]

+ 0 - 46
api/vendor/layershifter/tld-database/composer.json

@@ -1,46 +0,0 @@
-{
-  "name": "layershifter/tld-database",
-  "description": "Database abstraction for Public Suffix List",
-  "keywords": [
-    "PSL",
-    "Public Suffix List",
-    "domain database",
-    "tld database"
-  ],
-  "minimum-stability": "stable",
-  "license": "Apache-2.0",
-  "authors": [
-    {
-      "name": "Alexander Fedyashov",
-      "email": "a@fedyashov.com"
-    }
-  ],
-  "require": {
-    "layershifter/tld-support": "^1.0.0",
-    "ext-curl": "*",
-    "php": "^5.5.0 || ^7.0"
-  },
-  "require-dev": {
-    "codeclimate/php-test-reporter": "dev-master",
-    "mikey179/vfsStream": "^1.6",
-    "phpmd/phpmd": "@stable",
-    "phpunit/phpunit": "^4.8 || ^5.0",
-    "squizlabs/php_codesniffer": "~2.0"
-  },
-  "autoload": {
-    "psr-4": {
-      "LayerShifter\\TLDDatabase\\": "src/"
-    }
-  },
-  "autoload-dev": {
-    "psr-4": {
-      "LayerShifter\\TLDDatabase\\Tests\\": "tests/"
-    }
-  },
-  "scripts": {
-    "lint": "composer lint:cs && composer lint:md",
-    "lint:cs": "phpcs --standard=psr2 src/",
-    "lint:md": "phpmd src text codesize,controversial,design,naming,unusedcode",
-    "test": "phpunit"
-  }
-}

BIN
api/vendor/layershifter/tld-database/logo.png


+ 0 - 8642
api/vendor/layershifter/tld-database/resources/database.php

@@ -1,8642 +0,0 @@
-<?php
-return array (
-  'ac' => 1,
-  'com.ac' => 1,
-  'edu.ac' => 1,
-  'gov.ac' => 1,
-  'net.ac' => 1,
-  'mil.ac' => 1,
-  'org.ac' => 1,
-  'ad' => 1,
-  'nom.ad' => 1,
-  'ae' => 1,
-  'co.ae' => 1,
-  'net.ae' => 1,
-  'org.ae' => 1,
-  'sch.ae' => 1,
-  'ac.ae' => 1,
-  'gov.ae' => 1,
-  'mil.ae' => 1,
-  'aero' => 1,
-  'accident-investigation.aero' => 1,
-  'accident-prevention.aero' => 1,
-  'aerobatic.aero' => 1,
-  'aeroclub.aero' => 1,
-  'aerodrome.aero' => 1,
-  'agents.aero' => 1,
-  'aircraft.aero' => 1,
-  'airline.aero' => 1,
-  'airport.aero' => 1,
-  'air-surveillance.aero' => 1,
-  'airtraffic.aero' => 1,
-  'air-traffic-control.aero' => 1,
-  'ambulance.aero' => 1,
-  'amusement.aero' => 1,
-  'association.aero' => 1,
-  'author.aero' => 1,
-  'ballooning.aero' => 1,
-  'broker.aero' => 1,
-  'caa.aero' => 1,
-  'cargo.aero' => 1,
-  'catering.aero' => 1,
-  'certification.aero' => 1,
-  'championship.aero' => 1,
-  'charter.aero' => 1,
-  'civilaviation.aero' => 1,
-  'club.aero' => 1,
-  'conference.aero' => 1,
-  'consultant.aero' => 1,
-  'consulting.aero' => 1,
-  'control.aero' => 1,
-  'council.aero' => 1,
-  'crew.aero' => 1,
-  'design.aero' => 1,
-  'dgca.aero' => 1,
-  'educator.aero' => 1,
-  'emergency.aero' => 1,
-  'engine.aero' => 1,
-  'engineer.aero' => 1,
-  'entertainment.aero' => 1,
-  'equipment.aero' => 1,
-  'exchange.aero' => 1,
-  'express.aero' => 1,
-  'federation.aero' => 1,
-  'flight.aero' => 1,
-  'freight.aero' => 1,
-  'fuel.aero' => 1,
-  'gliding.aero' => 1,
-  'government.aero' => 1,
-  'groundhandling.aero' => 1,
-  'group.aero' => 1,
-  'hanggliding.aero' => 1,
-  'homebuilt.aero' => 1,
-  'insurance.aero' => 1,
-  'journal.aero' => 1,
-  'journalist.aero' => 1,
-  'leasing.aero' => 1,
-  'logistics.aero' => 1,
-  'magazine.aero' => 1,
-  'maintenance.aero' => 1,
-  'media.aero' => 1,
-  'microlight.aero' => 1,
-  'modelling.aero' => 1,
-  'navigation.aero' => 1,
-  'parachuting.aero' => 1,
-  'paragliding.aero' => 1,
-  'passenger-association.aero' => 1,
-  'pilot.aero' => 1,
-  'press.aero' => 1,
-  'production.aero' => 1,
-  'recreation.aero' => 1,
-  'repbody.aero' => 1,
-  'res.aero' => 1,
-  'research.aero' => 1,
-  'rotorcraft.aero' => 1,
-  'safety.aero' => 1,
-  'scientist.aero' => 1,
-  'services.aero' => 1,
-  'show.aero' => 1,
-  'skydiving.aero' => 1,
-  'software.aero' => 1,
-  'student.aero' => 1,
-  'trader.aero' => 1,
-  'trading.aero' => 1,
-  'trainer.aero' => 1,
-  'union.aero' => 1,
-  'workinggroup.aero' => 1,
-  'works.aero' => 1,
-  'af' => 1,
-  'gov.af' => 1,
-  'com.af' => 1,
-  'org.af' => 1,
-  'net.af' => 1,
-  'edu.af' => 1,
-  'ag' => 1,
-  'com.ag' => 1,
-  'org.ag' => 1,
-  'net.ag' => 1,
-  'co.ag' => 1,
-  'nom.ag' => 1,
-  'ai' => 1,
-  'off.ai' => 1,
-  'com.ai' => 1,
-  'net.ai' => 1,
-  'org.ai' => 1,
-  'al' => 1,
-  'com.al' => 1,
-  'edu.al' => 1,
-  'gov.al' => 1,
-  'mil.al' => 1,
-  'net.al' => 1,
-  'org.al' => 1,
-  'am' => 1,
-  'ao' => 1,
-  'ed.ao' => 1,
-  'gv.ao' => 1,
-  'og.ao' => 1,
-  'co.ao' => 1,
-  'pb.ao' => 1,
-  'it.ao' => 1,
-  'aq' => 1,
-  'ar' => 1,
-  'com.ar' => 1,
-  'edu.ar' => 1,
-  'gob.ar' => 1,
-  'gov.ar' => 1,
-  'int.ar' => 1,
-  'mil.ar' => 1,
-  'musica.ar' => 1,
-  'net.ar' => 1,
-  'org.ar' => 1,
-  'tur.ar' => 1,
-  'arpa' => 1,
-  'e164.arpa' => 1,
-  'in-addr.arpa' => 1,
-  'ip6.arpa' => 1,
-  'iris.arpa' => 1,
-  'uri.arpa' => 1,
-  'urn.arpa' => 1,
-  'as' => 1,
-  'gov.as' => 1,
-  'asia' => 1,
-  'at' => 1,
-  'ac.at' => 1,
-  'co.at' => 1,
-  'gv.at' => 1,
-  'or.at' => 1,
-  'au' => 1,
-  'com.au' => 1,
-  'net.au' => 1,
-  'org.au' => 1,
-  'edu.au' => 1,
-  'gov.au' => 1,
-  'asn.au' => 1,
-  'id.au' => 1,
-  'info.au' => 1,
-  'conf.au' => 1,
-  'oz.au' => 1,
-  'act.au' => 1,
-  'nsw.au' => 1,
-  'nt.au' => 1,
-  'qld.au' => 1,
-  'sa.au' => 1,
-  'tas.au' => 1,
-  'vic.au' => 1,
-  'wa.au' => 1,
-  'act.edu.au' => 1,
-  'nsw.edu.au' => 1,
-  'nt.edu.au' => 1,
-  'qld.edu.au' => 1,
-  'sa.edu.au' => 1,
-  'tas.edu.au' => 1,
-  'vic.edu.au' => 1,
-  'wa.edu.au' => 1,
-  'qld.gov.au' => 1,
-  'sa.gov.au' => 1,
-  'tas.gov.au' => 1,
-  'vic.gov.au' => 1,
-  'wa.gov.au' => 1,
-  'aw' => 1,
-  'com.aw' => 1,
-  'ax' => 1,
-  'az' => 1,
-  'com.az' => 1,
-  'net.az' => 1,
-  'int.az' => 1,
-  'gov.az' => 1,
-  'org.az' => 1,
-  'edu.az' => 1,
-  'info.az' => 1,
-  'pp.az' => 1,
-  'mil.az' => 1,
-  'name.az' => 1,
-  'pro.az' => 1,
-  'biz.az' => 1,
-  'ba' => 1,
-  'com.ba' => 1,
-  'edu.ba' => 1,
-  'gov.ba' => 1,
-  'mil.ba' => 1,
-  'net.ba' => 1,
-  'org.ba' => 1,
-  'bb' => 1,
-  'biz.bb' => 1,
-  'co.bb' => 1,
-  'com.bb' => 1,
-  'edu.bb' => 1,
-  'gov.bb' => 1,
-  'info.bb' => 1,
-  'net.bb' => 1,
-  'org.bb' => 1,
-  'store.bb' => 1,
-  'tv.bb' => 1,
-  '*.bd' => 1,
-  'be' => 1,
-  'ac.be' => 1,
-  'bf' => 1,
-  'gov.bf' => 1,
-  'bg' => 1,
-  'a.bg' => 1,
-  'b.bg' => 1,
-  'c.bg' => 1,
-  'd.bg' => 1,
-  'e.bg' => 1,
-  'f.bg' => 1,
-  'g.bg' => 1,
-  'h.bg' => 1,
-  'i.bg' => 1,
-  'j.bg' => 1,
-  'k.bg' => 1,
-  'l.bg' => 1,
-  'm.bg' => 1,
-  'n.bg' => 1,
-  'o.bg' => 1,
-  'p.bg' => 1,
-  'q.bg' => 1,
-  'r.bg' => 1,
-  's.bg' => 1,
-  't.bg' => 1,
-  'u.bg' => 1,
-  'v.bg' => 1,
-  'w.bg' => 1,
-  'x.bg' => 1,
-  'y.bg' => 1,
-  'z.bg' => 1,
-  '0.bg' => 1,
-  '1.bg' => 1,
-  '2.bg' => 1,
-  '3.bg' => 1,
-  '4.bg' => 1,
-  '5.bg' => 1,
-  '6.bg' => 1,
-  '7.bg' => 1,
-  '8.bg' => 1,
-  '9.bg' => 1,
-  'bh' => 1,
-  'com.bh' => 1,
-  'edu.bh' => 1,
-  'net.bh' => 1,
-  'org.bh' => 1,
-  'gov.bh' => 1,
-  'bi' => 1,
-  'co.bi' => 1,
-  'com.bi' => 1,
-  'edu.bi' => 1,
-  'or.bi' => 1,
-  'org.bi' => 1,
-  'biz' => 1,
-  'bj' => 1,
-  'asso.bj' => 1,
-  'barreau.bj' => 1,
-  'gouv.bj' => 1,
-  'bm' => 1,
-  'com.bm' => 1,
-  'edu.bm' => 1,
-  'gov.bm' => 1,
-  'net.bm' => 1,
-  'org.bm' => 1,
-  'bn' => 1,
-  'com.bn' => 1,
-  'edu.bn' => 1,
-  'gov.bn' => 1,
-  'net.bn' => 1,
-  'org.bn' => 1,
-  'bo' => 1,
-  'com.bo' => 1,
-  'edu.bo' => 1,
-  'gob.bo' => 1,
-  'int.bo' => 1,
-  'org.bo' => 1,
-  'net.bo' => 1,
-  'mil.bo' => 1,
-  'tv.bo' => 1,
-  'web.bo' => 1,
-  'academia.bo' => 1,
-  'agro.bo' => 1,
-  'arte.bo' => 1,
-  'blog.bo' => 1,
-  'bolivia.bo' => 1,
-  'ciencia.bo' => 1,
-  'cooperativa.bo' => 1,
-  'democracia.bo' => 1,
-  'deporte.bo' => 1,
-  'ecologia.bo' => 1,
-  'economia.bo' => 1,
-  'empresa.bo' => 1,
-  'indigena.bo' => 1,
-  'industria.bo' => 1,
-  'info.bo' => 1,
-  'medicina.bo' => 1,
-  'movimiento.bo' => 1,
-  'musica.bo' => 1,
-  'natural.bo' => 1,
-  'nombre.bo' => 1,
-  'noticias.bo' => 1,
-  'patria.bo' => 1,
-  'politica.bo' => 1,
-  'profesional.bo' => 1,
-  'plurinacional.bo' => 1,
-  'pueblo.bo' => 1,
-  'revista.bo' => 1,
-  'salud.bo' => 1,
-  'tecnologia.bo' => 1,
-  'tksat.bo' => 1,
-  'transporte.bo' => 1,
-  'wiki.bo' => 1,
-  'br' => 1,
-  '9guacu.br' => 1,
-  'abc.br' => 1,
-  'adm.br' => 1,
-  'adv.br' => 1,
-  'agr.br' => 1,
-  'aju.br' => 1,
-  'am.br' => 1,
-  'anani.br' => 1,
-  'aparecida.br' => 1,
-  'arq.br' => 1,
-  'art.br' => 1,
-  'ato.br' => 1,
-  'b.br' => 1,
-  'barueri.br' => 1,
-  'belem.br' => 1,
-  'bhz.br' => 1,
-  'bio.br' => 1,
-  'blog.br' => 1,
-  'bmd.br' => 1,
-  'boavista.br' => 1,
-  'bsb.br' => 1,
-  'campinagrande.br' => 1,
-  'campinas.br' => 1,
-  'caxias.br' => 1,
-  'cim.br' => 1,
-  'cng.br' => 1,
-  'cnt.br' => 1,
-  'com.br' => 1,
-  'contagem.br' => 1,
-  'coop.br' => 1,
-  'cri.br' => 1,
-  'cuiaba.br' => 1,
-  'curitiba.br' => 1,
-  'def.br' => 1,
-  'ecn.br' => 1,
-  'eco.br' => 1,
-  'edu.br' => 1,
-  'emp.br' => 1,
-  'eng.br' => 1,
-  'esp.br' => 1,
-  'etc.br' => 1,
-  'eti.br' => 1,
-  'far.br' => 1,
-  'feira.br' => 1,
-  'flog.br' => 1,
-  'floripa.br' => 1,
-  'fm.br' => 1,
-  'fnd.br' => 1,
-  'fortal.br' => 1,
-  'fot.br' => 1,
-  'foz.br' => 1,
-  'fst.br' => 1,
-  'g12.br' => 1,
-  'ggf.br' => 1,
-  'goiania.br' => 1,
-  'gov.br' => 1,
-  'ac.gov.br' => 1,
-  'al.gov.br' => 1,
-  'am.gov.br' => 1,
-  'ap.gov.br' => 1,
-  'ba.gov.br' => 1,
-  'ce.gov.br' => 1,
-  'df.gov.br' => 1,
-  'es.gov.br' => 1,
-  'go.gov.br' => 1,
-  'ma.gov.br' => 1,
-  'mg.gov.br' => 1,
-  'ms.gov.br' => 1,
-  'mt.gov.br' => 1,
-  'pa.gov.br' => 1,
-  'pb.gov.br' => 1,
-  'pe.gov.br' => 1,
-  'pi.gov.br' => 1,
-  'pr.gov.br' => 1,
-  'rj.gov.br' => 1,
-  'rn.gov.br' => 1,
-  'ro.gov.br' => 1,
-  'rr.gov.br' => 1,
-  'rs.gov.br' => 1,
-  'sc.gov.br' => 1,
-  'se.gov.br' => 1,
-  'sp.gov.br' => 1,
-  'to.gov.br' => 1,
-  'gru.br' => 1,
-  'imb.br' => 1,
-  'ind.br' => 1,
-  'inf.br' => 1,
-  'jab.br' => 1,
-  'jampa.br' => 1,
-  'jdf.br' => 1,
-  'joinville.br' => 1,
-  'jor.br' => 1,
-  'jus.br' => 1,
-  'leg.br' => 1,
-  'lel.br' => 1,
-  'londrina.br' => 1,
-  'macapa.br' => 1,
-  'maceio.br' => 1,
-  'manaus.br' => 1,
-  'maringa.br' => 1,
-  'mat.br' => 1,
-  'med.br' => 1,
-  'mil.br' => 1,
-  'morena.br' => 1,
-  'mp.br' => 1,
-  'mus.br' => 1,
-  'natal.br' => 1,
-  'net.br' => 1,
-  'niteroi.br' => 1,
-  '*.nom.br' => 1,
-  'not.br' => 1,
-  'ntr.br' => 1,
-  'odo.br' => 1,
-  'ong.br' => 1,
-  'org.br' => 1,
-  'osasco.br' => 1,
-  'palmas.br' => 1,
-  'poa.br' => 1,
-  'ppg.br' => 1,
-  'pro.br' => 1,
-  'psc.br' => 1,
-  'psi.br' => 1,
-  'pvh.br' => 1,
-  'qsl.br' => 1,
-  'radio.br' => 1,
-  'rec.br' => 1,
-  'recife.br' => 1,
-  'ribeirao.br' => 1,
-  'rio.br' => 1,
-  'riobranco.br' => 1,
-  'riopreto.br' => 1,
-  'salvador.br' => 1,
-  'sampa.br' => 1,
-  'santamaria.br' => 1,
-  'santoandre.br' => 1,
-  'saobernardo.br' => 1,
-  'saogonca.br' => 1,
-  'sjc.br' => 1,
-  'slg.br' => 1,
-  'slz.br' => 1,
-  'sorocaba.br' => 1,
-  'srv.br' => 1,
-  'taxi.br' => 1,
-  'teo.br' => 1,
-  'the.br' => 1,
-  'tmp.br' => 1,
-  'trd.br' => 1,
-  'tur.br' => 1,
-  'tv.br' => 1,
-  'udi.br' => 1,
-  'vet.br' => 1,
-  'vix.br' => 1,
-  'vlog.br' => 1,
-  'wiki.br' => 1,
-  'zlg.br' => 1,
-  'bs' => 1,
-  'com.bs' => 1,
-  'net.bs' => 1,
-  'org.bs' => 1,
-  'edu.bs' => 1,
-  'gov.bs' => 1,
-  'bt' => 1,
-  'com.bt' => 1,
-  'edu.bt' => 1,
-  'gov.bt' => 1,
-  'net.bt' => 1,
-  'org.bt' => 1,
-  'bv' => 1,
-  'bw' => 1,
-  'co.bw' => 1,
-  'org.bw' => 1,
-  'by' => 1,
-  'gov.by' => 1,
-  'mil.by' => 1,
-  'com.by' => 1,
-  'of.by' => 1,
-  'bz' => 1,
-  'com.bz' => 1,
-  'net.bz' => 1,
-  'org.bz' => 1,
-  'edu.bz' => 1,
-  'gov.bz' => 1,
-  'ca' => 1,
-  'ab.ca' => 1,
-  'bc.ca' => 1,
-  'mb.ca' => 1,
-  'nb.ca' => 1,
-  'nf.ca' => 1,
-  'nl.ca' => 1,
-  'ns.ca' => 1,
-  'nt.ca' => 1,
-  'nu.ca' => 1,
-  'on.ca' => 1,
-  'pe.ca' => 1,
-  'qc.ca' => 1,
-  'sk.ca' => 1,
-  'yk.ca' => 1,
-  'gc.ca' => 1,
-  'cat' => 1,
-  'cc' => 1,
-  'cd' => 1,
-  'gov.cd' => 1,
-  'cf' => 1,
-  'cg' => 1,
-  'ch' => 1,
-  'ci' => 1,
-  'org.ci' => 1,
-  'or.ci' => 1,
-  'com.ci' => 1,
-  'co.ci' => 1,
-  'edu.ci' => 1,
-  'ed.ci' => 1,
-  'ac.ci' => 1,
-  'net.ci' => 1,
-  'go.ci' => 1,
-  'asso.ci' => 1,
-  'aéroport.ci' => 1,
-  'int.ci' => 1,
-  'presse.ci' => 1,
-  'md.ci' => 1,
-  'gouv.ci' => 1,
-  '*.ck' => 1,
-  '!www.ck' => 1,
-  'cl' => 1,
-  'gov.cl' => 1,
-  'gob.cl' => 1,
-  'co.cl' => 1,
-  'mil.cl' => 1,
-  'cm' => 1,
-  'co.cm' => 1,
-  'com.cm' => 1,
-  'gov.cm' => 1,
-  'net.cm' => 1,
-  'cn' => 1,
-  'ac.cn' => 1,
-  'com.cn' => 1,
-  'edu.cn' => 1,
-  'gov.cn' => 1,
-  'net.cn' => 1,
-  'org.cn' => 1,
-  'mil.cn' => 1,
-  '公司.cn' => 1,
-  '网络.cn' => 1,
-  '網絡.cn' => 1,
-  'ah.cn' => 1,
-  'bj.cn' => 1,
-  'cq.cn' => 1,
-  'fj.cn' => 1,
-  'gd.cn' => 1,
-  'gs.cn' => 1,
-  'gz.cn' => 1,
-  'gx.cn' => 1,
-  'ha.cn' => 1,
-  'hb.cn' => 1,
-  'he.cn' => 1,
-  'hi.cn' => 1,
-  'hl.cn' => 1,
-  'hn.cn' => 1,
-  'jl.cn' => 1,
-  'js.cn' => 1,
-  'jx.cn' => 1,
-  'ln.cn' => 1,
-  'nm.cn' => 1,
-  'nx.cn' => 1,
-  'qh.cn' => 1,
-  'sc.cn' => 1,
-  'sd.cn' => 1,
-  'sh.cn' => 1,
-  'sn.cn' => 1,
-  'sx.cn' => 1,
-  'tj.cn' => 1,
-  'xj.cn' => 1,
-  'xz.cn' => 1,
-  'yn.cn' => 1,
-  'zj.cn' => 1,
-  'hk.cn' => 1,
-  'mo.cn' => 1,
-  'tw.cn' => 1,
-  'co' => 1,
-  'arts.co' => 1,
-  'com.co' => 1,
-  'edu.co' => 1,
-  'firm.co' => 1,
-  'gov.co' => 1,
-  'info.co' => 1,
-  'int.co' => 1,
-  'mil.co' => 1,
-  'net.co' => 1,
-  'nom.co' => 1,
-  'org.co' => 1,
-  'rec.co' => 1,
-  'web.co' => 1,
-  'com' => 1,
-  'coop' => 1,
-  'cr' => 1,
-  'ac.cr' => 1,
-  'co.cr' => 1,
-  'ed.cr' => 1,
-  'fi.cr' => 1,
-  'go.cr' => 1,
-  'or.cr' => 1,
-  'sa.cr' => 1,
-  'cu' => 1,
-  'com.cu' => 1,
-  'edu.cu' => 1,
-  'org.cu' => 1,
-  'net.cu' => 1,
-  'gov.cu' => 1,
-  'inf.cu' => 1,
-  'cv' => 1,
-  'cw' => 1,
-  'com.cw' => 1,
-  'edu.cw' => 1,
-  'net.cw' => 1,
-  'org.cw' => 1,
-  'cx' => 1,
-  'gov.cx' => 1,
-  'cy' => 1,
-  'ac.cy' => 1,
-  'biz.cy' => 1,
-  'com.cy' => 1,
-  'ekloges.cy' => 1,
-  'gov.cy' => 1,
-  'ltd.cy' => 1,
-  'name.cy' => 1,
-  'net.cy' => 1,
-  'org.cy' => 1,
-  'parliament.cy' => 1,
-  'press.cy' => 1,
-  'pro.cy' => 1,
-  'tm.cy' => 1,
-  'cz' => 1,
-  'de' => 1,
-  'dj' => 1,
-  'dk' => 1,
-  'dm' => 1,
-  'com.dm' => 1,
-  'net.dm' => 1,
-  'org.dm' => 1,
-  'edu.dm' => 1,
-  'gov.dm' => 1,
-  'do' => 1,
-  'art.do' => 1,
-  'com.do' => 1,
-  'edu.do' => 1,
-  'gob.do' => 1,
-  'gov.do' => 1,
-  'mil.do' => 1,
-  'net.do' => 1,
-  'org.do' => 1,
-  'sld.do' => 1,
-  'web.do' => 1,
-  'dz' => 1,
-  'com.dz' => 1,
-  'org.dz' => 1,
-  'net.dz' => 1,
-  'gov.dz' => 1,
-  'edu.dz' => 1,
-  'asso.dz' => 1,
-  'pol.dz' => 1,
-  'art.dz' => 1,
-  'ec' => 1,
-  'com.ec' => 1,
-  'info.ec' => 1,
-  'net.ec' => 1,
-  'fin.ec' => 1,
-  'k12.ec' => 1,
-  'med.ec' => 1,
-  'pro.ec' => 1,
-  'org.ec' => 1,
-  'edu.ec' => 1,
-  'gov.ec' => 1,
-  'gob.ec' => 1,
-  'mil.ec' => 1,
-  'edu' => 1,
-  'ee' => 1,
-  'edu.ee' => 1,
-  'gov.ee' => 1,
-  'riik.ee' => 1,
-  'lib.ee' => 1,
-  'med.ee' => 1,
-  'com.ee' => 1,
-  'pri.ee' => 1,
-  'aip.ee' => 1,
-  'org.ee' => 1,
-  'fie.ee' => 1,
-  'eg' => 1,
-  'com.eg' => 1,
-  'edu.eg' => 1,
-  'eun.eg' => 1,
-  'gov.eg' => 1,
-  'mil.eg' => 1,
-  'name.eg' => 1,
-  'net.eg' => 1,
-  'org.eg' => 1,
-  'sci.eg' => 1,
-  '*.er' => 1,
-  'es' => 1,
-  'com.es' => 1,
-  'nom.es' => 1,
-  'org.es' => 1,
-  'gob.es' => 1,
-  'edu.es' => 1,
-  'et' => 1,
-  'com.et' => 1,
-  'gov.et' => 1,
-  'org.et' => 1,
-  'edu.et' => 1,
-  'biz.et' => 1,
-  'name.et' => 1,
-  'info.et' => 1,
-  'net.et' => 1,
-  'eu' => 1,
-  'fi' => 1,
-  'aland.fi' => 1,
-  '*.fj' => 1,
-  '*.fk' => 1,
-  'fm' => 1,
-  'fo' => 1,
-  'fr' => 1,
-  'com.fr' => 1,
-  'asso.fr' => 1,
-  'nom.fr' => 1,
-  'prd.fr' => 1,
-  'presse.fr' => 1,
-  'tm.fr' => 1,
-  'aeroport.fr' => 1,
-  'assedic.fr' => 1,
-  'avocat.fr' => 1,
-  'avoues.fr' => 1,
-  'cci.fr' => 1,
-  'chambagri.fr' => 1,
-  'chirurgiens-dentistes.fr' => 1,
-  'experts-comptables.fr' => 1,
-  'geometre-expert.fr' => 1,
-  'gouv.fr' => 1,
-  'greta.fr' => 1,
-  'huissier-justice.fr' => 1,
-  'medecin.fr' => 1,
-  'notaires.fr' => 1,
-  'pharmacien.fr' => 1,
-  'port.fr' => 1,
-  'veterinaire.fr' => 1,
-  'ga' => 1,
-  'gb' => 1,
-  'gd' => 1,
-  'ge' => 1,
-  'com.ge' => 1,
-  'edu.ge' => 1,
-  'gov.ge' => 1,
-  'org.ge' => 1,
-  'mil.ge' => 1,
-  'net.ge' => 1,
-  'pvt.ge' => 1,
-  'gf' => 1,
-  'gg' => 1,
-  'co.gg' => 1,
-  'net.gg' => 1,
-  'org.gg' => 1,
-  'gh' => 1,
-  'com.gh' => 1,
-  'edu.gh' => 1,
-  'gov.gh' => 1,
-  'org.gh' => 1,
-  'mil.gh' => 1,
-  'gi' => 1,
-  'com.gi' => 1,
-  'ltd.gi' => 1,
-  'gov.gi' => 1,
-  'mod.gi' => 1,
-  'edu.gi' => 1,
-  'org.gi' => 1,
-  'gl' => 1,
-  'co.gl' => 1,
-  'com.gl' => 1,
-  'edu.gl' => 1,
-  'net.gl' => 1,
-  'org.gl' => 1,
-  'gm' => 1,
-  'gn' => 1,
-  'ac.gn' => 1,
-  'com.gn' => 1,
-  'edu.gn' => 1,
-  'gov.gn' => 1,
-  'org.gn' => 1,
-  'net.gn' => 1,
-  'gov' => 1,
-  'gp' => 1,
-  'com.gp' => 1,
-  'net.gp' => 1,
-  'mobi.gp' => 1,
-  'edu.gp' => 1,
-  'org.gp' => 1,
-  'asso.gp' => 1,
-  'gq' => 1,
-  'gr' => 1,
-  'com.gr' => 1,
-  'edu.gr' => 1,
-  'net.gr' => 1,
-  'org.gr' => 1,
-  'gov.gr' => 1,
-  'gs' => 1,
-  'gt' => 1,
-  'com.gt' => 1,
-  'edu.gt' => 1,
-  'gob.gt' => 1,
-  'ind.gt' => 1,
-  'mil.gt' => 1,
-  'net.gt' => 1,
-  'org.gt' => 1,
-  'gu' => 1,
-  'com.gu' => 1,
-  'edu.gu' => 1,
-  'gov.gu' => 1,
-  'guam.gu' => 1,
-  'info.gu' => 1,
-  'net.gu' => 1,
-  'org.gu' => 1,
-  'web.gu' => 1,
-  'gw' => 1,
-  'gy' => 1,
-  'co.gy' => 1,
-  'com.gy' => 1,
-  'edu.gy' => 1,
-  'gov.gy' => 1,
-  'net.gy' => 1,
-  'org.gy' => 1,
-  'hk' => 1,
-  'com.hk' => 1,
-  'edu.hk' => 1,
-  'gov.hk' => 1,
-  'idv.hk' => 1,
-  'net.hk' => 1,
-  'org.hk' => 1,
-  '公司.hk' => 1,
-  '教育.hk' => 1,
-  '敎育.hk' => 1,
-  '政府.hk' => 1,
-  '個人.hk' => 1,
-  '个人.hk' => 1,
-  '箇人.hk' => 1,
-  '網络.hk' => 1,
-  '网络.hk' => 1,
-  '组織.hk' => 1,
-  '網絡.hk' => 1,
-  '网絡.hk' => 1,
-  '组织.hk' => 1,
-  '組織.hk' => 1,
-  '組织.hk' => 1,
-  'hm' => 1,
-  'hn' => 1,
-  'com.hn' => 1,
-  'edu.hn' => 1,
-  'org.hn' => 1,
-  'net.hn' => 1,
-  'mil.hn' => 1,
-  'gob.hn' => 1,
-  'hr' => 1,
-  'iz.hr' => 1,
-  'from.hr' => 1,
-  'name.hr' => 1,
-  'com.hr' => 1,
-  'ht' => 1,
-  'com.ht' => 1,
-  'shop.ht' => 1,
-  'firm.ht' => 1,
-  'info.ht' => 1,
-  'adult.ht' => 1,
-  'net.ht' => 1,
-  'pro.ht' => 1,
-  'org.ht' => 1,
-  'med.ht' => 1,
-  'art.ht' => 1,
-  'coop.ht' => 1,
-  'pol.ht' => 1,
-  'asso.ht' => 1,
-  'edu.ht' => 1,
-  'rel.ht' => 1,
-  'gouv.ht' => 1,
-  'perso.ht' => 1,
-  'hu' => 1,
-  'co.hu' => 1,
-  'info.hu' => 1,
-  'org.hu' => 1,
-  'priv.hu' => 1,
-  'sport.hu' => 1,
-  'tm.hu' => 1,
-  '2000.hu' => 1,
-  'agrar.hu' => 1,
-  'bolt.hu' => 1,
-  'casino.hu' => 1,
-  'city.hu' => 1,
-  'erotica.hu' => 1,
-  'erotika.hu' => 1,
-  'film.hu' => 1,
-  'forum.hu' => 1,
-  'games.hu' => 1,
-  'hotel.hu' => 1,
-  'ingatlan.hu' => 1,
-  'jogasz.hu' => 1,
-  'konyvelo.hu' => 1,
-  'lakas.hu' => 1,
-  'media.hu' => 1,
-  'news.hu' => 1,
-  'reklam.hu' => 1,
-  'sex.hu' => 1,
-  'shop.hu' => 1,
-  'suli.hu' => 1,
-  'szex.hu' => 1,
-  'tozsde.hu' => 1,
-  'utazas.hu' => 1,
-  'video.hu' => 1,
-  'id' => 1,
-  'ac.id' => 1,
-  'biz.id' => 1,
-  'co.id' => 1,
-  'desa.id' => 1,
-  'go.id' => 1,
-  'mil.id' => 1,
-  'my.id' => 1,
-  'net.id' => 1,
-  'or.id' => 1,
-  'ponpes.id' => 1,
-  'sch.id' => 1,
-  'web.id' => 1,
-  'ie' => 1,
-  'gov.ie' => 1,
-  'il' => 1,
-  'ac.il' => 1,
-  'co.il' => 1,
-  'gov.il' => 1,
-  'idf.il' => 1,
-  'k12.il' => 1,
-  'muni.il' => 1,
-  'net.il' => 1,
-  'org.il' => 1,
-  'im' => 1,
-  'ac.im' => 1,
-  'co.im' => 1,
-  'com.im' => 1,
-  'ltd.co.im' => 1,
-  'net.im' => 1,
-  'org.im' => 1,
-  'plc.co.im' => 1,
-  'tt.im' => 1,
-  'tv.im' => 1,
-  'in' => 1,
-  'co.in' => 1,
-  'firm.in' => 1,
-  'net.in' => 1,
-  'org.in' => 1,
-  'gen.in' => 1,
-  'ind.in' => 1,
-  'nic.in' => 1,
-  'ac.in' => 1,
-  'edu.in' => 1,
-  'res.in' => 1,
-  'gov.in' => 1,
-  'mil.in' => 1,
-  'info' => 1,
-  'int' => 1,
-  'eu.int' => 1,
-  'io' => 1,
-  'com.io' => 1,
-  'iq' => 1,
-  'gov.iq' => 1,
-  'edu.iq' => 1,
-  'mil.iq' => 1,
-  'com.iq' => 1,
-  'org.iq' => 1,
-  'net.iq' => 1,
-  'ir' => 1,
-  'ac.ir' => 1,
-  'co.ir' => 1,
-  'gov.ir' => 1,
-  'id.ir' => 1,
-  'net.ir' => 1,
-  'org.ir' => 1,
-  'sch.ir' => 1,
-  'ایران.ir' => 1,
-  'ايران.ir' => 1,
-  'is' => 1,
-  'net.is' => 1,
-  'com.is' => 1,
-  'edu.is' => 1,
-  'gov.is' => 1,
-  'org.is' => 1,
-  'int.is' => 1,
-  'it' => 1,
-  'gov.it' => 1,
-  'edu.it' => 1,
-  'abr.it' => 1,
-  'abruzzo.it' => 1,
-  'aosta-valley.it' => 1,
-  'aostavalley.it' => 1,
-  'bas.it' => 1,
-  'basilicata.it' => 1,
-  'cal.it' => 1,
-  'calabria.it' => 1,
-  'cam.it' => 1,
-  'campania.it' => 1,
-  'emilia-romagna.it' => 1,
-  'emiliaromagna.it' => 1,
-  'emr.it' => 1,
-  'friuli-v-giulia.it' => 1,
-  'friuli-ve-giulia.it' => 1,
-  'friuli-vegiulia.it' => 1,
-  'friuli-venezia-giulia.it' => 1,
-  'friuli-veneziagiulia.it' => 1,
-  'friuli-vgiulia.it' => 1,
-  'friuliv-giulia.it' => 1,
-  'friulive-giulia.it' => 1,
-  'friulivegiulia.it' => 1,
-  'friulivenezia-giulia.it' => 1,
-  'friuliveneziagiulia.it' => 1,
-  'friulivgiulia.it' => 1,
-  'fvg.it' => 1,
-  'laz.it' => 1,
-  'lazio.it' => 1,
-  'lig.it' => 1,
-  'liguria.it' => 1,
-  'lom.it' => 1,
-  'lombardia.it' => 1,
-  'lombardy.it' => 1,
-  'lucania.it' => 1,
-  'mar.it' => 1,
-  'marche.it' => 1,
-  'mol.it' => 1,
-  'molise.it' => 1,
-  'piedmont.it' => 1,
-  'piemonte.it' => 1,
-  'pmn.it' => 1,
-  'pug.it' => 1,
-  'puglia.it' => 1,
-  'sar.it' => 1,
-  'sardegna.it' => 1,
-  'sardinia.it' => 1,
-  'sic.it' => 1,
-  'sicilia.it' => 1,
-  'sicily.it' => 1,
-  'taa.it' => 1,
-  'tos.it' => 1,
-  'toscana.it' => 1,
-  'trentin-sud-tirol.it' => 1,
-  'trentin-süd-tirol.it' => 1,
-  'trentin-sudtirol.it' => 1,
-  'trentin-südtirol.it' => 1,
-  'trentin-sued-tirol.it' => 1,
-  'trentin-suedtirol.it' => 1,
-  'trentino-a-adige.it' => 1,
-  'trentino-aadige.it' => 1,
-  'trentino-alto-adige.it' => 1,
-  'trentino-altoadige.it' => 1,
-  'trentino-s-tirol.it' => 1,
-  'trentino-stirol.it' => 1,
-  'trentino-sud-tirol.it' => 1,
-  'trentino-süd-tirol.it' => 1,
-  'trentino-sudtirol.it' => 1,
-  'trentino-südtirol.it' => 1,
-  'trentino-sued-tirol.it' => 1,
-  'trentino-suedtirol.it' => 1,
-  'trentino.it' => 1,
-  'trentinoa-adige.it' => 1,
-  'trentinoaadige.it' => 1,
-  'trentinoalto-adige.it' => 1,
-  'trentinoaltoadige.it' => 1,
-  'trentinos-tirol.it' => 1,
-  'trentinostirol.it' => 1,
-  'trentinosud-tirol.it' => 1,
-  'trentinosüd-tirol.it' => 1,
-  'trentinosudtirol.it' => 1,
-  'trentinosüdtirol.it' => 1,
-  'trentinosued-tirol.it' => 1,
-  'trentinosuedtirol.it' => 1,
-  'trentinsud-tirol.it' => 1,
-  'trentinsüd-tirol.it' => 1,
-  'trentinsudtirol.it' => 1,
-  'trentinsüdtirol.it' => 1,
-  'trentinsued-tirol.it' => 1,
-  'trentinsuedtirol.it' => 1,
-  'tuscany.it' => 1,
-  'umb.it' => 1,
-  'umbria.it' => 1,
-  'val-d-aosta.it' => 1,
-  'val-daosta.it' => 1,
-  'vald-aosta.it' => 1,
-  'valdaosta.it' => 1,
-  'valle-aosta.it' => 1,
-  'valle-d-aosta.it' => 1,
-  'valle-daosta.it' => 1,
-  'valleaosta.it' => 1,
-  'valled-aosta.it' => 1,
-  'valledaosta.it' => 1,
-  'vallee-aoste.it' => 1,
-  'vallée-aoste.it' => 1,
-  'vallee-d-aoste.it' => 1,
-  'vallée-d-aoste.it' => 1,
-  'valleeaoste.it' => 1,
-  'valléeaoste.it' => 1,
-  'valleedaoste.it' => 1,
-  'valléedaoste.it' => 1,
-  'vao.it' => 1,
-  'vda.it' => 1,
-  'ven.it' => 1,
-  'veneto.it' => 1,
-  'ag.it' => 1,
-  'agrigento.it' => 1,
-  'al.it' => 1,
-  'alessandria.it' => 1,
-  'alto-adige.it' => 1,
-  'altoadige.it' => 1,
-  'an.it' => 1,
-  'ancona.it' => 1,
-  'andria-barletta-trani.it' => 1,
-  'andria-trani-barletta.it' => 1,
-  'andriabarlettatrani.it' => 1,
-  'andriatranibarletta.it' => 1,
-  'ao.it' => 1,
-  'aosta.it' => 1,
-  'aoste.it' => 1,
-  'ap.it' => 1,
-  'aq.it' => 1,
-  'aquila.it' => 1,
-  'ar.it' => 1,
-  'arezzo.it' => 1,
-  'ascoli-piceno.it' => 1,
-  'ascolipiceno.it' => 1,
-  'asti.it' => 1,
-  'at.it' => 1,
-  'av.it' => 1,
-  'avellino.it' => 1,
-  'ba.it' => 1,
-  'balsan-sudtirol.it' => 1,
-  'balsan-südtirol.it' => 1,
-  'balsan-suedtirol.it' => 1,
-  'balsan.it' => 1,
-  'bari.it' => 1,
-  'barletta-trani-andria.it' => 1,
-  'barlettatraniandria.it' => 1,
-  'belluno.it' => 1,
-  'benevento.it' => 1,
-  'bergamo.it' => 1,
-  'bg.it' => 1,
-  'bi.it' => 1,
-  'biella.it' => 1,
-  'bl.it' => 1,
-  'bn.it' => 1,
-  'bo.it' => 1,
-  'bologna.it' => 1,
-  'bolzano-altoadige.it' => 1,
-  'bolzano.it' => 1,
-  'bozen-sudtirol.it' => 1,
-  'bozen-südtirol.it' => 1,
-  'bozen-suedtirol.it' => 1,
-  'bozen.it' => 1,
-  'br.it' => 1,
-  'brescia.it' => 1,
-  'brindisi.it' => 1,
-  'bs.it' => 1,
-  'bt.it' => 1,
-  'bulsan-sudtirol.it' => 1,
-  'bulsan-südtirol.it' => 1,
-  'bulsan-suedtirol.it' => 1,
-  'bulsan.it' => 1,
-  'bz.it' => 1,
-  'ca.it' => 1,
-  'cagliari.it' => 1,
-  'caltanissetta.it' => 1,
-  'campidano-medio.it' => 1,
-  'campidanomedio.it' => 1,
-  'campobasso.it' => 1,
-  'carbonia-iglesias.it' => 1,
-  'carboniaiglesias.it' => 1,
-  'carrara-massa.it' => 1,
-  'carraramassa.it' => 1,
-  'caserta.it' => 1,
-  'catania.it' => 1,
-  'catanzaro.it' => 1,
-  'cb.it' => 1,
-  'ce.it' => 1,
-  'cesena-forli.it' => 1,
-  'cesena-forlì.it' => 1,
-  'cesenaforli.it' => 1,
-  'cesenaforlì.it' => 1,
-  'ch.it' => 1,
-  'chieti.it' => 1,
-  'ci.it' => 1,
-  'cl.it' => 1,
-  'cn.it' => 1,
-  'co.it' => 1,
-  'como.it' => 1,
-  'cosenza.it' => 1,
-  'cr.it' => 1,
-  'cremona.it' => 1,
-  'crotone.it' => 1,
-  'cs.it' => 1,
-  'ct.it' => 1,
-  'cuneo.it' => 1,
-  'cz.it' => 1,
-  'dell-ogliastra.it' => 1,
-  'dellogliastra.it' => 1,
-  'en.it' => 1,
-  'enna.it' => 1,
-  'fc.it' => 1,
-  'fe.it' => 1,
-  'fermo.it' => 1,
-  'ferrara.it' => 1,
-  'fg.it' => 1,
-  'fi.it' => 1,
-  'firenze.it' => 1,
-  'florence.it' => 1,
-  'fm.it' => 1,
-  'foggia.it' => 1,
-  'forli-cesena.it' => 1,
-  'forlì-cesena.it' => 1,
-  'forlicesena.it' => 1,
-  'forlìcesena.it' => 1,
-  'fr.it' => 1,
-  'frosinone.it' => 1,
-  'ge.it' => 1,
-  'genoa.it' => 1,
-  'genova.it' => 1,
-  'go.it' => 1,
-  'gorizia.it' => 1,
-  'gr.it' => 1,
-  'grosseto.it' => 1,
-  'iglesias-carbonia.it' => 1,
-  'iglesiascarbonia.it' => 1,
-  'im.it' => 1,
-  'imperia.it' => 1,
-  'is.it' => 1,
-  'isernia.it' => 1,
-  'kr.it' => 1,
-  'la-spezia.it' => 1,
-  'laquila.it' => 1,
-  'laspezia.it' => 1,
-  'latina.it' => 1,
-  'lc.it' => 1,
-  'le.it' => 1,
-  'lecce.it' => 1,
-  'lecco.it' => 1,
-  'li.it' => 1,
-  'livorno.it' => 1,
-  'lo.it' => 1,
-  'lodi.it' => 1,
-  'lt.it' => 1,
-  'lu.it' => 1,
-  'lucca.it' => 1,
-  'macerata.it' => 1,
-  'mantova.it' => 1,
-  'massa-carrara.it' => 1,
-  'massacarrara.it' => 1,
-  'matera.it' => 1,
-  'mb.it' => 1,
-  'mc.it' => 1,
-  'me.it' => 1,
-  'medio-campidano.it' => 1,
-  'mediocampidano.it' => 1,
-  'messina.it' => 1,
-  'mi.it' => 1,
-  'milan.it' => 1,
-  'milano.it' => 1,
-  'mn.it' => 1,
-  'mo.it' => 1,
-  'modena.it' => 1,
-  'monza-brianza.it' => 1,
-  'monza-e-della-brianza.it' => 1,
-  'monza.it' => 1,
-  'monzabrianza.it' => 1,
-  'monzaebrianza.it' => 1,
-  'monzaedellabrianza.it' => 1,
-  'ms.it' => 1,
-  'mt.it' => 1,
-  'na.it' => 1,
-  'naples.it' => 1,
-  'napoli.it' => 1,
-  'no.it' => 1,
-  'novara.it' => 1,
-  'nu.it' => 1,
-  'nuoro.it' => 1,
-  'og.it' => 1,
-  'ogliastra.it' => 1,
-  'olbia-tempio.it' => 1,
-  'olbiatempio.it' => 1,
-  'or.it' => 1,
-  'oristano.it' => 1,
-  'ot.it' => 1,
-  'pa.it' => 1,
-  'padova.it' => 1,
-  'padua.it' => 1,
-  'palermo.it' => 1,
-  'parma.it' => 1,
-  'pavia.it' => 1,
-  'pc.it' => 1,
-  'pd.it' => 1,
-  'pe.it' => 1,
-  'perugia.it' => 1,
-  'pesaro-urbino.it' => 1,
-  'pesarourbino.it' => 1,
-  'pescara.it' => 1,
-  'pg.it' => 1,
-  'pi.it' => 1,
-  'piacenza.it' => 1,
-  'pisa.it' => 1,
-  'pistoia.it' => 1,
-  'pn.it' => 1,
-  'po.it' => 1,
-  'pordenone.it' => 1,
-  'potenza.it' => 1,
-  'pr.it' => 1,
-  'prato.it' => 1,
-  'pt.it' => 1,
-  'pu.it' => 1,
-  'pv.it' => 1,
-  'pz.it' => 1,
-  'ra.it' => 1,
-  'ragusa.it' => 1,
-  'ravenna.it' => 1,
-  'rc.it' => 1,
-  're.it' => 1,
-  'reggio-calabria.it' => 1,
-  'reggio-emilia.it' => 1,
-  'reggiocalabria.it' => 1,
-  'reggioemilia.it' => 1,
-  'rg.it' => 1,
-  'ri.it' => 1,
-  'rieti.it' => 1,
-  'rimini.it' => 1,
-  'rm.it' => 1,
-  'rn.it' => 1,
-  'ro.it' => 1,
-  'roma.it' => 1,
-  'rome.it' => 1,
-  'rovigo.it' => 1,
-  'sa.it' => 1,
-  'salerno.it' => 1,
-  'sassari.it' => 1,
-  'savona.it' => 1,
-  'si.it' => 1,
-  'siena.it' => 1,
-  'siracusa.it' => 1,
-  'so.it' => 1,
-  'sondrio.it' => 1,
-  'sp.it' => 1,
-  'sr.it' => 1,
-  'ss.it' => 1,
-  'suedtirol.it' => 1,
-  'südtirol.it' => 1,
-  'sv.it' => 1,
-  'ta.it' => 1,
-  'taranto.it' => 1,
-  'te.it' => 1,
-  'tempio-olbia.it' => 1,
-  'tempioolbia.it' => 1,
-  'teramo.it' => 1,
-  'terni.it' => 1,
-  'tn.it' => 1,
-  'to.it' => 1,
-  'torino.it' => 1,
-  'tp.it' => 1,
-  'tr.it' => 1,
-  'trani-andria-barletta.it' => 1,
-  'trani-barletta-andria.it' => 1,
-  'traniandriabarletta.it' => 1,
-  'tranibarlettaandria.it' => 1,
-  'trapani.it' => 1,
-  'trento.it' => 1,
-  'treviso.it' => 1,
-  'trieste.it' => 1,
-  'ts.it' => 1,
-  'turin.it' => 1,
-  'tv.it' => 1,
-  'ud.it' => 1,
-  'udine.it' => 1,
-  'urbino-pesaro.it' => 1,
-  'urbinopesaro.it' => 1,
-  'va.it' => 1,
-  'varese.it' => 1,
-  'vb.it' => 1,
-  'vc.it' => 1,
-  've.it' => 1,
-  'venezia.it' => 1,
-  'venice.it' => 1,
-  'verbania.it' => 1,
-  'vercelli.it' => 1,
-  'verona.it' => 1,
-  'vi.it' => 1,
-  'vibo-valentia.it' => 1,
-  'vibovalentia.it' => 1,
-  'vicenza.it' => 1,
-  'viterbo.it' => 1,
-  'vr.it' => 1,
-  'vs.it' => 1,
-  'vt.it' => 1,
-  'vv.it' => 1,
-  'je' => 1,
-  'co.je' => 1,
-  'net.je' => 1,
-  'org.je' => 1,
-  '*.jm' => 1,
-  'jo' => 1,
-  'com.jo' => 1,
-  'org.jo' => 1,
-  'net.jo' => 1,
-  'edu.jo' => 1,
-  'sch.jo' => 1,
-  'gov.jo' => 1,
-  'mil.jo' => 1,
-  'name.jo' => 1,
-  'jobs' => 1,
-  'jp' => 1,
-  'ac.jp' => 1,
-  'ad.jp' => 1,
-  'co.jp' => 1,
-  'ed.jp' => 1,
-  'go.jp' => 1,
-  'gr.jp' => 1,
-  'lg.jp' => 1,
-  'ne.jp' => 1,
-  'or.jp' => 1,
-  'aichi.jp' => 1,
-  'akita.jp' => 1,
-  'aomori.jp' => 1,
-  'chiba.jp' => 1,
-  'ehime.jp' => 1,
-  'fukui.jp' => 1,
-  'fukuoka.jp' => 1,
-  'fukushima.jp' => 1,
-  'gifu.jp' => 1,
-  'gunma.jp' => 1,
-  'hiroshima.jp' => 1,
-  'hokkaido.jp' => 1,
-  'hyogo.jp' => 1,
-  'ibaraki.jp' => 1,
-  'ishikawa.jp' => 1,
-  'iwate.jp' => 1,
-  'kagawa.jp' => 1,
-  'kagoshima.jp' => 1,
-  'kanagawa.jp' => 1,
-  'kochi.jp' => 1,
-  'kumamoto.jp' => 1,
-  'kyoto.jp' => 1,
-  'mie.jp' => 1,
-  'miyagi.jp' => 1,
-  'miyazaki.jp' => 1,
-  'nagano.jp' => 1,
-  'nagasaki.jp' => 1,
-  'nara.jp' => 1,
-  'niigata.jp' => 1,
-  'oita.jp' => 1,
-  'okayama.jp' => 1,
-  'okinawa.jp' => 1,
-  'osaka.jp' => 1,
-  'saga.jp' => 1,
-  'saitama.jp' => 1,
-  'shiga.jp' => 1,
-  'shimane.jp' => 1,
-  'shizuoka.jp' => 1,
-  'tochigi.jp' => 1,
-  'tokushima.jp' => 1,
-  'tokyo.jp' => 1,
-  'tottori.jp' => 1,
-  'toyama.jp' => 1,
-  'wakayama.jp' => 1,
-  'yamagata.jp' => 1,
-  'yamaguchi.jp' => 1,
-  'yamanashi.jp' => 1,
-  '栃木.jp' => 1,
-  '愛知.jp' => 1,
-  '愛媛.jp' => 1,
-  '兵庫.jp' => 1,
-  '熊本.jp' => 1,
-  '茨城.jp' => 1,
-  '北海道.jp' => 1,
-  '千葉.jp' => 1,
-  '和歌山.jp' => 1,
-  '長崎.jp' => 1,
-  '長野.jp' => 1,
-  '新潟.jp' => 1,
-  '青森.jp' => 1,
-  '静岡.jp' => 1,
-  '東京.jp' => 1,
-  '石川.jp' => 1,
-  '埼玉.jp' => 1,
-  '三重.jp' => 1,
-  '京都.jp' => 1,
-  '佐賀.jp' => 1,
-  '大分.jp' => 1,
-  '大阪.jp' => 1,
-  '奈良.jp' => 1,
-  '宮城.jp' => 1,
-  '宮崎.jp' => 1,
-  '富山.jp' => 1,
-  '山口.jp' => 1,
-  '山形.jp' => 1,
-  '山梨.jp' => 1,
-  '岩手.jp' => 1,
-  '岐阜.jp' => 1,
-  '岡山.jp' => 1,
-  '島根.jp' => 1,
-  '広島.jp' => 1,
-  '徳島.jp' => 1,
-  '沖縄.jp' => 1,
-  '滋賀.jp' => 1,
-  '神奈川.jp' => 1,
-  '福井.jp' => 1,
-  '福岡.jp' => 1,
-  '福島.jp' => 1,
-  '秋田.jp' => 1,
-  '群馬.jp' => 1,
-  '香川.jp' => 1,
-  '高知.jp' => 1,
-  '鳥取.jp' => 1,
-  '鹿児島.jp' => 1,
-  '*.kawasaki.jp' => 1,
-  '*.kitakyushu.jp' => 1,
-  '*.kobe.jp' => 1,
-  '*.nagoya.jp' => 1,
-  '*.sapporo.jp' => 1,
-  '*.sendai.jp' => 1,
-  '*.yokohama.jp' => 1,
-  '!city.kawasaki.jp' => 1,
-  '!city.kitakyushu.jp' => 1,
-  '!city.kobe.jp' => 1,
-  '!city.nagoya.jp' => 1,
-  '!city.sapporo.jp' => 1,
-  '!city.sendai.jp' => 1,
-  '!city.yokohama.jp' => 1,
-  'aisai.aichi.jp' => 1,
-  'ama.aichi.jp' => 1,
-  'anjo.aichi.jp' => 1,
-  'asuke.aichi.jp' => 1,
-  'chiryu.aichi.jp' => 1,
-  'chita.aichi.jp' => 1,
-  'fuso.aichi.jp' => 1,
-  'gamagori.aichi.jp' => 1,
-  'handa.aichi.jp' => 1,
-  'hazu.aichi.jp' => 1,
-  'hekinan.aichi.jp' => 1,
-  'higashiura.aichi.jp' => 1,
-  'ichinomiya.aichi.jp' => 1,
-  'inazawa.aichi.jp' => 1,
-  'inuyama.aichi.jp' => 1,
-  'isshiki.aichi.jp' => 1,
-  'iwakura.aichi.jp' => 1,
-  'kanie.aichi.jp' => 1,
-  'kariya.aichi.jp' => 1,
-  'kasugai.aichi.jp' => 1,
-  'kira.aichi.jp' => 1,
-  'kiyosu.aichi.jp' => 1,
-  'komaki.aichi.jp' => 1,
-  'konan.aichi.jp' => 1,
-  'kota.aichi.jp' => 1,
-  'mihama.aichi.jp' => 1,
-  'miyoshi.aichi.jp' => 1,
-  'nishio.aichi.jp' => 1,
-  'nisshin.aichi.jp' => 1,
-  'obu.aichi.jp' => 1,
-  'oguchi.aichi.jp' => 1,
-  'oharu.aichi.jp' => 1,
-  'okazaki.aichi.jp' => 1,
-  'owariasahi.aichi.jp' => 1,
-  'seto.aichi.jp' => 1,
-  'shikatsu.aichi.jp' => 1,
-  'shinshiro.aichi.jp' => 1,
-  'shitara.aichi.jp' => 1,
-  'tahara.aichi.jp' => 1,
-  'takahama.aichi.jp' => 1,
-  'tobishima.aichi.jp' => 1,
-  'toei.aichi.jp' => 1,
-  'togo.aichi.jp' => 1,
-  'tokai.aichi.jp' => 1,
-  'tokoname.aichi.jp' => 1,
-  'toyoake.aichi.jp' => 1,
-  'toyohashi.aichi.jp' => 1,
-  'toyokawa.aichi.jp' => 1,
-  'toyone.aichi.jp' => 1,
-  'toyota.aichi.jp' => 1,
-  'tsushima.aichi.jp' => 1,
-  'yatomi.aichi.jp' => 1,
-  'akita.akita.jp' => 1,
-  'daisen.akita.jp' => 1,
-  'fujisato.akita.jp' => 1,
-  'gojome.akita.jp' => 1,
-  'hachirogata.akita.jp' => 1,
-  'happou.akita.jp' => 1,
-  'higashinaruse.akita.jp' => 1,
-  'honjo.akita.jp' => 1,
-  'honjyo.akita.jp' => 1,
-  'ikawa.akita.jp' => 1,
-  'kamikoani.akita.jp' => 1,
-  'kamioka.akita.jp' => 1,
-  'katagami.akita.jp' => 1,
-  'kazuno.akita.jp' => 1,
-  'kitaakita.akita.jp' => 1,
-  'kosaka.akita.jp' => 1,
-  'kyowa.akita.jp' => 1,
-  'misato.akita.jp' => 1,
-  'mitane.akita.jp' => 1,
-  'moriyoshi.akita.jp' => 1,
-  'nikaho.akita.jp' => 1,
-  'noshiro.akita.jp' => 1,
-  'odate.akita.jp' => 1,
-  'oga.akita.jp' => 1,
-  'ogata.akita.jp' => 1,
-  'semboku.akita.jp' => 1,
-  'yokote.akita.jp' => 1,
-  'yurihonjo.akita.jp' => 1,
-  'aomori.aomori.jp' => 1,
-  'gonohe.aomori.jp' => 1,
-  'hachinohe.aomori.jp' => 1,
-  'hashikami.aomori.jp' => 1,
-  'hiranai.aomori.jp' => 1,
-  'hirosaki.aomori.jp' => 1,
-  'itayanagi.aomori.jp' => 1,
-  'kuroishi.aomori.jp' => 1,
-  'misawa.aomori.jp' => 1,
-  'mutsu.aomori.jp' => 1,
-  'nakadomari.aomori.jp' => 1,
-  'noheji.aomori.jp' => 1,
-  'oirase.aomori.jp' => 1,
-  'owani.aomori.jp' => 1,
-  'rokunohe.aomori.jp' => 1,
-  'sannohe.aomori.jp' => 1,
-  'shichinohe.aomori.jp' => 1,
-  'shingo.aomori.jp' => 1,
-  'takko.aomori.jp' => 1,
-  'towada.aomori.jp' => 1,
-  'tsugaru.aomori.jp' => 1,
-  'tsuruta.aomori.jp' => 1,
-  'abiko.chiba.jp' => 1,
-  'asahi.chiba.jp' => 1,
-  'chonan.chiba.jp' => 1,
-  'chosei.chiba.jp' => 1,
-  'choshi.chiba.jp' => 1,
-  'chuo.chiba.jp' => 1,
-  'funabashi.chiba.jp' => 1,
-  'futtsu.chiba.jp' => 1,
-  'hanamigawa.chiba.jp' => 1,
-  'ichihara.chiba.jp' => 1,
-  'ichikawa.chiba.jp' => 1,
-  'ichinomiya.chiba.jp' => 1,
-  'inzai.chiba.jp' => 1,
-  'isumi.chiba.jp' => 1,
-  'kamagaya.chiba.jp' => 1,
-  'kamogawa.chiba.jp' => 1,
-  'kashiwa.chiba.jp' => 1,
-  'katori.chiba.jp' => 1,
-  'katsuura.chiba.jp' => 1,
-  'kimitsu.chiba.jp' => 1,
-  'kisarazu.chiba.jp' => 1,
-  'kozaki.chiba.jp' => 1,
-  'kujukuri.chiba.jp' => 1,
-  'kyonan.chiba.jp' => 1,
-  'matsudo.chiba.jp' => 1,
-  'midori.chiba.jp' => 1,
-  'mihama.chiba.jp' => 1,
-  'minamiboso.chiba.jp' => 1,
-  'mobara.chiba.jp' => 1,
-  'mutsuzawa.chiba.jp' => 1,
-  'nagara.chiba.jp' => 1,
-  'nagareyama.chiba.jp' => 1,
-  'narashino.chiba.jp' => 1,
-  'narita.chiba.jp' => 1,
-  'noda.chiba.jp' => 1,
-  'oamishirasato.chiba.jp' => 1,
-  'omigawa.chiba.jp' => 1,
-  'onjuku.chiba.jp' => 1,
-  'otaki.chiba.jp' => 1,
-  'sakae.chiba.jp' => 1,
-  'sakura.chiba.jp' => 1,
-  'shimofusa.chiba.jp' => 1,
-  'shirako.chiba.jp' => 1,
-  'shiroi.chiba.jp' => 1,
-  'shisui.chiba.jp' => 1,
-  'sodegaura.chiba.jp' => 1,
-  'sosa.chiba.jp' => 1,
-  'tako.chiba.jp' => 1,
-  'tateyama.chiba.jp' => 1,
-  'togane.chiba.jp' => 1,
-  'tohnosho.chiba.jp' => 1,
-  'tomisato.chiba.jp' => 1,
-  'urayasu.chiba.jp' => 1,
-  'yachimata.chiba.jp' => 1,
-  'yachiyo.chiba.jp' => 1,
-  'yokaichiba.chiba.jp' => 1,
-  'yokoshibahikari.chiba.jp' => 1,
-  'yotsukaido.chiba.jp' => 1,
-  'ainan.ehime.jp' => 1,
-  'honai.ehime.jp' => 1,
-  'ikata.ehime.jp' => 1,
-  'imabari.ehime.jp' => 1,
-  'iyo.ehime.jp' => 1,
-  'kamijima.ehime.jp' => 1,
-  'kihoku.ehime.jp' => 1,
-  'kumakogen.ehime.jp' => 1,
-  'masaki.ehime.jp' => 1,
-  'matsuno.ehime.jp' => 1,
-  'matsuyama.ehime.jp' => 1,
-  'namikata.ehime.jp' => 1,
-  'niihama.ehime.jp' => 1,
-  'ozu.ehime.jp' => 1,
-  'saijo.ehime.jp' => 1,
-  'seiyo.ehime.jp' => 1,
-  'shikokuchuo.ehime.jp' => 1,
-  'tobe.ehime.jp' => 1,
-  'toon.ehime.jp' => 1,
-  'uchiko.ehime.jp' => 1,
-  'uwajima.ehime.jp' => 1,
-  'yawatahama.ehime.jp' => 1,
-  'echizen.fukui.jp' => 1,
-  'eiheiji.fukui.jp' => 1,
-  'fukui.fukui.jp' => 1,
-  'ikeda.fukui.jp' => 1,
-  'katsuyama.fukui.jp' => 1,
-  'mihama.fukui.jp' => 1,
-  'minamiechizen.fukui.jp' => 1,
-  'obama.fukui.jp' => 1,
-  'ohi.fukui.jp' => 1,
-  'ono.fukui.jp' => 1,
-  'sabae.fukui.jp' => 1,
-  'sakai.fukui.jp' => 1,
-  'takahama.fukui.jp' => 1,
-  'tsuruga.fukui.jp' => 1,
-  'wakasa.fukui.jp' => 1,
-  'ashiya.fukuoka.jp' => 1,
-  'buzen.fukuoka.jp' => 1,
-  'chikugo.fukuoka.jp' => 1,
-  'chikuho.fukuoka.jp' => 1,
-  'chikujo.fukuoka.jp' => 1,
-  'chikushino.fukuoka.jp' => 1,
-  'chikuzen.fukuoka.jp' => 1,
-  'chuo.fukuoka.jp' => 1,
-  'dazaifu.fukuoka.jp' => 1,
-  'fukuchi.fukuoka.jp' => 1,
-  'hakata.fukuoka.jp' => 1,
-  'higashi.fukuoka.jp' => 1,
-  'hirokawa.fukuoka.jp' => 1,
-  'hisayama.fukuoka.jp' => 1,
-  'iizuka.fukuoka.jp' => 1,
-  'inatsuki.fukuoka.jp' => 1,
-  'kaho.fukuoka.jp' => 1,
-  'kasuga.fukuoka.jp' => 1,
-  'kasuya.fukuoka.jp' => 1,
-  'kawara.fukuoka.jp' => 1,
-  'keisen.fukuoka.jp' => 1,
-  'koga.fukuoka.jp' => 1,
-  'kurate.fukuoka.jp' => 1,
-  'kurogi.fukuoka.jp' => 1,
-  'kurume.fukuoka.jp' => 1,
-  'minami.fukuoka.jp' => 1,
-  'miyako.fukuoka.jp' => 1,
-  'miyama.fukuoka.jp' => 1,
-  'miyawaka.fukuoka.jp' => 1,
-  'mizumaki.fukuoka.jp' => 1,
-  'munakata.fukuoka.jp' => 1,
-  'nakagawa.fukuoka.jp' => 1,
-  'nakama.fukuoka.jp' => 1,
-  'nishi.fukuoka.jp' => 1,
-  'nogata.fukuoka.jp' => 1,
-  'ogori.fukuoka.jp' => 1,
-  'okagaki.fukuoka.jp' => 1,
-  'okawa.fukuoka.jp' => 1,
-  'oki.fukuoka.jp' => 1,
-  'omuta.fukuoka.jp' => 1,
-  'onga.fukuoka.jp' => 1,
-  'onojo.fukuoka.jp' => 1,
-  'oto.fukuoka.jp' => 1,
-  'saigawa.fukuoka.jp' => 1,
-  'sasaguri.fukuoka.jp' => 1,
-  'shingu.fukuoka.jp' => 1,
-  'shinyoshitomi.fukuoka.jp' => 1,
-  'shonai.fukuoka.jp' => 1,
-  'soeda.fukuoka.jp' => 1,
-  'sue.fukuoka.jp' => 1,
-  'tachiarai.fukuoka.jp' => 1,
-  'tagawa.fukuoka.jp' => 1,
-  'takata.fukuoka.jp' => 1,
-  'toho.fukuoka.jp' => 1,
-  'toyotsu.fukuoka.jp' => 1,
-  'tsuiki.fukuoka.jp' => 1,
-  'ukiha.fukuoka.jp' => 1,
-  'umi.fukuoka.jp' => 1,
-  'usui.fukuoka.jp' => 1,
-  'yamada.fukuoka.jp' => 1,
-  'yame.fukuoka.jp' => 1,
-  'yanagawa.fukuoka.jp' => 1,
-  'yukuhashi.fukuoka.jp' => 1,
-  'aizubange.fukushima.jp' => 1,
-  'aizumisato.fukushima.jp' => 1,
-  'aizuwakamatsu.fukushima.jp' => 1,
-  'asakawa.fukushima.jp' => 1,
-  'bandai.fukushima.jp' => 1,
-  'date.fukushima.jp' => 1,
-  'fukushima.fukushima.jp' => 1,
-  'furudono.fukushima.jp' => 1,
-  'futaba.fukushima.jp' => 1,
-  'hanawa.fukushima.jp' => 1,
-  'higashi.fukushima.jp' => 1,
-  'hirata.fukushima.jp' => 1,
-  'hirono.fukushima.jp' => 1,
-  'iitate.fukushima.jp' => 1,
-  'inawashiro.fukushima.jp' => 1,
-  'ishikawa.fukushima.jp' => 1,
-  'iwaki.fukushima.jp' => 1,
-  'izumizaki.fukushima.jp' => 1,
-  'kagamiishi.fukushima.jp' => 1,
-  'kaneyama.fukushima.jp' => 1,
-  'kawamata.fukushima.jp' => 1,
-  'kitakata.fukushima.jp' => 1,
-  'kitashiobara.fukushima.jp' => 1,
-  'koori.fukushima.jp' => 1,
-  'koriyama.fukushima.jp' => 1,
-  'kunimi.fukushima.jp' => 1,
-  'miharu.fukushima.jp' => 1,
-  'mishima.fukushima.jp' => 1,
-  'namie.fukushima.jp' => 1,
-  'nango.fukushima.jp' => 1,
-  'nishiaizu.fukushima.jp' => 1,
-  'nishigo.fukushima.jp' => 1,
-  'okuma.fukushima.jp' => 1,
-  'omotego.fukushima.jp' => 1,
-  'ono.fukushima.jp' => 1,
-  'otama.fukushima.jp' => 1,
-  'samegawa.fukushima.jp' => 1,
-  'shimogo.fukushima.jp' => 1,
-  'shirakawa.fukushima.jp' => 1,
-  'showa.fukushima.jp' => 1,
-  'soma.fukushima.jp' => 1,
-  'sukagawa.fukushima.jp' => 1,
-  'taishin.fukushima.jp' => 1,
-  'tamakawa.fukushima.jp' => 1,
-  'tanagura.fukushima.jp' => 1,
-  'tenei.fukushima.jp' => 1,
-  'yabuki.fukushima.jp' => 1,
-  'yamato.fukushima.jp' => 1,
-  'yamatsuri.fukushima.jp' => 1,
-  'yanaizu.fukushima.jp' => 1,
-  'yugawa.fukushima.jp' => 1,
-  'anpachi.gifu.jp' => 1,
-  'ena.gifu.jp' => 1,
-  'gifu.gifu.jp' => 1,
-  'ginan.gifu.jp' => 1,
-  'godo.gifu.jp' => 1,
-  'gujo.gifu.jp' => 1,
-  'hashima.gifu.jp' => 1,
-  'hichiso.gifu.jp' => 1,
-  'hida.gifu.jp' => 1,
-  'higashishirakawa.gifu.jp' => 1,
-  'ibigawa.gifu.jp' => 1,
-  'ikeda.gifu.jp' => 1,
-  'kakamigahara.gifu.jp' => 1,
-  'kani.gifu.jp' => 1,
-  'kasahara.gifu.jp' => 1,
-  'kasamatsu.gifu.jp' => 1,
-  'kawaue.gifu.jp' => 1,
-  'kitagata.gifu.jp' => 1,
-  'mino.gifu.jp' => 1,
-  'minokamo.gifu.jp' => 1,
-  'mitake.gifu.jp' => 1,
-  'mizunami.gifu.jp' => 1,
-  'motosu.gifu.jp' => 1,
-  'nakatsugawa.gifu.jp' => 1,
-  'ogaki.gifu.jp' => 1,
-  'sakahogi.gifu.jp' => 1,
-  'seki.gifu.jp' => 1,
-  'sekigahara.gifu.jp' => 1,
-  'shirakawa.gifu.jp' => 1,
-  'tajimi.gifu.jp' => 1,
-  'takayama.gifu.jp' => 1,
-  'tarui.gifu.jp' => 1,
-  'toki.gifu.jp' => 1,
-  'tomika.gifu.jp' => 1,
-  'wanouchi.gifu.jp' => 1,
-  'yamagata.gifu.jp' => 1,
-  'yaotsu.gifu.jp' => 1,
-  'yoro.gifu.jp' => 1,
-  'annaka.gunma.jp' => 1,
-  'chiyoda.gunma.jp' => 1,
-  'fujioka.gunma.jp' => 1,
-  'higashiagatsuma.gunma.jp' => 1,
-  'isesaki.gunma.jp' => 1,
-  'itakura.gunma.jp' => 1,
-  'kanna.gunma.jp' => 1,
-  'kanra.gunma.jp' => 1,
-  'katashina.gunma.jp' => 1,
-  'kawaba.gunma.jp' => 1,
-  'kiryu.gunma.jp' => 1,
-  'kusatsu.gunma.jp' => 1,
-  'maebashi.gunma.jp' => 1,
-  'meiwa.gunma.jp' => 1,
-  'midori.gunma.jp' => 1,
-  'minakami.gunma.jp' => 1,
-  'naganohara.gunma.jp' => 1,
-  'nakanojo.gunma.jp' => 1,
-  'nanmoku.gunma.jp' => 1,
-  'numata.gunma.jp' => 1,
-  'oizumi.gunma.jp' => 1,
-  'ora.gunma.jp' => 1,
-  'ota.gunma.jp' => 1,
-  'shibukawa.gunma.jp' => 1,
-  'shimonita.gunma.jp' => 1,
-  'shinto.gunma.jp' => 1,
-  'showa.gunma.jp' => 1,
-  'takasaki.gunma.jp' => 1,
-  'takayama.gunma.jp' => 1,
-  'tamamura.gunma.jp' => 1,
-  'tatebayashi.gunma.jp' => 1,
-  'tomioka.gunma.jp' => 1,
-  'tsukiyono.gunma.jp' => 1,
-  'tsumagoi.gunma.jp' => 1,
-  'ueno.gunma.jp' => 1,
-  'yoshioka.gunma.jp' => 1,
-  'asaminami.hiroshima.jp' => 1,
-  'daiwa.hiroshima.jp' => 1,
-  'etajima.hiroshima.jp' => 1,
-  'fuchu.hiroshima.jp' => 1,
-  'fukuyama.hiroshima.jp' => 1,
-  'hatsukaichi.hiroshima.jp' => 1,
-  'higashihiroshima.hiroshima.jp' => 1,
-  'hongo.hiroshima.jp' => 1,
-  'jinsekikogen.hiroshima.jp' => 1,
-  'kaita.hiroshima.jp' => 1,
-  'kui.hiroshima.jp' => 1,
-  'kumano.hiroshima.jp' => 1,
-  'kure.hiroshima.jp' => 1,
-  'mihara.hiroshima.jp' => 1,
-  'miyoshi.hiroshima.jp' => 1,
-  'naka.hiroshima.jp' => 1,
-  'onomichi.hiroshima.jp' => 1,
-  'osakikamijima.hiroshima.jp' => 1,
-  'otake.hiroshima.jp' => 1,
-  'saka.hiroshima.jp' => 1,
-  'sera.hiroshima.jp' => 1,
-  'seranishi.hiroshima.jp' => 1,
-  'shinichi.hiroshima.jp' => 1,
-  'shobara.hiroshima.jp' => 1,
-  'takehara.hiroshima.jp' => 1,
-  'abashiri.hokkaido.jp' => 1,
-  'abira.hokkaido.jp' => 1,
-  'aibetsu.hokkaido.jp' => 1,
-  'akabira.hokkaido.jp' => 1,
-  'akkeshi.hokkaido.jp' => 1,
-  'asahikawa.hokkaido.jp' => 1,
-  'ashibetsu.hokkaido.jp' => 1,
-  'ashoro.hokkaido.jp' => 1,
-  'assabu.hokkaido.jp' => 1,
-  'atsuma.hokkaido.jp' => 1,
-  'bibai.hokkaido.jp' => 1,
-  'biei.hokkaido.jp' => 1,
-  'bifuka.hokkaido.jp' => 1,
-  'bihoro.hokkaido.jp' => 1,
-  'biratori.hokkaido.jp' => 1,
-  'chippubetsu.hokkaido.jp' => 1,
-  'chitose.hokkaido.jp' => 1,
-  'date.hokkaido.jp' => 1,
-  'ebetsu.hokkaido.jp' => 1,
-  'embetsu.hokkaido.jp' => 1,
-  'eniwa.hokkaido.jp' => 1,
-  'erimo.hokkaido.jp' => 1,
-  'esan.hokkaido.jp' => 1,
-  'esashi.hokkaido.jp' => 1,
-  'fukagawa.hokkaido.jp' => 1,
-  'fukushima.hokkaido.jp' => 1,
-  'furano.hokkaido.jp' => 1,
-  'furubira.hokkaido.jp' => 1,
-  'haboro.hokkaido.jp' => 1,
-  'hakodate.hokkaido.jp' => 1,
-  'hamatonbetsu.hokkaido.jp' => 1,
-  'hidaka.hokkaido.jp' => 1,
-  'higashikagura.hokkaido.jp' => 1,
-  'higashikawa.hokkaido.jp' => 1,
-  'hiroo.hokkaido.jp' => 1,
-  'hokuryu.hokkaido.jp' => 1,
-  'hokuto.hokkaido.jp' => 1,
-  'honbetsu.hokkaido.jp' => 1,
-  'horokanai.hokkaido.jp' => 1,
-  'horonobe.hokkaido.jp' => 1,
-  'ikeda.hokkaido.jp' => 1,
-  'imakane.hokkaido.jp' => 1,
-  'ishikari.hokkaido.jp' => 1,
-  'iwamizawa.hokkaido.jp' => 1,
-  'iwanai.hokkaido.jp' => 1,
-  'kamifurano.hokkaido.jp' => 1,
-  'kamikawa.hokkaido.jp' => 1,
-  'kamishihoro.hokkaido.jp' => 1,
-  'kamisunagawa.hokkaido.jp' => 1,
-  'kamoenai.hokkaido.jp' => 1,
-  'kayabe.hokkaido.jp' => 1,
-  'kembuchi.hokkaido.jp' => 1,
-  'kikonai.hokkaido.jp' => 1,
-  'kimobetsu.hokkaido.jp' => 1,
-  'kitahiroshima.hokkaido.jp' => 1,
-  'kitami.hokkaido.jp' => 1,
-  'kiyosato.hokkaido.jp' => 1,
-  'koshimizu.hokkaido.jp' => 1,
-  'kunneppu.hokkaido.jp' => 1,
-  'kuriyama.hokkaido.jp' => 1,
-  'kuromatsunai.hokkaido.jp' => 1,
-  'kushiro.hokkaido.jp' => 1,
-  'kutchan.hokkaido.jp' => 1,
-  'kyowa.hokkaido.jp' => 1,
-  'mashike.hokkaido.jp' => 1,
-  'matsumae.hokkaido.jp' => 1,
-  'mikasa.hokkaido.jp' => 1,
-  'minamifurano.hokkaido.jp' => 1,
-  'mombetsu.hokkaido.jp' => 1,
-  'moseushi.hokkaido.jp' => 1,
-  'mukawa.hokkaido.jp' => 1,
-  'muroran.hokkaido.jp' => 1,
-  'naie.hokkaido.jp' => 1,
-  'nakagawa.hokkaido.jp' => 1,
-  'nakasatsunai.hokkaido.jp' => 1,
-  'nakatombetsu.hokkaido.jp' => 1,
-  'nanae.hokkaido.jp' => 1,
-  'nanporo.hokkaido.jp' => 1,
-  'nayoro.hokkaido.jp' => 1,
-  'nemuro.hokkaido.jp' => 1,
-  'niikappu.hokkaido.jp' => 1,
-  'niki.hokkaido.jp' => 1,
-  'nishiokoppe.hokkaido.jp' => 1,
-  'noboribetsu.hokkaido.jp' => 1,
-  'numata.hokkaido.jp' => 1,
-  'obihiro.hokkaido.jp' => 1,
-  'obira.hokkaido.jp' => 1,
-  'oketo.hokkaido.jp' => 1,
-  'okoppe.hokkaido.jp' => 1,
-  'otaru.hokkaido.jp' => 1,
-  'otobe.hokkaido.jp' => 1,
-  'otofuke.hokkaido.jp' => 1,
-  'otoineppu.hokkaido.jp' => 1,
-  'oumu.hokkaido.jp' => 1,
-  'ozora.hokkaido.jp' => 1,
-  'pippu.hokkaido.jp' => 1,
-  'rankoshi.hokkaido.jp' => 1,
-  'rebun.hokkaido.jp' => 1,
-  'rikubetsu.hokkaido.jp' => 1,
-  'rishiri.hokkaido.jp' => 1,
-  'rishirifuji.hokkaido.jp' => 1,
-  'saroma.hokkaido.jp' => 1,
-  'sarufutsu.hokkaido.jp' => 1,
-  'shakotan.hokkaido.jp' => 1,
-  'shari.hokkaido.jp' => 1,
-  'shibecha.hokkaido.jp' => 1,
-  'shibetsu.hokkaido.jp' => 1,
-  'shikabe.hokkaido.jp' => 1,
-  'shikaoi.hokkaido.jp' => 1,
-  'shimamaki.hokkaido.jp' => 1,
-  'shimizu.hokkaido.jp' => 1,
-  'shimokawa.hokkaido.jp' => 1,
-  'shinshinotsu.hokkaido.jp' => 1,
-  'shintoku.hokkaido.jp' => 1,
-  'shiranuka.hokkaido.jp' => 1,
-  'shiraoi.hokkaido.jp' => 1,
-  'shiriuchi.hokkaido.jp' => 1,
-  'sobetsu.hokkaido.jp' => 1,
-  'sunagawa.hokkaido.jp' => 1,
-  'taiki.hokkaido.jp' => 1,
-  'takasu.hokkaido.jp' => 1,
-  'takikawa.hokkaido.jp' => 1,
-  'takinoue.hokkaido.jp' => 1,
-  'teshikaga.hokkaido.jp' => 1,
-  'tobetsu.hokkaido.jp' => 1,
-  'tohma.hokkaido.jp' => 1,
-  'tomakomai.hokkaido.jp' => 1,
-  'tomari.hokkaido.jp' => 1,
-  'toya.hokkaido.jp' => 1,
-  'toyako.hokkaido.jp' => 1,
-  'toyotomi.hokkaido.jp' => 1,
-  'toyoura.hokkaido.jp' => 1,
-  'tsubetsu.hokkaido.jp' => 1,
-  'tsukigata.hokkaido.jp' => 1,
-  'urakawa.hokkaido.jp' => 1,
-  'urausu.hokkaido.jp' => 1,
-  'uryu.hokkaido.jp' => 1,
-  'utashinai.hokkaido.jp' => 1,
-  'wakkanai.hokkaido.jp' => 1,
-  'wassamu.hokkaido.jp' => 1,
-  'yakumo.hokkaido.jp' => 1,
-  'yoichi.hokkaido.jp' => 1,
-  'aioi.hyogo.jp' => 1,
-  'akashi.hyogo.jp' => 1,
-  'ako.hyogo.jp' => 1,
-  'amagasaki.hyogo.jp' => 1,
-  'aogaki.hyogo.jp' => 1,
-  'asago.hyogo.jp' => 1,
-  'ashiya.hyogo.jp' => 1,
-  'awaji.hyogo.jp' => 1,
-  'fukusaki.hyogo.jp' => 1,
-  'goshiki.hyogo.jp' => 1,
-  'harima.hyogo.jp' => 1,
-  'himeji.hyogo.jp' => 1,
-  'ichikawa.hyogo.jp' => 1,
-  'inagawa.hyogo.jp' => 1,
-  'itami.hyogo.jp' => 1,
-  'kakogawa.hyogo.jp' => 1,
-  'kamigori.hyogo.jp' => 1,
-  'kamikawa.hyogo.jp' => 1,
-  'kasai.hyogo.jp' => 1,
-  'kasuga.hyogo.jp' => 1,
-  'kawanishi.hyogo.jp' => 1,
-  'miki.hyogo.jp' => 1,
-  'minamiawaji.hyogo.jp' => 1,
-  'nishinomiya.hyogo.jp' => 1,
-  'nishiwaki.hyogo.jp' => 1,
-  'ono.hyogo.jp' => 1,
-  'sanda.hyogo.jp' => 1,
-  'sannan.hyogo.jp' => 1,
-  'sasayama.hyogo.jp' => 1,
-  'sayo.hyogo.jp' => 1,
-  'shingu.hyogo.jp' => 1,
-  'shinonsen.hyogo.jp' => 1,
-  'shiso.hyogo.jp' => 1,
-  'sumoto.hyogo.jp' => 1,
-  'taishi.hyogo.jp' => 1,
-  'taka.hyogo.jp' => 1,
-  'takarazuka.hyogo.jp' => 1,
-  'takasago.hyogo.jp' => 1,
-  'takino.hyogo.jp' => 1,
-  'tamba.hyogo.jp' => 1,
-  'tatsuno.hyogo.jp' => 1,
-  'toyooka.hyogo.jp' => 1,
-  'yabu.hyogo.jp' => 1,
-  'yashiro.hyogo.jp' => 1,
-  'yoka.hyogo.jp' => 1,
-  'yokawa.hyogo.jp' => 1,
-  'ami.ibaraki.jp' => 1,
-  'asahi.ibaraki.jp' => 1,
-  'bando.ibaraki.jp' => 1,
-  'chikusei.ibaraki.jp' => 1,
-  'daigo.ibaraki.jp' => 1,
-  'fujishiro.ibaraki.jp' => 1,
-  'hitachi.ibaraki.jp' => 1,
-  'hitachinaka.ibaraki.jp' => 1,
-  'hitachiomiya.ibaraki.jp' => 1,
-  'hitachiota.ibaraki.jp' => 1,
-  'ibaraki.ibaraki.jp' => 1,
-  'ina.ibaraki.jp' => 1,
-  'inashiki.ibaraki.jp' => 1,
-  'itako.ibaraki.jp' => 1,
-  'iwama.ibaraki.jp' => 1,
-  'joso.ibaraki.jp' => 1,
-  'kamisu.ibaraki.jp' => 1,
-  'kasama.ibaraki.jp' => 1,
-  'kashima.ibaraki.jp' => 1,
-  'kasumigaura.ibaraki.jp' => 1,
-  'koga.ibaraki.jp' => 1,
-  'miho.ibaraki.jp' => 1,
-  'mito.ibaraki.jp' => 1,
-  'moriya.ibaraki.jp' => 1,
-  'naka.ibaraki.jp' => 1,
-  'namegata.ibaraki.jp' => 1,
-  'oarai.ibaraki.jp' => 1,
-  'ogawa.ibaraki.jp' => 1,
-  'omitama.ibaraki.jp' => 1,
-  'ryugasaki.ibaraki.jp' => 1,
-  'sakai.ibaraki.jp' => 1,
-  'sakuragawa.ibaraki.jp' => 1,
-  'shimodate.ibaraki.jp' => 1,
-  'shimotsuma.ibaraki.jp' => 1,
-  'shirosato.ibaraki.jp' => 1,
-  'sowa.ibaraki.jp' => 1,
-  'suifu.ibaraki.jp' => 1,
-  'takahagi.ibaraki.jp' => 1,
-  'tamatsukuri.ibaraki.jp' => 1,
-  'tokai.ibaraki.jp' => 1,
-  'tomobe.ibaraki.jp' => 1,
-  'tone.ibaraki.jp' => 1,
-  'toride.ibaraki.jp' => 1,
-  'tsuchiura.ibaraki.jp' => 1,
-  'tsukuba.ibaraki.jp' => 1,
-  'uchihara.ibaraki.jp' => 1,
-  'ushiku.ibaraki.jp' => 1,
-  'yachiyo.ibaraki.jp' => 1,
-  'yamagata.ibaraki.jp' => 1,
-  'yawara.ibaraki.jp' => 1,
-  'yuki.ibaraki.jp' => 1,
-  'anamizu.ishikawa.jp' => 1,
-  'hakui.ishikawa.jp' => 1,
-  'hakusan.ishikawa.jp' => 1,
-  'kaga.ishikawa.jp' => 1,
-  'kahoku.ishikawa.jp' => 1,
-  'kanazawa.ishikawa.jp' => 1,
-  'kawakita.ishikawa.jp' => 1,
-  'komatsu.ishikawa.jp' => 1,
-  'nakanoto.ishikawa.jp' => 1,
-  'nanao.ishikawa.jp' => 1,
-  'nomi.ishikawa.jp' => 1,
-  'nonoichi.ishikawa.jp' => 1,
-  'noto.ishikawa.jp' => 1,
-  'shika.ishikawa.jp' => 1,
-  'suzu.ishikawa.jp' => 1,
-  'tsubata.ishikawa.jp' => 1,
-  'tsurugi.ishikawa.jp' => 1,
-  'uchinada.ishikawa.jp' => 1,
-  'wajima.ishikawa.jp' => 1,
-  'fudai.iwate.jp' => 1,
-  'fujisawa.iwate.jp' => 1,
-  'hanamaki.iwate.jp' => 1,
-  'hiraizumi.iwate.jp' => 1,
-  'hirono.iwate.jp' => 1,
-  'ichinohe.iwate.jp' => 1,
-  'ichinoseki.iwate.jp' => 1,
-  'iwaizumi.iwate.jp' => 1,
-  'iwate.iwate.jp' => 1,
-  'joboji.iwate.jp' => 1,
-  'kamaishi.iwate.jp' => 1,
-  'kanegasaki.iwate.jp' => 1,
-  'karumai.iwate.jp' => 1,
-  'kawai.iwate.jp' => 1,
-  'kitakami.iwate.jp' => 1,
-  'kuji.iwate.jp' => 1,
-  'kunohe.iwate.jp' => 1,
-  'kuzumaki.iwate.jp' => 1,
-  'miyako.iwate.jp' => 1,
-  'mizusawa.iwate.jp' => 1,
-  'morioka.iwate.jp' => 1,
-  'ninohe.iwate.jp' => 1,
-  'noda.iwate.jp' => 1,
-  'ofunato.iwate.jp' => 1,
-  'oshu.iwate.jp' => 1,
-  'otsuchi.iwate.jp' => 1,
-  'rikuzentakata.iwate.jp' => 1,
-  'shiwa.iwate.jp' => 1,
-  'shizukuishi.iwate.jp' => 1,
-  'sumita.iwate.jp' => 1,
-  'tanohata.iwate.jp' => 1,
-  'tono.iwate.jp' => 1,
-  'yahaba.iwate.jp' => 1,
-  'yamada.iwate.jp' => 1,
-  'ayagawa.kagawa.jp' => 1,
-  'higashikagawa.kagawa.jp' => 1,
-  'kanonji.kagawa.jp' => 1,
-  'kotohira.kagawa.jp' => 1,
-  'manno.kagawa.jp' => 1,
-  'marugame.kagawa.jp' => 1,
-  'mitoyo.kagawa.jp' => 1,
-  'naoshima.kagawa.jp' => 1,
-  'sanuki.kagawa.jp' => 1,
-  'tadotsu.kagawa.jp' => 1,
-  'takamatsu.kagawa.jp' => 1,
-  'tonosho.kagawa.jp' => 1,
-  'uchinomi.kagawa.jp' => 1,
-  'utazu.kagawa.jp' => 1,
-  'zentsuji.kagawa.jp' => 1,
-  'akune.kagoshima.jp' => 1,
-  'amami.kagoshima.jp' => 1,
-  'hioki.kagoshima.jp' => 1,
-  'isa.kagoshima.jp' => 1,
-  'isen.kagoshima.jp' => 1,
-  'izumi.kagoshima.jp' => 1,
-  'kagoshima.kagoshima.jp' => 1,
-  'kanoya.kagoshima.jp' => 1,
-  'kawanabe.kagoshima.jp' => 1,
-  'kinko.kagoshima.jp' => 1,
-  'kouyama.kagoshima.jp' => 1,
-  'makurazaki.kagoshima.jp' => 1,
-  'matsumoto.kagoshima.jp' => 1,
-  'minamitane.kagoshima.jp' => 1,
-  'nakatane.kagoshima.jp' => 1,
-  'nishinoomote.kagoshima.jp' => 1,
-  'satsumasendai.kagoshima.jp' => 1,
-  'soo.kagoshima.jp' => 1,
-  'tarumizu.kagoshima.jp' => 1,
-  'yusui.kagoshima.jp' => 1,
-  'aikawa.kanagawa.jp' => 1,
-  'atsugi.kanagawa.jp' => 1,
-  'ayase.kanagawa.jp' => 1,
-  'chigasaki.kanagawa.jp' => 1,
-  'ebina.kanagawa.jp' => 1,
-  'fujisawa.kanagawa.jp' => 1,
-  'hadano.kanagawa.jp' => 1,
-  'hakone.kanagawa.jp' => 1,
-  'hiratsuka.kanagawa.jp' => 1,
-  'isehara.kanagawa.jp' => 1,
-  'kaisei.kanagawa.jp' => 1,
-  'kamakura.kanagawa.jp' => 1,
-  'kiyokawa.kanagawa.jp' => 1,
-  'matsuda.kanagawa.jp' => 1,
-  'minamiashigara.kanagawa.jp' => 1,
-  'miura.kanagawa.jp' => 1,
-  'nakai.kanagawa.jp' => 1,
-  'ninomiya.kanagawa.jp' => 1,
-  'odawara.kanagawa.jp' => 1,
-  'oi.kanagawa.jp' => 1,
-  'oiso.kanagawa.jp' => 1,
-  'sagamihara.kanagawa.jp' => 1,
-  'samukawa.kanagawa.jp' => 1,
-  'tsukui.kanagawa.jp' => 1,
-  'yamakita.kanagawa.jp' => 1,
-  'yamato.kanagawa.jp' => 1,
-  'yokosuka.kanagawa.jp' => 1,
-  'yugawara.kanagawa.jp' => 1,
-  'zama.kanagawa.jp' => 1,
-  'zushi.kanagawa.jp' => 1,
-  'aki.kochi.jp' => 1,
-  'geisei.kochi.jp' => 1,
-  'hidaka.kochi.jp' => 1,
-  'higashitsuno.kochi.jp' => 1,
-  'ino.kochi.jp' => 1,
-  'kagami.kochi.jp' => 1,
-  'kami.kochi.jp' => 1,
-  'kitagawa.kochi.jp' => 1,
-  'kochi.kochi.jp' => 1,
-  'mihara.kochi.jp' => 1,
-  'motoyama.kochi.jp' => 1,
-  'muroto.kochi.jp' => 1,
-  'nahari.kochi.jp' => 1,
-  'nakamura.kochi.jp' => 1,
-  'nankoku.kochi.jp' => 1,
-  'nishitosa.kochi.jp' => 1,
-  'niyodogawa.kochi.jp' => 1,
-  'ochi.kochi.jp' => 1,
-  'okawa.kochi.jp' => 1,
-  'otoyo.kochi.jp' => 1,
-  'otsuki.kochi.jp' => 1,
-  'sakawa.kochi.jp' => 1,
-  'sukumo.kochi.jp' => 1,
-  'susaki.kochi.jp' => 1,
-  'tosa.kochi.jp' => 1,
-  'tosashimizu.kochi.jp' => 1,
-  'toyo.kochi.jp' => 1,
-  'tsuno.kochi.jp' => 1,
-  'umaji.kochi.jp' => 1,
-  'yasuda.kochi.jp' => 1,
-  'yusuhara.kochi.jp' => 1,
-  'amakusa.kumamoto.jp' => 1,
-  'arao.kumamoto.jp' => 1,
-  'aso.kumamoto.jp' => 1,
-  'choyo.kumamoto.jp' => 1,
-  'gyokuto.kumamoto.jp' => 1,
-  'kamiamakusa.kumamoto.jp' => 1,
-  'kikuchi.kumamoto.jp' => 1,
-  'kumamoto.kumamoto.jp' => 1,
-  'mashiki.kumamoto.jp' => 1,
-  'mifune.kumamoto.jp' => 1,
-  'minamata.kumamoto.jp' => 1,
-  'minamioguni.kumamoto.jp' => 1,
-  'nagasu.kumamoto.jp' => 1,
-  'nishihara.kumamoto.jp' => 1,
-  'oguni.kumamoto.jp' => 1,
-  'ozu.kumamoto.jp' => 1,
-  'sumoto.kumamoto.jp' => 1,
-  'takamori.kumamoto.jp' => 1,
-  'uki.kumamoto.jp' => 1,
-  'uto.kumamoto.jp' => 1,
-  'yamaga.kumamoto.jp' => 1,
-  'yamato.kumamoto.jp' => 1,
-  'yatsushiro.kumamoto.jp' => 1,
-  'ayabe.kyoto.jp' => 1,
-  'fukuchiyama.kyoto.jp' => 1,
-  'higashiyama.kyoto.jp' => 1,
-  'ide.kyoto.jp' => 1,
-  'ine.kyoto.jp' => 1,
-  'joyo.kyoto.jp' => 1,
-  'kameoka.kyoto.jp' => 1,
-  'kamo.kyoto.jp' => 1,
-  'kita.kyoto.jp' => 1,
-  'kizu.kyoto.jp' => 1,
-  'kumiyama.kyoto.jp' => 1,
-  'kyotamba.kyoto.jp' => 1,
-  'kyotanabe.kyoto.jp' => 1,
-  'kyotango.kyoto.jp' => 1,
-  'maizuru.kyoto.jp' => 1,
-  'minami.kyoto.jp' => 1,
-  'minamiyamashiro.kyoto.jp' => 1,
-  'miyazu.kyoto.jp' => 1,
-  'muko.kyoto.jp' => 1,
-  'nagaokakyo.kyoto.jp' => 1,
-  'nakagyo.kyoto.jp' => 1,
-  'nantan.kyoto.jp' => 1,
-  'oyamazaki.kyoto.jp' => 1,
-  'sakyo.kyoto.jp' => 1,
-  'seika.kyoto.jp' => 1,
-  'tanabe.kyoto.jp' => 1,
-  'uji.kyoto.jp' => 1,
-  'ujitawara.kyoto.jp' => 1,
-  'wazuka.kyoto.jp' => 1,
-  'yamashina.kyoto.jp' => 1,
-  'yawata.kyoto.jp' => 1,
-  'asahi.mie.jp' => 1,
-  'inabe.mie.jp' => 1,
-  'ise.mie.jp' => 1,
-  'kameyama.mie.jp' => 1,
-  'kawagoe.mie.jp' => 1,
-  'kiho.mie.jp' => 1,
-  'kisosaki.mie.jp' => 1,
-  'kiwa.mie.jp' => 1,
-  'komono.mie.jp' => 1,
-  'kumano.mie.jp' => 1,
-  'kuwana.mie.jp' => 1,
-  'matsusaka.mie.jp' => 1,
-  'meiwa.mie.jp' => 1,
-  'mihama.mie.jp' => 1,
-  'minamiise.mie.jp' => 1,
-  'misugi.mie.jp' => 1,
-  'miyama.mie.jp' => 1,
-  'nabari.mie.jp' => 1,
-  'shima.mie.jp' => 1,
-  'suzuka.mie.jp' => 1,
-  'tado.mie.jp' => 1,
-  'taiki.mie.jp' => 1,
-  'taki.mie.jp' => 1,
-  'tamaki.mie.jp' => 1,
-  'toba.mie.jp' => 1,
-  'tsu.mie.jp' => 1,
-  'udono.mie.jp' => 1,
-  'ureshino.mie.jp' => 1,
-  'watarai.mie.jp' => 1,
-  'yokkaichi.mie.jp' => 1,
-  'furukawa.miyagi.jp' => 1,
-  'higashimatsushima.miyagi.jp' => 1,
-  'ishinomaki.miyagi.jp' => 1,
-  'iwanuma.miyagi.jp' => 1,
-  'kakuda.miyagi.jp' => 1,
-  'kami.miyagi.jp' => 1,
-  'kawasaki.miyagi.jp' => 1,
-  'marumori.miyagi.jp' => 1,
-  'matsushima.miyagi.jp' => 1,
-  'minamisanriku.miyagi.jp' => 1,
-  'misato.miyagi.jp' => 1,
-  'murata.miyagi.jp' => 1,
-  'natori.miyagi.jp' => 1,
-  'ogawara.miyagi.jp' => 1,
-  'ohira.miyagi.jp' => 1,
-  'onagawa.miyagi.jp' => 1,
-  'osaki.miyagi.jp' => 1,
-  'rifu.miyagi.jp' => 1,
-  'semine.miyagi.jp' => 1,
-  'shibata.miyagi.jp' => 1,
-  'shichikashuku.miyagi.jp' => 1,
-  'shikama.miyagi.jp' => 1,
-  'shiogama.miyagi.jp' => 1,
-  'shiroishi.miyagi.jp' => 1,
-  'tagajo.miyagi.jp' => 1,
-  'taiwa.miyagi.jp' => 1,
-  'tome.miyagi.jp' => 1,
-  'tomiya.miyagi.jp' => 1,
-  'wakuya.miyagi.jp' => 1,
-  'watari.miyagi.jp' => 1,
-  'yamamoto.miyagi.jp' => 1,
-  'zao.miyagi.jp' => 1,
-  'aya.miyazaki.jp' => 1,
-  'ebino.miyazaki.jp' => 1,
-  'gokase.miyazaki.jp' => 1,
-  'hyuga.miyazaki.jp' => 1,
-  'kadogawa.miyazaki.jp' => 1,
-  'kawaminami.miyazaki.jp' => 1,
-  'kijo.miyazaki.jp' => 1,
-  'kitagawa.miyazaki.jp' => 1,
-  'kitakata.miyazaki.jp' => 1,
-  'kitaura.miyazaki.jp' => 1,
-  'kobayashi.miyazaki.jp' => 1,
-  'kunitomi.miyazaki.jp' => 1,
-  'kushima.miyazaki.jp' => 1,
-  'mimata.miyazaki.jp' => 1,
-  'miyakonojo.miyazaki.jp' => 1,
-  'miyazaki.miyazaki.jp' => 1,
-  'morotsuka.miyazaki.jp' => 1,
-  'nichinan.miyazaki.jp' => 1,
-  'nishimera.miyazaki.jp' => 1,
-  'nobeoka.miyazaki.jp' => 1,
-  'saito.miyazaki.jp' => 1,
-  'shiiba.miyazaki.jp' => 1,
-  'shintomi.miyazaki.jp' => 1,
-  'takaharu.miyazaki.jp' => 1,
-  'takanabe.miyazaki.jp' => 1,
-  'takazaki.miyazaki.jp' => 1,
-  'tsuno.miyazaki.jp' => 1,
-  'achi.nagano.jp' => 1,
-  'agematsu.nagano.jp' => 1,
-  'anan.nagano.jp' => 1,
-  'aoki.nagano.jp' => 1,
-  'asahi.nagano.jp' => 1,
-  'azumino.nagano.jp' => 1,
-  'chikuhoku.nagano.jp' => 1,
-  'chikuma.nagano.jp' => 1,
-  'chino.nagano.jp' => 1,
-  'fujimi.nagano.jp' => 1,
-  'hakuba.nagano.jp' => 1,
-  'hara.nagano.jp' => 1,
-  'hiraya.nagano.jp' => 1,
-  'iida.nagano.jp' => 1,
-  'iijima.nagano.jp' => 1,
-  'iiyama.nagano.jp' => 1,
-  'iizuna.nagano.jp' => 1,
-  'ikeda.nagano.jp' => 1,
-  'ikusaka.nagano.jp' => 1,
-  'ina.nagano.jp' => 1,
-  'karuizawa.nagano.jp' => 1,
-  'kawakami.nagano.jp' => 1,
-  'kiso.nagano.jp' => 1,
-  'kisofukushima.nagano.jp' => 1,
-  'kitaaiki.nagano.jp' => 1,
-  'komagane.nagano.jp' => 1,
-  'komoro.nagano.jp' => 1,
-  'matsukawa.nagano.jp' => 1,
-  'matsumoto.nagano.jp' => 1,
-  'miasa.nagano.jp' => 1,
-  'minamiaiki.nagano.jp' => 1,
-  'minamimaki.nagano.jp' => 1,
-  'minamiminowa.nagano.jp' => 1,
-  'minowa.nagano.jp' => 1,
-  'miyada.nagano.jp' => 1,
-  'miyota.nagano.jp' => 1,
-  'mochizuki.nagano.jp' => 1,
-  'nagano.nagano.jp' => 1,
-  'nagawa.nagano.jp' => 1,
-  'nagiso.nagano.jp' => 1,
-  'nakagawa.nagano.jp' => 1,
-  'nakano.nagano.jp' => 1,
-  'nozawaonsen.nagano.jp' => 1,
-  'obuse.nagano.jp' => 1,
-  'ogawa.nagano.jp' => 1,
-  'okaya.nagano.jp' => 1,
-  'omachi.nagano.jp' => 1,
-  'omi.nagano.jp' => 1,
-  'ookuwa.nagano.jp' => 1,
-  'ooshika.nagano.jp' => 1,
-  'otaki.nagano.jp' => 1,
-  'otari.nagano.jp' => 1,
-  'sakae.nagano.jp' => 1,
-  'sakaki.nagano.jp' => 1,
-  'saku.nagano.jp' => 1,
-  'sakuho.nagano.jp' => 1,
-  'shimosuwa.nagano.jp' => 1,
-  'shinanomachi.nagano.jp' => 1,
-  'shiojiri.nagano.jp' => 1,
-  'suwa.nagano.jp' => 1,
-  'suzaka.nagano.jp' => 1,
-  'takagi.nagano.jp' => 1,
-  'takamori.nagano.jp' => 1,
-  'takayama.nagano.jp' => 1,
-  'tateshina.nagano.jp' => 1,
-  'tatsuno.nagano.jp' => 1,
-  'togakushi.nagano.jp' => 1,
-  'togura.nagano.jp' => 1,
-  'tomi.nagano.jp' => 1,
-  'ueda.nagano.jp' => 1,
-  'wada.nagano.jp' => 1,
-  'yamagata.nagano.jp' => 1,
-  'yamanouchi.nagano.jp' => 1,
-  'yasaka.nagano.jp' => 1,
-  'yasuoka.nagano.jp' => 1,
-  'chijiwa.nagasaki.jp' => 1,
-  'futsu.nagasaki.jp' => 1,
-  'goto.nagasaki.jp' => 1,
-  'hasami.nagasaki.jp' => 1,
-  'hirado.nagasaki.jp' => 1,
-  'iki.nagasaki.jp' => 1,
-  'isahaya.nagasaki.jp' => 1,
-  'kawatana.nagasaki.jp' => 1,
-  'kuchinotsu.nagasaki.jp' => 1,
-  'matsuura.nagasaki.jp' => 1,
-  'nagasaki.nagasaki.jp' => 1,
-  'obama.nagasaki.jp' => 1,
-  'omura.nagasaki.jp' => 1,
-  'oseto.nagasaki.jp' => 1,
-  'saikai.nagasaki.jp' => 1,
-  'sasebo.nagasaki.jp' => 1,
-  'seihi.nagasaki.jp' => 1,
-  'shimabara.nagasaki.jp' => 1,
-  'shinkamigoto.nagasaki.jp' => 1,
-  'togitsu.nagasaki.jp' => 1,
-  'tsushima.nagasaki.jp' => 1,
-  'unzen.nagasaki.jp' => 1,
-  'ando.nara.jp' => 1,
-  'gose.nara.jp' => 1,
-  'heguri.nara.jp' => 1,
-  'higashiyoshino.nara.jp' => 1,
-  'ikaruga.nara.jp' => 1,
-  'ikoma.nara.jp' => 1,
-  'kamikitayama.nara.jp' => 1,
-  'kanmaki.nara.jp' => 1,
-  'kashiba.nara.jp' => 1,
-  'kashihara.nara.jp' => 1,
-  'katsuragi.nara.jp' => 1,
-  'kawai.nara.jp' => 1,
-  'kawakami.nara.jp' => 1,
-  'kawanishi.nara.jp' => 1,
-  'koryo.nara.jp' => 1,
-  'kurotaki.nara.jp' => 1,
-  'mitsue.nara.jp' => 1,
-  'miyake.nara.jp' => 1,
-  'nara.nara.jp' => 1,
-  'nosegawa.nara.jp' => 1,
-  'oji.nara.jp' => 1,
-  'ouda.nara.jp' => 1,
-  'oyodo.nara.jp' => 1,
-  'sakurai.nara.jp' => 1,
-  'sango.nara.jp' => 1,
-  'shimoichi.nara.jp' => 1,
-  'shimokitayama.nara.jp' => 1,
-  'shinjo.nara.jp' => 1,
-  'soni.nara.jp' => 1,
-  'takatori.nara.jp' => 1,
-  'tawaramoto.nara.jp' => 1,
-  'tenkawa.nara.jp' => 1,
-  'tenri.nara.jp' => 1,
-  'uda.nara.jp' => 1,
-  'yamatokoriyama.nara.jp' => 1,
-  'yamatotakada.nara.jp' => 1,
-  'yamazoe.nara.jp' => 1,
-  'yoshino.nara.jp' => 1,
-  'aga.niigata.jp' => 1,
-  'agano.niigata.jp' => 1,
-  'gosen.niigata.jp' => 1,
-  'itoigawa.niigata.jp' => 1,
-  'izumozaki.niigata.jp' => 1,
-  'joetsu.niigata.jp' => 1,
-  'kamo.niigata.jp' => 1,
-  'kariwa.niigata.jp' => 1,
-  'kashiwazaki.niigata.jp' => 1,
-  'minamiuonuma.niigata.jp' => 1,
-  'mitsuke.niigata.jp' => 1,
-  'muika.niigata.jp' => 1,
-  'murakami.niigata.jp' => 1,
-  'myoko.niigata.jp' => 1,
-  'nagaoka.niigata.jp' => 1,
-  'niigata.niigata.jp' => 1,
-  'ojiya.niigata.jp' => 1,
-  'omi.niigata.jp' => 1,
-  'sado.niigata.jp' => 1,
-  'sanjo.niigata.jp' => 1,
-  'seiro.niigata.jp' => 1,
-  'seirou.niigata.jp' => 1,
-  'sekikawa.niigata.jp' => 1,
-  'shibata.niigata.jp' => 1,
-  'tagami.niigata.jp' => 1,
-  'tainai.niigata.jp' => 1,
-  'tochio.niigata.jp' => 1,
-  'tokamachi.niigata.jp' => 1,
-  'tsubame.niigata.jp' => 1,
-  'tsunan.niigata.jp' => 1,
-  'uonuma.niigata.jp' => 1,
-  'yahiko.niigata.jp' => 1,
-  'yoita.niigata.jp' => 1,
-  'yuzawa.niigata.jp' => 1,
-  'beppu.oita.jp' => 1,
-  'bungoono.oita.jp' => 1,
-  'bungotakada.oita.jp' => 1,
-  'hasama.oita.jp' => 1,
-  'hiji.oita.jp' => 1,
-  'himeshima.oita.jp' => 1,
-  'hita.oita.jp' => 1,
-  'kamitsue.oita.jp' => 1,
-  'kokonoe.oita.jp' => 1,
-  'kuju.oita.jp' => 1,
-  'kunisaki.oita.jp' => 1,
-  'kusu.oita.jp' => 1,
-  'oita.oita.jp' => 1,
-  'saiki.oita.jp' => 1,
-  'taketa.oita.jp' => 1,
-  'tsukumi.oita.jp' => 1,
-  'usa.oita.jp' => 1,
-  'usuki.oita.jp' => 1,
-  'yufu.oita.jp' => 1,
-  'akaiwa.okayama.jp' => 1,
-  'asakuchi.okayama.jp' => 1,
-  'bizen.okayama.jp' => 1,
-  'hayashima.okayama.jp' => 1,
-  'ibara.okayama.jp' => 1,
-  'kagamino.okayama.jp' => 1,
-  'kasaoka.okayama.jp' => 1,
-  'kibichuo.okayama.jp' => 1,
-  'kumenan.okayama.jp' => 1,
-  'kurashiki.okayama.jp' => 1,
-  'maniwa.okayama.jp' => 1,
-  'misaki.okayama.jp' => 1,
-  'nagi.okayama.jp' => 1,
-  'niimi.okayama.jp' => 1,
-  'nishiawakura.okayama.jp' => 1,
-  'okayama.okayama.jp' => 1,
-  'satosho.okayama.jp' => 1,
-  'setouchi.okayama.jp' => 1,
-  'shinjo.okayama.jp' => 1,
-  'shoo.okayama.jp' => 1,
-  'soja.okayama.jp' => 1,
-  'takahashi.okayama.jp' => 1,
-  'tamano.okayama.jp' => 1,
-  'tsuyama.okayama.jp' => 1,
-  'wake.okayama.jp' => 1,
-  'yakage.okayama.jp' => 1,
-  'aguni.okinawa.jp' => 1,
-  'ginowan.okinawa.jp' => 1,
-  'ginoza.okinawa.jp' => 1,
-  'gushikami.okinawa.jp' => 1,
-  'haebaru.okinawa.jp' => 1,
-  'higashi.okinawa.jp' => 1,
-  'hirara.okinawa.jp' => 1,
-  'iheya.okinawa.jp' => 1,
-  'ishigaki.okinawa.jp' => 1,
-  'ishikawa.okinawa.jp' => 1,
-  'itoman.okinawa.jp' => 1,
-  'izena.okinawa.jp' => 1,
-  'kadena.okinawa.jp' => 1,
-  'kin.okinawa.jp' => 1,
-  'kitadaito.okinawa.jp' => 1,
-  'kitanakagusuku.okinawa.jp' => 1,
-  'kumejima.okinawa.jp' => 1,
-  'kunigami.okinawa.jp' => 1,
-  'minamidaito.okinawa.jp' => 1,
-  'motobu.okinawa.jp' => 1,
-  'nago.okinawa.jp' => 1,
-  'naha.okinawa.jp' => 1,
-  'nakagusuku.okinawa.jp' => 1,
-  'nakijin.okinawa.jp' => 1,
-  'nanjo.okinawa.jp' => 1,
-  'nishihara.okinawa.jp' => 1,
-  'ogimi.okinawa.jp' => 1,
-  'okinawa.okinawa.jp' => 1,
-  'onna.okinawa.jp' => 1,
-  'shimoji.okinawa.jp' => 1,
-  'taketomi.okinawa.jp' => 1,
-  'tarama.okinawa.jp' => 1,
-  'tokashiki.okinawa.jp' => 1,
-  'tomigusuku.okinawa.jp' => 1,
-  'tonaki.okinawa.jp' => 1,
-  'urasoe.okinawa.jp' => 1,
-  'uruma.okinawa.jp' => 1,
-  'yaese.okinawa.jp' => 1,
-  'yomitan.okinawa.jp' => 1,
-  'yonabaru.okinawa.jp' => 1,
-  'yonaguni.okinawa.jp' => 1,
-  'zamami.okinawa.jp' => 1,
-  'abeno.osaka.jp' => 1,
-  'chihayaakasaka.osaka.jp' => 1,
-  'chuo.osaka.jp' => 1,
-  'daito.osaka.jp' => 1,
-  'fujiidera.osaka.jp' => 1,
-  'habikino.osaka.jp' => 1,
-  'hannan.osaka.jp' => 1,
-  'higashiosaka.osaka.jp' => 1,
-  'higashisumiyoshi.osaka.jp' => 1,
-  'higashiyodogawa.osaka.jp' => 1,
-  'hirakata.osaka.jp' => 1,
-  'ibaraki.osaka.jp' => 1,
-  'ikeda.osaka.jp' => 1,
-  'izumi.osaka.jp' => 1,
-  'izumiotsu.osaka.jp' => 1,
-  'izumisano.osaka.jp' => 1,
-  'kadoma.osaka.jp' => 1,
-  'kaizuka.osaka.jp' => 1,
-  'kanan.osaka.jp' => 1,
-  'kashiwara.osaka.jp' => 1,
-  'katano.osaka.jp' => 1,
-  'kawachinagano.osaka.jp' => 1,
-  'kishiwada.osaka.jp' => 1,
-  'kita.osaka.jp' => 1,
-  'kumatori.osaka.jp' => 1,
-  'matsubara.osaka.jp' => 1,
-  'minato.osaka.jp' => 1,
-  'minoh.osaka.jp' => 1,
-  'misaki.osaka.jp' => 1,
-  'moriguchi.osaka.jp' => 1,
-  'neyagawa.osaka.jp' => 1,
-  'nishi.osaka.jp' => 1,
-  'nose.osaka.jp' => 1,
-  'osakasayama.osaka.jp' => 1,
-  'sakai.osaka.jp' => 1,
-  'sayama.osaka.jp' => 1,
-  'sennan.osaka.jp' => 1,
-  'settsu.osaka.jp' => 1,
-  'shijonawate.osaka.jp' => 1,
-  'shimamoto.osaka.jp' => 1,
-  'suita.osaka.jp' => 1,
-  'tadaoka.osaka.jp' => 1,
-  'taishi.osaka.jp' => 1,
-  'tajiri.osaka.jp' => 1,
-  'takaishi.osaka.jp' => 1,
-  'takatsuki.osaka.jp' => 1,
-  'tondabayashi.osaka.jp' => 1,
-  'toyonaka.osaka.jp' => 1,
-  'toyono.osaka.jp' => 1,
-  'yao.osaka.jp' => 1,
-  'ariake.saga.jp' => 1,
-  'arita.saga.jp' => 1,
-  'fukudomi.saga.jp' => 1,
-  'genkai.saga.jp' => 1,
-  'hamatama.saga.jp' => 1,
-  'hizen.saga.jp' => 1,
-  'imari.saga.jp' => 1,
-  'kamimine.saga.jp' => 1,
-  'kanzaki.saga.jp' => 1,
-  'karatsu.saga.jp' => 1,
-  'kashima.saga.jp' => 1,
-  'kitagata.saga.jp' => 1,
-  'kitahata.saga.jp' => 1,
-  'kiyama.saga.jp' => 1,
-  'kouhoku.saga.jp' => 1,
-  'kyuragi.saga.jp' => 1,
-  'nishiarita.saga.jp' => 1,
-  'ogi.saga.jp' => 1,
-  'omachi.saga.jp' => 1,
-  'ouchi.saga.jp' => 1,
-  'saga.saga.jp' => 1,
-  'shiroishi.saga.jp' => 1,
-  'taku.saga.jp' => 1,
-  'tara.saga.jp' => 1,
-  'tosu.saga.jp' => 1,
-  'yoshinogari.saga.jp' => 1,
-  'arakawa.saitama.jp' => 1,
-  'asaka.saitama.jp' => 1,
-  'chichibu.saitama.jp' => 1,
-  'fujimi.saitama.jp' => 1,
-  'fujimino.saitama.jp' => 1,
-  'fukaya.saitama.jp' => 1,
-  'hanno.saitama.jp' => 1,
-  'hanyu.saitama.jp' => 1,
-  'hasuda.saitama.jp' => 1,
-  'hatogaya.saitama.jp' => 1,
-  'hatoyama.saitama.jp' => 1,
-  'hidaka.saitama.jp' => 1,
-  'higashichichibu.saitama.jp' => 1,
-  'higashimatsuyama.saitama.jp' => 1,
-  'honjo.saitama.jp' => 1,
-  'ina.saitama.jp' => 1,
-  'iruma.saitama.jp' => 1,
-  'iwatsuki.saitama.jp' => 1,
-  'kamiizumi.saitama.jp' => 1,
-  'kamikawa.saitama.jp' => 1,
-  'kamisato.saitama.jp' => 1,
-  'kasukabe.saitama.jp' => 1,
-  'kawagoe.saitama.jp' => 1,
-  'kawaguchi.saitama.jp' => 1,
-  'kawajima.saitama.jp' => 1,
-  'kazo.saitama.jp' => 1,
-  'kitamoto.saitama.jp' => 1,
-  'koshigaya.saitama.jp' => 1,
-  'kounosu.saitama.jp' => 1,
-  'kuki.saitama.jp' => 1,
-  'kumagaya.saitama.jp' => 1,
-  'matsubushi.saitama.jp' => 1,
-  'minano.saitama.jp' => 1,
-  'misato.saitama.jp' => 1,
-  'miyashiro.saitama.jp' => 1,
-  'miyoshi.saitama.jp' => 1,
-  'moroyama.saitama.jp' => 1,
-  'nagatoro.saitama.jp' => 1,
-  'namegawa.saitama.jp' => 1,
-  'niiza.saitama.jp' => 1,
-  'ogano.saitama.jp' => 1,
-  'ogawa.saitama.jp' => 1,
-  'ogose.saitama.jp' => 1,
-  'okegawa.saitama.jp' => 1,
-  'omiya.saitama.jp' => 1,
-  'otaki.saitama.jp' => 1,
-  'ranzan.saitama.jp' => 1,
-  'ryokami.saitama.jp' => 1,
-  'saitama.saitama.jp' => 1,
-  'sakado.saitama.jp' => 1,
-  'satte.saitama.jp' => 1,
-  'sayama.saitama.jp' => 1,
-  'shiki.saitama.jp' => 1,
-  'shiraoka.saitama.jp' => 1,
-  'soka.saitama.jp' => 1,
-  'sugito.saitama.jp' => 1,
-  'toda.saitama.jp' => 1,
-  'tokigawa.saitama.jp' => 1,
-  'tokorozawa.saitama.jp' => 1,
-  'tsurugashima.saitama.jp' => 1,
-  'urawa.saitama.jp' => 1,
-  'warabi.saitama.jp' => 1,
-  'yashio.saitama.jp' => 1,
-  'yokoze.saitama.jp' => 1,
-  'yono.saitama.jp' => 1,
-  'yorii.saitama.jp' => 1,
-  'yoshida.saitama.jp' => 1,
-  'yoshikawa.saitama.jp' => 1,
-  'yoshimi.saitama.jp' => 1,
-  'aisho.shiga.jp' => 1,
-  'gamo.shiga.jp' => 1,
-  'higashiomi.shiga.jp' => 1,
-  'hikone.shiga.jp' => 1,
-  'koka.shiga.jp' => 1,
-  'konan.shiga.jp' => 1,
-  'kosei.shiga.jp' => 1,
-  'koto.shiga.jp' => 1,
-  'kusatsu.shiga.jp' => 1,
-  'maibara.shiga.jp' => 1,
-  'moriyama.shiga.jp' => 1,
-  'nagahama.shiga.jp' => 1,
-  'nishiazai.shiga.jp' => 1,
-  'notogawa.shiga.jp' => 1,
-  'omihachiman.shiga.jp' => 1,
-  'otsu.shiga.jp' => 1,
-  'ritto.shiga.jp' => 1,
-  'ryuoh.shiga.jp' => 1,
-  'takashima.shiga.jp' => 1,
-  'takatsuki.shiga.jp' => 1,
-  'torahime.shiga.jp' => 1,
-  'toyosato.shiga.jp' => 1,
-  'yasu.shiga.jp' => 1,
-  'akagi.shimane.jp' => 1,
-  'ama.shimane.jp' => 1,
-  'gotsu.shimane.jp' => 1,
-  'hamada.shimane.jp' => 1,
-  'higashiizumo.shimane.jp' => 1,
-  'hikawa.shimane.jp' => 1,
-  'hikimi.shimane.jp' => 1,
-  'izumo.shimane.jp' => 1,
-  'kakinoki.shimane.jp' => 1,
-  'masuda.shimane.jp' => 1,
-  'matsue.shimane.jp' => 1,
-  'misato.shimane.jp' => 1,
-  'nishinoshima.shimane.jp' => 1,
-  'ohda.shimane.jp' => 1,
-  'okinoshima.shimane.jp' => 1,
-  'okuizumo.shimane.jp' => 1,
-  'shimane.shimane.jp' => 1,
-  'tamayu.shimane.jp' => 1,
-  'tsuwano.shimane.jp' => 1,
-  'unnan.shimane.jp' => 1,
-  'yakumo.shimane.jp' => 1,
-  'yasugi.shimane.jp' => 1,
-  'yatsuka.shimane.jp' => 1,
-  'arai.shizuoka.jp' => 1,
-  'atami.shizuoka.jp' => 1,
-  'fuji.shizuoka.jp' => 1,
-  'fujieda.shizuoka.jp' => 1,
-  'fujikawa.shizuoka.jp' => 1,
-  'fujinomiya.shizuoka.jp' => 1,
-  'fukuroi.shizuoka.jp' => 1,
-  'gotemba.shizuoka.jp' => 1,
-  'haibara.shizuoka.jp' => 1,
-  'hamamatsu.shizuoka.jp' => 1,
-  'higashiizu.shizuoka.jp' => 1,
-  'ito.shizuoka.jp' => 1,
-  'iwata.shizuoka.jp' => 1,
-  'izu.shizuoka.jp' => 1,
-  'izunokuni.shizuoka.jp' => 1,
-  'kakegawa.shizuoka.jp' => 1,
-  'kannami.shizuoka.jp' => 1,
-  'kawanehon.shizuoka.jp' => 1,
-  'kawazu.shizuoka.jp' => 1,
-  'kikugawa.shizuoka.jp' => 1,
-  'kosai.shizuoka.jp' => 1,
-  'makinohara.shizuoka.jp' => 1,
-  'matsuzaki.shizuoka.jp' => 1,
-  'minamiizu.shizuoka.jp' => 1,
-  'mishima.shizuoka.jp' => 1,
-  'morimachi.shizuoka.jp' => 1,
-  'nishiizu.shizuoka.jp' => 1,
-  'numazu.shizuoka.jp' => 1,
-  'omaezaki.shizuoka.jp' => 1,
-  'shimada.shizuoka.jp' => 1,
-  'shimizu.shizuoka.jp' => 1,
-  'shimoda.shizuoka.jp' => 1,
-  'shizuoka.shizuoka.jp' => 1,
-  'susono.shizuoka.jp' => 1,
-  'yaizu.shizuoka.jp' => 1,
-  'yoshida.shizuoka.jp' => 1,
-  'ashikaga.tochigi.jp' => 1,
-  'bato.tochigi.jp' => 1,
-  'haga.tochigi.jp' => 1,
-  'ichikai.tochigi.jp' => 1,
-  'iwafune.tochigi.jp' => 1,
-  'kaminokawa.tochigi.jp' => 1,
-  'kanuma.tochigi.jp' => 1,
-  'karasuyama.tochigi.jp' => 1,
-  'kuroiso.tochigi.jp' => 1,
-  'mashiko.tochigi.jp' => 1,
-  'mibu.tochigi.jp' => 1,
-  'moka.tochigi.jp' => 1,
-  'motegi.tochigi.jp' => 1,
-  'nasu.tochigi.jp' => 1,
-  'nasushiobara.tochigi.jp' => 1,
-  'nikko.tochigi.jp' => 1,
-  'nishikata.tochigi.jp' => 1,
-  'nogi.tochigi.jp' => 1,
-  'ohira.tochigi.jp' => 1,
-  'ohtawara.tochigi.jp' => 1,
-  'oyama.tochigi.jp' => 1,
-  'sakura.tochigi.jp' => 1,
-  'sano.tochigi.jp' => 1,
-  'shimotsuke.tochigi.jp' => 1,
-  'shioya.tochigi.jp' => 1,
-  'takanezawa.tochigi.jp' => 1,
-  'tochigi.tochigi.jp' => 1,
-  'tsuga.tochigi.jp' => 1,
-  'ujiie.tochigi.jp' => 1,
-  'utsunomiya.tochigi.jp' => 1,
-  'yaita.tochigi.jp' => 1,
-  'aizumi.tokushima.jp' => 1,
-  'anan.tokushima.jp' => 1,
-  'ichiba.tokushima.jp' => 1,
-  'itano.tokushima.jp' => 1,
-  'kainan.tokushima.jp' => 1,
-  'komatsushima.tokushima.jp' => 1,
-  'matsushige.tokushima.jp' => 1,
-  'mima.tokushima.jp' => 1,
-  'minami.tokushima.jp' => 1,
-  'miyoshi.tokushima.jp' => 1,
-  'mugi.tokushima.jp' => 1,
-  'nakagawa.tokushima.jp' => 1,
-  'naruto.tokushima.jp' => 1,
-  'sanagochi.tokushima.jp' => 1,
-  'shishikui.tokushima.jp' => 1,
-  'tokushima.tokushima.jp' => 1,
-  'wajiki.tokushima.jp' => 1,
-  'adachi.tokyo.jp' => 1,
-  'akiruno.tokyo.jp' => 1,
-  'akishima.tokyo.jp' => 1,
-  'aogashima.tokyo.jp' => 1,
-  'arakawa.tokyo.jp' => 1,
-  'bunkyo.tokyo.jp' => 1,
-  'chiyoda.tokyo.jp' => 1,
-  'chofu.tokyo.jp' => 1,
-  'chuo.tokyo.jp' => 1,
-  'edogawa.tokyo.jp' => 1,
-  'fuchu.tokyo.jp' => 1,
-  'fussa.tokyo.jp' => 1,
-  'hachijo.tokyo.jp' => 1,
-  'hachioji.tokyo.jp' => 1,
-  'hamura.tokyo.jp' => 1,
-  'higashikurume.tokyo.jp' => 1,
-  'higashimurayama.tokyo.jp' => 1,
-  'higashiyamato.tokyo.jp' => 1,
-  'hino.tokyo.jp' => 1,
-  'hinode.tokyo.jp' => 1,
-  'hinohara.tokyo.jp' => 1,
-  'inagi.tokyo.jp' => 1,
-  'itabashi.tokyo.jp' => 1,
-  'katsushika.tokyo.jp' => 1,
-  'kita.tokyo.jp' => 1,
-  'kiyose.tokyo.jp' => 1,
-  'kodaira.tokyo.jp' => 1,
-  'koganei.tokyo.jp' => 1,
-  'kokubunji.tokyo.jp' => 1,
-  'komae.tokyo.jp' => 1,
-  'koto.tokyo.jp' => 1,
-  'kouzushima.tokyo.jp' => 1,
-  'kunitachi.tokyo.jp' => 1,
-  'machida.tokyo.jp' => 1,
-  'meguro.tokyo.jp' => 1,
-  'minato.tokyo.jp' => 1,
-  'mitaka.tokyo.jp' => 1,
-  'mizuho.tokyo.jp' => 1,
-  'musashimurayama.tokyo.jp' => 1,
-  'musashino.tokyo.jp' => 1,
-  'nakano.tokyo.jp' => 1,
-  'nerima.tokyo.jp' => 1,
-  'ogasawara.tokyo.jp' => 1,
-  'okutama.tokyo.jp' => 1,
-  'ome.tokyo.jp' => 1,
-  'oshima.tokyo.jp' => 1,
-  'ota.tokyo.jp' => 1,
-  'setagaya.tokyo.jp' => 1,
-  'shibuya.tokyo.jp' => 1,
-  'shinagawa.tokyo.jp' => 1,
-  'shinjuku.tokyo.jp' => 1,
-  'suginami.tokyo.jp' => 1,
-  'sumida.tokyo.jp' => 1,
-  'tachikawa.tokyo.jp' => 1,
-  'taito.tokyo.jp' => 1,
-  'tama.tokyo.jp' => 1,
-  'toshima.tokyo.jp' => 1,
-  'chizu.tottori.jp' => 1,
-  'hino.tottori.jp' => 1,
-  'kawahara.tottori.jp' => 1,
-  'koge.tottori.jp' => 1,
-  'kotoura.tottori.jp' => 1,
-  'misasa.tottori.jp' => 1,
-  'nanbu.tottori.jp' => 1,
-  'nichinan.tottori.jp' => 1,
-  'sakaiminato.tottori.jp' => 1,
-  'tottori.tottori.jp' => 1,
-  'wakasa.tottori.jp' => 1,
-  'yazu.tottori.jp' => 1,
-  'yonago.tottori.jp' => 1,
-  'asahi.toyama.jp' => 1,
-  'fuchu.toyama.jp' => 1,
-  'fukumitsu.toyama.jp' => 1,
-  'funahashi.toyama.jp' => 1,
-  'himi.toyama.jp' => 1,
-  'imizu.toyama.jp' => 1,
-  'inami.toyama.jp' => 1,
-  'johana.toyama.jp' => 1,
-  'kamiichi.toyama.jp' => 1,
-  'kurobe.toyama.jp' => 1,
-  'nakaniikawa.toyama.jp' => 1,
-  'namerikawa.toyama.jp' => 1,
-  'nanto.toyama.jp' => 1,
-  'nyuzen.toyama.jp' => 1,
-  'oyabe.toyama.jp' => 1,
-  'taira.toyama.jp' => 1,
-  'takaoka.toyama.jp' => 1,
-  'tateyama.toyama.jp' => 1,
-  'toga.toyama.jp' => 1,
-  'tonami.toyama.jp' => 1,
-  'toyama.toyama.jp' => 1,
-  'unazuki.toyama.jp' => 1,
-  'uozu.toyama.jp' => 1,
-  'yamada.toyama.jp' => 1,
-  'arida.wakayama.jp' => 1,
-  'aridagawa.wakayama.jp' => 1,
-  'gobo.wakayama.jp' => 1,
-  'hashimoto.wakayama.jp' => 1,
-  'hidaka.wakayama.jp' => 1,
-  'hirogawa.wakayama.jp' => 1,
-  'inami.wakayama.jp' => 1,
-  'iwade.wakayama.jp' => 1,
-  'kainan.wakayama.jp' => 1,
-  'kamitonda.wakayama.jp' => 1,
-  'katsuragi.wakayama.jp' => 1,
-  'kimino.wakayama.jp' => 1,
-  'kinokawa.wakayama.jp' => 1,
-  'kitayama.wakayama.jp' => 1,
-  'koya.wakayama.jp' => 1,
-  'koza.wakayama.jp' => 1,
-  'kozagawa.wakayama.jp' => 1,
-  'kudoyama.wakayama.jp' => 1,
-  'kushimoto.wakayama.jp' => 1,
-  'mihama.wakayama.jp' => 1,
-  'misato.wakayama.jp' => 1,
-  'nachikatsuura.wakayama.jp' => 1,
-  'shingu.wakayama.jp' => 1,
-  'shirahama.wakayama.jp' => 1,
-  'taiji.wakayama.jp' => 1,
-  'tanabe.wakayama.jp' => 1,
-  'wakayama.wakayama.jp' => 1,
-  'yuasa.wakayama.jp' => 1,
-  'yura.wakayama.jp' => 1,
-  'asahi.yamagata.jp' => 1,
-  'funagata.yamagata.jp' => 1,
-  'higashine.yamagata.jp' => 1,
-  'iide.yamagata.jp' => 1,
-  'kahoku.yamagata.jp' => 1,
-  'kaminoyama.yamagata.jp' => 1,
-  'kaneyama.yamagata.jp' => 1,
-  'kawanishi.yamagata.jp' => 1,
-  'mamurogawa.yamagata.jp' => 1,
-  'mikawa.yamagata.jp' => 1,
-  'murayama.yamagata.jp' => 1,
-  'nagai.yamagata.jp' => 1,
-  'nakayama.yamagata.jp' => 1,
-  'nanyo.yamagata.jp' => 1,
-  'nishikawa.yamagata.jp' => 1,
-  'obanazawa.yamagata.jp' => 1,
-  'oe.yamagata.jp' => 1,
-  'oguni.yamagata.jp' => 1,
-  'ohkura.yamagata.jp' => 1,
-  'oishida.yamagata.jp' => 1,
-  'sagae.yamagata.jp' => 1,
-  'sakata.yamagata.jp' => 1,
-  'sakegawa.yamagata.jp' => 1,
-  'shinjo.yamagata.jp' => 1,
-  'shirataka.yamagata.jp' => 1,
-  'shonai.yamagata.jp' => 1,
-  'takahata.yamagata.jp' => 1,
-  'tendo.yamagata.jp' => 1,
-  'tozawa.yamagata.jp' => 1,
-  'tsuruoka.yamagata.jp' => 1,
-  'yamagata.yamagata.jp' => 1,
-  'yamanobe.yamagata.jp' => 1,
-  'yonezawa.yamagata.jp' => 1,
-  'yuza.yamagata.jp' => 1,
-  'abu.yamaguchi.jp' => 1,
-  'hagi.yamaguchi.jp' => 1,
-  'hikari.yamaguchi.jp' => 1,
-  'hofu.yamaguchi.jp' => 1,
-  'iwakuni.yamaguchi.jp' => 1,
-  'kudamatsu.yamaguchi.jp' => 1,
-  'mitou.yamaguchi.jp' => 1,
-  'nagato.yamaguchi.jp' => 1,
-  'oshima.yamaguchi.jp' => 1,
-  'shimonoseki.yamaguchi.jp' => 1,
-  'shunan.yamaguchi.jp' => 1,
-  'tabuse.yamaguchi.jp' => 1,
-  'tokuyama.yamaguchi.jp' => 1,
-  'toyota.yamaguchi.jp' => 1,
-  'ube.yamaguchi.jp' => 1,
-  'yuu.yamaguchi.jp' => 1,
-  'chuo.yamanashi.jp' => 1,
-  'doshi.yamanashi.jp' => 1,
-  'fuefuki.yamanashi.jp' => 1,
-  'fujikawa.yamanashi.jp' => 1,
-  'fujikawaguchiko.yamanashi.jp' => 1,
-  'fujiyoshida.yamanashi.jp' => 1,
-  'hayakawa.yamanashi.jp' => 1,
-  'hokuto.yamanashi.jp' => 1,
-  'ichikawamisato.yamanashi.jp' => 1,
-  'kai.yamanashi.jp' => 1,
-  'kofu.yamanashi.jp' => 1,
-  'koshu.yamanashi.jp' => 1,
-  'kosuge.yamanashi.jp' => 1,
-  'minami-alps.yamanashi.jp' => 1,
-  'minobu.yamanashi.jp' => 1,
-  'nakamichi.yamanashi.jp' => 1,
-  'nanbu.yamanashi.jp' => 1,
-  'narusawa.yamanashi.jp' => 1,
-  'nirasaki.yamanashi.jp' => 1,
-  'nishikatsura.yamanashi.jp' => 1,
-  'oshino.yamanashi.jp' => 1,
-  'otsuki.yamanashi.jp' => 1,
-  'showa.yamanashi.jp' => 1,
-  'tabayama.yamanashi.jp' => 1,
-  'tsuru.yamanashi.jp' => 1,
-  'uenohara.yamanashi.jp' => 1,
-  'yamanakako.yamanashi.jp' => 1,
-  'yamanashi.yamanashi.jp' => 1,
-  'ke' => 1,
-  'ac.ke' => 1,
-  'co.ke' => 1,
-  'go.ke' => 1,
-  'info.ke' => 1,
-  'me.ke' => 1,
-  'mobi.ke' => 1,
-  'ne.ke' => 1,
-  'or.ke' => 1,
-  'sc.ke' => 1,
-  'kg' => 1,
-  'org.kg' => 1,
-  'net.kg' => 1,
-  'com.kg' => 1,
-  'edu.kg' => 1,
-  'gov.kg' => 1,
-  'mil.kg' => 1,
-  '*.kh' => 1,
-  'ki' => 1,
-  'edu.ki' => 1,
-  'biz.ki' => 1,
-  'net.ki' => 1,
-  'org.ki' => 1,
-  'gov.ki' => 1,
-  'info.ki' => 1,
-  'com.ki' => 1,
-  'km' => 1,
-  'org.km' => 1,
-  'nom.km' => 1,
-  'gov.km' => 1,
-  'prd.km' => 1,
-  'tm.km' => 1,
-  'edu.km' => 1,
-  'mil.km' => 1,
-  'ass.km' => 1,
-  'com.km' => 1,
-  'coop.km' => 1,
-  'asso.km' => 1,
-  'presse.km' => 1,
-  'medecin.km' => 1,
-  'notaires.km' => 1,
-  'pharmaciens.km' => 1,
-  'veterinaire.km' => 1,
-  'gouv.km' => 1,
-  'kn' => 1,
-  'net.kn' => 1,
-  'org.kn' => 1,
-  'edu.kn' => 1,
-  'gov.kn' => 1,
-  'kp' => 1,
-  'com.kp' => 1,
-  'edu.kp' => 1,
-  'gov.kp' => 1,
-  'org.kp' => 1,
-  'rep.kp' => 1,
-  'tra.kp' => 1,
-  'kr' => 1,
-  'ac.kr' => 1,
-  'co.kr' => 1,
-  'es.kr' => 1,
-  'go.kr' => 1,
-  'hs.kr' => 1,
-  'kg.kr' => 1,
-  'mil.kr' => 1,
-  'ms.kr' => 1,
-  'ne.kr' => 1,
-  'or.kr' => 1,
-  'pe.kr' => 1,
-  're.kr' => 1,
-  'sc.kr' => 1,
-  'busan.kr' => 1,
-  'chungbuk.kr' => 1,
-  'chungnam.kr' => 1,
-  'daegu.kr' => 1,
-  'daejeon.kr' => 1,
-  'gangwon.kr' => 1,
-  'gwangju.kr' => 1,
-  'gyeongbuk.kr' => 1,
-  'gyeonggi.kr' => 1,
-  'gyeongnam.kr' => 1,
-  'incheon.kr' => 1,
-  'jeju.kr' => 1,
-  'jeonbuk.kr' => 1,
-  'jeonnam.kr' => 1,
-  'seoul.kr' => 1,
-  'ulsan.kr' => 1,
-  'kw' => 1,
-  'com.kw' => 1,
-  'edu.kw' => 1,
-  'emb.kw' => 1,
-  'gov.kw' => 1,
-  'ind.kw' => 1,
-  'net.kw' => 1,
-  'org.kw' => 1,
-  'ky' => 1,
-  'edu.ky' => 1,
-  'gov.ky' => 1,
-  'com.ky' => 1,
-  'org.ky' => 1,
-  'net.ky' => 1,
-  'kz' => 1,
-  'org.kz' => 1,
-  'edu.kz' => 1,
-  'net.kz' => 1,
-  'gov.kz' => 1,
-  'mil.kz' => 1,
-  'com.kz' => 1,
-  'la' => 1,
-  'int.la' => 1,
-  'net.la' => 1,
-  'info.la' => 1,
-  'edu.la' => 1,
-  'gov.la' => 1,
-  'per.la' => 1,
-  'com.la' => 1,
-  'org.la' => 1,
-  'lb' => 1,
-  'com.lb' => 1,
-  'edu.lb' => 1,
-  'gov.lb' => 1,
-  'net.lb' => 1,
-  'org.lb' => 1,
-  'lc' => 1,
-  'com.lc' => 1,
-  'net.lc' => 1,
-  'co.lc' => 1,
-  'org.lc' => 1,
-  'edu.lc' => 1,
-  'gov.lc' => 1,
-  'li' => 1,
-  'lk' => 1,
-  'gov.lk' => 1,
-  'sch.lk' => 1,
-  'net.lk' => 1,
-  'int.lk' => 1,
-  'com.lk' => 1,
-  'org.lk' => 1,
-  'edu.lk' => 1,
-  'ngo.lk' => 1,
-  'soc.lk' => 1,
-  'web.lk' => 1,
-  'ltd.lk' => 1,
-  'assn.lk' => 1,
-  'grp.lk' => 1,
-  'hotel.lk' => 1,
-  'ac.lk' => 1,
-  'lr' => 1,
-  'com.lr' => 1,
-  'edu.lr' => 1,
-  'gov.lr' => 1,
-  'org.lr' => 1,
-  'net.lr' => 1,
-  'ls' => 1,
-  'ac.ls' => 1,
-  'biz.ls' => 1,
-  'co.ls' => 1,
-  'edu.ls' => 1,
-  'gov.ls' => 1,
-  'info.ls' => 1,
-  'net.ls' => 1,
-  'org.ls' => 1,
-  'sc.ls' => 1,
-  'lt' => 1,
-  'gov.lt' => 1,
-  'lu' => 1,
-  'lv' => 1,
-  'com.lv' => 1,
-  'edu.lv' => 1,
-  'gov.lv' => 1,
-  'org.lv' => 1,
-  'mil.lv' => 1,
-  'id.lv' => 1,
-  'net.lv' => 1,
-  'asn.lv' => 1,
-  'conf.lv' => 1,
-  'ly' => 1,
-  'com.ly' => 1,
-  'net.ly' => 1,
-  'gov.ly' => 1,
-  'plc.ly' => 1,
-  'edu.ly' => 1,
-  'sch.ly' => 1,
-  'med.ly' => 1,
-  'org.ly' => 1,
-  'id.ly' => 1,
-  'ma' => 1,
-  'co.ma' => 1,
-  'net.ma' => 1,
-  'gov.ma' => 1,
-  'org.ma' => 1,
-  'ac.ma' => 1,
-  'press.ma' => 1,
-  'mc' => 1,
-  'tm.mc' => 1,
-  'asso.mc' => 1,
-  'md' => 1,
-  'me' => 1,
-  'co.me' => 1,
-  'net.me' => 1,
-  'org.me' => 1,
-  'edu.me' => 1,
-  'ac.me' => 1,
-  'gov.me' => 1,
-  'its.me' => 1,
-  'priv.me' => 1,
-  'mg' => 1,
-  'org.mg' => 1,
-  'nom.mg' => 1,
-  'gov.mg' => 1,
-  'prd.mg' => 1,
-  'tm.mg' => 1,
-  'edu.mg' => 1,
-  'mil.mg' => 1,
-  'com.mg' => 1,
-  'co.mg' => 1,
-  'mh' => 1,
-  'mil' => 1,
-  'mk' => 1,
-  'com.mk' => 1,
-  'org.mk' => 1,
-  'net.mk' => 1,
-  'edu.mk' => 1,
-  'gov.mk' => 1,
-  'inf.mk' => 1,
-  'name.mk' => 1,
-  'ml' => 1,
-  'com.ml' => 1,
-  'edu.ml' => 1,
-  'gouv.ml' => 1,
-  'gov.ml' => 1,
-  'net.ml' => 1,
-  'org.ml' => 1,
-  'presse.ml' => 1,
-  '*.mm' => 1,
-  'mn' => 1,
-  'gov.mn' => 1,
-  'edu.mn' => 1,
-  'org.mn' => 1,
-  'mo' => 1,
-  'com.mo' => 1,
-  'net.mo' => 1,
-  'org.mo' => 1,
-  'edu.mo' => 1,
-  'gov.mo' => 1,
-  'mobi' => 1,
-  'mp' => 1,
-  'mq' => 1,
-  'mr' => 1,
-  'gov.mr' => 1,
-  'ms' => 1,
-  'com.ms' => 1,
-  'edu.ms' => 1,
-  'gov.ms' => 1,
-  'net.ms' => 1,
-  'org.ms' => 1,
-  'mt' => 1,
-  'com.mt' => 1,
-  'edu.mt' => 1,
-  'net.mt' => 1,
-  'org.mt' => 1,
-  'mu' => 1,
-  'com.mu' => 1,
-  'net.mu' => 1,
-  'org.mu' => 1,
-  'gov.mu' => 1,
-  'ac.mu' => 1,
-  'co.mu' => 1,
-  'or.mu' => 1,
-  'museum' => 1,
-  'academy.museum' => 1,
-  'agriculture.museum' => 1,
-  'air.museum' => 1,
-  'airguard.museum' => 1,
-  'alabama.museum' => 1,
-  'alaska.museum' => 1,
-  'amber.museum' => 1,
-  'ambulance.museum' => 1,
-  'american.museum' => 1,
-  'americana.museum' => 1,
-  'americanantiques.museum' => 1,
-  'americanart.museum' => 1,
-  'amsterdam.museum' => 1,
-  'and.museum' => 1,
-  'annefrank.museum' => 1,
-  'anthro.museum' => 1,
-  'anthropology.museum' => 1,
-  'antiques.museum' => 1,
-  'aquarium.museum' => 1,
-  'arboretum.museum' => 1,
-  'archaeological.museum' => 1,
-  'archaeology.museum' => 1,
-  'architecture.museum' => 1,
-  'art.museum' => 1,
-  'artanddesign.museum' => 1,
-  'artcenter.museum' => 1,
-  'artdeco.museum' => 1,
-  'arteducation.museum' => 1,
-  'artgallery.museum' => 1,
-  'arts.museum' => 1,
-  'artsandcrafts.museum' => 1,
-  'asmatart.museum' => 1,
-  'assassination.museum' => 1,
-  'assisi.museum' => 1,
-  'association.museum' => 1,
-  'astronomy.museum' => 1,
-  'atlanta.museum' => 1,
-  'austin.museum' => 1,
-  'australia.museum' => 1,
-  'automotive.museum' => 1,
-  'aviation.museum' => 1,
-  'axis.museum' => 1,
-  'badajoz.museum' => 1,
-  'baghdad.museum' => 1,
-  'bahn.museum' => 1,
-  'bale.museum' => 1,
-  'baltimore.museum' => 1,
-  'barcelona.museum' => 1,
-  'baseball.museum' => 1,
-  'basel.museum' => 1,
-  'baths.museum' => 1,
-  'bauern.museum' => 1,
-  'beauxarts.museum' => 1,
-  'beeldengeluid.museum' => 1,
-  'bellevue.museum' => 1,
-  'bergbau.museum' => 1,
-  'berkeley.museum' => 1,
-  'berlin.museum' => 1,
-  'bern.museum' => 1,
-  'bible.museum' => 1,
-  'bilbao.museum' => 1,
-  'bill.museum' => 1,
-  'birdart.museum' => 1,
-  'birthplace.museum' => 1,
-  'bonn.museum' => 1,
-  'boston.museum' => 1,
-  'botanical.museum' => 1,
-  'botanicalgarden.museum' => 1,
-  'botanicgarden.museum' => 1,
-  'botany.museum' => 1,
-  'brandywinevalley.museum' => 1,
-  'brasil.museum' => 1,
-  'bristol.museum' => 1,
-  'british.museum' => 1,
-  'britishcolumbia.museum' => 1,
-  'broadcast.museum' => 1,
-  'brunel.museum' => 1,
-  'brussel.museum' => 1,
-  'brussels.museum' => 1,
-  'bruxelles.museum' => 1,
-  'building.museum' => 1,
-  'burghof.museum' => 1,
-  'bus.museum' => 1,
-  'bushey.museum' => 1,
-  'cadaques.museum' => 1,
-  'california.museum' => 1,
-  'cambridge.museum' => 1,
-  'can.museum' => 1,
-  'canada.museum' => 1,
-  'capebreton.museum' => 1,
-  'carrier.museum' => 1,
-  'cartoonart.museum' => 1,
-  'casadelamoneda.museum' => 1,
-  'castle.museum' => 1,
-  'castres.museum' => 1,
-  'celtic.museum' => 1,
-  'center.museum' => 1,
-  'chattanooga.museum' => 1,
-  'cheltenham.museum' => 1,
-  'chesapeakebay.museum' => 1,
-  'chicago.museum' => 1,
-  'children.museum' => 1,
-  'childrens.museum' => 1,
-  'childrensgarden.museum' => 1,
-  'chiropractic.museum' => 1,
-  'chocolate.museum' => 1,
-  'christiansburg.museum' => 1,
-  'cincinnati.museum' => 1,
-  'cinema.museum' => 1,
-  'circus.museum' => 1,
-  'civilisation.museum' => 1,
-  'civilization.museum' => 1,
-  'civilwar.museum' => 1,
-  'clinton.museum' => 1,
-  'clock.museum' => 1,
-  'coal.museum' => 1,
-  'coastaldefence.museum' => 1,
-  'cody.museum' => 1,
-  'coldwar.museum' => 1,
-  'collection.museum' => 1,
-  'colonialwilliamsburg.museum' => 1,
-  'coloradoplateau.museum' => 1,
-  'columbia.museum' => 1,
-  'columbus.museum' => 1,
-  'communication.museum' => 1,
-  'communications.museum' => 1,
-  'community.museum' => 1,
-  'computer.museum' => 1,
-  'computerhistory.museum' => 1,
-  'comunicações.museum' => 1,
-  'contemporary.museum' => 1,
-  'contemporaryart.museum' => 1,
-  'convent.museum' => 1,
-  'copenhagen.museum' => 1,
-  'corporation.museum' => 1,
-  'correios-e-telecomunicações.museum' => 1,
-  'corvette.museum' => 1,
-  'costume.museum' => 1,
-  'countryestate.museum' => 1,
-  'county.museum' => 1,
-  'crafts.museum' => 1,
-  'cranbrook.museum' => 1,
-  'creation.museum' => 1,
-  'cultural.museum' => 1,
-  'culturalcenter.museum' => 1,
-  'culture.museum' => 1,
-  'cyber.museum' => 1,
-  'cymru.museum' => 1,
-  'dali.museum' => 1,
-  'dallas.museum' => 1,
-  'database.museum' => 1,
-  'ddr.museum' => 1,
-  'decorativearts.museum' => 1,
-  'delaware.museum' => 1,
-  'delmenhorst.museum' => 1,
-  'denmark.museum' => 1,
-  'depot.museum' => 1,
-  'design.museum' => 1,
-  'detroit.museum' => 1,
-  'dinosaur.museum' => 1,
-  'discovery.museum' => 1,
-  'dolls.museum' => 1,
-  'donostia.museum' => 1,
-  'durham.museum' => 1,
-  'eastafrica.museum' => 1,
-  'eastcoast.museum' => 1,
-  'education.museum' => 1,
-  'educational.museum' => 1,
-  'egyptian.museum' => 1,
-  'eisenbahn.museum' => 1,
-  'elburg.museum' => 1,
-  'elvendrell.museum' => 1,
-  'embroidery.museum' => 1,
-  'encyclopedic.museum' => 1,
-  'england.museum' => 1,
-  'entomology.museum' => 1,
-  'environment.museum' => 1,
-  'environmentalconservation.museum' => 1,
-  'epilepsy.museum' => 1,
-  'essex.museum' => 1,
-  'estate.museum' => 1,
-  'ethnology.museum' => 1,
-  'exeter.museum' => 1,
-  'exhibition.museum' => 1,
-  'family.museum' => 1,
-  'farm.museum' => 1,
-  'farmequipment.museum' => 1,
-  'farmers.museum' => 1,
-  'farmstead.museum' => 1,
-  'field.museum' => 1,
-  'figueres.museum' => 1,
-  'filatelia.museum' => 1,
-  'film.museum' => 1,
-  'fineart.museum' => 1,
-  'finearts.museum' => 1,
-  'finland.museum' => 1,
-  'flanders.museum' => 1,
-  'florida.museum' => 1,
-  'force.museum' => 1,
-  'fortmissoula.museum' => 1,
-  'fortworth.museum' => 1,
-  'foundation.museum' => 1,
-  'francaise.museum' => 1,
-  'frankfurt.museum' => 1,
-  'franziskaner.museum' => 1,
-  'freemasonry.museum' => 1,
-  'freiburg.museum' => 1,
-  'fribourg.museum' => 1,
-  'frog.museum' => 1,
-  'fundacio.museum' => 1,
-  'furniture.museum' => 1,
-  'gallery.museum' => 1,
-  'garden.museum' => 1,
-  'gateway.museum' => 1,
-  'geelvinck.museum' => 1,
-  'gemological.museum' => 1,
-  'geology.museum' => 1,
-  'georgia.museum' => 1,
-  'giessen.museum' => 1,
-  'glas.museum' => 1,
-  'glass.museum' => 1,
-  'gorge.museum' => 1,
-  'grandrapids.museum' => 1,
-  'graz.museum' => 1,
-  'guernsey.museum' => 1,
-  'halloffame.museum' => 1,
-  'hamburg.museum' => 1,
-  'handson.museum' => 1,
-  'harvestcelebration.museum' => 1,
-  'hawaii.museum' => 1,
-  'health.museum' => 1,
-  'heimatunduhren.museum' => 1,
-  'hellas.museum' => 1,
-  'helsinki.museum' => 1,
-  'hembygdsforbund.museum' => 1,
-  'heritage.museum' => 1,
-  'histoire.museum' => 1,
-  'historical.museum' => 1,
-  'historicalsociety.museum' => 1,
-  'historichouses.museum' => 1,
-  'historisch.museum' => 1,
-  'historisches.museum' => 1,
-  'history.museum' => 1,
-  'historyofscience.museum' => 1,
-  'horology.museum' => 1,
-  'house.museum' => 1,
-  'humanities.museum' => 1,
-  'illustration.museum' => 1,
-  'imageandsound.museum' => 1,
-  'indian.museum' => 1,
-  'indiana.museum' => 1,
-  'indianapolis.museum' => 1,
-  'indianmarket.museum' => 1,
-  'intelligence.museum' => 1,
-  'interactive.museum' => 1,
-  'iraq.museum' => 1,
-  'iron.museum' => 1,
-  'isleofman.museum' => 1,
-  'jamison.museum' => 1,
-  'jefferson.museum' => 1,
-  'jerusalem.museum' => 1,
-  'jewelry.museum' => 1,
-  'jewish.museum' => 1,
-  'jewishart.museum' => 1,
-  'jfk.museum' => 1,
-  'journalism.museum' => 1,
-  'judaica.museum' => 1,
-  'judygarland.museum' => 1,
-  'juedisches.museum' => 1,
-  'juif.museum' => 1,
-  'karate.museum' => 1,
-  'karikatur.museum' => 1,
-  'kids.museum' => 1,
-  'koebenhavn.museum' => 1,
-  'koeln.museum' => 1,
-  'kunst.museum' => 1,
-  'kunstsammlung.museum' => 1,
-  'kunstunddesign.museum' => 1,
-  'labor.museum' => 1,
-  'labour.museum' => 1,
-  'lajolla.museum' => 1,
-  'lancashire.museum' => 1,
-  'landes.museum' => 1,
-  'lans.museum' => 1,
-  'läns.museum' => 1,
-  'larsson.museum' => 1,
-  'lewismiller.museum' => 1,
-  'lincoln.museum' => 1,
-  'linz.museum' => 1,
-  'living.museum' => 1,
-  'livinghistory.museum' => 1,
-  'localhistory.museum' => 1,
-  'london.museum' => 1,
-  'losangeles.museum' => 1,
-  'louvre.museum' => 1,
-  'loyalist.museum' => 1,
-  'lucerne.museum' => 1,
-  'luxembourg.museum' => 1,
-  'luzern.museum' => 1,
-  'mad.museum' => 1,
-  'madrid.museum' => 1,
-  'mallorca.museum' => 1,
-  'manchester.museum' => 1,
-  'mansion.museum' => 1,
-  'mansions.museum' => 1,
-  'manx.museum' => 1,
-  'marburg.museum' => 1,
-  'maritime.museum' => 1,
-  'maritimo.museum' => 1,
-  'maryland.museum' => 1,
-  'marylhurst.museum' => 1,
-  'media.museum' => 1,
-  'medical.museum' => 1,
-  'medizinhistorisches.museum' => 1,
-  'meeres.museum' => 1,
-  'memorial.museum' => 1,
-  'mesaverde.museum' => 1,
-  'michigan.museum' => 1,
-  'midatlantic.museum' => 1,
-  'military.museum' => 1,
-  'mill.museum' => 1,
-  'miners.museum' => 1,
-  'mining.museum' => 1,
-  'minnesota.museum' => 1,
-  'missile.museum' => 1,
-  'missoula.museum' => 1,
-  'modern.museum' => 1,
-  'moma.museum' => 1,
-  'money.museum' => 1,
-  'monmouth.museum' => 1,
-  'monticello.museum' => 1,
-  'montreal.museum' => 1,
-  'moscow.museum' => 1,
-  'motorcycle.museum' => 1,
-  'muenchen.museum' => 1,
-  'muenster.museum' => 1,
-  'mulhouse.museum' => 1,
-  'muncie.museum' => 1,
-  'museet.museum' => 1,
-  'museumcenter.museum' => 1,
-  'museumvereniging.museum' => 1,
-  'music.museum' => 1,
-  'national.museum' => 1,
-  'nationalfirearms.museum' => 1,
-  'nationalheritage.museum' => 1,
-  'nativeamerican.museum' => 1,
-  'naturalhistory.museum' => 1,
-  'naturalhistorymuseum.museum' => 1,
-  'naturalsciences.museum' => 1,
-  'nature.museum' => 1,
-  'naturhistorisches.museum' => 1,
-  'natuurwetenschappen.museum' => 1,
-  'naumburg.museum' => 1,
-  'naval.museum' => 1,
-  'nebraska.museum' => 1,
-  'neues.museum' => 1,
-  'newhampshire.museum' => 1,
-  'newjersey.museum' => 1,
-  'newmexico.museum' => 1,
-  'newport.museum' => 1,
-  'newspaper.museum' => 1,
-  'newyork.museum' => 1,
-  'niepce.museum' => 1,
-  'norfolk.museum' => 1,
-  'north.museum' => 1,
-  'nrw.museum' => 1,
-  'nuernberg.museum' => 1,
-  'nuremberg.museum' => 1,
-  'nyc.museum' => 1,
-  'nyny.museum' => 1,
-  'oceanographic.museum' => 1,
-  'oceanographique.museum' => 1,
-  'omaha.museum' => 1,
-  'online.museum' => 1,
-  'ontario.museum' => 1,
-  'openair.museum' => 1,
-  'oregon.museum' => 1,
-  'oregontrail.museum' => 1,
-  'otago.museum' => 1,
-  'oxford.museum' => 1,
-  'pacific.museum' => 1,
-  'paderborn.museum' => 1,
-  'palace.museum' => 1,
-  'paleo.museum' => 1,
-  'palmsprings.museum' => 1,
-  'panama.museum' => 1,
-  'paris.museum' => 1,
-  'pasadena.museum' => 1,
-  'pharmacy.museum' => 1,
-  'philadelphia.museum' => 1,
-  'philadelphiaarea.museum' => 1,
-  'philately.museum' => 1,
-  'phoenix.museum' => 1,
-  'photography.museum' => 1,
-  'pilots.museum' => 1,
-  'pittsburgh.museum' => 1,
-  'planetarium.museum' => 1,
-  'plantation.museum' => 1,
-  'plants.museum' => 1,
-  'plaza.museum' => 1,
-  'portal.museum' => 1,
-  'portland.museum' => 1,
-  'portlligat.museum' => 1,
-  'posts-and-telecommunications.museum' => 1,
-  'preservation.museum' => 1,
-  'presidio.museum' => 1,
-  'press.museum' => 1,
-  'project.museum' => 1,
-  'public.museum' => 1,
-  'pubol.museum' => 1,
-  'quebec.museum' => 1,
-  'railroad.museum' => 1,
-  'railway.museum' => 1,
-  'research.museum' => 1,
-  'resistance.museum' => 1,
-  'riodejaneiro.museum' => 1,
-  'rochester.museum' => 1,
-  'rockart.museum' => 1,
-  'roma.museum' => 1,
-  'russia.museum' => 1,
-  'saintlouis.museum' => 1,
-  'salem.museum' => 1,
-  'salvadordali.museum' => 1,
-  'salzburg.museum' => 1,
-  'sandiego.museum' => 1,
-  'sanfrancisco.museum' => 1,
-  'santabarbara.museum' => 1,
-  'santacruz.museum' => 1,
-  'santafe.museum' => 1,
-  'saskatchewan.museum' => 1,
-  'satx.museum' => 1,
-  'savannahga.museum' => 1,
-  'schlesisches.museum' => 1,
-  'schoenbrunn.museum' => 1,
-  'schokoladen.museum' => 1,
-  'school.museum' => 1,
-  'schweiz.museum' => 1,
-  'science.museum' => 1,
-  'scienceandhistory.museum' => 1,
-  'scienceandindustry.museum' => 1,
-  'sciencecenter.museum' => 1,
-  'sciencecenters.museum' => 1,
-  'science-fiction.museum' => 1,
-  'sciencehistory.museum' => 1,
-  'sciences.museum' => 1,
-  'sciencesnaturelles.museum' => 1,
-  'scotland.museum' => 1,
-  'seaport.museum' => 1,
-  'settlement.museum' => 1,
-  'settlers.museum' => 1,
-  'shell.museum' => 1,
-  'sherbrooke.museum' => 1,
-  'sibenik.museum' => 1,
-  'silk.museum' => 1,
-  'ski.museum' => 1,
-  'skole.museum' => 1,
-  'society.museum' => 1,
-  'sologne.museum' => 1,
-  'soundandvision.museum' => 1,
-  'southcarolina.museum' => 1,
-  'southwest.museum' => 1,
-  'space.museum' => 1,
-  'spy.museum' => 1,
-  'square.museum' => 1,
-  'stadt.museum' => 1,
-  'stalbans.museum' => 1,
-  'starnberg.museum' => 1,
-  'state.museum' => 1,
-  'stateofdelaware.museum' => 1,
-  'station.museum' => 1,
-  'steam.museum' => 1,
-  'steiermark.museum' => 1,
-  'stjohn.museum' => 1,
-  'stockholm.museum' => 1,
-  'stpetersburg.museum' => 1,
-  'stuttgart.museum' => 1,
-  'suisse.museum' => 1,
-  'surgeonshall.museum' => 1,
-  'surrey.museum' => 1,
-  'svizzera.museum' => 1,
-  'sweden.museum' => 1,
-  'sydney.museum' => 1,
-  'tank.museum' => 1,
-  'tcm.museum' => 1,
-  'technology.museum' => 1,
-  'telekommunikation.museum' => 1,
-  'television.museum' => 1,
-  'texas.museum' => 1,
-  'textile.museum' => 1,
-  'theater.museum' => 1,
-  'time.museum' => 1,
-  'timekeeping.museum' => 1,
-  'topology.museum' => 1,
-  'torino.museum' => 1,
-  'touch.museum' => 1,
-  'town.museum' => 1,
-  'transport.museum' => 1,
-  'tree.museum' => 1,
-  'trolley.museum' => 1,
-  'trust.museum' => 1,
-  'trustee.museum' => 1,
-  'uhren.museum' => 1,
-  'ulm.museum' => 1,
-  'undersea.museum' => 1,
-  'university.museum' => 1,
-  'usa.museum' => 1,
-  'usantiques.museum' => 1,
-  'usarts.museum' => 1,
-  'uscountryestate.museum' => 1,
-  'usculture.museum' => 1,
-  'usdecorativearts.museum' => 1,
-  'usgarden.museum' => 1,
-  'ushistory.museum' => 1,
-  'ushuaia.museum' => 1,
-  'uslivinghistory.museum' => 1,
-  'utah.museum' => 1,
-  'uvic.museum' => 1,
-  'valley.museum' => 1,
-  'vantaa.museum' => 1,
-  'versailles.museum' => 1,
-  'viking.museum' => 1,
-  'village.museum' => 1,
-  'virginia.museum' => 1,
-  'virtual.museum' => 1,
-  'virtuel.museum' => 1,
-  'vlaanderen.museum' => 1,
-  'volkenkunde.museum' => 1,
-  'wales.museum' => 1,
-  'wallonie.museum' => 1,
-  'war.museum' => 1,
-  'washingtondc.museum' => 1,
-  'watchandclock.museum' => 1,
-  'watch-and-clock.museum' => 1,
-  'western.museum' => 1,
-  'westfalen.museum' => 1,
-  'whaling.museum' => 1,
-  'wildlife.museum' => 1,
-  'williamsburg.museum' => 1,
-  'windmill.museum' => 1,
-  'workshop.museum' => 1,
-  'york.museum' => 1,
-  'yorkshire.museum' => 1,
-  'yosemite.museum' => 1,
-  'youth.museum' => 1,
-  'zoological.museum' => 1,
-  'zoology.museum' => 1,
-  'ירושלים.museum' => 1,
-  'иком.museum' => 1,
-  'mv' => 1,
-  'aero.mv' => 1,
-  'biz.mv' => 1,
-  'com.mv' => 1,
-  'coop.mv' => 1,
-  'edu.mv' => 1,
-  'gov.mv' => 1,
-  'info.mv' => 1,
-  'int.mv' => 1,
-  'mil.mv' => 1,
-  'museum.mv' => 1,
-  'name.mv' => 1,
-  'net.mv' => 1,
-  'org.mv' => 1,
-  'pro.mv' => 1,
-  'mw' => 1,
-  'ac.mw' => 1,
-  'biz.mw' => 1,
-  'co.mw' => 1,
-  'com.mw' => 1,
-  'coop.mw' => 1,
-  'edu.mw' => 1,
-  'gov.mw' => 1,
-  'int.mw' => 1,
-  'museum.mw' => 1,
-  'net.mw' => 1,
-  'org.mw' => 1,
-  'mx' => 1,
-  'com.mx' => 1,
-  'org.mx' => 1,
-  'gob.mx' => 1,
-  'edu.mx' => 1,
-  'net.mx' => 1,
-  'my' => 1,
-  'com.my' => 1,
-  'net.my' => 1,
-  'org.my' => 1,
-  'gov.my' => 1,
-  'edu.my' => 1,
-  'mil.my' => 1,
-  'name.my' => 1,
-  'mz' => 1,
-  'ac.mz' => 1,
-  'adv.mz' => 1,
-  'co.mz' => 1,
-  'edu.mz' => 1,
-  'gov.mz' => 1,
-  'mil.mz' => 1,
-  'net.mz' => 1,
-  'org.mz' => 1,
-  'na' => 1,
-  'info.na' => 1,
-  'pro.na' => 1,
-  'name.na' => 1,
-  'school.na' => 1,
-  'or.na' => 1,
-  'dr.na' => 1,
-  'us.na' => 1,
-  'mx.na' => 1,
-  'ca.na' => 1,
-  'in.na' => 1,
-  'cc.na' => 1,
-  'tv.na' => 1,
-  'ws.na' => 1,
-  'mobi.na' => 1,
-  'co.na' => 1,
-  'com.na' => 1,
-  'org.na' => 1,
-  'name' => 1,
-  'nc' => 1,
-  'asso.nc' => 1,
-  'nom.nc' => 1,
-  'ne' => 1,
-  'net' => 1,
-  'nf' => 1,
-  'com.nf' => 1,
-  'net.nf' => 1,
-  'per.nf' => 1,
-  'rec.nf' => 1,
-  'web.nf' => 1,
-  'arts.nf' => 1,
-  'firm.nf' => 1,
-  'info.nf' => 1,
-  'other.nf' => 1,
-  'store.nf' => 1,
-  'ng' => 1,
-  'com.ng' => 1,
-  'edu.ng' => 1,
-  'gov.ng' => 1,
-  'i.ng' => 1,
-  'mil.ng' => 1,
-  'mobi.ng' => 1,
-  'name.ng' => 1,
-  'net.ng' => 1,
-  'org.ng' => 1,
-  'sch.ng' => 1,
-  'ni' => 1,
-  'ac.ni' => 1,
-  'biz.ni' => 1,
-  'co.ni' => 1,
-  'com.ni' => 1,
-  'edu.ni' => 1,
-  'gob.ni' => 1,
-  'in.ni' => 1,
-  'info.ni' => 1,
-  'int.ni' => 1,
-  'mil.ni' => 1,
-  'net.ni' => 1,
-  'nom.ni' => 1,
-  'org.ni' => 1,
-  'web.ni' => 1,
-  'nl' => 1,
-  'bv.nl' => 1,
-  'no' => 1,
-  'fhs.no' => 1,
-  'vgs.no' => 1,
-  'fylkesbibl.no' => 1,
-  'folkebibl.no' => 1,
-  'museum.no' => 1,
-  'idrett.no' => 1,
-  'priv.no' => 1,
-  'mil.no' => 1,
-  'stat.no' => 1,
-  'dep.no' => 1,
-  'kommune.no' => 1,
-  'herad.no' => 1,
-  'aa.no' => 1,
-  'ah.no' => 1,
-  'bu.no' => 1,
-  'fm.no' => 1,
-  'hl.no' => 1,
-  'hm.no' => 1,
-  'jan-mayen.no' => 1,
-  'mr.no' => 1,
-  'nl.no' => 1,
-  'nt.no' => 1,
-  'of.no' => 1,
-  'ol.no' => 1,
-  'oslo.no' => 1,
-  'rl.no' => 1,
-  'sf.no' => 1,
-  'st.no' => 1,
-  'svalbard.no' => 1,
-  'tm.no' => 1,
-  'tr.no' => 1,
-  'va.no' => 1,
-  'vf.no' => 1,
-  'gs.aa.no' => 1,
-  'gs.ah.no' => 1,
-  'gs.bu.no' => 1,
-  'gs.fm.no' => 1,
-  'gs.hl.no' => 1,
-  'gs.hm.no' => 1,
-  'gs.jan-mayen.no' => 1,
-  'gs.mr.no' => 1,
-  'gs.nl.no' => 1,
-  'gs.nt.no' => 1,
-  'gs.of.no' => 1,
-  'gs.ol.no' => 1,
-  'gs.oslo.no' => 1,
-  'gs.rl.no' => 1,
-  'gs.sf.no' => 1,
-  'gs.st.no' => 1,
-  'gs.svalbard.no' => 1,
-  'gs.tm.no' => 1,
-  'gs.tr.no' => 1,
-  'gs.va.no' => 1,
-  'gs.vf.no' => 1,
-  'akrehamn.no' => 1,
-  'åkrehamn.no' => 1,
-  'algard.no' => 1,
-  'ålgård.no' => 1,
-  'arna.no' => 1,
-  'brumunddal.no' => 1,
-  'bryne.no' => 1,
-  'bronnoysund.no' => 1,
-  'brønnøysund.no' => 1,
-  'drobak.no' => 1,
-  'drøbak.no' => 1,
-  'egersund.no' => 1,
-  'fetsund.no' => 1,
-  'floro.no' => 1,
-  'florø.no' => 1,
-  'fredrikstad.no' => 1,
-  'hokksund.no' => 1,
-  'honefoss.no' => 1,
-  'hønefoss.no' => 1,
-  'jessheim.no' => 1,
-  'jorpeland.no' => 1,
-  'jørpeland.no' => 1,
-  'kirkenes.no' => 1,
-  'kopervik.no' => 1,
-  'krokstadelva.no' => 1,
-  'langevag.no' => 1,
-  'langevåg.no' => 1,
-  'leirvik.no' => 1,
-  'mjondalen.no' => 1,
-  'mjøndalen.no' => 1,
-  'mo-i-rana.no' => 1,
-  'mosjoen.no' => 1,
-  'mosjøen.no' => 1,
-  'nesoddtangen.no' => 1,
-  'orkanger.no' => 1,
-  'osoyro.no' => 1,
-  'osøyro.no' => 1,
-  'raholt.no' => 1,
-  'råholt.no' => 1,
-  'sandnessjoen.no' => 1,
-  'sandnessjøen.no' => 1,
-  'skedsmokorset.no' => 1,
-  'slattum.no' => 1,
-  'spjelkavik.no' => 1,
-  'stathelle.no' => 1,
-  'stavern.no' => 1,
-  'stjordalshalsen.no' => 1,
-  'stjørdalshalsen.no' => 1,
-  'tananger.no' => 1,
-  'tranby.no' => 1,
-  'vossevangen.no' => 1,
-  'afjord.no' => 1,
-  'åfjord.no' => 1,
-  'agdenes.no' => 1,
-  'al.no' => 1,
-  'ål.no' => 1,
-  'alesund.no' => 1,
-  'ålesund.no' => 1,
-  'alstahaug.no' => 1,
-  'alta.no' => 1,
-  'áltá.no' => 1,
-  'alaheadju.no' => 1,
-  'álaheadju.no' => 1,
-  'alvdal.no' => 1,
-  'amli.no' => 1,
-  'åmli.no' => 1,
-  'amot.no' => 1,
-  'åmot.no' => 1,
-  'andebu.no' => 1,
-  'andoy.no' => 1,
-  'andøy.no' => 1,
-  'andasuolo.no' => 1,
-  'ardal.no' => 1,
-  'årdal.no' => 1,
-  'aremark.no' => 1,
-  'arendal.no' => 1,
-  'ås.no' => 1,
-  'aseral.no' => 1,
-  'åseral.no' => 1,
-  'asker.no' => 1,
-  'askim.no' => 1,
-  'askvoll.no' => 1,
-  'askoy.no' => 1,
-  'askøy.no' => 1,
-  'asnes.no' => 1,
-  'åsnes.no' => 1,
-  'audnedaln.no' => 1,
-  'aukra.no' => 1,
-  'aure.no' => 1,
-  'aurland.no' => 1,
-  'aurskog-holand.no' => 1,
-  'aurskog-høland.no' => 1,
-  'austevoll.no' => 1,
-  'austrheim.no' => 1,
-  'averoy.no' => 1,
-  'averøy.no' => 1,
-  'balestrand.no' => 1,
-  'ballangen.no' => 1,
-  'balat.no' => 1,
-  'bálát.no' => 1,
-  'balsfjord.no' => 1,
-  'bahccavuotna.no' => 1,
-  'báhccavuotna.no' => 1,
-  'bamble.no' => 1,
-  'bardu.no' => 1,
-  'beardu.no' => 1,
-  'beiarn.no' => 1,
-  'bajddar.no' => 1,
-  'bájddar.no' => 1,
-  'baidar.no' => 1,
-  'báidár.no' => 1,
-  'berg.no' => 1,
-  'bergen.no' => 1,
-  'berlevag.no' => 1,
-  'berlevåg.no' => 1,
-  'bearalvahki.no' => 1,
-  'bearalváhki.no' => 1,
-  'bindal.no' => 1,
-  'birkenes.no' => 1,
-  'bjarkoy.no' => 1,
-  'bjarkøy.no' => 1,
-  'bjerkreim.no' => 1,
-  'bjugn.no' => 1,
-  'bodo.no' => 1,
-  'bodø.no' => 1,
-  'badaddja.no' => 1,
-  'bådåddjå.no' => 1,
-  'budejju.no' => 1,
-  'bokn.no' => 1,
-  'bremanger.no' => 1,
-  'bronnoy.no' => 1,
-  'brønnøy.no' => 1,
-  'bygland.no' => 1,
-  'bykle.no' => 1,
-  'barum.no' => 1,
-  'bærum.no' => 1,
-  'bo.telemark.no' => 1,
-  'bø.telemark.no' => 1,
-  'bo.nordland.no' => 1,
-  'bø.nordland.no' => 1,
-  'bievat.no' => 1,
-  'bievát.no' => 1,
-  'bomlo.no' => 1,
-  'bømlo.no' => 1,
-  'batsfjord.no' => 1,
-  'båtsfjord.no' => 1,
-  'bahcavuotna.no' => 1,
-  'báhcavuotna.no' => 1,
-  'dovre.no' => 1,
-  'drammen.no' => 1,
-  'drangedal.no' => 1,
-  'dyroy.no' => 1,
-  'dyrøy.no' => 1,
-  'donna.no' => 1,
-  'dønna.no' => 1,
-  'eid.no' => 1,
-  'eidfjord.no' => 1,
-  'eidsberg.no' => 1,
-  'eidskog.no' => 1,
-  'eidsvoll.no' => 1,
-  'eigersund.no' => 1,
-  'elverum.no' => 1,
-  'enebakk.no' => 1,
-  'engerdal.no' => 1,
-  'etne.no' => 1,
-  'etnedal.no' => 1,
-  'evenes.no' => 1,
-  'evenassi.no' => 1,
-  'evenášši.no' => 1,
-  'evje-og-hornnes.no' => 1,
-  'farsund.no' => 1,
-  'fauske.no' => 1,
-  'fuossko.no' => 1,
-  'fuoisku.no' => 1,
-  'fedje.no' => 1,
-  'fet.no' => 1,
-  'finnoy.no' => 1,
-  'finnøy.no' => 1,
-  'fitjar.no' => 1,
-  'fjaler.no' => 1,
-  'fjell.no' => 1,
-  'flakstad.no' => 1,
-  'flatanger.no' => 1,
-  'flekkefjord.no' => 1,
-  'flesberg.no' => 1,
-  'flora.no' => 1,
-  'fla.no' => 1,
-  'flå.no' => 1,
-  'folldal.no' => 1,
-  'forsand.no' => 1,
-  'fosnes.no' => 1,
-  'frei.no' => 1,
-  'frogn.no' => 1,
-  'froland.no' => 1,
-  'frosta.no' => 1,
-  'frana.no' => 1,
-  'fræna.no' => 1,
-  'froya.no' => 1,
-  'frøya.no' => 1,
-  'fusa.no' => 1,
-  'fyresdal.no' => 1,
-  'forde.no' => 1,
-  'førde.no' => 1,
-  'gamvik.no' => 1,
-  'gangaviika.no' => 1,
-  'gáŋgaviika.no' => 1,
-  'gaular.no' => 1,
-  'gausdal.no' => 1,
-  'gildeskal.no' => 1,
-  'gildeskål.no' => 1,
-  'giske.no' => 1,
-  'gjemnes.no' => 1,
-  'gjerdrum.no' => 1,
-  'gjerstad.no' => 1,
-  'gjesdal.no' => 1,
-  'gjovik.no' => 1,
-  'gjøvik.no' => 1,
-  'gloppen.no' => 1,
-  'gol.no' => 1,
-  'gran.no' => 1,
-  'grane.no' => 1,
-  'granvin.no' => 1,
-  'gratangen.no' => 1,
-  'grimstad.no' => 1,
-  'grong.no' => 1,
-  'kraanghke.no' => 1,
-  'kråanghke.no' => 1,
-  'grue.no' => 1,
-  'gulen.no' => 1,
-  'hadsel.no' => 1,
-  'halden.no' => 1,
-  'halsa.no' => 1,
-  'hamar.no' => 1,
-  'hamaroy.no' => 1,
-  'habmer.no' => 1,
-  'hábmer.no' => 1,
-  'hapmir.no' => 1,
-  'hápmir.no' => 1,
-  'hammerfest.no' => 1,
-  'hammarfeasta.no' => 1,
-  'hámmárfeasta.no' => 1,
-  'haram.no' => 1,
-  'hareid.no' => 1,
-  'harstad.no' => 1,
-  'hasvik.no' => 1,
-  'aknoluokta.no' => 1,
-  'ákŋoluokta.no' => 1,
-  'hattfjelldal.no' => 1,
-  'aarborte.no' => 1,
-  'haugesund.no' => 1,
-  'hemne.no' => 1,
-  'hemnes.no' => 1,
-  'hemsedal.no' => 1,
-  'heroy.more-og-romsdal.no' => 1,
-  'herøy.møre-og-romsdal.no' => 1,
-  'heroy.nordland.no' => 1,
-  'herøy.nordland.no' => 1,
-  'hitra.no' => 1,
-  'hjartdal.no' => 1,
-  'hjelmeland.no' => 1,
-  'hobol.no' => 1,
-  'hobøl.no' => 1,
-  'hof.no' => 1,
-  'hol.no' => 1,
-  'hole.no' => 1,
-  'holmestrand.no' => 1,
-  'holtalen.no' => 1,
-  'holtålen.no' => 1,
-  'hornindal.no' => 1,
-  'horten.no' => 1,
-  'hurdal.no' => 1,
-  'hurum.no' => 1,
-  'hvaler.no' => 1,
-  'hyllestad.no' => 1,
-  'hagebostad.no' => 1,
-  'hægebostad.no' => 1,
-  'hoyanger.no' => 1,
-  'høyanger.no' => 1,
-  'hoylandet.no' => 1,
-  'høylandet.no' => 1,
-  'ha.no' => 1,
-  'hå.no' => 1,
-  'ibestad.no' => 1,
-  'inderoy.no' => 1,
-  'inderøy.no' => 1,
-  'iveland.no' => 1,
-  'jevnaker.no' => 1,
-  'jondal.no' => 1,
-  'jolster.no' => 1,
-  'jølster.no' => 1,
-  'karasjok.no' => 1,
-  'karasjohka.no' => 1,
-  'kárášjohka.no' => 1,
-  'karlsoy.no' => 1,
-  'galsa.no' => 1,
-  'gálsá.no' => 1,
-  'karmoy.no' => 1,
-  'karmøy.no' => 1,
-  'kautokeino.no' => 1,
-  'guovdageaidnu.no' => 1,
-  'klepp.no' => 1,
-  'klabu.no' => 1,
-  'klæbu.no' => 1,
-  'kongsberg.no' => 1,
-  'kongsvinger.no' => 1,
-  'kragero.no' => 1,
-  'kragerø.no' => 1,
-  'kristiansand.no' => 1,
-  'kristiansund.no' => 1,
-  'krodsherad.no' => 1,
-  'krødsherad.no' => 1,
-  'kvalsund.no' => 1,
-  'rahkkeravju.no' => 1,
-  'ráhkkerávju.no' => 1,
-  'kvam.no' => 1,
-  'kvinesdal.no' => 1,
-  'kvinnherad.no' => 1,
-  'kviteseid.no' => 1,
-  'kvitsoy.no' => 1,
-  'kvitsøy.no' => 1,
-  'kvafjord.no' => 1,
-  'kvæfjord.no' => 1,
-  'giehtavuoatna.no' => 1,
-  'kvanangen.no' => 1,
-  'kvænangen.no' => 1,
-  'navuotna.no' => 1,
-  'návuotna.no' => 1,
-  'kafjord.no' => 1,
-  'kåfjord.no' => 1,
-  'gaivuotna.no' => 1,
-  'gáivuotna.no' => 1,
-  'larvik.no' => 1,
-  'lavangen.no' => 1,
-  'lavagis.no' => 1,
-  'loabat.no' => 1,
-  'loabát.no' => 1,
-  'lebesby.no' => 1,
-  'davvesiida.no' => 1,
-  'leikanger.no' => 1,
-  'leirfjord.no' => 1,
-  'leka.no' => 1,
-  'leksvik.no' => 1,
-  'lenvik.no' => 1,
-  'leangaviika.no' => 1,
-  'leaŋgaviika.no' => 1,
-  'lesja.no' => 1,
-  'levanger.no' => 1,
-  'lier.no' => 1,
-  'lierne.no' => 1,
-  'lillehammer.no' => 1,
-  'lillesand.no' => 1,
-  'lindesnes.no' => 1,
-  'lindas.no' => 1,
-  'lindås.no' => 1,
-  'lom.no' => 1,
-  'loppa.no' => 1,
-  'lahppi.no' => 1,
-  'láhppi.no' => 1,
-  'lund.no' => 1,
-  'lunner.no' => 1,
-  'luroy.no' => 1,
-  'lurøy.no' => 1,
-  'luster.no' => 1,
-  'lyngdal.no' => 1,
-  'lyngen.no' => 1,
-  'ivgu.no' => 1,
-  'lardal.no' => 1,
-  'lerdal.no' => 1,
-  'lærdal.no' => 1,
-  'lodingen.no' => 1,
-  'lødingen.no' => 1,
-  'lorenskog.no' => 1,
-  'lørenskog.no' => 1,
-  'loten.no' => 1,
-  'løten.no' => 1,
-  'malvik.no' => 1,
-  'masoy.no' => 1,
-  'måsøy.no' => 1,
-  'muosat.no' => 1,
-  'muosát.no' => 1,
-  'mandal.no' => 1,
-  'marker.no' => 1,
-  'marnardal.no' => 1,
-  'masfjorden.no' => 1,
-  'meland.no' => 1,
-  'meldal.no' => 1,
-  'melhus.no' => 1,
-  'meloy.no' => 1,
-  'meløy.no' => 1,
-  'meraker.no' => 1,
-  'meråker.no' => 1,
-  'moareke.no' => 1,
-  'moåreke.no' => 1,
-  'midsund.no' => 1,
-  'midtre-gauldal.no' => 1,
-  'modalen.no' => 1,
-  'modum.no' => 1,
-  'molde.no' => 1,
-  'moskenes.no' => 1,
-  'moss.no' => 1,
-  'mosvik.no' => 1,
-  'malselv.no' => 1,
-  'målselv.no' => 1,
-  'malatvuopmi.no' => 1,
-  'málatvuopmi.no' => 1,
-  'namdalseid.no' => 1,
-  'aejrie.no' => 1,
-  'namsos.no' => 1,
-  'namsskogan.no' => 1,
-  'naamesjevuemie.no' => 1,
-  'nååmesjevuemie.no' => 1,
-  'laakesvuemie.no' => 1,
-  'nannestad.no' => 1,
-  'narvik.no' => 1,
-  'narviika.no' => 1,
-  'naustdal.no' => 1,
-  'nedre-eiker.no' => 1,
-  'nes.akershus.no' => 1,
-  'nes.buskerud.no' => 1,
-  'nesna.no' => 1,
-  'nesodden.no' => 1,
-  'nesseby.no' => 1,
-  'unjarga.no' => 1,
-  'unjárga.no' => 1,
-  'nesset.no' => 1,
-  'nissedal.no' => 1,
-  'nittedal.no' => 1,
-  'nord-aurdal.no' => 1,
-  'nord-fron.no' => 1,
-  'nord-odal.no' => 1,
-  'norddal.no' => 1,
-  'nordkapp.no' => 1,
-  'davvenjarga.no' => 1,
-  'davvenjárga.no' => 1,
-  'nordre-land.no' => 1,
-  'nordreisa.no' => 1,
-  'raisa.no' => 1,
-  'ráisa.no' => 1,
-  'nore-og-uvdal.no' => 1,
-  'notodden.no' => 1,
-  'naroy.no' => 1,
-  'nærøy.no' => 1,
-  'notteroy.no' => 1,
-  'nøtterøy.no' => 1,
-  'odda.no' => 1,
-  'oksnes.no' => 1,
-  'øksnes.no' => 1,
-  'oppdal.no' => 1,
-  'oppegard.no' => 1,
-  'oppegård.no' => 1,
-  'orkdal.no' => 1,
-  'orland.no' => 1,
-  'ørland.no' => 1,
-  'orskog.no' => 1,
-  'ørskog.no' => 1,
-  'orsta.no' => 1,
-  'ørsta.no' => 1,
-  'os.hedmark.no' => 1,
-  'os.hordaland.no' => 1,
-  'osen.no' => 1,
-  'osteroy.no' => 1,
-  'osterøy.no' => 1,
-  'ostre-toten.no' => 1,
-  'østre-toten.no' => 1,
-  'overhalla.no' => 1,
-  'ovre-eiker.no' => 1,
-  'øvre-eiker.no' => 1,
-  'oyer.no' => 1,
-  'øyer.no' => 1,
-  'oygarden.no' => 1,
-  'øygarden.no' => 1,
-  'oystre-slidre.no' => 1,
-  'øystre-slidre.no' => 1,
-  'porsanger.no' => 1,
-  'porsangu.no' => 1,
-  'porsáŋgu.no' => 1,
-  'porsgrunn.no' => 1,
-  'radoy.no' => 1,
-  'radøy.no' => 1,
-  'rakkestad.no' => 1,
-  'rana.no' => 1,
-  'ruovat.no' => 1,
-  'randaberg.no' => 1,
-  'rauma.no' => 1,
-  'rendalen.no' => 1,
-  'rennebu.no' => 1,
-  'rennesoy.no' => 1,
-  'rennesøy.no' => 1,
-  'rindal.no' => 1,
-  'ringebu.no' => 1,
-  'ringerike.no' => 1,
-  'ringsaker.no' => 1,
-  'rissa.no' => 1,
-  'risor.no' => 1,
-  'risør.no' => 1,
-  'roan.no' => 1,
-  'rollag.no' => 1,
-  'rygge.no' => 1,
-  'ralingen.no' => 1,
-  'rælingen.no' => 1,
-  'rodoy.no' => 1,
-  'rødøy.no' => 1,
-  'romskog.no' => 1,
-  'rømskog.no' => 1,
-  'roros.no' => 1,
-  'røros.no' => 1,
-  'rost.no' => 1,
-  'røst.no' => 1,
-  'royken.no' => 1,
-  'røyken.no' => 1,
-  'royrvik.no' => 1,
-  'røyrvik.no' => 1,
-  'rade.no' => 1,
-  'råde.no' => 1,
-  'salangen.no' => 1,
-  'siellak.no' => 1,
-  'saltdal.no' => 1,
-  'salat.no' => 1,
-  'sálát.no' => 1,
-  'sálat.no' => 1,
-  'samnanger.no' => 1,
-  'sande.more-og-romsdal.no' => 1,
-  'sande.møre-og-romsdal.no' => 1,
-  'sande.vestfold.no' => 1,
-  'sandefjord.no' => 1,
-  'sandnes.no' => 1,
-  'sandoy.no' => 1,
-  'sandøy.no' => 1,
-  'sarpsborg.no' => 1,
-  'sauda.no' => 1,
-  'sauherad.no' => 1,
-  'sel.no' => 1,
-  'selbu.no' => 1,
-  'selje.no' => 1,
-  'seljord.no' => 1,
-  'sigdal.no' => 1,
-  'siljan.no' => 1,
-  'sirdal.no' => 1,
-  'skaun.no' => 1,
-  'skedsmo.no' => 1,
-  'ski.no' => 1,
-  'skien.no' => 1,
-  'skiptvet.no' => 1,
-  'skjervoy.no' => 1,
-  'skjervøy.no' => 1,
-  'skierva.no' => 1,
-  'skiervá.no' => 1,
-  'skjak.no' => 1,
-  'skjåk.no' => 1,
-  'skodje.no' => 1,
-  'skanland.no' => 1,
-  'skånland.no' => 1,
-  'skanit.no' => 1,
-  'skánit.no' => 1,
-  'smola.no' => 1,
-  'smøla.no' => 1,
-  'snillfjord.no' => 1,
-  'snasa.no' => 1,
-  'snåsa.no' => 1,
-  'snoasa.no' => 1,
-  'snaase.no' => 1,
-  'snåase.no' => 1,
-  'sogndal.no' => 1,
-  'sokndal.no' => 1,
-  'sola.no' => 1,
-  'solund.no' => 1,
-  'songdalen.no' => 1,
-  'sortland.no' => 1,
-  'spydeberg.no' => 1,
-  'stange.no' => 1,
-  'stavanger.no' => 1,
-  'steigen.no' => 1,
-  'steinkjer.no' => 1,
-  'stjordal.no' => 1,
-  'stjørdal.no' => 1,
-  'stokke.no' => 1,
-  'stor-elvdal.no' => 1,
-  'stord.no' => 1,
-  'stordal.no' => 1,
-  'storfjord.no' => 1,
-  'omasvuotna.no' => 1,
-  'strand.no' => 1,
-  'stranda.no' => 1,
-  'stryn.no' => 1,
-  'sula.no' => 1,
-  'suldal.no' => 1,
-  'sund.no' => 1,
-  'sunndal.no' => 1,
-  'surnadal.no' => 1,
-  'sveio.no' => 1,
-  'svelvik.no' => 1,
-  'sykkylven.no' => 1,
-  'sogne.no' => 1,
-  'søgne.no' => 1,
-  'somna.no' => 1,
-  'sømna.no' => 1,
-  'sondre-land.no' => 1,
-  'søndre-land.no' => 1,
-  'sor-aurdal.no' => 1,
-  'sør-aurdal.no' => 1,
-  'sor-fron.no' => 1,
-  'sør-fron.no' => 1,
-  'sor-odal.no' => 1,
-  'sør-odal.no' => 1,
-  'sor-varanger.no' => 1,
-  'sør-varanger.no' => 1,
-  'matta-varjjat.no' => 1,
-  'mátta-várjjat.no' => 1,
-  'sorfold.no' => 1,
-  'sørfold.no' => 1,
-  'sorreisa.no' => 1,
-  'sørreisa.no' => 1,
-  'sorum.no' => 1,
-  'sørum.no' => 1,
-  'tana.no' => 1,
-  'deatnu.no' => 1,
-  'time.no' => 1,
-  'tingvoll.no' => 1,
-  'tinn.no' => 1,
-  'tjeldsund.no' => 1,
-  'dielddanuorri.no' => 1,
-  'tjome.no' => 1,
-  'tjøme.no' => 1,
-  'tokke.no' => 1,
-  'tolga.no' => 1,
-  'torsken.no' => 1,
-  'tranoy.no' => 1,
-  'tranøy.no' => 1,
-  'tromso.no' => 1,
-  'tromsø.no' => 1,
-  'tromsa.no' => 1,
-  'romsa.no' => 1,
-  'trondheim.no' => 1,
-  'troandin.no' => 1,
-  'trysil.no' => 1,
-  'trana.no' => 1,
-  'træna.no' => 1,
-  'trogstad.no' => 1,
-  'trøgstad.no' => 1,
-  'tvedestrand.no' => 1,
-  'tydal.no' => 1,
-  'tynset.no' => 1,
-  'tysfjord.no' => 1,
-  'divtasvuodna.no' => 1,
-  'divttasvuotna.no' => 1,
-  'tysnes.no' => 1,
-  'tysvar.no' => 1,
-  'tysvær.no' => 1,
-  'tonsberg.no' => 1,
-  'tønsberg.no' => 1,
-  'ullensaker.no' => 1,
-  'ullensvang.no' => 1,
-  'ulvik.no' => 1,
-  'utsira.no' => 1,
-  'vadso.no' => 1,
-  'vadsø.no' => 1,
-  'cahcesuolo.no' => 1,
-  'čáhcesuolo.no' => 1,
-  'vaksdal.no' => 1,
-  'valle.no' => 1,
-  'vang.no' => 1,
-  'vanylven.no' => 1,
-  'vardo.no' => 1,
-  'vardø.no' => 1,
-  'varggat.no' => 1,
-  'várggát.no' => 1,
-  'vefsn.no' => 1,
-  'vaapste.no' => 1,
-  'vega.no' => 1,
-  'vegarshei.no' => 1,
-  'vegårshei.no' => 1,
-  'vennesla.no' => 1,
-  'verdal.no' => 1,
-  'verran.no' => 1,
-  'vestby.no' => 1,
-  'vestnes.no' => 1,
-  'vestre-slidre.no' => 1,
-  'vestre-toten.no' => 1,
-  'vestvagoy.no' => 1,
-  'vestvågøy.no' => 1,
-  'vevelstad.no' => 1,
-  'vik.no' => 1,
-  'vikna.no' => 1,
-  'vindafjord.no' => 1,
-  'volda.no' => 1,
-  'voss.no' => 1,
-  'varoy.no' => 1,
-  'værøy.no' => 1,
-  'vagan.no' => 1,
-  'vågan.no' => 1,
-  'voagat.no' => 1,
-  'vagsoy.no' => 1,
-  'vågsøy.no' => 1,
-  'vaga.no' => 1,
-  'vågå.no' => 1,
-  'valer.ostfold.no' => 1,
-  'våler.østfold.no' => 1,
-  'valer.hedmark.no' => 1,
-  'våler.hedmark.no' => 1,
-  '*.np' => 1,
-  'nr' => 1,
-  'biz.nr' => 1,
-  'info.nr' => 1,
-  'gov.nr' => 1,
-  'edu.nr' => 1,
-  'org.nr' => 1,
-  'net.nr' => 1,
-  'com.nr' => 1,
-  'nu' => 1,
-  'nz' => 1,
-  'ac.nz' => 1,
-  'co.nz' => 1,
-  'cri.nz' => 1,
-  'geek.nz' => 1,
-  'gen.nz' => 1,
-  'govt.nz' => 1,
-  'health.nz' => 1,
-  'iwi.nz' => 1,
-  'kiwi.nz' => 1,
-  'maori.nz' => 1,
-  'mil.nz' => 1,
-  'māori.nz' => 1,
-  'net.nz' => 1,
-  'org.nz' => 1,
-  'parliament.nz' => 1,
-  'school.nz' => 1,
-  'om' => 1,
-  'co.om' => 1,
-  'com.om' => 1,
-  'edu.om' => 1,
-  'gov.om' => 1,
-  'med.om' => 1,
-  'museum.om' => 1,
-  'net.om' => 1,
-  'org.om' => 1,
-  'pro.om' => 1,
-  'onion' => 1,
-  'org' => 1,
-  'pa' => 1,
-  'ac.pa' => 1,
-  'gob.pa' => 1,
-  'com.pa' => 1,
-  'org.pa' => 1,
-  'sld.pa' => 1,
-  'edu.pa' => 1,
-  'net.pa' => 1,
-  'ing.pa' => 1,
-  'abo.pa' => 1,
-  'med.pa' => 1,
-  'nom.pa' => 1,
-  'pe' => 1,
-  'edu.pe' => 1,
-  'gob.pe' => 1,
-  'nom.pe' => 1,
-  'mil.pe' => 1,
-  'org.pe' => 1,
-  'com.pe' => 1,
-  'net.pe' => 1,
-  'pf' => 1,
-  'com.pf' => 1,
-  'org.pf' => 1,
-  'edu.pf' => 1,
-  '*.pg' => 1,
-  'ph' => 1,
-  'com.ph' => 1,
-  'net.ph' => 1,
-  'org.ph' => 1,
-  'gov.ph' => 1,
-  'edu.ph' => 1,
-  'ngo.ph' => 1,
-  'mil.ph' => 1,
-  'i.ph' => 1,
-  'pk' => 1,
-  'com.pk' => 1,
-  'net.pk' => 1,
-  'edu.pk' => 1,
-  'org.pk' => 1,
-  'fam.pk' => 1,
-  'biz.pk' => 1,
-  'web.pk' => 1,
-  'gov.pk' => 1,
-  'gob.pk' => 1,
-  'gok.pk' => 1,
-  'gon.pk' => 1,
-  'gop.pk' => 1,
-  'gos.pk' => 1,
-  'info.pk' => 1,
-  'pl' => 1,
-  'com.pl' => 1,
-  'net.pl' => 1,
-  'org.pl' => 1,
-  'aid.pl' => 1,
-  'agro.pl' => 1,
-  'atm.pl' => 1,
-  'auto.pl' => 1,
-  'biz.pl' => 1,
-  'edu.pl' => 1,
-  'gmina.pl' => 1,
-  'gsm.pl' => 1,
-  'info.pl' => 1,
-  'mail.pl' => 1,
-  'miasta.pl' => 1,
-  'media.pl' => 1,
-  'mil.pl' => 1,
-  'nieruchomosci.pl' => 1,
-  'nom.pl' => 1,
-  'pc.pl' => 1,
-  'powiat.pl' => 1,
-  'priv.pl' => 1,
-  'realestate.pl' => 1,
-  'rel.pl' => 1,
-  'sex.pl' => 1,
-  'shop.pl' => 1,
-  'sklep.pl' => 1,
-  'sos.pl' => 1,
-  'szkola.pl' => 1,
-  'targi.pl' => 1,
-  'tm.pl' => 1,
-  'tourism.pl' => 1,
-  'travel.pl' => 1,
-  'turystyka.pl' => 1,
-  'gov.pl' => 1,
-  'ap.gov.pl' => 1,
-  'ic.gov.pl' => 1,
-  'is.gov.pl' => 1,
-  'us.gov.pl' => 1,
-  'kmpsp.gov.pl' => 1,
-  'kppsp.gov.pl' => 1,
-  'kwpsp.gov.pl' => 1,
-  'psp.gov.pl' => 1,
-  'wskr.gov.pl' => 1,
-  'kwp.gov.pl' => 1,
-  'mw.gov.pl' => 1,
-  'ug.gov.pl' => 1,
-  'um.gov.pl' => 1,
-  'umig.gov.pl' => 1,
-  'ugim.gov.pl' => 1,
-  'upow.gov.pl' => 1,
-  'uw.gov.pl' => 1,
-  'starostwo.gov.pl' => 1,
-  'pa.gov.pl' => 1,
-  'po.gov.pl' => 1,
-  'psse.gov.pl' => 1,
-  'pup.gov.pl' => 1,
-  'rzgw.gov.pl' => 1,
-  'sa.gov.pl' => 1,
-  'so.gov.pl' => 1,
-  'sr.gov.pl' => 1,
-  'wsa.gov.pl' => 1,
-  'sko.gov.pl' => 1,
-  'uzs.gov.pl' => 1,
-  'wiih.gov.pl' => 1,
-  'winb.gov.pl' => 1,
-  'pinb.gov.pl' => 1,
-  'wios.gov.pl' => 1,
-  'witd.gov.pl' => 1,
-  'wzmiuw.gov.pl' => 1,
-  'piw.gov.pl' => 1,
-  'wiw.gov.pl' => 1,
-  'griw.gov.pl' => 1,
-  'wif.gov.pl' => 1,
-  'oum.gov.pl' => 1,
-  'sdn.gov.pl' => 1,
-  'zp.gov.pl' => 1,
-  'uppo.gov.pl' => 1,
-  'mup.gov.pl' => 1,
-  'wuoz.gov.pl' => 1,
-  'konsulat.gov.pl' => 1,
-  'oirm.gov.pl' => 1,
-  'augustow.pl' => 1,
-  'babia-gora.pl' => 1,
-  'bedzin.pl' => 1,
-  'beskidy.pl' => 1,
-  'bialowieza.pl' => 1,
-  'bialystok.pl' => 1,
-  'bielawa.pl' => 1,
-  'bieszczady.pl' => 1,
-  'boleslawiec.pl' => 1,
-  'bydgoszcz.pl' => 1,
-  'bytom.pl' => 1,
-  'cieszyn.pl' => 1,
-  'czeladz.pl' => 1,
-  'czest.pl' => 1,
-  'dlugoleka.pl' => 1,
-  'elblag.pl' => 1,
-  'elk.pl' => 1,
-  'glogow.pl' => 1,
-  'gniezno.pl' => 1,
-  'gorlice.pl' => 1,
-  'grajewo.pl' => 1,
-  'ilawa.pl' => 1,
-  'jaworzno.pl' => 1,
-  'jelenia-gora.pl' => 1,
-  'jgora.pl' => 1,
-  'kalisz.pl' => 1,
-  'kazimierz-dolny.pl' => 1,
-  'karpacz.pl' => 1,
-  'kartuzy.pl' => 1,
-  'kaszuby.pl' => 1,
-  'katowice.pl' => 1,
-  'kepno.pl' => 1,
-  'ketrzyn.pl' => 1,
-  'klodzko.pl' => 1,
-  'kobierzyce.pl' => 1,
-  'kolobrzeg.pl' => 1,
-  'konin.pl' => 1,
-  'konskowola.pl' => 1,
-  'kutno.pl' => 1,
-  'lapy.pl' => 1,
-  'lebork.pl' => 1,
-  'legnica.pl' => 1,
-  'lezajsk.pl' => 1,
-  'limanowa.pl' => 1,
-  'lomza.pl' => 1,
-  'lowicz.pl' => 1,
-  'lubin.pl' => 1,
-  'lukow.pl' => 1,
-  'malbork.pl' => 1,
-  'malopolska.pl' => 1,
-  'mazowsze.pl' => 1,
-  'mazury.pl' => 1,
-  'mielec.pl' => 1,
-  'mielno.pl' => 1,
-  'mragowo.pl' => 1,
-  'naklo.pl' => 1,
-  'nowaruda.pl' => 1,
-  'nysa.pl' => 1,
-  'olawa.pl' => 1,
-  'olecko.pl' => 1,
-  'olkusz.pl' => 1,
-  'olsztyn.pl' => 1,
-  'opoczno.pl' => 1,
-  'opole.pl' => 1,
-  'ostroda.pl' => 1,
-  'ostroleka.pl' => 1,
-  'ostrowiec.pl' => 1,
-  'ostrowwlkp.pl' => 1,
-  'pila.pl' => 1,
-  'pisz.pl' => 1,
-  'podhale.pl' => 1,
-  'podlasie.pl' => 1,
-  'polkowice.pl' => 1,
-  'pomorze.pl' => 1,
-  'pomorskie.pl' => 1,
-  'prochowice.pl' => 1,
-  'pruszkow.pl' => 1,
-  'przeworsk.pl' => 1,
-  'pulawy.pl' => 1,
-  'radom.pl' => 1,
-  'rawa-maz.pl' => 1,
-  'rybnik.pl' => 1,
-  'rzeszow.pl' => 1,
-  'sanok.pl' => 1,
-  'sejny.pl' => 1,
-  'slask.pl' => 1,
-  'slupsk.pl' => 1,
-  'sosnowiec.pl' => 1,
-  'stalowa-wola.pl' => 1,
-  'skoczow.pl' => 1,
-  'starachowice.pl' => 1,
-  'stargard.pl' => 1,
-  'suwalki.pl' => 1,
-  'swidnica.pl' => 1,
-  'swiebodzin.pl' => 1,
-  'swinoujscie.pl' => 1,
-  'szczecin.pl' => 1,
-  'szczytno.pl' => 1,
-  'tarnobrzeg.pl' => 1,
-  'tgory.pl' => 1,
-  'turek.pl' => 1,
-  'tychy.pl' => 1,
-  'ustka.pl' => 1,
-  'walbrzych.pl' => 1,
-  'warmia.pl' => 1,
-  'warszawa.pl' => 1,
-  'waw.pl' => 1,
-  'wegrow.pl' => 1,
-  'wielun.pl' => 1,
-  'wlocl.pl' => 1,
-  'wloclawek.pl' => 1,
-  'wodzislaw.pl' => 1,
-  'wolomin.pl' => 1,
-  'wroclaw.pl' => 1,
-  'zachpomor.pl' => 1,
-  'zagan.pl' => 1,
-  'zarow.pl' => 1,
-  'zgora.pl' => 1,
-  'zgorzelec.pl' => 1,
-  'pm' => 1,
-  'pn' => 1,
-  'gov.pn' => 1,
-  'co.pn' => 1,
-  'org.pn' => 1,
-  'edu.pn' => 1,
-  'net.pn' => 1,
-  'post' => 1,
-  'pr' => 1,
-  'com.pr' => 1,
-  'net.pr' => 1,
-  'org.pr' => 1,
-  'gov.pr' => 1,
-  'edu.pr' => 1,
-  'isla.pr' => 1,
-  'pro.pr' => 1,
-  'biz.pr' => 1,
-  'info.pr' => 1,
-  'name.pr' => 1,
-  'est.pr' => 1,
-  'prof.pr' => 1,
-  'ac.pr' => 1,
-  'pro' => 1,
-  'aaa.pro' => 1,
-  'aca.pro' => 1,
-  'acct.pro' => 1,
-  'avocat.pro' => 1,
-  'bar.pro' => 1,
-  'cpa.pro' => 1,
-  'eng.pro' => 1,
-  'jur.pro' => 1,
-  'law.pro' => 1,
-  'med.pro' => 1,
-  'recht.pro' => 1,
-  'ps' => 1,
-  'edu.ps' => 1,
-  'gov.ps' => 1,
-  'sec.ps' => 1,
-  'plo.ps' => 1,
-  'com.ps' => 1,
-  'org.ps' => 1,
-  'net.ps' => 1,
-  'pt' => 1,
-  'net.pt' => 1,
-  'gov.pt' => 1,
-  'org.pt' => 1,
-  'edu.pt' => 1,
-  'int.pt' => 1,
-  'publ.pt' => 1,
-  'com.pt' => 1,
-  'nome.pt' => 1,
-  'pw' => 1,
-  'co.pw' => 1,
-  'ne.pw' => 1,
-  'or.pw' => 1,
-  'ed.pw' => 1,
-  'go.pw' => 1,
-  'belau.pw' => 1,
-  'py' => 1,
-  'com.py' => 1,
-  'coop.py' => 1,
-  'edu.py' => 1,
-  'gov.py' => 1,
-  'mil.py' => 1,
-  'net.py' => 1,
-  'org.py' => 1,
-  'qa' => 1,
-  'com.qa' => 1,
-  'edu.qa' => 1,
-  'gov.qa' => 1,
-  'mil.qa' => 1,
-  'name.qa' => 1,
-  'net.qa' => 1,
-  'org.qa' => 1,
-  'sch.qa' => 1,
-  're' => 1,
-  'asso.re' => 1,
-  'com.re' => 1,
-  'nom.re' => 1,
-  'ro' => 1,
-  'arts.ro' => 1,
-  'com.ro' => 1,
-  'firm.ro' => 1,
-  'info.ro' => 1,
-  'nom.ro' => 1,
-  'nt.ro' => 1,
-  'org.ro' => 1,
-  'rec.ro' => 1,
-  'store.ro' => 1,
-  'tm.ro' => 1,
-  'www.ro' => 1,
-  'rs' => 1,
-  'ac.rs' => 1,
-  'co.rs' => 1,
-  'edu.rs' => 1,
-  'gov.rs' => 1,
-  'in.rs' => 1,
-  'org.rs' => 1,
-  'ru' => 1,
-  'ac.ru' => 1,
-  'edu.ru' => 1,
-  'gov.ru' => 1,
-  'int.ru' => 1,
-  'mil.ru' => 1,
-  'test.ru' => 1,
-  'rw' => 1,
-  'gov.rw' => 1,
-  'net.rw' => 1,
-  'edu.rw' => 1,
-  'ac.rw' => 1,
-  'com.rw' => 1,
-  'co.rw' => 1,
-  'int.rw' => 1,
-  'mil.rw' => 1,
-  'gouv.rw' => 1,
-  'sa' => 1,
-  'com.sa' => 1,
-  'net.sa' => 1,
-  'org.sa' => 1,
-  'gov.sa' => 1,
-  'med.sa' => 1,
-  'pub.sa' => 1,
-  'edu.sa' => 1,
-  'sch.sa' => 1,
-  'sb' => 1,
-  'com.sb' => 1,
-  'edu.sb' => 1,
-  'gov.sb' => 1,
-  'net.sb' => 1,
-  'org.sb' => 1,
-  'sc' => 1,
-  'com.sc' => 1,
-  'gov.sc' => 1,
-  'net.sc' => 1,
-  'org.sc' => 1,
-  'edu.sc' => 1,
-  'sd' => 1,
-  'com.sd' => 1,
-  'net.sd' => 1,
-  'org.sd' => 1,
-  'edu.sd' => 1,
-  'med.sd' => 1,
-  'tv.sd' => 1,
-  'gov.sd' => 1,
-  'info.sd' => 1,
-  'se' => 1,
-  'a.se' => 1,
-  'ac.se' => 1,
-  'b.se' => 1,
-  'bd.se' => 1,
-  'brand.se' => 1,
-  'c.se' => 1,
-  'd.se' => 1,
-  'e.se' => 1,
-  'f.se' => 1,
-  'fh.se' => 1,
-  'fhsk.se' => 1,
-  'fhv.se' => 1,
-  'g.se' => 1,
-  'h.se' => 1,
-  'i.se' => 1,
-  'k.se' => 1,
-  'komforb.se' => 1,
-  'kommunalforbund.se' => 1,
-  'komvux.se' => 1,
-  'l.se' => 1,
-  'lanbib.se' => 1,
-  'm.se' => 1,
-  'n.se' => 1,
-  'naturbruksgymn.se' => 1,
-  'o.se' => 1,
-  'org.se' => 1,
-  'p.se' => 1,
-  'parti.se' => 1,
-  'pp.se' => 1,
-  'press.se' => 1,
-  'r.se' => 1,
-  's.se' => 1,
-  't.se' => 1,
-  'tm.se' => 1,
-  'u.se' => 1,
-  'w.se' => 1,
-  'x.se' => 1,
-  'y.se' => 1,
-  'z.se' => 1,
-  'sg' => 1,
-  'com.sg' => 1,
-  'net.sg' => 1,
-  'org.sg' => 1,
-  'gov.sg' => 1,
-  'edu.sg' => 1,
-  'per.sg' => 1,
-  'sh' => 1,
-  'com.sh' => 1,
-  'net.sh' => 1,
-  'gov.sh' => 1,
-  'org.sh' => 1,
-  'mil.sh' => 1,
-  'si' => 1,
-  'sj' => 1,
-  'sk' => 1,
-  'sl' => 1,
-  'com.sl' => 1,
-  'net.sl' => 1,
-  'edu.sl' => 1,
-  'gov.sl' => 1,
-  'org.sl' => 1,
-  'sm' => 1,
-  'sn' => 1,
-  'art.sn' => 1,
-  'com.sn' => 1,
-  'edu.sn' => 1,
-  'gouv.sn' => 1,
-  'org.sn' => 1,
-  'perso.sn' => 1,
-  'univ.sn' => 1,
-  'so' => 1,
-  'com.so' => 1,
-  'net.so' => 1,
-  'org.so' => 1,
-  'sr' => 1,
-  'st' => 1,
-  'co.st' => 1,
-  'com.st' => 1,
-  'consulado.st' => 1,
-  'edu.st' => 1,
-  'embaixada.st' => 1,
-  'gov.st' => 1,
-  'mil.st' => 1,
-  'net.st' => 1,
-  'org.st' => 1,
-  'principe.st' => 1,
-  'saotome.st' => 1,
-  'store.st' => 1,
-  'su' => 1,
-  'sv' => 1,
-  'com.sv' => 1,
-  'edu.sv' => 1,
-  'gob.sv' => 1,
-  'org.sv' => 1,
-  'red.sv' => 1,
-  'sx' => 1,
-  'gov.sx' => 1,
-  'sy' => 1,
-  'edu.sy' => 1,
-  'gov.sy' => 1,
-  'net.sy' => 1,
-  'mil.sy' => 1,
-  'com.sy' => 1,
-  'org.sy' => 1,
-  'sz' => 1,
-  'co.sz' => 1,
-  'ac.sz' => 1,
-  'org.sz' => 1,
-  'tc' => 1,
-  'td' => 1,
-  'tel' => 1,
-  'tf' => 1,
-  'tg' => 1,
-  'th' => 1,
-  'ac.th' => 1,
-  'co.th' => 1,
-  'go.th' => 1,
-  'in.th' => 1,
-  'mi.th' => 1,
-  'net.th' => 1,
-  'or.th' => 1,
-  'tj' => 1,
-  'ac.tj' => 1,
-  'biz.tj' => 1,
-  'co.tj' => 1,
-  'com.tj' => 1,
-  'edu.tj' => 1,
-  'go.tj' => 1,
-  'gov.tj' => 1,
-  'int.tj' => 1,
-  'mil.tj' => 1,
-  'name.tj' => 1,
-  'net.tj' => 1,
-  'nic.tj' => 1,
-  'org.tj' => 1,
-  'test.tj' => 1,
-  'web.tj' => 1,
-  'tk' => 1,
-  'tl' => 1,
-  'gov.tl' => 1,
-  'tm' => 1,
-  'com.tm' => 1,
-  'co.tm' => 1,
-  'org.tm' => 1,
-  'net.tm' => 1,
-  'nom.tm' => 1,
-  'gov.tm' => 1,
-  'mil.tm' => 1,
-  'edu.tm' => 1,
-  'tn' => 1,
-  'com.tn' => 1,
-  'ens.tn' => 1,
-  'fin.tn' => 1,
-  'gov.tn' => 1,
-  'ind.tn' => 1,
-  'intl.tn' => 1,
-  'nat.tn' => 1,
-  'net.tn' => 1,
-  'org.tn' => 1,
-  'info.tn' => 1,
-  'perso.tn' => 1,
-  'tourism.tn' => 1,
-  'edunet.tn' => 1,
-  'rnrt.tn' => 1,
-  'rns.tn' => 1,
-  'rnu.tn' => 1,
-  'mincom.tn' => 1,
-  'agrinet.tn' => 1,
-  'defense.tn' => 1,
-  'turen.tn' => 1,
-  'to' => 1,
-  'com.to' => 1,
-  'gov.to' => 1,
-  'net.to' => 1,
-  'org.to' => 1,
-  'edu.to' => 1,
-  'mil.to' => 1,
-  'tr' => 1,
-  'com.tr' => 1,
-  'info.tr' => 1,
-  'biz.tr' => 1,
-  'net.tr' => 1,
-  'org.tr' => 1,
-  'web.tr' => 1,
-  'gen.tr' => 1,
-  'tv.tr' => 1,
-  'av.tr' => 1,
-  'dr.tr' => 1,
-  'bbs.tr' => 1,
-  'name.tr' => 1,
-  'tel.tr' => 1,
-  'gov.tr' => 1,
-  'bel.tr' => 1,
-  'pol.tr' => 1,
-  'mil.tr' => 1,
-  'k12.tr' => 1,
-  'edu.tr' => 1,
-  'kep.tr' => 1,
-  'nc.tr' => 1,
-  'gov.nc.tr' => 1,
-  'tt' => 1,
-  'co.tt' => 1,
-  'com.tt' => 1,
-  'org.tt' => 1,
-  'net.tt' => 1,
-  'biz.tt' => 1,
-  'info.tt' => 1,
-  'pro.tt' => 1,
-  'int.tt' => 1,
-  'coop.tt' => 1,
-  'jobs.tt' => 1,
-  'mobi.tt' => 1,
-  'travel.tt' => 1,
-  'museum.tt' => 1,
-  'aero.tt' => 1,
-  'name.tt' => 1,
-  'gov.tt' => 1,
-  'edu.tt' => 1,
-  'tv' => 1,
-  'tw' => 1,
-  'edu.tw' => 1,
-  'gov.tw' => 1,
-  'mil.tw' => 1,
-  'com.tw' => 1,
-  'net.tw' => 1,
-  'org.tw' => 1,
-  'idv.tw' => 1,
-  'game.tw' => 1,
-  'ebiz.tw' => 1,
-  'club.tw' => 1,
-  '網路.tw' => 1,
-  '組織.tw' => 1,
-  '商業.tw' => 1,
-  'tz' => 1,
-  'ac.tz' => 1,
-  'co.tz' => 1,
-  'go.tz' => 1,
-  'hotel.tz' => 1,
-  'info.tz' => 1,
-  'me.tz' => 1,
-  'mil.tz' => 1,
-  'mobi.tz' => 1,
-  'ne.tz' => 1,
-  'or.tz' => 1,
-  'sc.tz' => 1,
-  'tv.tz' => 1,
-  'ua' => 1,
-  'com.ua' => 1,
-  'edu.ua' => 1,
-  'gov.ua' => 1,
-  'in.ua' => 1,
-  'net.ua' => 1,
-  'org.ua' => 1,
-  'cherkassy.ua' => 1,
-  'cherkasy.ua' => 1,
-  'chernigov.ua' => 1,
-  'chernihiv.ua' => 1,
-  'chernivtsi.ua' => 1,
-  'chernovtsy.ua' => 1,
-  'ck.ua' => 1,
-  'cn.ua' => 1,
-  'cr.ua' => 1,
-  'crimea.ua' => 1,
-  'cv.ua' => 1,
-  'dn.ua' => 1,
-  'dnepropetrovsk.ua' => 1,
-  'dnipropetrovsk.ua' => 1,
-  'dominic.ua' => 1,
-  'donetsk.ua' => 1,
-  'dp.ua' => 1,
-  'if.ua' => 1,
-  'ivano-frankivsk.ua' => 1,
-  'kh.ua' => 1,
-  'kharkiv.ua' => 1,
-  'kharkov.ua' => 1,
-  'kherson.ua' => 1,
-  'khmelnitskiy.ua' => 1,
-  'khmelnytskyi.ua' => 1,
-  'kiev.ua' => 1,
-  'kirovograd.ua' => 1,
-  'km.ua' => 1,
-  'kr.ua' => 1,
-  'krym.ua' => 1,
-  'ks.ua' => 1,
-  'kv.ua' => 1,
-  'kyiv.ua' => 1,
-  'lg.ua' => 1,
-  'lt.ua' => 1,
-  'lugansk.ua' => 1,
-  'lutsk.ua' => 1,
-  'lv.ua' => 1,
-  'lviv.ua' => 1,
-  'mk.ua' => 1,
-  'mykolaiv.ua' => 1,
-  'nikolaev.ua' => 1,
-  'od.ua' => 1,
-  'odesa.ua' => 1,
-  'odessa.ua' => 1,
-  'pl.ua' => 1,
-  'poltava.ua' => 1,
-  'rivne.ua' => 1,
-  'rovno.ua' => 1,
-  'rv.ua' => 1,
-  'sb.ua' => 1,
-  'sebastopol.ua' => 1,
-  'sevastopol.ua' => 1,
-  'sm.ua' => 1,
-  'sumy.ua' => 1,
-  'te.ua' => 1,
-  'ternopil.ua' => 1,
-  'uz.ua' => 1,
-  'uzhgorod.ua' => 1,
-  'vinnica.ua' => 1,
-  'vinnytsia.ua' => 1,
-  'vn.ua' => 1,
-  'volyn.ua' => 1,
-  'yalta.ua' => 1,
-  'zaporizhzhe.ua' => 1,
-  'zaporizhzhia.ua' => 1,
-  'zhitomir.ua' => 1,
-  'zhytomyr.ua' => 1,
-  'zp.ua' => 1,
-  'zt.ua' => 1,
-  'ug' => 1,
-  'co.ug' => 1,
-  'or.ug' => 1,
-  'ac.ug' => 1,
-  'sc.ug' => 1,
-  'go.ug' => 1,
-  'ne.ug' => 1,
-  'com.ug' => 1,
-  'org.ug' => 1,
-  'uk' => 1,
-  'ac.uk' => 1,
-  'co.uk' => 1,
-  'gov.uk' => 1,
-  'ltd.uk' => 1,
-  'me.uk' => 1,
-  'net.uk' => 1,
-  'nhs.uk' => 1,
-  'org.uk' => 1,
-  'plc.uk' => 1,
-  'police.uk' => 1,
-  '*.sch.uk' => 1,
-  'us' => 1,
-  'dni.us' => 1,
-  'fed.us' => 1,
-  'isa.us' => 1,
-  'kids.us' => 1,
-  'nsn.us' => 1,
-  'ak.us' => 1,
-  'al.us' => 1,
-  'ar.us' => 1,
-  'as.us' => 1,
-  'az.us' => 1,
-  'ca.us' => 1,
-  'co.us' => 1,
-  'ct.us' => 1,
-  'dc.us' => 1,
-  'de.us' => 1,
-  'fl.us' => 1,
-  'ga.us' => 1,
-  'gu.us' => 1,
-  'hi.us' => 1,
-  'ia.us' => 1,
-  'id.us' => 1,
-  'il.us' => 1,
-  'in.us' => 1,
-  'ks.us' => 1,
-  'ky.us' => 1,
-  'la.us' => 1,
-  'ma.us' => 1,
-  'md.us' => 1,
-  'me.us' => 1,
-  'mi.us' => 1,
-  'mn.us' => 1,
-  'mo.us' => 1,
-  'ms.us' => 1,
-  'mt.us' => 1,
-  'nc.us' => 1,
-  'nd.us' => 1,
-  'ne.us' => 1,
-  'nh.us' => 1,
-  'nj.us' => 1,
-  'nm.us' => 1,
-  'nv.us' => 1,
-  'ny.us' => 1,
-  'oh.us' => 1,
-  'ok.us' => 1,
-  'or.us' => 1,
-  'pa.us' => 1,
-  'pr.us' => 1,
-  'ri.us' => 1,
-  'sc.us' => 1,
-  'sd.us' => 1,
-  'tn.us' => 1,
-  'tx.us' => 1,
-  'ut.us' => 1,
-  'vi.us' => 1,
-  'vt.us' => 1,
-  'va.us' => 1,
-  'wa.us' => 1,
-  'wi.us' => 1,
-  'wv.us' => 1,
-  'wy.us' => 1,
-  'k12.ak.us' => 1,
-  'k12.al.us' => 1,
-  'k12.ar.us' => 1,
-  'k12.as.us' => 1,
-  'k12.az.us' => 1,
-  'k12.ca.us' => 1,
-  'k12.co.us' => 1,
-  'k12.ct.us' => 1,
-  'k12.dc.us' => 1,
-  'k12.de.us' => 1,
-  'k12.fl.us' => 1,
-  'k12.ga.us' => 1,
-  'k12.gu.us' => 1,
-  'k12.ia.us' => 1,
-  'k12.id.us' => 1,
-  'k12.il.us' => 1,
-  'k12.in.us' => 1,
-  'k12.ks.us' => 1,
-  'k12.ky.us' => 1,
-  'k12.la.us' => 1,
-  'k12.ma.us' => 1,
-  'k12.md.us' => 1,
-  'k12.me.us' => 1,
-  'k12.mi.us' => 1,
-  'k12.mn.us' => 1,
-  'k12.mo.us' => 1,
-  'k12.ms.us' => 1,
-  'k12.mt.us' => 1,
-  'k12.nc.us' => 1,
-  'k12.ne.us' => 1,
-  'k12.nh.us' => 1,
-  'k12.nj.us' => 1,
-  'k12.nm.us' => 1,
-  'k12.nv.us' => 1,
-  'k12.ny.us' => 1,
-  'k12.oh.us' => 1,
-  'k12.ok.us' => 1,
-  'k12.or.us' => 1,
-  'k12.pa.us' => 1,
-  'k12.pr.us' => 1,
-  'k12.ri.us' => 1,
-  'k12.sc.us' => 1,
-  'k12.tn.us' => 1,
-  'k12.tx.us' => 1,
-  'k12.ut.us' => 1,
-  'k12.vi.us' => 1,
-  'k12.vt.us' => 1,
-  'k12.va.us' => 1,
-  'k12.wa.us' => 1,
-  'k12.wi.us' => 1,
-  'k12.wy.us' => 1,
-  'cc.ak.us' => 1,
-  'cc.al.us' => 1,
-  'cc.ar.us' => 1,
-  'cc.as.us' => 1,
-  'cc.az.us' => 1,
-  'cc.ca.us' => 1,
-  'cc.co.us' => 1,
-  'cc.ct.us' => 1,
-  'cc.dc.us' => 1,
-  'cc.de.us' => 1,
-  'cc.fl.us' => 1,
-  'cc.ga.us' => 1,
-  'cc.gu.us' => 1,
-  'cc.hi.us' => 1,
-  'cc.ia.us' => 1,
-  'cc.id.us' => 1,
-  'cc.il.us' => 1,
-  'cc.in.us' => 1,
-  'cc.ks.us' => 1,
-  'cc.ky.us' => 1,
-  'cc.la.us' => 1,
-  'cc.ma.us' => 1,
-  'cc.md.us' => 1,
-  'cc.me.us' => 1,
-  'cc.mi.us' => 1,
-  'cc.mn.us' => 1,
-  'cc.mo.us' => 1,
-  'cc.ms.us' => 1,
-  'cc.mt.us' => 1,
-  'cc.nc.us' => 1,
-  'cc.nd.us' => 1,
-  'cc.ne.us' => 1,
-  'cc.nh.us' => 1,
-  'cc.nj.us' => 1,
-  'cc.nm.us' => 1,
-  'cc.nv.us' => 1,
-  'cc.ny.us' => 1,
-  'cc.oh.us' => 1,
-  'cc.ok.us' => 1,
-  'cc.or.us' => 1,
-  'cc.pa.us' => 1,
-  'cc.pr.us' => 1,
-  'cc.ri.us' => 1,
-  'cc.sc.us' => 1,
-  'cc.sd.us' => 1,
-  'cc.tn.us' => 1,
-  'cc.tx.us' => 1,
-  'cc.ut.us' => 1,
-  'cc.vi.us' => 1,
-  'cc.vt.us' => 1,
-  'cc.va.us' => 1,
-  'cc.wa.us' => 1,
-  'cc.wi.us' => 1,
-  'cc.wv.us' => 1,
-  'cc.wy.us' => 1,
-  'lib.ak.us' => 1,
-  'lib.al.us' => 1,
-  'lib.ar.us' => 1,
-  'lib.as.us' => 1,
-  'lib.az.us' => 1,
-  'lib.ca.us' => 1,
-  'lib.co.us' => 1,
-  'lib.ct.us' => 1,
-  'lib.dc.us' => 1,
-  'lib.fl.us' => 1,
-  'lib.ga.us' => 1,
-  'lib.gu.us' => 1,
-  'lib.hi.us' => 1,
-  'lib.ia.us' => 1,
-  'lib.id.us' => 1,
-  'lib.il.us' => 1,
-  'lib.in.us' => 1,
-  'lib.ks.us' => 1,
-  'lib.ky.us' => 1,
-  'lib.la.us' => 1,
-  'lib.ma.us' => 1,
-  'lib.md.us' => 1,
-  'lib.me.us' => 1,
-  'lib.mi.us' => 1,
-  'lib.mn.us' => 1,
-  'lib.mo.us' => 1,
-  'lib.ms.us' => 1,
-  'lib.mt.us' => 1,
-  'lib.nc.us' => 1,
-  'lib.nd.us' => 1,
-  'lib.ne.us' => 1,
-  'lib.nh.us' => 1,
-  'lib.nj.us' => 1,
-  'lib.nm.us' => 1,
-  'lib.nv.us' => 1,
-  'lib.ny.us' => 1,
-  'lib.oh.us' => 1,
-  'lib.ok.us' => 1,
-  'lib.or.us' => 1,
-  'lib.pa.us' => 1,
-  'lib.pr.us' => 1,
-  'lib.ri.us' => 1,
-  'lib.sc.us' => 1,
-  'lib.sd.us' => 1,
-  'lib.tn.us' => 1,
-  'lib.tx.us' => 1,
-  'lib.ut.us' => 1,
-  'lib.vi.us' => 1,
-  'lib.vt.us' => 1,
-  'lib.va.us' => 1,
-  'lib.wa.us' => 1,
-  'lib.wi.us' => 1,
-  'lib.wy.us' => 1,
-  'pvt.k12.ma.us' => 1,
-  'chtr.k12.ma.us' => 1,
-  'paroch.k12.ma.us' => 1,
-  'ann-arbor.mi.us' => 1,
-  'cog.mi.us' => 1,
-  'dst.mi.us' => 1,
-  'eaton.mi.us' => 1,
-  'gen.mi.us' => 1,
-  'mus.mi.us' => 1,
-  'tec.mi.us' => 1,
-  'washtenaw.mi.us' => 1,
-  'uy' => 1,
-  'com.uy' => 1,
-  'edu.uy' => 1,
-  'gub.uy' => 1,
-  'mil.uy' => 1,
-  'net.uy' => 1,
-  'org.uy' => 1,
-  'uz' => 1,
-  'co.uz' => 1,
-  'com.uz' => 1,
-  'net.uz' => 1,
-  'org.uz' => 1,
-  'va' => 1,
-  'vc' => 1,
-  'com.vc' => 1,
-  'net.vc' => 1,
-  'org.vc' => 1,
-  'gov.vc' => 1,
-  'mil.vc' => 1,
-  'edu.vc' => 1,
-  've' => 1,
-  'arts.ve' => 1,
-  'co.ve' => 1,
-  'com.ve' => 1,
-  'e12.ve' => 1,
-  'edu.ve' => 1,
-  'firm.ve' => 1,
-  'gob.ve' => 1,
-  'gov.ve' => 1,
-  'info.ve' => 1,
-  'int.ve' => 1,
-  'mil.ve' => 1,
-  'net.ve' => 1,
-  'org.ve' => 1,
-  'rec.ve' => 1,
-  'store.ve' => 1,
-  'tec.ve' => 1,
-  'web.ve' => 1,
-  'vg' => 1,
-  'vi' => 1,
-  'co.vi' => 1,
-  'com.vi' => 1,
-  'k12.vi' => 1,
-  'net.vi' => 1,
-  'org.vi' => 1,
-  'vn' => 1,
-  'com.vn' => 1,
-  'net.vn' => 1,
-  'org.vn' => 1,
-  'edu.vn' => 1,
-  'gov.vn' => 1,
-  'int.vn' => 1,
-  'ac.vn' => 1,
-  'biz.vn' => 1,
-  'info.vn' => 1,
-  'name.vn' => 1,
-  'pro.vn' => 1,
-  'health.vn' => 1,
-  'vu' => 1,
-  'com.vu' => 1,
-  'edu.vu' => 1,
-  'net.vu' => 1,
-  'org.vu' => 1,
-  'wf' => 1,
-  'ws' => 1,
-  'com.ws' => 1,
-  'net.ws' => 1,
-  'org.ws' => 1,
-  'gov.ws' => 1,
-  'edu.ws' => 1,
-  'yt' => 1,
-  'امارات' => 1,
-  'հայ' => 1,
-  'বাংলা' => 1,
-  'бг' => 1,
-  'бел' => 1,
-  '中国' => 1,
-  '中國' => 1,
-  'الجزائر' => 1,
-  'مصر' => 1,
-  'ею' => 1,
-  'გე' => 1,
-  'ελ' => 1,
-  '香港' => 1,
-  '公司.香港' => 1,
-  '教育.香港' => 1,
-  '政府.香港' => 1,
-  '個人.香港' => 1,
-  '網絡.香港' => 1,
-  '組織.香港' => 1,
-  'ಭಾರತ' => 1,
-  'ଭାରତ' => 1,
-  'ভাৰত' => 1,
-  'भारतम्' => 1,
-  'भारोत' => 1,
-  'ڀارت' => 1,
-  'ഭാരതം' => 1,
-  'भारत' => 1,
-  'بارت' => 1,
-  'بھارت' => 1,
-  'భారత్' => 1,
-  'ભારત' => 1,
-  'ਭਾਰਤ' => 1,
-  'ভারত' => 1,
-  'இந்தியா' => 1,
-  'ایران' => 1,
-  'ايران' => 1,
-  'عراق' => 1,
-  'الاردن' => 1,
-  '한국' => 1,
-  'қаз' => 1,
-  'ලංකා' => 1,
-  'இலங்கை' => 1,
-  'المغرب' => 1,
-  'мкд' => 1,
-  'мон' => 1,
-  '澳門' => 1,
-  '澳门' => 1,
-  'مليسيا' => 1,
-  'عمان' => 1,
-  'پاکستان' => 1,
-  'پاكستان' => 1,
-  'فلسطين' => 1,
-  'срб' => 1,
-  'пр.срб' => 1,
-  'орг.срб' => 1,
-  'обр.срб' => 1,
-  'од.срб' => 1,
-  'упр.срб' => 1,
-  'ак.срб' => 1,
-  'рф' => 1,
-  'قطر' => 1,
-  'السعودية' => 1,
-  'السعودیة' => 1,
-  'السعودیۃ' => 1,
-  'السعوديه' => 1,
-  'سودان' => 1,
-  '新加坡' => 1,
-  'சிங்கப்பூர்' => 1,
-  'سورية' => 1,
-  'سوريا' => 1,
-  'ไทย' => 1,
-  'ศึกษา.ไทย' => 1,
-  'ธุรกิจ.ไทย' => 1,
-  'รัฐบาล.ไทย' => 1,
-  'ทหาร.ไทย' => 1,
-  'เน็ต.ไทย' => 1,
-  'องค์กร.ไทย' => 1,
-  'تونس' => 1,
-  '台灣' => 1,
-  '台湾' => 1,
-  '臺灣' => 1,
-  'укр' => 1,
-  'اليمن' => 1,
-  'xxx' => 1,
-  '*.ye' => 1,
-  'ac.za' => 1,
-  'agric.za' => 1,
-  'alt.za' => 1,
-  'co.za' => 1,
-  'edu.za' => 1,
-  'gov.za' => 1,
-  'grondar.za' => 1,
-  'law.za' => 1,
-  'mil.za' => 1,
-  'net.za' => 1,
-  'ngo.za' => 1,
-  'nis.za' => 1,
-  'nom.za' => 1,
-  'org.za' => 1,
-  'school.za' => 1,
-  'tm.za' => 1,
-  'web.za' => 1,
-  'zm' => 1,
-  'ac.zm' => 1,
-  'biz.zm' => 1,
-  'co.zm' => 1,
-  'com.zm' => 1,
-  'edu.zm' => 1,
-  'gov.zm' => 1,
-  'info.zm' => 1,
-  'mil.zm' => 1,
-  'net.zm' => 1,
-  'org.zm' => 1,
-  'sch.zm' => 1,
-  'zw' => 1,
-  'ac.zw' => 1,
-  'co.zw' => 1,
-  'gov.zw' => 1,
-  'mil.zw' => 1,
-  'org.zw' => 1,
-  'aaa' => 1,
-  'aarp' => 1,
-  'abarth' => 1,
-  'abb' => 1,
-  'abbott' => 1,
-  'abbvie' => 1,
-  'abc' => 1,
-  'able' => 1,
-  'abogado' => 1,
-  'abudhabi' => 1,
-  'academy' => 1,
-  'accenture' => 1,
-  'accountant' => 1,
-  'accountants' => 1,
-  'aco' => 1,
-  'active' => 1,
-  'actor' => 1,
-  'adac' => 1,
-  'ads' => 1,
-  'adult' => 1,
-  'aeg' => 1,
-  'aetna' => 1,
-  'afamilycompany' => 1,
-  'afl' => 1,
-  'africa' => 1,
-  'agakhan' => 1,
-  'agency' => 1,
-  'aig' => 1,
-  'aigo' => 1,
-  'airbus' => 1,
-  'airforce' => 1,
-  'airtel' => 1,
-  'akdn' => 1,
-  'alfaromeo' => 1,
-  'alibaba' => 1,
-  'alipay' => 1,
-  'allfinanz' => 1,
-  'allstate' => 1,
-  'ally' => 1,
-  'alsace' => 1,
-  'alstom' => 1,
-  'americanexpress' => 1,
-  'americanfamily' => 1,
-  'amex' => 1,
-  'amfam' => 1,
-  'amica' => 1,
-  'amsterdam' => 1,
-  'analytics' => 1,
-  'android' => 1,
-  'anquan' => 1,
-  'anz' => 1,
-  'aol' => 1,
-  'apartments' => 1,
-  'app' => 1,
-  'apple' => 1,
-  'aquarelle' => 1,
-  'arab' => 1,
-  'aramco' => 1,
-  'archi' => 1,
-  'army' => 1,
-  'art' => 1,
-  'arte' => 1,
-  'asda' => 1,
-  'associates' => 1,
-  'athleta' => 1,
-  'attorney' => 1,
-  'auction' => 1,
-  'audi' => 1,
-  'audible' => 1,
-  'audio' => 1,
-  'auspost' => 1,
-  'author' => 1,
-  'auto' => 1,
-  'autos' => 1,
-  'avianca' => 1,
-  'aws' => 1,
-  'axa' => 1,
-  'azure' => 1,
-  'baby' => 1,
-  'baidu' => 1,
-  'banamex' => 1,
-  'bananarepublic' => 1,
-  'band' => 1,
-  'bank' => 1,
-  'bar' => 1,
-  'barcelona' => 1,
-  'barclaycard' => 1,
-  'barclays' => 1,
-  'barefoot' => 1,
-  'bargains' => 1,
-  'baseball' => 1,
-  'basketball' => 1,
-  'bauhaus' => 1,
-  'bayern' => 1,
-  'bbc' => 1,
-  'bbt' => 1,
-  'bbva' => 1,
-  'bcg' => 1,
-  'bcn' => 1,
-  'beats' => 1,
-  'beauty' => 1,
-  'beer' => 1,
-  'bentley' => 1,
-  'berlin' => 1,
-  'best' => 1,
-  'bestbuy' => 1,
-  'bet' => 1,
-  'bharti' => 1,
-  'bible' => 1,
-  'bid' => 1,
-  'bike' => 1,
-  'bing' => 1,
-  'bingo' => 1,
-  'bio' => 1,
-  'black' => 1,
-  'blackfriday' => 1,
-  'blanco' => 1,
-  'blockbuster' => 1,
-  'blog' => 1,
-  'bloomberg' => 1,
-  'blue' => 1,
-  'bms' => 1,
-  'bmw' => 1,
-  'bnl' => 1,
-  'bnpparibas' => 1,
-  'boats' => 1,
-  'boehringer' => 1,
-  'bofa' => 1,
-  'bom' => 1,
-  'bond' => 1,
-  'boo' => 1,
-  'book' => 1,
-  'booking' => 1,
-  'bosch' => 1,
-  'bostik' => 1,
-  'boston' => 1,
-  'bot' => 1,
-  'boutique' => 1,
-  'box' => 1,
-  'bradesco' => 1,
-  'bridgestone' => 1,
-  'broadway' => 1,
-  'broker' => 1,
-  'brother' => 1,
-  'brussels' => 1,
-  'budapest' => 1,
-  'bugatti' => 1,
-  'build' => 1,
-  'builders' => 1,
-  'business' => 1,
-  'buy' => 1,
-  'buzz' => 1,
-  'bzh' => 1,
-  'cab' => 1,
-  'cafe' => 1,
-  'cal' => 1,
-  'call' => 1,
-  'calvinklein' => 1,
-  'cam' => 1,
-  'camera' => 1,
-  'camp' => 1,
-  'cancerresearch' => 1,
-  'canon' => 1,
-  'capetown' => 1,
-  'capital' => 1,
-  'capitalone' => 1,
-  'car' => 1,
-  'caravan' => 1,
-  'cards' => 1,
-  'care' => 1,
-  'career' => 1,
-  'careers' => 1,
-  'cars' => 1,
-  'cartier' => 1,
-  'casa' => 1,
-  'case' => 1,
-  'caseih' => 1,
-  'cash' => 1,
-  'casino' => 1,
-  'catering' => 1,
-  'catholic' => 1,
-  'cba' => 1,
-  'cbn' => 1,
-  'cbre' => 1,
-  'cbs' => 1,
-  'ceb' => 1,
-  'center' => 1,
-  'ceo' => 1,
-  'cern' => 1,
-  'cfa' => 1,
-  'cfd' => 1,
-  'chanel' => 1,
-  'channel' => 1,
-  'charity' => 1,
-  'chase' => 1,
-  'chat' => 1,
-  'cheap' => 1,
-  'chintai' => 1,
-  'christmas' => 1,
-  'chrome' => 1,
-  'chrysler' => 1,
-  'church' => 1,
-  'cipriani' => 1,
-  'circle' => 1,
-  'cisco' => 1,
-  'citadel' => 1,
-  'citi' => 1,
-  'citic' => 1,
-  'city' => 1,
-  'cityeats' => 1,
-  'claims' => 1,
-  'cleaning' => 1,
-  'click' => 1,
-  'clinic' => 1,
-  'clinique' => 1,
-  'clothing' => 1,
-  'cloud' => 1,
-  'club' => 1,
-  'clubmed' => 1,
-  'coach' => 1,
-  'codes' => 1,
-  'coffee' => 1,
-  'college' => 1,
-  'cologne' => 1,
-  'comcast' => 1,
-  'commbank' => 1,
-  'community' => 1,
-  'company' => 1,
-  'compare' => 1,
-  'computer' => 1,
-  'comsec' => 1,
-  'condos' => 1,
-  'construction' => 1,
-  'consulting' => 1,
-  'contact' => 1,
-  'contractors' => 1,
-  'cooking' => 1,
-  'cookingchannel' => 1,
-  'cool' => 1,
-  'corsica' => 1,
-  'country' => 1,
-  'coupon' => 1,
-  'coupons' => 1,
-  'courses' => 1,
-  'credit' => 1,
-  'creditcard' => 1,
-  'creditunion' => 1,
-  'cricket' => 1,
-  'crown' => 1,
-  'crs' => 1,
-  'cruise' => 1,
-  'cruises' => 1,
-  'csc' => 1,
-  'cuisinella' => 1,
-  'cymru' => 1,
-  'cyou' => 1,
-  'dabur' => 1,
-  'dad' => 1,
-  'dance' => 1,
-  'data' => 1,
-  'date' => 1,
-  'dating' => 1,
-  'datsun' => 1,
-  'day' => 1,
-  'dclk' => 1,
-  'dds' => 1,
-  'deal' => 1,
-  'dealer' => 1,
-  'deals' => 1,
-  'degree' => 1,
-  'delivery' => 1,
-  'dell' => 1,
-  'deloitte' => 1,
-  'delta' => 1,
-  'democrat' => 1,
-  'dental' => 1,
-  'dentist' => 1,
-  'desi' => 1,
-  'design' => 1,
-  'dev' => 1,
-  'dhl' => 1,
-  'diamonds' => 1,
-  'diet' => 1,
-  'digital' => 1,
-  'direct' => 1,
-  'directory' => 1,
-  'discount' => 1,
-  'discover' => 1,
-  'dish' => 1,
-  'diy' => 1,
-  'dnp' => 1,
-  'docs' => 1,
-  'doctor' => 1,
-  'dodge' => 1,
-  'dog' => 1,
-  'doha' => 1,
-  'domains' => 1,
-  'dot' => 1,
-  'download' => 1,
-  'drive' => 1,
-  'dtv' => 1,
-  'dubai' => 1,
-  'duck' => 1,
-  'dunlop' => 1,
-  'duns' => 1,
-  'dupont' => 1,
-  'durban' => 1,
-  'dvag' => 1,
-  'dvr' => 1,
-  'earth' => 1,
-  'eat' => 1,
-  'eco' => 1,
-  'edeka' => 1,
-  'education' => 1,
-  'email' => 1,
-  'emerck' => 1,
-  'energy' => 1,
-  'engineer' => 1,
-  'engineering' => 1,
-  'enterprises' => 1,
-  'epost' => 1,
-  'epson' => 1,
-  'equipment' => 1,
-  'ericsson' => 1,
-  'erni' => 1,
-  'esq' => 1,
-  'estate' => 1,
-  'esurance' => 1,
-  'etisalat' => 1,
-  'eurovision' => 1,
-  'eus' => 1,
-  'events' => 1,
-  'everbank' => 1,
-  'exchange' => 1,
-  'expert' => 1,
-  'exposed' => 1,
-  'express' => 1,
-  'extraspace' => 1,
-  'fage' => 1,
-  'fail' => 1,
-  'fairwinds' => 1,
-  'faith' => 1,
-  'family' => 1,
-  'fan' => 1,
-  'fans' => 1,
-  'farm' => 1,
-  'farmers' => 1,
-  'fashion' => 1,
-  'fast' => 1,
-  'fedex' => 1,
-  'feedback' => 1,
-  'ferrari' => 1,
-  'ferrero' => 1,
-  'fiat' => 1,
-  'fidelity' => 1,
-  'fido' => 1,
-  'film' => 1,
-  'final' => 1,
-  'finance' => 1,
-  'financial' => 1,
-  'fire' => 1,
-  'firestone' => 1,
-  'firmdale' => 1,
-  'fish' => 1,
-  'fishing' => 1,
-  'fit' => 1,
-  'fitness' => 1,
-  'flickr' => 1,
-  'flights' => 1,
-  'flir' => 1,
-  'florist' => 1,
-  'flowers' => 1,
-  'fly' => 1,
-  'foo' => 1,
-  'food' => 1,
-  'foodnetwork' => 1,
-  'football' => 1,
-  'ford' => 1,
-  'forex' => 1,
-  'forsale' => 1,
-  'forum' => 1,
-  'foundation' => 1,
-  'fox' => 1,
-  'free' => 1,
-  'fresenius' => 1,
-  'frl' => 1,
-  'frogans' => 1,
-  'frontdoor' => 1,
-  'frontier' => 1,
-  'ftr' => 1,
-  'fujitsu' => 1,
-  'fujixerox' => 1,
-  'fun' => 1,
-  'fund' => 1,
-  'furniture' => 1,
-  'futbol' => 1,
-  'fyi' => 1,
-  'gal' => 1,
-  'gallery' => 1,
-  'gallo' => 1,
-  'gallup' => 1,
-  'game' => 1,
-  'games' => 1,
-  'gap' => 1,
-  'garden' => 1,
-  'gbiz' => 1,
-  'gdn' => 1,
-  'gea' => 1,
-  'gent' => 1,
-  'genting' => 1,
-  'george' => 1,
-  'ggee' => 1,
-  'gift' => 1,
-  'gifts' => 1,
-  'gives' => 1,
-  'giving' => 1,
-  'glade' => 1,
-  'glass' => 1,
-  'gle' => 1,
-  'global' => 1,
-  'globo' => 1,
-  'gmail' => 1,
-  'gmbh' => 1,
-  'gmo' => 1,
-  'gmx' => 1,
-  'godaddy' => 1,
-  'gold' => 1,
-  'goldpoint' => 1,
-  'golf' => 1,
-  'goo' => 1,
-  'goodyear' => 1,
-  'goog' => 1,
-  'google' => 1,
-  'gop' => 1,
-  'got' => 1,
-  'grainger' => 1,
-  'graphics' => 1,
-  'gratis' => 1,
-  'green' => 1,
-  'gripe' => 1,
-  'grocery' => 1,
-  'group' => 1,
-  'guardian' => 1,
-  'gucci' => 1,
-  'guge' => 1,
-  'guide' => 1,
-  'guitars' => 1,
-  'guru' => 1,
-  'hair' => 1,
-  'hamburg' => 1,
-  'hangout' => 1,
-  'haus' => 1,
-  'hbo' => 1,
-  'hdfc' => 1,
-  'hdfcbank' => 1,
-  'health' => 1,
-  'healthcare' => 1,
-  'help' => 1,
-  'helsinki' => 1,
-  'here' => 1,
-  'hermes' => 1,
-  'hgtv' => 1,
-  'hiphop' => 1,
-  'hisamitsu' => 1,
-  'hitachi' => 1,
-  'hiv' => 1,
-  'hkt' => 1,
-  'hockey' => 1,
-  'holdings' => 1,
-  'holiday' => 1,
-  'homedepot' => 1,
-  'homegoods' => 1,
-  'homes' => 1,
-  'homesense' => 1,
-  'honda' => 1,
-  'honeywell' => 1,
-  'horse' => 1,
-  'hospital' => 1,
-  'host' => 1,
-  'hosting' => 1,
-  'hot' => 1,
-  'hoteles' => 1,
-  'hotels' => 1,
-  'hotmail' => 1,
-  'house' => 1,
-  'how' => 1,
-  'hsbc' => 1,
-  'hughes' => 1,
-  'hyatt' => 1,
-  'hyundai' => 1,
-  'ibm' => 1,
-  'icbc' => 1,
-  'ice' => 1,
-  'icu' => 1,
-  'ieee' => 1,
-  'ifm' => 1,
-  'ikano' => 1,
-  'imamat' => 1,
-  'imdb' => 1,
-  'immo' => 1,
-  'immobilien' => 1,
-  'inc' => 1,
-  'industries' => 1,
-  'infiniti' => 1,
-  'ing' => 1,
-  'ink' => 1,
-  'institute' => 1,
-  'insurance' => 1,
-  'insure' => 1,
-  'intel' => 1,
-  'international' => 1,
-  'intuit' => 1,
-  'investments' => 1,
-  'ipiranga' => 1,
-  'irish' => 1,
-  'iselect' => 1,
-  'ismaili' => 1,
-  'ist' => 1,
-  'istanbul' => 1,
-  'itau' => 1,
-  'itv' => 1,
-  'iveco' => 1,
-  'jaguar' => 1,
-  'java' => 1,
-  'jcb' => 1,
-  'jcp' => 1,
-  'jeep' => 1,
-  'jetzt' => 1,
-  'jewelry' => 1,
-  'jio' => 1,
-  'jll' => 1,
-  'jmp' => 1,
-  'jnj' => 1,
-  'joburg' => 1,
-  'jot' => 1,
-  'joy' => 1,
-  'jpmorgan' => 1,
-  'jprs' => 1,
-  'juegos' => 1,
-  'juniper' => 1,
-  'kaufen' => 1,
-  'kddi' => 1,
-  'kerryhotels' => 1,
-  'kerrylogistics' => 1,
-  'kerryproperties' => 1,
-  'kfh' => 1,
-  'kia' => 1,
-  'kim' => 1,
-  'kinder' => 1,
-  'kindle' => 1,
-  'kitchen' => 1,
-  'kiwi' => 1,
-  'koeln' => 1,
-  'komatsu' => 1,
-  'kosher' => 1,
-  'kpmg' => 1,
-  'kpn' => 1,
-  'krd' => 1,
-  'kred' => 1,
-  'kuokgroup' => 1,
-  'kyoto' => 1,
-  'lacaixa' => 1,
-  'ladbrokes' => 1,
-  'lamborghini' => 1,
-  'lamer' => 1,
-  'lancaster' => 1,
-  'lancia' => 1,
-  'lancome' => 1,
-  'land' => 1,
-  'landrover' => 1,
-  'lanxess' => 1,
-  'lasalle' => 1,
-  'lat' => 1,
-  'latino' => 1,
-  'latrobe' => 1,
-  'law' => 1,
-  'lawyer' => 1,
-  'lds' => 1,
-  'lease' => 1,
-  'leclerc' => 1,
-  'lefrak' => 1,
-  'legal' => 1,
-  'lego' => 1,
-  'lexus' => 1,
-  'lgbt' => 1,
-  'liaison' => 1,
-  'lidl' => 1,
-  'life' => 1,
-  'lifeinsurance' => 1,
-  'lifestyle' => 1,
-  'lighting' => 1,
-  'like' => 1,
-  'lilly' => 1,
-  'limited' => 1,
-  'limo' => 1,
-  'lincoln' => 1,
-  'linde' => 1,
-  'link' => 1,
-  'lipsy' => 1,
-  'live' => 1,
-  'living' => 1,
-  'lixil' => 1,
-  'llc' => 1,
-  'loan' => 1,
-  'loans' => 1,
-  'locker' => 1,
-  'locus' => 1,
-  'loft' => 1,
-  'lol' => 1,
-  'london' => 1,
-  'lotte' => 1,
-  'lotto' => 1,
-  'love' => 1,
-  'lpl' => 1,
-  'lplfinancial' => 1,
-  'ltd' => 1,
-  'ltda' => 1,
-  'lundbeck' => 1,
-  'lupin' => 1,
-  'luxe' => 1,
-  'luxury' => 1,
-  'macys' => 1,
-  'madrid' => 1,
-  'maif' => 1,
-  'maison' => 1,
-  'makeup' => 1,
-  'man' => 1,
-  'management' => 1,
-  'mango' => 1,
-  'map' => 1,
-  'market' => 1,
-  'marketing' => 1,
-  'markets' => 1,
-  'marriott' => 1,
-  'marshalls' => 1,
-  'maserati' => 1,
-  'mattel' => 1,
-  'mba' => 1,
-  'mckinsey' => 1,
-  'med' => 1,
-  'media' => 1,
-  'meet' => 1,
-  'melbourne' => 1,
-  'meme' => 1,
-  'memorial' => 1,
-  'men' => 1,
-  'menu' => 1,
-  'merckmsd' => 1,
-  'metlife' => 1,
-  'miami' => 1,
-  'microsoft' => 1,
-  'mini' => 1,
-  'mint' => 1,
-  'mit' => 1,
-  'mitsubishi' => 1,
-  'mlb' => 1,
-  'mls' => 1,
-  'mma' => 1,
-  'mobile' => 1,
-  'mobily' => 1,
-  'moda' => 1,
-  'moe' => 1,
-  'moi' => 1,
-  'mom' => 1,
-  'monash' => 1,
-  'money' => 1,
-  'monster' => 1,
-  'mopar' => 1,
-  'mormon' => 1,
-  'mortgage' => 1,
-  'moscow' => 1,
-  'moto' => 1,
-  'motorcycles' => 1,
-  'mov' => 1,
-  'movie' => 1,
-  'movistar' => 1,
-  'msd' => 1,
-  'mtn' => 1,
-  'mtr' => 1,
-  'mutual' => 1,
-  'nab' => 1,
-  'nadex' => 1,
-  'nagoya' => 1,
-  'nationwide' => 1,
-  'natura' => 1,
-  'navy' => 1,
-  'nba' => 1,
-  'nec' => 1,
-  'netbank' => 1,
-  'netflix' => 1,
-  'network' => 1,
-  'neustar' => 1,
-  'new' => 1,
-  'newholland' => 1,
-  'news' => 1,
-  'next' => 1,
-  'nextdirect' => 1,
-  'nexus' => 1,
-  'nfl' => 1,
-  'ngo' => 1,
-  'nhk' => 1,
-  'nico' => 1,
-  'nike' => 1,
-  'nikon' => 1,
-  'ninja' => 1,
-  'nissan' => 1,
-  'nissay' => 1,
-  'nokia' => 1,
-  'northwesternmutual' => 1,
-  'norton' => 1,
-  'now' => 1,
-  'nowruz' => 1,
-  'nowtv' => 1,
-  'nra' => 1,
-  'nrw' => 1,
-  'ntt' => 1,
-  'nyc' => 1,
-  'obi' => 1,
-  'observer' => 1,
-  'off' => 1,
-  'office' => 1,
-  'okinawa' => 1,
-  'olayan' => 1,
-  'olayangroup' => 1,
-  'oldnavy' => 1,
-  'ollo' => 1,
-  'omega' => 1,
-  'one' => 1,
-  'ong' => 1,
-  'onl' => 1,
-  'online' => 1,
-  'onyourside' => 1,
-  'ooo' => 1,
-  'open' => 1,
-  'oracle' => 1,
-  'orange' => 1,
-  'organic' => 1,
-  'origins' => 1,
-  'osaka' => 1,
-  'otsuka' => 1,
-  'ott' => 1,
-  'ovh' => 1,
-  'page' => 1,
-  'panasonic' => 1,
-  'paris' => 1,
-  'pars' => 1,
-  'partners' => 1,
-  'parts' => 1,
-  'party' => 1,
-  'passagens' => 1,
-  'pay' => 1,
-  'pccw' => 1,
-  'pet' => 1,
-  'pfizer' => 1,
-  'pharmacy' => 1,
-  'phd' => 1,
-  'philips' => 1,
-  'phone' => 1,
-  'photo' => 1,
-  'photography' => 1,
-  'photos' => 1,
-  'physio' => 1,
-  'piaget' => 1,
-  'pics' => 1,
-  'pictet' => 1,
-  'pictures' => 1,
-  'pid' => 1,
-  'pin' => 1,
-  'ping' => 1,
-  'pink' => 1,
-  'pioneer' => 1,
-  'pizza' => 1,
-  'place' => 1,
-  'play' => 1,
-  'playstation' => 1,
-  'plumbing' => 1,
-  'plus' => 1,
-  'pnc' => 1,
-  'pohl' => 1,
-  'poker' => 1,
-  'politie' => 1,
-  'porn' => 1,
-  'pramerica' => 1,
-  'praxi' => 1,
-  'press' => 1,
-  'prime' => 1,
-  'prod' => 1,
-  'productions' => 1,
-  'prof' => 1,
-  'progressive' => 1,
-  'promo' => 1,
-  'properties' => 1,
-  'property' => 1,
-  'protection' => 1,
-  'pru' => 1,
-  'prudential' => 1,
-  'pub' => 1,
-  'pwc' => 1,
-  'qpon' => 1,
-  'quebec' => 1,
-  'quest' => 1,
-  'qvc' => 1,
-  'racing' => 1,
-  'radio' => 1,
-  'raid' => 1,
-  'read' => 1,
-  'realestate' => 1,
-  'realtor' => 1,
-  'realty' => 1,
-  'recipes' => 1,
-  'red' => 1,
-  'redstone' => 1,
-  'redumbrella' => 1,
-  'rehab' => 1,
-  'reise' => 1,
-  'reisen' => 1,
-  'reit' => 1,
-  'reliance' => 1,
-  'ren' => 1,
-  'rent' => 1,
-  'rentals' => 1,
-  'repair' => 1,
-  'report' => 1,
-  'republican' => 1,
-  'rest' => 1,
-  'restaurant' => 1,
-  'review' => 1,
-  'reviews' => 1,
-  'rexroth' => 1,
-  'rich' => 1,
-  'richardli' => 1,
-  'ricoh' => 1,
-  'rightathome' => 1,
-  'ril' => 1,
-  'rio' => 1,
-  'rip' => 1,
-  'rmit' => 1,
-  'rocher' => 1,
-  'rocks' => 1,
-  'rodeo' => 1,
-  'rogers' => 1,
-  'room' => 1,
-  'rsvp' => 1,
-  'rugby' => 1,
-  'ruhr' => 1,
-  'run' => 1,
-  'rwe' => 1,
-  'ryukyu' => 1,
-  'saarland' => 1,
-  'safe' => 1,
-  'safety' => 1,
-  'sakura' => 1,
-  'sale' => 1,
-  'salon' => 1,
-  'samsclub' => 1,
-  'samsung' => 1,
-  'sandvik' => 1,
-  'sandvikcoromant' => 1,
-  'sanofi' => 1,
-  'sap' => 1,
-  'sarl' => 1,
-  'sas' => 1,
-  'save' => 1,
-  'saxo' => 1,
-  'sbi' => 1,
-  'sbs' => 1,
-  'sca' => 1,
-  'scb' => 1,
-  'schaeffler' => 1,
-  'schmidt' => 1,
-  'scholarships' => 1,
-  'school' => 1,
-  'schule' => 1,
-  'schwarz' => 1,
-  'science' => 1,
-  'scjohnson' => 1,
-  'scor' => 1,
-  'scot' => 1,
-  'search' => 1,
-  'seat' => 1,
-  'secure' => 1,
-  'security' => 1,
-  'seek' => 1,
-  'select' => 1,
-  'sener' => 1,
-  'services' => 1,
-  'ses' => 1,
-  'seven' => 1,
-  'sew' => 1,
-  'sex' => 1,
-  'sexy' => 1,
-  'sfr' => 1,
-  'shangrila' => 1,
-  'sharp' => 1,
-  'shaw' => 1,
-  'shell' => 1,
-  'shia' => 1,
-  'shiksha' => 1,
-  'shoes' => 1,
-  'shop' => 1,
-  'shopping' => 1,
-  'shouji' => 1,
-  'show' => 1,
-  'showtime' => 1,
-  'shriram' => 1,
-  'silk' => 1,
-  'sina' => 1,
-  'singles' => 1,
-  'site' => 1,
-  'ski' => 1,
-  'skin' => 1,
-  'sky' => 1,
-  'skype' => 1,
-  'sling' => 1,
-  'smart' => 1,
-  'smile' => 1,
-  'sncf' => 1,
-  'soccer' => 1,
-  'social' => 1,
-  'softbank' => 1,
-  'software' => 1,
-  'sohu' => 1,
-  'solar' => 1,
-  'solutions' => 1,
-  'song' => 1,
-  'sony' => 1,
-  'soy' => 1,
-  'space' => 1,
-  'spiegel' => 1,
-  'sport' => 1,
-  'spot' => 1,
-  'spreadbetting' => 1,
-  'srl' => 1,
-  'srt' => 1,
-  'stada' => 1,
-  'staples' => 1,
-  'star' => 1,
-  'starhub' => 1,
-  'statebank' => 1,
-  'statefarm' => 1,
-  'stc' => 1,
-  'stcgroup' => 1,
-  'stockholm' => 1,
-  'storage' => 1,
-  'store' => 1,
-  'stream' => 1,
-  'studio' => 1,
-  'study' => 1,
-  'style' => 1,
-  'sucks' => 1,
-  'supplies' => 1,
-  'supply' => 1,
-  'support' => 1,
-  'surf' => 1,
-  'surgery' => 1,
-  'suzuki' => 1,
-  'swatch' => 1,
-  'swiftcover' => 1,
-  'swiss' => 1,
-  'sydney' => 1,
-  'symantec' => 1,
-  'systems' => 1,
-  'tab' => 1,
-  'taipei' => 1,
-  'talk' => 1,
-  'taobao' => 1,
-  'target' => 1,
-  'tatamotors' => 1,
-  'tatar' => 1,
-  'tattoo' => 1,
-  'tax' => 1,
-  'taxi' => 1,
-  'tci' => 1,
-  'tdk' => 1,
-  'team' => 1,
-  'tech' => 1,
-  'technology' => 1,
-  'telefonica' => 1,
-  'temasek' => 1,
-  'tennis' => 1,
-  'teva' => 1,
-  'thd' => 1,
-  'theater' => 1,
-  'theatre' => 1,
-  'tiaa' => 1,
-  'tickets' => 1,
-  'tienda' => 1,
-  'tiffany' => 1,
-  'tips' => 1,
-  'tires' => 1,
-  'tirol' => 1,
-  'tjmaxx' => 1,
-  'tjx' => 1,
-  'tkmaxx' => 1,
-  'tmall' => 1,
-  'today' => 1,
-  'tokyo' => 1,
-  'tools' => 1,
-  'top' => 1,
-  'toray' => 1,
-  'toshiba' => 1,
-  'total' => 1,
-  'tours' => 1,
-  'town' => 1,
-  'toyota' => 1,
-  'toys' => 1,
-  'trade' => 1,
-  'trading' => 1,
-  'training' => 1,
-  'travel' => 1,
-  'travelchannel' => 1,
-  'travelers' => 1,
-  'travelersinsurance' => 1,
-  'trust' => 1,
-  'trv' => 1,
-  'tube' => 1,
-  'tui' => 1,
-  'tunes' => 1,
-  'tushu' => 1,
-  'tvs' => 1,
-  'ubank' => 1,
-  'ubs' => 1,
-  'uconnect' => 1,
-  'unicom' => 1,
-  'university' => 1,
-  'uno' => 1,
-  'uol' => 1,
-  'ups' => 1,
-  'vacations' => 1,
-  'vana' => 1,
-  'vanguard' => 1,
-  'vegas' => 1,
-  'ventures' => 1,
-  'verisign' => 1,
-  'versicherung' => 1,
-  'vet' => 1,
-  'viajes' => 1,
-  'video' => 1,
-  'vig' => 1,
-  'viking' => 1,
-  'villas' => 1,
-  'vin' => 1,
-  'vip' => 1,
-  'virgin' => 1,
-  'visa' => 1,
-  'vision' => 1,
-  'vistaprint' => 1,
-  'viva' => 1,
-  'vivo' => 1,
-  'vlaanderen' => 1,
-  'vodka' => 1,
-  'volkswagen' => 1,
-  'volvo' => 1,
-  'vote' => 1,
-  'voting' => 1,
-  'voto' => 1,
-  'voyage' => 1,
-  'vuelos' => 1,
-  'wales' => 1,
-  'walmart' => 1,
-  'walter' => 1,
-  'wang' => 1,
-  'wanggou' => 1,
-  'warman' => 1,
-  'watch' => 1,
-  'watches' => 1,
-  'weather' => 1,
-  'weatherchannel' => 1,
-  'webcam' => 1,
-  'weber' => 1,
-  'website' => 1,
-  'wed' => 1,
-  'wedding' => 1,
-  'weibo' => 1,
-  'weir' => 1,
-  'whoswho' => 1,
-  'wien' => 1,
-  'wiki' => 1,
-  'williamhill' => 1,
-  'win' => 1,
-  'windows' => 1,
-  'wine' => 1,
-  'winners' => 1,
-  'wme' => 1,
-  'wolterskluwer' => 1,
-  'woodside' => 1,
-  'work' => 1,
-  'works' => 1,
-  'world' => 1,
-  'wow' => 1,
-  'wtc' => 1,
-  'wtf' => 1,
-  'xbox' => 1,
-  'xerox' => 1,
-  'xfinity' => 1,
-  'xihuan' => 1,
-  'xin' => 1,
-  'कॉम' => 1,
-  'セール' => 1,
-  '佛山' => 1,
-  '慈善' => 1,
-  '集团' => 1,
-  '在线' => 1,
-  '大众汽车' => 1,
-  '点看' => 1,
-  'คอม' => 1,
-  '八卦' => 1,
-  'موقع' => 1,
-  '公益' => 1,
-  '公司' => 1,
-  '香格里拉' => 1,
-  '网站' => 1,
-  '移动' => 1,
-  '我爱你' => 1,
-  'москва' => 1,
-  'католик' => 1,
-  'онлайн' => 1,
-  'сайт' => 1,
-  '联通' => 1,
-  'קום' => 1,
-  '时尚' => 1,
-  '微博' => 1,
-  '淡马锡' => 1,
-  'ファッション' => 1,
-  'орг' => 1,
-  'नेट' => 1,
-  'ストア' => 1,
-  '삼성' => 1,
-  '商标' => 1,
-  '商店' => 1,
-  '商城' => 1,
-  'дети' => 1,
-  'ポイント' => 1,
-  '新闻' => 1,
-  '工行' => 1,
-  '家電' => 1,
-  'كوم' => 1,
-  '中文网' => 1,
-  '中信' => 1,
-  '娱乐' => 1,
-  '谷歌' => 1,
-  '電訊盈科' => 1,
-  '购物' => 1,
-  'クラウド' => 1,
-  '通販' => 1,
-  '网店' => 1,
-  'संगठन' => 1,
-  '餐厅' => 1,
-  '网络' => 1,
-  'ком' => 1,
-  '诺基亚' => 1,
-  '食品' => 1,
-  '飞利浦' => 1,
-  '手表' => 1,
-  '手机' => 1,
-  'ارامكو' => 1,
-  'العليان' => 1,
-  'اتصالات' => 1,
-  'بازار' => 1,
-  'موبايلي' => 1,
-  'ابوظبي' => 1,
-  'كاثوليك' => 1,
-  'همراه' => 1,
-  '닷컴' => 1,
-  '政府' => 1,
-  'شبكة' => 1,
-  'بيتك' => 1,
-  'عرب' => 1,
-  '机构' => 1,
-  '组织机构' => 1,
-  '健康' => 1,
-  '招聘' => 1,
-  'рус' => 1,
-  '珠宝' => 1,
-  '大拿' => 1,
-  'みんな' => 1,
-  'グーグル' => 1,
-  '世界' => 1,
-  '書籍' => 1,
-  '网址' => 1,
-  '닷넷' => 1,
-  'コム' => 1,
-  '天主教' => 1,
-  '游戏' => 1,
-  'vermögensberater' => 1,
-  'vermögensberatung' => 1,
-  '企业' => 1,
-  '信息' => 1,
-  '嘉里大酒店' => 1,
-  '嘉里' => 1,
-  '广东' => 1,
-  '政务' => 1,
-  'xyz' => 1,
-  'yachts' => 1,
-  'yahoo' => 1,
-  'yamaxun' => 1,
-  'yandex' => 1,
-  'yodobashi' => 1,
-  'yoga' => 1,
-  'yokohama' => 1,
-  'you' => 1,
-  'youtube' => 1,
-  'yun' => 1,
-  'zappos' => 1,
-  'zara' => 1,
-  'zero' => 1,
-  'zip' => 1,
-  'zippo' => 1,
-  'zone' => 1,
-  'zuerich' => 1,
-  'cc.ua' => 2,
-  'inf.ua' => 2,
-  'ltd.ua' => 2,
-  'beep.pl' => 2,
-  '*.compute.estate' => 2,
-  '*.alces.network' => 2,
-  'alwaysdata.net' => 2,
-  'cloudfront.net' => 2,
-  '*.compute.amazonaws.com' => 2,
-  '*.compute-1.amazonaws.com' => 2,
-  '*.compute.amazonaws.com.cn' => 2,
-  'us-east-1.amazonaws.com' => 2,
-  'cn-north-1.eb.amazonaws.com.cn' => 2,
-  'cn-northwest-1.eb.amazonaws.com.cn' => 2,
-  'elasticbeanstalk.com' => 2,
-  'ap-northeast-1.elasticbeanstalk.com' => 2,
-  'ap-northeast-2.elasticbeanstalk.com' => 2,
-  'ap-northeast-3.elasticbeanstalk.com' => 2,
-  'ap-south-1.elasticbeanstalk.com' => 2,
-  'ap-southeast-1.elasticbeanstalk.com' => 2,
-  'ap-southeast-2.elasticbeanstalk.com' => 2,
-  'ca-central-1.elasticbeanstalk.com' => 2,
-  'eu-central-1.elasticbeanstalk.com' => 2,
-  'eu-west-1.elasticbeanstalk.com' => 2,
-  'eu-west-2.elasticbeanstalk.com' => 2,
-  'eu-west-3.elasticbeanstalk.com' => 2,
-  'sa-east-1.elasticbeanstalk.com' => 2,
-  'us-east-1.elasticbeanstalk.com' => 2,
-  'us-east-2.elasticbeanstalk.com' => 2,
-  'us-gov-west-1.elasticbeanstalk.com' => 2,
-  'us-west-1.elasticbeanstalk.com' => 2,
-  'us-west-2.elasticbeanstalk.com' => 2,
-  '*.elb.amazonaws.com' => 2,
-  '*.elb.amazonaws.com.cn' => 2,
-  's3.amazonaws.com' => 2,
-  's3-ap-northeast-1.amazonaws.com' => 2,
-  's3-ap-northeast-2.amazonaws.com' => 2,
-  's3-ap-south-1.amazonaws.com' => 2,
-  's3-ap-southeast-1.amazonaws.com' => 2,
-  's3-ap-southeast-2.amazonaws.com' => 2,
-  's3-ca-central-1.amazonaws.com' => 2,
-  's3-eu-central-1.amazonaws.com' => 2,
-  's3-eu-west-1.amazonaws.com' => 2,
-  's3-eu-west-2.amazonaws.com' => 2,
-  's3-eu-west-3.amazonaws.com' => 2,
-  's3-external-1.amazonaws.com' => 2,
-  's3-fips-us-gov-west-1.amazonaws.com' => 2,
-  's3-sa-east-1.amazonaws.com' => 2,
-  's3-us-gov-west-1.amazonaws.com' => 2,
-  's3-us-east-2.amazonaws.com' => 2,
-  's3-us-west-1.amazonaws.com' => 2,
-  's3-us-west-2.amazonaws.com' => 2,
-  's3.ap-northeast-2.amazonaws.com' => 2,
-  's3.ap-south-1.amazonaws.com' => 2,
-  's3.cn-north-1.amazonaws.com.cn' => 2,
-  's3.ca-central-1.amazonaws.com' => 2,
-  's3.eu-central-1.amazonaws.com' => 2,
-  's3.eu-west-2.amazonaws.com' => 2,
-  's3.eu-west-3.amazonaws.com' => 2,
-  's3.us-east-2.amazonaws.com' => 2,
-  's3.dualstack.ap-northeast-1.amazonaws.com' => 2,
-  's3.dualstack.ap-northeast-2.amazonaws.com' => 2,
-  's3.dualstack.ap-south-1.amazonaws.com' => 2,
-  's3.dualstack.ap-southeast-1.amazonaws.com' => 2,
-  's3.dualstack.ap-southeast-2.amazonaws.com' => 2,
-  's3.dualstack.ca-central-1.amazonaws.com' => 2,
-  's3.dualstack.eu-central-1.amazonaws.com' => 2,
-  's3.dualstack.eu-west-1.amazonaws.com' => 2,
-  's3.dualstack.eu-west-2.amazonaws.com' => 2,
-  's3.dualstack.eu-west-3.amazonaws.com' => 2,
-  's3.dualstack.sa-east-1.amazonaws.com' => 2,
-  's3.dualstack.us-east-1.amazonaws.com' => 2,
-  's3.dualstack.us-east-2.amazonaws.com' => 2,
-  's3-website-us-east-1.amazonaws.com' => 2,
-  's3-website-us-west-1.amazonaws.com' => 2,
-  's3-website-us-west-2.amazonaws.com' => 2,
-  's3-website-ap-northeast-1.amazonaws.com' => 2,
-  's3-website-ap-southeast-1.amazonaws.com' => 2,
-  's3-website-ap-southeast-2.amazonaws.com' => 2,
-  's3-website-eu-west-1.amazonaws.com' => 2,
-  's3-website-sa-east-1.amazonaws.com' => 2,
-  's3-website.ap-northeast-2.amazonaws.com' => 2,
-  's3-website.ap-south-1.amazonaws.com' => 2,
-  's3-website.ca-central-1.amazonaws.com' => 2,
-  's3-website.eu-central-1.amazonaws.com' => 2,
-  's3-website.eu-west-2.amazonaws.com' => 2,
-  's3-website.eu-west-3.amazonaws.com' => 2,
-  's3-website.us-east-2.amazonaws.com' => 2,
-  't3l3p0rt.net' => 2,
-  'tele.amune.org' => 2,
-  'apigee.io' => 2,
-  'on-aptible.com' => 2,
-  'user.party.eus' => 2,
-  'pimienta.org' => 2,
-  'poivron.org' => 2,
-  'potager.org' => 2,
-  'sweetpepper.org' => 2,
-  'myasustor.com' => 2,
-  'go-vip.co' => 2,
-  'wpcomstaging.com' => 2,
-  'myfritz.net' => 2,
-  '*.awdev.ca' => 2,
-  '*.advisor.ws' => 2,
-  'backplaneapp.io' => 2,
-  'betainabox.com' => 2,
-  'bnr.la' => 2,
-  'blackbaudcdn.net' => 2,
-  'boomla.net' => 2,
-  'boxfuse.io' => 2,
-  'square7.ch' => 2,
-  'bplaced.com' => 2,
-  'bplaced.de' => 2,
-  'square7.de' => 2,
-  'bplaced.net' => 2,
-  'square7.net' => 2,
-  'browsersafetymark.io' => 2,
-  'dh.bytemark.co.uk' => 2,
-  'vm.bytemark.co.uk' => 2,
-  'mycd.eu' => 2,
-  'ae.org' => 2,
-  'ar.com' => 2,
-  'br.com' => 2,
-  'cn.com' => 2,
-  'com.de' => 2,
-  'com.se' => 2,
-  'de.com' => 2,
-  'eu.com' => 2,
-  'gb.com' => 2,
-  'gb.net' => 2,
-  'hu.com' => 2,
-  'hu.net' => 2,
-  'jp.net' => 2,
-  'jpn.com' => 2,
-  'kr.com' => 2,
-  'mex.com' => 2,
-  'no.com' => 2,
-  'qc.com' => 2,
-  'ru.com' => 2,
-  'sa.com' => 2,
-  'se.net' => 2,
-  'uk.com' => 2,
-  'uk.net' => 2,
-  'us.com' => 2,
-  'uy.com' => 2,
-  'za.bz' => 2,
-  'za.com' => 2,
-  'africa.com' => 2,
-  'gr.com' => 2,
-  'in.net' => 2,
-  'us.org' => 2,
-  'co.com' => 2,
-  'c.la' => 2,
-  'certmgr.org' => 2,
-  'xenapponazure.com' => 2,
-  'virtueeldomein.nl' => 2,
-  'cleverapps.io' => 2,
-  'c66.me' => 2,
-  'cloud66.ws' => 2,
-  'jdevcloud.com' => 2,
-  'wpdevcloud.com' => 2,
-  'cloudaccess.host' => 2,
-  'freesite.host' => 2,
-  'cloudaccess.net' => 2,
-  'cloudcontrolled.com' => 2,
-  'cloudcontrolapp.com' => 2,
-  'co.ca' => 2,
-  '*.otap.co' => 2,
-  'co.cz' => 2,
-  'c.cdn77.org' => 2,
-  'cdn77-ssl.net' => 2,
-  'r.cdn77.net' => 2,
-  'rsc.cdn77.org' => 2,
-  'ssl.origin.cdn77-secure.org' => 2,
-  'cloudns.asia' => 2,
-  'cloudns.biz' => 2,
-  'cloudns.club' => 2,
-  'cloudns.cc' => 2,
-  'cloudns.eu' => 2,
-  'cloudns.in' => 2,
-  'cloudns.info' => 2,
-  'cloudns.org' => 2,
-  'cloudns.pro' => 2,
-  'cloudns.pw' => 2,
-  'cloudns.us' => 2,
-  'cloudeity.net' => 2,
-  'cnpy.gdn' => 2,
-  'co.nl' => 2,
-  'co.no' => 2,
-  'webhosting.be' => 2,
-  'hosting-cluster.nl' => 2,
-  'dyn.cosidns.de' => 2,
-  'dynamisches-dns.de' => 2,
-  'dnsupdater.de' => 2,
-  'internet-dns.de' => 2,
-  'l-o-g-i-n.de' => 2,
-  'dynamic-dns.info' => 2,
-  'feste-ip.net' => 2,
-  'knx-server.net' => 2,
-  'static-access.net' => 2,
-  'realm.cz' => 2,
-  '*.cryptonomic.net' => 2,
-  'cupcake.is' => 2,
-  'cyon.link' => 2,
-  'cyon.site' => 2,
-  'daplie.me' => 2,
-  'localhost.daplie.me' => 2,
-  'dattolocal.com' => 2,
-  'dattorelay.com' => 2,
-  'dattoweb.com' => 2,
-  'mydatto.com' => 2,
-  'dattolocal.net' => 2,
-  'mydatto.net' => 2,
-  'biz.dk' => 2,
-  'co.dk' => 2,
-  'firm.dk' => 2,
-  'reg.dk' => 2,
-  'store.dk' => 2,
-  'debian.net' => 2,
-  'dedyn.io' => 2,
-  'dnshome.de' => 2,
-  'online.th' => 2,
-  'shop.th' => 2,
-  'drayddns.com' => 2,
-  'dreamhosters.com' => 2,
-  'mydrobo.com' => 2,
-  'drud.io' => 2,
-  'drud.us' => 2,
-  'duckdns.org' => 2,
-  'dy.fi' => 2,
-  'tunk.org' => 2,
-  'dyndns-at-home.com' => 2,
-  'dyndns-at-work.com' => 2,
-  'dyndns-blog.com' => 2,
-  'dyndns-free.com' => 2,
-  'dyndns-home.com' => 2,
-  'dyndns-ip.com' => 2,
-  'dyndns-mail.com' => 2,
-  'dyndns-office.com' => 2,
-  'dyndns-pics.com' => 2,
-  'dyndns-remote.com' => 2,
-  'dyndns-server.com' => 2,
-  'dyndns-web.com' => 2,
-  'dyndns-wiki.com' => 2,
-  'dyndns-work.com' => 2,
-  'dyndns.biz' => 2,
-  'dyndns.info' => 2,
-  'dyndns.org' => 2,
-  'dyndns.tv' => 2,
-  'at-band-camp.net' => 2,
-  'ath.cx' => 2,
-  'barrel-of-knowledge.info' => 2,
-  'barrell-of-knowledge.info' => 2,
-  'better-than.tv' => 2,
-  'blogdns.com' => 2,
-  'blogdns.net' => 2,
-  'blogdns.org' => 2,
-  'blogsite.org' => 2,
-  'boldlygoingnowhere.org' => 2,
-  'broke-it.net' => 2,
-  'buyshouses.net' => 2,
-  'cechire.com' => 2,
-  'dnsalias.com' => 2,
-  'dnsalias.net' => 2,
-  'dnsalias.org' => 2,
-  'dnsdojo.com' => 2,
-  'dnsdojo.net' => 2,
-  'dnsdojo.org' => 2,
-  'does-it.net' => 2,
-  'doesntexist.com' => 2,
-  'doesntexist.org' => 2,
-  'dontexist.com' => 2,
-  'dontexist.net' => 2,
-  'dontexist.org' => 2,
-  'doomdns.com' => 2,
-  'doomdns.org' => 2,
-  'dvrdns.org' => 2,
-  'dyn-o-saur.com' => 2,
-  'dynalias.com' => 2,
-  'dynalias.net' => 2,
-  'dynalias.org' => 2,
-  'dynathome.net' => 2,
-  'dyndns.ws' => 2,
-  'endofinternet.net' => 2,
-  'endofinternet.org' => 2,
-  'endoftheinternet.org' => 2,
-  'est-a-la-maison.com' => 2,
-  'est-a-la-masion.com' => 2,
-  'est-le-patron.com' => 2,
-  'est-mon-blogueur.com' => 2,
-  'for-better.biz' => 2,
-  'for-more.biz' => 2,
-  'for-our.info' => 2,
-  'for-some.biz' => 2,
-  'for-the.biz' => 2,
-  'forgot.her.name' => 2,
-  'forgot.his.name' => 2,
-  'from-ak.com' => 2,
-  'from-al.com' => 2,
-  'from-ar.com' => 2,
-  'from-az.net' => 2,
-  'from-ca.com' => 2,
-  'from-co.net' => 2,
-  'from-ct.com' => 2,
-  'from-dc.com' => 2,
-  'from-de.com' => 2,
-  'from-fl.com' => 2,
-  'from-ga.com' => 2,
-  'from-hi.com' => 2,
-  'from-ia.com' => 2,
-  'from-id.com' => 2,
-  'from-il.com' => 2,
-  'from-in.com' => 2,
-  'from-ks.com' => 2,
-  'from-ky.com' => 2,
-  'from-la.net' => 2,
-  'from-ma.com' => 2,
-  'from-md.com' => 2,
-  'from-me.org' => 2,
-  'from-mi.com' => 2,
-  'from-mn.com' => 2,
-  'from-mo.com' => 2,
-  'from-ms.com' => 2,
-  'from-mt.com' => 2,
-  'from-nc.com' => 2,
-  'from-nd.com' => 2,
-  'from-ne.com' => 2,
-  'from-nh.com' => 2,
-  'from-nj.com' => 2,
-  'from-nm.com' => 2,
-  'from-nv.com' => 2,
-  'from-ny.net' => 2,
-  'from-oh.com' => 2,
-  'from-ok.com' => 2,
-  'from-or.com' => 2,
-  'from-pa.com' => 2,
-  'from-pr.com' => 2,
-  'from-ri.com' => 2,
-  'from-sc.com' => 2,
-  'from-sd.com' => 2,
-  'from-tn.com' => 2,
-  'from-tx.com' => 2,
-  'from-ut.com' => 2,
-  'from-va.com' => 2,
-  'from-vt.com' => 2,
-  'from-wa.com' => 2,
-  'from-wi.com' => 2,
-  'from-wv.com' => 2,
-  'from-wy.com' => 2,
-  'ftpaccess.cc' => 2,
-  'fuettertdasnetz.de' => 2,
-  'game-host.org' => 2,
-  'game-server.cc' => 2,
-  'getmyip.com' => 2,
-  'gets-it.net' => 2,
-  'go.dyndns.org' => 2,
-  'gotdns.com' => 2,
-  'gotdns.org' => 2,
-  'groks-the.info' => 2,
-  'groks-this.info' => 2,
-  'ham-radio-op.net' => 2,
-  'here-for-more.info' => 2,
-  'hobby-site.com' => 2,
-  'hobby-site.org' => 2,
-  'home.dyndns.org' => 2,
-  'homedns.org' => 2,
-  'homeftp.net' => 2,
-  'homeftp.org' => 2,
-  'homeip.net' => 2,
-  'homelinux.com' => 2,
-  'homelinux.net' => 2,
-  'homelinux.org' => 2,
-  'homeunix.com' => 2,
-  'homeunix.net' => 2,
-  'homeunix.org' => 2,
-  'iamallama.com' => 2,
-  'in-the-band.net' => 2,
-  'is-a-anarchist.com' => 2,
-  'is-a-blogger.com' => 2,
-  'is-a-bookkeeper.com' => 2,
-  'is-a-bruinsfan.org' => 2,
-  'is-a-bulls-fan.com' => 2,
-  'is-a-candidate.org' => 2,
-  'is-a-caterer.com' => 2,
-  'is-a-celticsfan.org' => 2,
-  'is-a-chef.com' => 2,
-  'is-a-chef.net' => 2,
-  'is-a-chef.org' => 2,
-  'is-a-conservative.com' => 2,
-  'is-a-cpa.com' => 2,
-  'is-a-cubicle-slave.com' => 2,
-  'is-a-democrat.com' => 2,
-  'is-a-designer.com' => 2,
-  'is-a-doctor.com' => 2,
-  'is-a-financialadvisor.com' => 2,
-  'is-a-geek.com' => 2,
-  'is-a-geek.net' => 2,
-  'is-a-geek.org' => 2,
-  'is-a-green.com' => 2,
-  'is-a-guru.com' => 2,
-  'is-a-hard-worker.com' => 2,
-  'is-a-hunter.com' => 2,
-  'is-a-knight.org' => 2,
-  'is-a-landscaper.com' => 2,
-  'is-a-lawyer.com' => 2,
-  'is-a-liberal.com' => 2,
-  'is-a-libertarian.com' => 2,
-  'is-a-linux-user.org' => 2,
-  'is-a-llama.com' => 2,
-  'is-a-musician.com' => 2,
-  'is-a-nascarfan.com' => 2,
-  'is-a-nurse.com' => 2,
-  'is-a-painter.com' => 2,
-  'is-a-patsfan.org' => 2,
-  'is-a-personaltrainer.com' => 2,
-  'is-a-photographer.com' => 2,
-  'is-a-player.com' => 2,
-  'is-a-republican.com' => 2,
-  'is-a-rockstar.com' => 2,
-  'is-a-socialist.com' => 2,
-  'is-a-soxfan.org' => 2,
-  'is-a-student.com' => 2,
-  'is-a-teacher.com' => 2,
-  'is-a-techie.com' => 2,
-  'is-a-therapist.com' => 2,
-  'is-an-accountant.com' => 2,
-  'is-an-actor.com' => 2,
-  'is-an-actress.com' => 2,
-  'is-an-anarchist.com' => 2,
-  'is-an-artist.com' => 2,
-  'is-an-engineer.com' => 2,
-  'is-an-entertainer.com' => 2,
-  'is-by.us' => 2,
-  'is-certified.com' => 2,
-  'is-found.org' => 2,
-  'is-gone.com' => 2,
-  'is-into-anime.com' => 2,
-  'is-into-cars.com' => 2,
-  'is-into-cartoons.com' => 2,
-  'is-into-games.com' => 2,
-  'is-leet.com' => 2,
-  'is-lost.org' => 2,
-  'is-not-certified.com' => 2,
-  'is-saved.org' => 2,
-  'is-slick.com' => 2,
-  'is-uberleet.com' => 2,
-  'is-very-bad.org' => 2,
-  'is-very-evil.org' => 2,
-  'is-very-good.org' => 2,
-  'is-very-nice.org' => 2,
-  'is-very-sweet.org' => 2,
-  'is-with-theband.com' => 2,
-  'isa-geek.com' => 2,
-  'isa-geek.net' => 2,
-  'isa-geek.org' => 2,
-  'isa-hockeynut.com' => 2,
-  'issmarterthanyou.com' => 2,
-  'isteingeek.de' => 2,
-  'istmein.de' => 2,
-  'kicks-ass.net' => 2,
-  'kicks-ass.org' => 2,
-  'knowsitall.info' => 2,
-  'land-4-sale.us' => 2,
-  'lebtimnetz.de' => 2,
-  'leitungsen.de' => 2,
-  'likes-pie.com' => 2,
-  'likescandy.com' => 2,
-  'merseine.nu' => 2,
-  'mine.nu' => 2,
-  'misconfused.org' => 2,
-  'mypets.ws' => 2,
-  'myphotos.cc' => 2,
-  'neat-url.com' => 2,
-  'office-on-the.net' => 2,
-  'on-the-web.tv' => 2,
-  'podzone.net' => 2,
-  'podzone.org' => 2,
-  'readmyblog.org' => 2,
-  'saves-the-whales.com' => 2,
-  'scrapper-site.net' => 2,
-  'scrapping.cc' => 2,
-  'selfip.biz' => 2,
-  'selfip.com' => 2,
-  'selfip.info' => 2,
-  'selfip.net' => 2,
-  'selfip.org' => 2,
-  'sells-for-less.com' => 2,
-  'sells-for-u.com' => 2,
-  'sells-it.net' => 2,
-  'sellsyourhome.org' => 2,
-  'servebbs.com' => 2,
-  'servebbs.net' => 2,
-  'servebbs.org' => 2,
-  'serveftp.net' => 2,
-  'serveftp.org' => 2,
-  'servegame.org' => 2,
-  'shacknet.nu' => 2,
-  'simple-url.com' => 2,
-  'space-to-rent.com' => 2,
-  'stuff-4-sale.org' => 2,
-  'stuff-4-sale.us' => 2,
-  'teaches-yoga.com' => 2,
-  'thruhere.net' => 2,
-  'traeumtgerade.de' => 2,
-  'webhop.biz' => 2,
-  'webhop.info' => 2,
-  'webhop.net' => 2,
-  'webhop.org' => 2,
-  'worse-than.tv' => 2,
-  'writesthisblog.com' => 2,
-  'ddnss.de' => 2,
-  'dyn.ddnss.de' => 2,
-  'dyndns.ddnss.de' => 2,
-  'dyndns1.de' => 2,
-  'dyn-ip24.de' => 2,
-  'home-webserver.de' => 2,
-  'dyn.home-webserver.de' => 2,
-  'myhome-server.de' => 2,
-  'ddnss.org' => 2,
-  'definima.net' => 2,
-  'definima.io' => 2,
-  'bci.dnstrace.pro' => 2,
-  'ddnsfree.com' => 2,
-  'ddnsgeek.com' => 2,
-  'giize.com' => 2,
-  'gleeze.com' => 2,
-  'kozow.com' => 2,
-  'loseyourip.com' => 2,
-  'ooguy.com' => 2,
-  'theworkpc.com' => 2,
-  'casacam.net' => 2,
-  'dynu.net' => 2,
-  'accesscam.org' => 2,
-  'camdvr.org' => 2,
-  'freeddns.org' => 2,
-  'mywire.org' => 2,
-  'webredirect.org' => 2,
-  'myddns.rocks' => 2,
-  'blogsite.xyz' => 2,
-  'dynv6.net' => 2,
-  'e4.cz' => 2,
-  'mytuleap.com' => 2,
-  'enonic.io' => 2,
-  'customer.enonic.io' => 2,
-  'eu.org' => 2,
-  'al.eu.org' => 2,
-  'asso.eu.org' => 2,
-  'at.eu.org' => 2,
-  'au.eu.org' => 2,
-  'be.eu.org' => 2,
-  'bg.eu.org' => 2,
-  'ca.eu.org' => 2,
-  'cd.eu.org' => 2,
-  'ch.eu.org' => 2,
-  'cn.eu.org' => 2,
-  'cy.eu.org' => 2,
-  'cz.eu.org' => 2,
-  'de.eu.org' => 2,
-  'dk.eu.org' => 2,
-  'edu.eu.org' => 2,
-  'ee.eu.org' => 2,
-  'es.eu.org' => 2,
-  'fi.eu.org' => 2,
-  'fr.eu.org' => 2,
-  'gr.eu.org' => 2,
-  'hr.eu.org' => 2,
-  'hu.eu.org' => 2,
-  'ie.eu.org' => 2,
-  'il.eu.org' => 2,
-  'in.eu.org' => 2,
-  'int.eu.org' => 2,
-  'is.eu.org' => 2,
-  'it.eu.org' => 2,
-  'jp.eu.org' => 2,
-  'kr.eu.org' => 2,
-  'lt.eu.org' => 2,
-  'lu.eu.org' => 2,
-  'lv.eu.org' => 2,
-  'mc.eu.org' => 2,
-  'me.eu.org' => 2,
-  'mk.eu.org' => 2,
-  'mt.eu.org' => 2,
-  'my.eu.org' => 2,
-  'net.eu.org' => 2,
-  'ng.eu.org' => 2,
-  'nl.eu.org' => 2,
-  'no.eu.org' => 2,
-  'nz.eu.org' => 2,
-  'paris.eu.org' => 2,
-  'pl.eu.org' => 2,
-  'pt.eu.org' => 2,
-  'q-a.eu.org' => 2,
-  'ro.eu.org' => 2,
-  'ru.eu.org' => 2,
-  'se.eu.org' => 2,
-  'si.eu.org' => 2,
-  'sk.eu.org' => 2,
-  'tr.eu.org' => 2,
-  'uk.eu.org' => 2,
-  'us.eu.org' => 2,
-  'eu-1.evennode.com' => 2,
-  'eu-2.evennode.com' => 2,
-  'eu-3.evennode.com' => 2,
-  'eu-4.evennode.com' => 2,
-  'us-1.evennode.com' => 2,
-  'us-2.evennode.com' => 2,
-  'us-3.evennode.com' => 2,
-  'us-4.evennode.com' => 2,
-  'twmail.cc' => 2,
-  'twmail.net' => 2,
-  'twmail.org' => 2,
-  'mymailer.com.tw' => 2,
-  'url.tw' => 2,
-  'apps.fbsbx.com' => 2,
-  'ru.net' => 2,
-  'adygeya.ru' => 2,
-  'bashkiria.ru' => 2,
-  'bir.ru' => 2,
-  'cbg.ru' => 2,
-  'com.ru' => 2,
-  'dagestan.ru' => 2,
-  'grozny.ru' => 2,
-  'kalmykia.ru' => 2,
-  'kustanai.ru' => 2,
-  'marine.ru' => 2,
-  'mordovia.ru' => 2,
-  'msk.ru' => 2,
-  'mytis.ru' => 2,
-  'nalchik.ru' => 2,
-  'nov.ru' => 2,
-  'pyatigorsk.ru' => 2,
-  'spb.ru' => 2,
-  'vladikavkaz.ru' => 2,
-  'vladimir.ru' => 2,
-  'abkhazia.su' => 2,
-  'adygeya.su' => 2,
-  'aktyubinsk.su' => 2,
-  'arkhangelsk.su' => 2,
-  'armenia.su' => 2,
-  'ashgabad.su' => 2,
-  'azerbaijan.su' => 2,
-  'balashov.su' => 2,
-  'bashkiria.su' => 2,
-  'bryansk.su' => 2,
-  'bukhara.su' => 2,
-  'chimkent.su' => 2,
-  'dagestan.su' => 2,
-  'east-kazakhstan.su' => 2,
-  'exnet.su' => 2,
-  'georgia.su' => 2,
-  'grozny.su' => 2,
-  'ivanovo.su' => 2,
-  'jambyl.su' => 2,
-  'kalmykia.su' => 2,
-  'kaluga.su' => 2,
-  'karacol.su' => 2,
-  'karaganda.su' => 2,
-  'karelia.su' => 2,
-  'khakassia.su' => 2,
-  'krasnodar.su' => 2,
-  'kurgan.su' => 2,
-  'kustanai.su' => 2,
-  'lenug.su' => 2,
-  'mangyshlak.su' => 2,
-  'mordovia.su' => 2,
-  'msk.su' => 2,
-  'murmansk.su' => 2,
-  'nalchik.su' => 2,
-  'navoi.su' => 2,
-  'north-kazakhstan.su' => 2,
-  'nov.su' => 2,
-  'obninsk.su' => 2,
-  'penza.su' => 2,
-  'pokrovsk.su' => 2,
-  'sochi.su' => 2,
-  'spb.su' => 2,
-  'tashkent.su' => 2,
-  'termez.su' => 2,
-  'togliatti.su' => 2,
-  'troitsk.su' => 2,
-  'tselinograd.su' => 2,
-  'tula.su' => 2,
-  'tuva.su' => 2,
-  'vladikavkaz.su' => 2,
-  'vladimir.su' => 2,
-  'vologda.su' => 2,
-  'channelsdvr.net' => 2,
-  'fastlylb.net' => 2,
-  'map.fastlylb.net' => 2,
-  'freetls.fastly.net' => 2,
-  'map.fastly.net' => 2,
-  'a.prod.fastly.net' => 2,
-  'global.prod.fastly.net' => 2,
-  'a.ssl.fastly.net' => 2,
-  'b.ssl.fastly.net' => 2,
-  'global.ssl.fastly.net' => 2,
-  'fastpanel.direct' => 2,
-  'fastvps-server.com' => 2,
-  'fhapp.xyz' => 2,
-  'fedorainfracloud.org' => 2,
-  'fedorapeople.org' => 2,
-  'cloud.fedoraproject.org' => 2,
-  'app.os.fedoraproject.org' => 2,
-  'app.os.stg.fedoraproject.org' => 2,
-  'mydobiss.com' => 2,
-  'filegear.me' => 2,
-  'firebaseapp.com' => 2,
-  'flynnhub.com' => 2,
-  'flynnhosting.net' => 2,
-  'freebox-os.com' => 2,
-  'freeboxos.com' => 2,
-  'fbx-os.fr' => 2,
-  'fbxos.fr' => 2,
-  'freebox-os.fr' => 2,
-  'freeboxos.fr' => 2,
-  'freedesktop.org' => 2,
-  '*.futurecms.at' => 2,
-  '*.ex.futurecms.at' => 2,
-  '*.in.futurecms.at' => 2,
-  'futurehosting.at' => 2,
-  'futuremailing.at' => 2,
-  '*.ex.ortsinfo.at' => 2,
-  '*.kunden.ortsinfo.at' => 2,
-  '*.statics.cloud' => 2,
-  'service.gov.uk' => 2,
-  'github.io' => 2,
-  'githubusercontent.com' => 2,
-  'gitlab.io' => 2,
-  'homeoffice.gov.uk' => 2,
-  'ro.im' => 2,
-  'shop.ro' => 2,
-  'goip.de' => 2,
-  '*.0emm.com' => 2,
-  'appspot.com' => 2,
-  'blogspot.ae' => 2,
-  'blogspot.al' => 2,
-  'blogspot.am' => 2,
-  'blogspot.ba' => 2,
-  'blogspot.be' => 2,
-  'blogspot.bg' => 2,
-  'blogspot.bj' => 2,
-  'blogspot.ca' => 2,
-  'blogspot.cf' => 2,
-  'blogspot.ch' => 2,
-  'blogspot.cl' => 2,
-  'blogspot.co.at' => 2,
-  'blogspot.co.id' => 2,
-  'blogspot.co.il' => 2,
-  'blogspot.co.ke' => 2,
-  'blogspot.co.nz' => 2,
-  'blogspot.co.uk' => 2,
-  'blogspot.co.za' => 2,
-  'blogspot.com' => 2,
-  'blogspot.com.ar' => 2,
-  'blogspot.com.au' => 2,
-  'blogspot.com.br' => 2,
-  'blogspot.com.by' => 2,
-  'blogspot.com.co' => 2,
-  'blogspot.com.cy' => 2,
-  'blogspot.com.ee' => 2,
-  'blogspot.com.eg' => 2,
-  'blogspot.com.es' => 2,
-  'blogspot.com.mt' => 2,
-  'blogspot.com.ng' => 2,
-  'blogspot.com.tr' => 2,
-  'blogspot.com.uy' => 2,
-  'blogspot.cv' => 2,
-  'blogspot.cz' => 2,
-  'blogspot.de' => 2,
-  'blogspot.dk' => 2,
-  'blogspot.fi' => 2,
-  'blogspot.fr' => 2,
-  'blogspot.gr' => 2,
-  'blogspot.hk' => 2,
-  'blogspot.hr' => 2,
-  'blogspot.hu' => 2,
-  'blogspot.ie' => 2,
-  'blogspot.in' => 2,
-  'blogspot.is' => 2,
-  'blogspot.it' => 2,
-  'blogspot.jp' => 2,
-  'blogspot.kr' => 2,
-  'blogspot.li' => 2,
-  'blogspot.lt' => 2,
-  'blogspot.lu' => 2,
-  'blogspot.md' => 2,
-  'blogspot.mk' => 2,
-  'blogspot.mr' => 2,
-  'blogspot.mx' => 2,
-  'blogspot.my' => 2,
-  'blogspot.nl' => 2,
-  'blogspot.no' => 2,
-  'blogspot.pe' => 2,
-  'blogspot.pt' => 2,
-  'blogspot.qa' => 2,
-  'blogspot.re' => 2,
-  'blogspot.ro' => 2,
-  'blogspot.rs' => 2,
-  'blogspot.ru' => 2,
-  'blogspot.se' => 2,
-  'blogspot.sg' => 2,
-  'blogspot.si' => 2,
-  'blogspot.sk' => 2,
-  'blogspot.sn' => 2,
-  'blogspot.td' => 2,
-  'blogspot.tw' => 2,
-  'blogspot.ug' => 2,
-  'blogspot.vn' => 2,
-  'cloudfunctions.net' => 2,
-  'cloud.goog' => 2,
-  'codespot.com' => 2,
-  'googleapis.com' => 2,
-  'googlecode.com' => 2,
-  'pagespeedmobilizer.com' => 2,
-  'publishproxy.com' => 2,
-  'withgoogle.com' => 2,
-  'withyoutube.com' => 2,
-  'hashbang.sh' => 2,
-  'hasura.app' => 2,
-  'hasura-app.io' => 2,
-  'hepforge.org' => 2,
-  'herokuapp.com' => 2,
-  'herokussl.com' => 2,
-  'myravendb.com' => 2,
-  'ravendb.community' => 2,
-  'ravendb.me' => 2,
-  'development.run' => 2,
-  'ravendb.run' => 2,
-  'moonscale.net' => 2,
-  'iki.fi' => 2,
-  'biz.at' => 2,
-  'info.at' => 2,
-  'info.cx' => 2,
-  'ac.leg.br' => 2,
-  'al.leg.br' => 2,
-  'am.leg.br' => 2,
-  'ap.leg.br' => 2,
-  'ba.leg.br' => 2,
-  'ce.leg.br' => 2,
-  'df.leg.br' => 2,
-  'es.leg.br' => 2,
-  'go.leg.br' => 2,
-  'ma.leg.br' => 2,
-  'mg.leg.br' => 2,
-  'ms.leg.br' => 2,
-  'mt.leg.br' => 2,
-  'pa.leg.br' => 2,
-  'pb.leg.br' => 2,
-  'pe.leg.br' => 2,
-  'pi.leg.br' => 2,
-  'pr.leg.br' => 2,
-  'rj.leg.br' => 2,
-  'rn.leg.br' => 2,
-  'ro.leg.br' => 2,
-  'rr.leg.br' => 2,
-  'rs.leg.br' => 2,
-  'sc.leg.br' => 2,
-  'se.leg.br' => 2,
-  'sp.leg.br' => 2,
-  'to.leg.br' => 2,
-  'pixolino.com' => 2,
-  'ipifony.net' => 2,
-  'mein-iserv.de' => 2,
-  'test-iserv.de' => 2,
-  'myjino.ru' => 2,
-  '*.hosting.myjino.ru' => 2,
-  '*.landing.myjino.ru' => 2,
-  '*.spectrum.myjino.ru' => 2,
-  '*.vps.myjino.ru' => 2,
-  '*.triton.zone' => 2,
-  '*.cns.joyent.com' => 2,
-  'js.org' => 2,
-  'keymachine.de' => 2,
-  'knightpoint.systems' => 2,
-  'co.krd' => 2,
-  'edu.krd' => 2,
-  'git-repos.de' => 2,
-  'lcube-server.de' => 2,
-  'svn-repos.de' => 2,
-  'app.lmpm.com' => 2,
-  'linkitools.space' => 2,
-  'linkyard.cloud' => 2,
-  'linkyard-cloud.ch' => 2,
-  'we.bs' => 2,
-  'krasnik.pl' => 2,
-  'leczna.pl' => 2,
-  'lubartow.pl' => 2,
-  'lublin.pl' => 2,
-  'poniatowa.pl' => 2,
-  'swidnik.pl' => 2,
-  'uklugs.org' => 2,
-  'glug.org.uk' => 2,
-  'lug.org.uk' => 2,
-  'lugs.org.uk' => 2,
-  'barsy.bg' => 2,
-  'barsy.co.uk' => 2,
-  'barsyonline.co.uk' => 2,
-  'barsycenter.com' => 2,
-  'barsyonline.com' => 2,
-  'barsy.club' => 2,
-  'barsy.de' => 2,
-  'barsy.eu' => 2,
-  'barsy.in' => 2,
-  'barsy.info' => 2,
-  'barsy.io' => 2,
-  'barsy.me' => 2,
-  'barsy.menu' => 2,
-  'barsy.mobi' => 2,
-  'barsy.net' => 2,
-  'barsy.online' => 2,
-  'barsy.org' => 2,
-  'barsy.pro' => 2,
-  'barsy.pub' => 2,
-  'barsy.shop' => 2,
-  'barsy.site' => 2,
-  'barsy.support' => 2,
-  'barsy.uk' => 2,
-  '*.magentosite.cloud' => 2,
-  'mayfirst.info' => 2,
-  'mayfirst.org' => 2,
-  'hb.cldmail.ru' => 2,
-  'miniserver.com' => 2,
-  'memset.net' => 2,
-  'cloud.metacentrum.cz' => 2,
-  'custom.metacentrum.cz' => 2,
-  'flt.cloud.muni.cz' => 2,
-  'usr.cloud.muni.cz' => 2,
-  'meteorapp.com' => 2,
-  'eu.meteorapp.com' => 2,
-  'co.pl' => 2,
-  'azurecontainer.io' => 2,
-  'azurewebsites.net' => 2,
-  'azure-mobile.net' => 2,
-  'cloudapp.net' => 2,
-  'mozilla-iot.org' => 2,
-  'bmoattachments.org' => 2,
-  'net.ru' => 2,
-  'org.ru' => 2,
-  'pp.ru' => 2,
-  'bitballoon.com' => 2,
-  'netlify.com' => 2,
-  '4u.com' => 2,
-  'ngrok.io' => 2,
-  'nh-serv.co.uk' => 2,
-  'nfshost.com' => 2,
-  'dnsking.ch' => 2,
-  'mypi.co' => 2,
-  'n4t.co' => 2,
-  '001www.com' => 2,
-  'ddnslive.com' => 2,
-  'myiphost.com' => 2,
-  'forumz.info' => 2,
-  '16-b.it' => 2,
-  '32-b.it' => 2,
-  '64-b.it' => 2,
-  'soundcast.me' => 2,
-  'tcp4.me' => 2,
-  'dnsup.net' => 2,
-  'hicam.net' => 2,
-  'now-dns.net' => 2,
-  'ownip.net' => 2,
-  'vpndns.net' => 2,
-  'dynserv.org' => 2,
-  'now-dns.org' => 2,
-  'x443.pw' => 2,
-  'now-dns.top' => 2,
-  'ntdll.top' => 2,
-  'freeddns.us' => 2,
-  'crafting.xyz' => 2,
-  'zapto.xyz' => 2,
-  'nsupdate.info' => 2,
-  'nerdpol.ovh' => 2,
-  'blogsyte.com' => 2,
-  'brasilia.me' => 2,
-  'cable-modem.org' => 2,
-  'ciscofreak.com' => 2,
-  'collegefan.org' => 2,
-  'couchpotatofries.org' => 2,
-  'damnserver.com' => 2,
-  'ddns.me' => 2,
-  'ditchyourip.com' => 2,
-  'dnsfor.me' => 2,
-  'dnsiskinky.com' => 2,
-  'dvrcam.info' => 2,
-  'dynns.com' => 2,
-  'eating-organic.net' => 2,
-  'fantasyleague.cc' => 2,
-  'geekgalaxy.com' => 2,
-  'golffan.us' => 2,
-  'health-carereform.com' => 2,
-  'homesecuritymac.com' => 2,
-  'homesecuritypc.com' => 2,
-  'hopto.me' => 2,
-  'ilovecollege.info' => 2,
-  'loginto.me' => 2,
-  'mlbfan.org' => 2,
-  'mmafan.biz' => 2,
-  'myactivedirectory.com' => 2,
-  'mydissent.net' => 2,
-  'myeffect.net' => 2,
-  'mymediapc.net' => 2,
-  'mypsx.net' => 2,
-  'mysecuritycamera.com' => 2,
-  'mysecuritycamera.net' => 2,
-  'mysecuritycamera.org' => 2,
-  'net-freaks.com' => 2,
-  'nflfan.org' => 2,
-  'nhlfan.net' => 2,
-  'no-ip.ca' => 2,
-  'no-ip.co.uk' => 2,
-  'no-ip.net' => 2,
-  'noip.us' => 2,
-  'onthewifi.com' => 2,
-  'pgafan.net' => 2,
-  'point2this.com' => 2,
-  'pointto.us' => 2,
-  'privatizehealthinsurance.net' => 2,
-  'quicksytes.com' => 2,
-  'read-books.org' => 2,
-  'securitytactics.com' => 2,
-  'serveexchange.com' => 2,
-  'servehumour.com' => 2,
-  'servep2p.com' => 2,
-  'servesarcasm.com' => 2,
-  'stufftoread.com' => 2,
-  'ufcfan.org' => 2,
-  'unusualperson.com' => 2,
-  'workisboring.com' => 2,
-  '3utilities.com' => 2,
-  'bounceme.net' => 2,
-  'ddns.net' => 2,
-  'ddnsking.com' => 2,
-  'gotdns.ch' => 2,
-  'hopto.org' => 2,
-  'myftp.biz' => 2,
-  'myftp.org' => 2,
-  'myvnc.com' => 2,
-  'no-ip.biz' => 2,
-  'no-ip.info' => 2,
-  'no-ip.org' => 2,
-  'noip.me' => 2,
-  'redirectme.net' => 2,
-  'servebeer.com' => 2,
-  'serveblog.net' => 2,
-  'servecounterstrike.com' => 2,
-  'serveftp.com' => 2,
-  'servegame.com' => 2,
-  'servehalflife.com' => 2,
-  'servehttp.com' => 2,
-  'serveirc.com' => 2,
-  'serveminecraft.net' => 2,
-  'servemp3.com' => 2,
-  'servepics.com' => 2,
-  'servequake.com' => 2,
-  'sytes.net' => 2,
-  'webhop.me' => 2,
-  'zapto.org' => 2,
-  'stage.nodeart.io' => 2,
-  'nodum.co' => 2,
-  'nodum.io' => 2,
-  'pcloud.host' => 2,
-  'nyc.mn' => 2,
-  'nom.ae' => 2,
-  'nom.af' => 2,
-  'nom.ai' => 2,
-  'nom.al' => 2,
-  'nym.by' => 2,
-  'nym.bz' => 2,
-  'nom.cl' => 2,
-  'nom.gd' => 2,
-  'nom.ge' => 2,
-  'nom.gl' => 2,
-  'nym.gr' => 2,
-  'nom.gt' => 2,
-  'nym.gy' => 2,
-  'nom.hn' => 2,
-  'nym.ie' => 2,
-  'nom.im' => 2,
-  'nom.ke' => 2,
-  'nym.kz' => 2,
-  'nym.la' => 2,
-  'nym.lc' => 2,
-  'nom.li' => 2,
-  'nym.li' => 2,
-  'nym.lt' => 2,
-  'nym.lu' => 2,
-  'nym.me' => 2,
-  'nom.mk' => 2,
-  'nym.mn' => 2,
-  'nym.mx' => 2,
-  'nom.nu' => 2,
-  'nym.nz' => 2,
-  'nym.pe' => 2,
-  'nym.pt' => 2,
-  'nom.pw' => 2,
-  'nom.qa' => 2,
-  'nym.ro' => 2,
-  'nom.rs' => 2,
-  'nom.si' => 2,
-  'nym.sk' => 2,
-  'nom.st' => 2,
-  'nym.su' => 2,
-  'nym.sx' => 2,
-  'nom.tj' => 2,
-  'nym.tw' => 2,
-  'nom.ug' => 2,
-  'nom.uy' => 2,
-  'nom.vc' => 2,
-  'nom.vg' => 2,
-  'cya.gg' => 2,
-  'cloudycluster.net' => 2,
-  'nid.io' => 2,
-  'opencraft.hosting' => 2,
-  'operaunite.com' => 2,
-  'outsystemscloud.com' => 2,
-  'ownprovider.com' => 2,
-  'own.pm' => 2,
-  'ox.rs' => 2,
-  'oy.lc' => 2,
-  'pgfog.com' => 2,
-  'pagefrontapp.com' => 2,
-  'art.pl' => 2,
-  'gliwice.pl' => 2,
-  'krakow.pl' => 2,
-  'poznan.pl' => 2,
-  'wroc.pl' => 2,
-  'zakopane.pl' => 2,
-  'pantheonsite.io' => 2,
-  'gotpantheon.com' => 2,
-  'mypep.link' => 2,
-  'on-web.fr' => 2,
-  '*.platform.sh' => 2,
-  '*.platformsh.site' => 2,
-  'xen.prgmr.com' => 2,
-  'priv.at' => 2,
-  'protonet.io' => 2,
-  'chirurgiens-dentistes-en-france.fr' => 2,
-  'byen.site' => 2,
-  'instantcloud.cn' => 2,
-  'ras.ru' => 2,
-  'qa2.com' => 2,
-  'dev-myqnapcloud.com' => 2,
-  'alpha-myqnapcloud.com' => 2,
-  'myqnapcloud.com' => 2,
-  '*.quipelements.com' => 2,
-  'vapor.cloud' => 2,
-  'vaporcloud.io' => 2,
-  'rackmaze.com' => 2,
-  'rackmaze.net' => 2,
-  'readthedocs.io' => 2,
-  'rhcloud.com' => 2,
-  'resindevice.io' => 2,
-  'devices.resinstaging.io' => 2,
-  'hzc.io' => 2,
-  'wellbeingzone.eu' => 2,
-  'ptplus.fit' => 2,
-  'wellbeingzone.co.uk' => 2,
-  'sandcats.io' => 2,
-  'logoip.de' => 2,
-  'logoip.com' => 2,
-  'schokokeks.net' => 2,
-  'scrysec.com' => 2,
-  'firewall-gateway.com' => 2,
-  'firewall-gateway.de' => 2,
-  'my-gateway.de' => 2,
-  'my-router.de' => 2,
-  'spdns.de' => 2,
-  'spdns.eu' => 2,
-  'firewall-gateway.net' => 2,
-  'my-firewall.org' => 2,
-  'myfirewall.org' => 2,
-  'spdns.org' => 2,
-  '*.s5y.io' => 2,
-  '*.sensiosite.cloud' => 2,
-  'biz.ua' => 2,
-  'co.ua' => 2,
-  'pp.ua' => 2,
-  'shiftedit.io' => 2,
-  'myshopblocks.com' => 2,
-  '1kapp.com' => 2,
-  'appchizi.com' => 2,
-  'applinzi.com' => 2,
-  'sinaapp.com' => 2,
-  'vipsinaapp.com' => 2,
-  'siteleaf.net' => 2,
-  'bounty-full.com' => 2,
-  'alpha.bounty-full.com' => 2,
-  'beta.bounty-full.com' => 2,
-  'static.land' => 2,
-  'dev.static.land' => 2,
-  'sites.static.land' => 2,
-  'apps.lair.io' => 2,
-  '*.stolos.io' => 2,
-  'spacekit.io' => 2,
-  'customer.speedpartner.de' => 2,
-  'storj.farm' => 2,
-  'utwente.io' => 2,
-  'temp-dns.com' => 2,
-  'diskstation.me' => 2,
-  'dscloud.biz' => 2,
-  'dscloud.me' => 2,
-  'dscloud.mobi' => 2,
-  'dsmynas.com' => 2,
-  'dsmynas.net' => 2,
-  'dsmynas.org' => 2,
-  'familyds.com' => 2,
-  'familyds.net' => 2,
-  'familyds.org' => 2,
-  'i234.me' => 2,
-  'myds.me' => 2,
-  'synology.me' => 2,
-  'vpnplus.to' => 2,
-  'taifun-dns.de' => 2,
-  'gda.pl' => 2,
-  'gdansk.pl' => 2,
-  'gdynia.pl' => 2,
-  'med.pl' => 2,
-  'sopot.pl' => 2,
-  'gwiddle.co.uk' => 2,
-  'cust.dev.thingdust.io' => 2,
-  'cust.disrec.thingdust.io' => 2,
-  'cust.prod.thingdust.io' => 2,
-  'cust.testing.thingdust.io' => 2,
-  'bloxcms.com' => 2,
-  'townnews-staging.com' => 2,
-  '12hp.at' => 2,
-  '2ix.at' => 2,
-  '4lima.at' => 2,
-  'lima-city.at' => 2,
-  '12hp.ch' => 2,
-  '2ix.ch' => 2,
-  '4lima.ch' => 2,
-  'lima-city.ch' => 2,
-  'trafficplex.cloud' => 2,
-  'de.cool' => 2,
-  '12hp.de' => 2,
-  '2ix.de' => 2,
-  '4lima.de' => 2,
-  'lima-city.de' => 2,
-  '1337.pictures' => 2,
-  'clan.rip' => 2,
-  'lima-city.rocks' => 2,
-  'webspace.rocks' => 2,
-  'lima.zone' => 2,
-  '*.transurl.be' => 2,
-  '*.transurl.eu' => 2,
-  '*.transurl.nl' => 2,
-  'tuxfamily.org' => 2,
-  'dd-dns.de' => 2,
-  'diskstation.eu' => 2,
-  'diskstation.org' => 2,
-  'dray-dns.de' => 2,
-  'draydns.de' => 2,
-  'dyn-vpn.de' => 2,
-  'dynvpn.de' => 2,
-  'mein-vigor.de' => 2,
-  'my-vigor.de' => 2,
-  'my-wan.de' => 2,
-  'syno-ds.de' => 2,
-  'synology-diskstation.de' => 2,
-  'synology-ds.de' => 2,
-  'uber.space' => 2,
-  '*.uberspace.de' => 2,
-  'hk.com' => 2,
-  'hk.org' => 2,
-  'ltd.hk' => 2,
-  'inc.hk' => 2,
-  'virtualuser.de' => 2,
-  'virtual-user.de' => 2,
-  'lib.de.us' => 2,
-  '2038.io' => 2,
-  'router.management' => 2,
-  'v-info.info' => 2,
-  'wedeploy.io' => 2,
-  'wedeploy.me' => 2,
-  'wedeploy.sh' => 2,
-  'remotewd.com' => 2,
-  'wmflabs.org' => 2,
-  'half.host' => 2,
-  'xnbay.com' => 2,
-  'u2.xnbay.com' => 2,
-  'u2-local.xnbay.com' => 2,
-  'cistron.nl' => 2,
-  'demon.nl' => 2,
-  'xs4all.space' => 2,
-  'official.academy' => 2,
-  'yolasite.com' => 2,
-  'ybo.faith' => 2,
-  'yombo.me' => 2,
-  'homelink.one' => 2,
-  'ybo.party' => 2,
-  'ybo.review' => 2,
-  'ybo.science' => 2,
-  'ybo.trade' => 2,
-  'nohost.me' => 2,
-  'noho.st' => 2,
-  'za.net' => 2,
-  'za.org' => 2,
-  'now.sh' => 2,
-  'zone.id' => 2,
-);

+ 0 - 19
api/vendor/layershifter/tld-database/src/Exceptions/Exception.php

@@ -1,19 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase\Exceptions;
-
-/**
- * Base exception.
- */
-abstract class Exception extends \Exception
-{
-
-}

+ 0 - 19
api/vendor/layershifter/tld-database/src/Exceptions/HttpException.php

@@ -1,19 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase\Exceptions;
-
-/**
- * HTTP exception.
- */
-final class HttpException extends Exception
-{
-
-}

+ 0 - 19
api/vendor/layershifter/tld-database/src/Exceptions/IOException.php

@@ -1,19 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase\Exceptions;
-
-/**
- * Exception for file operations.
- */
-final class IOException extends Exception
-{
-
-}

+ 0 - 19
api/vendor/layershifter/tld-database/src/Exceptions/ParserException.php

@@ -1,19 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase\Exceptions;
-
-/**
- * Parser exception.
- */
-final class ParserException extends Exception
-{
-
-}

+ 0 - 19
api/vendor/layershifter/tld-database/src/Exceptions/StoreException.php

@@ -1,19 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase\Exceptions;
-
-/**
- * Store exception.
- */
-final class StoreException extends Exception
-{
-
-}

+ 0 - 19
api/vendor/layershifter/tld-database/src/Exceptions/UpdateException.php

@@ -1,19 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase\Exceptions;
-
-/**
- * Update exception.
- */
-final class UpdateException extends Exception
-{
-
-}

+ 0 - 30
api/vendor/layershifter/tld-database/src/Http/AdapterInterface.php

@@ -1,30 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase\Http;
-
-use LayerShifter\TLDDatabase\Exceptions\HttpException;
-
-/**
- * AdapterInterface for HTTP adapters that can be used for fetching Public Suffix List.
- */
-interface AdapterInterface
-{
-    /**
-     * Fetches Public Suffix List file and returns its content as array of strings.
-     *
-     * @param string $url URL of Public Suffix List file.
-     *
-     * @return array|string[]
-     *
-     * @throws HttpException
-     */
-    public function get($url);
-}

+ 0 - 66
api/vendor/layershifter/tld-database/src/Http/CurlAdapter.php

@@ -1,66 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase\Http;
-
-use LayerShifter\TLDDatabase\Exceptions\HttpException;
-
-/**
- * cURL adapter for fetching Public Suffix List.
- */
-final class CurlAdapter implements AdapterInterface
-{
-    /**
-     * @const int Number of seconds for HTTP timeout.
-     */
-    const TIMEOUT = 60;
-
-    /**
-     * @inheritdoc
-     */
-    public function get($url)
-    {
-        $curl = curl_init();
-
-        curl_setopt($curl, CURLOPT_URL, $url);
-        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
-        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
-
-        curl_setopt($curl, CURLOPT_TIMEOUT, CurlAdapter::TIMEOUT);
-        curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, CurlAdapter::TIMEOUT);
-
-        // If windows is used, SSL verification will be disabled.
-
-        if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
-            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
-            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
-        }
-
-        $responseContent = curl_exec($curl);
-        $responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
-
-        $errorMessage = curl_error($curl);
-        $errorNumber = curl_errno($curl);
-
-        curl_close($curl);
-
-        if ($errorNumber !== 0) {
-            throw new HttpException(sprintf('Get cURL error while fetching PSL file: %s', $errorMessage));
-        }
-
-        if ($responseCode !== 200) {
-            throw new HttpException(
-                sprintf('Get invalid HTTP response code "%d" while fetching PSL file', $responseCode)
-            );
-        }
-
-        return preg_split('/[\n\r]+/', $responseContent);
-    }
-}

+ 0 - 99
api/vendor/layershifter/tld-database/src/Parser.php

@@ -1,99 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase;
-
-use LayerShifter\TLDDatabase\Exceptions\ParserException;
-use LayerShifter\TLDSupport\Helpers\Str;
-
-/**
- * Class for parsing input of lines from Public Suffix List.
- */
-final class Parser
-{
-    /**
-     * @const string String which shows that the line is a comment.
-     */
-    const COMMENT_STRING_START = '//';
-    /**
-     * @const string Commentary string which shows that beginning of private domains list.
-     */
-    const PRIVATE_DOMAINS_STRING = '// ===BEGIN PRIVATE DOMAINS===';
-
-    /**
-     * @var bool Flags which indicates what type of domain is currently parsed.
-     */
-    private $isICANNSuffix = true;
-    /**
-     * @var array|string[] Input array of lines from Public Suffix List.
-     */
-    private $lines = [];
-
-    /**
-     * Parser constructor.
-     *
-     * @param array|string[] $lines Array of lines from Public Suffix List
-     *
-     * @throws ParserException
-     */
-    public function __construct($lines)
-    {
-        if (!is_array($lines)) {
-            throw new ParserException('Invalid argument type, expecting array');
-        }
-
-        $this->lines = $lines;
-    }
-
-    /**
-     * Method that parses submitted strings and returns array from valid suffixes.
-     *
-     * Parser features the following rules apply:
-     * - the list is a set of rules, with one rule per line;
-     * - each line is only read up to the first whitespace; entire lines can also be commented using //;
-     * - each line which is not entirely whitespace or begins with a comment contains a rule;
-     *
-     * @see https://publicsuffix.org/list/
-     *
-     * @return array|string[]
-     *
-     * @throws ParserException
-     */
-    public function parse()
-    {
-        $suffixes = [];
-
-        foreach ($this->lines as $line) {
-            if (Str::startsWith($line, Parser::PRIVATE_DOMAINS_STRING)) {
-                $this->isICANNSuffix = false;
-
-                continue;
-            }
-
-            if (Str::startsWith($line, Parser::COMMENT_STRING_START)) {
-                continue;
-            }
-
-            $line = explode(' ', trim($line))[0];
-
-            if (Str::length($line) === 0) {
-                continue;
-            }
-
-            $suffixes[ $line ] = $this->isICANNSuffix ? Store::TYPE_ICANN : Store::TYPE_PRIVATE;
-        }
-
-        if (count($suffixes) === 0) {
-            throw new ParserException('Input array of lines does not have any valid suffix, check input');
-        }
-
-        return $suffixes;
-    }
-}

+ 0 - 144
api/vendor/layershifter/tld-database/src/Store.php

@@ -1,144 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase;
-
-use LayerShifter\TLDDatabase\Exceptions\IOException;
-use LayerShifter\TLDDatabase\Exceptions\StoreException;
-
-/**
- * Class for operations with database from Public Suffix List.
- */
-class Store
-{
-    /**
-     * @const string Path to database which is supplied with library.
-     */
-    const DATABASE_FILE = '/../resources/database.php';
-    /**
-     * @const      int Type that is assigned when a suffix is ICANN TLD zone.
-     *
-     * @deprecated This constant is result of a typo, use `TYPE_ICANN` const instead.
-     */
-    const TYPE_ICCAN = 1;
-    /**
-     * @const int Type that is assigned when a suffix is ICANN TLD zone.
-     */
-    const TYPE_ICANN = 1;
-    /**
-     * @const int Type that is assigned when a suffix is private domain.
-     */
-    const TYPE_PRIVATE = 2;
-
-    /**
-     * @var array|int[] Array of suffixes where key is suffix and value is type of suffix.
-     */
-    private $suffixes;
-
-    /**
-     * Store constructor.
-     *
-     * @param string $databaseFile Optional, full path to database file.
-     *
-     * @throws IOException
-     */
-    public function __construct($databaseFile = null)
-    {
-        $databaseFile = null === $databaseFile
-            ? __DIR__ . Store::DATABASE_FILE
-            : $databaseFile;
-
-        if (!file_exists($databaseFile)) {
-            throw new IOException(sprintf('Database file (%s) does not exists', $databaseFile));
-        }
-
-        /** @noinspection PhpIncludeInspection */
-        $this->suffixes = require $databaseFile;
-
-        if (!is_array($this->suffixes)) {
-            throw new IOException(sprintf(
-                'Database file (%s) is seriously malformed, try reinstall package or run update again',
-                $databaseFile
-            ));
-        }
-    }
-
-    /**
-     * Checks existence of suffix entry in database. Returns true if suffix entry exists.
-     *
-     * @param string $suffix Suffix which existence will be checked in database.
-     *
-     * @return bool
-     */
-    public function isExists($suffix)
-    {
-        return array_key_exists($suffix, $this->suffixes);
-    }
-
-    /**
-     * Checks type of suffix entry. Returns true if suffix is ICANN TLD zone.
-     *
-     * @param string $suffix Suffix which type will be checked.
-     *
-     * @return int
-     *
-     * @throws StoreException
-     */
-    public function getType($suffix)
-    {
-        if (!array_key_exists($suffix, $this->suffixes)) {
-            throw new StoreException(sprintf(
-                'Provided suffix (%s) does not exists in database, check existence of entry with isExists() method ' .
-                'before',
-                $suffix
-            ));
-        }
-
-        return $this->suffixes[ $suffix ];
-    }
-
-    /**
-     * Checks type of suffix entry. Returns true if suffix is ICANN TLD zone.
-     *
-     * @param string $suffix Suffix which type will be checked.
-     *
-     * @deprecated This method is result of a typo, use `isICANN` const instead
-     *
-     * @return bool
-     */
-    public function isICCAN($suffix)
-    {
-        return $this->isICANN($suffix);
-    }
-
-    /**
-     * Checks type of suffix entry. Returns true if suffix is ICANN TLD zone.
-     *
-     * @param string $suffix Suffix which type will be checked.
-     *
-     * @return bool
-     */
-    public function isICANN($suffix)
-    {
-        return $this->getType($suffix) === Store::TYPE_ICANN;
-    }
-
-    /**
-     * Checks type of suffix entry. Returns true if suffix is private.
-     *
-     * @param string $suffix Suffix which type will be checked.
-     *
-     * @return bool
-     */
-    public function isPrivate($suffix)
-    {
-        return $this->getType($suffix) === Store::TYPE_PRIVATE;
-    }
-}

+ 0 - 119
api/vendor/layershifter/tld-database/src/Update.php

@@ -1,119 +0,0 @@
-<?php
-/**
- * TLDDatabase: Abstraction for Public Suffix List in PHP.
- *
- * @link      https://github.com/layershifter/TLDDatabase
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDDatabase/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDDatabase;
-
-use LayerShifter\TLDDatabase\Exceptions\IOException;
-use LayerShifter\TLDDatabase\Exceptions\UpdateException;
-use LayerShifter\TLDDatabase\Http\AdapterInterface;
-use LayerShifter\TLDDatabase\Http\CurlAdapter;
-
-/**
- * Class that performs database update with actual data from Public Suffix List.
- */
-class Update
-{
-    /**
-     * @const string URL to Public Suffix List file.
-     * @todo Switch back after https://github.com/publicsuffix/list/issues/724 will be resolved
-     */
-    const PUBLIC_SUFFIX_LIST_URL = 'https://raw.githubusercontent.com/publicsuffix/list/master/public_suffix_list.dat';
-
-    /**
-     * @var AdapterInterface Object of HTTP adapter.
-     */
-    private $httpAdapter;
-    /**
-     * @var string Output filename.
-     */
-    private $outputFileName;
-
-    /**
-     * Parser constructor.
-     *
-     * @param string $outputFileName Filename of target file
-     * @param string $httpAdapter    Optional class name of custom HTTP adapter
-     *
-     * @throws UpdateException
-     */
-    public function __construct($outputFileName = null, $httpAdapter = null)
-    {
-        /*
-         * Defining output filename.
-         * */
-
-        $this->outputFileName = null === $outputFileName
-            ? __DIR__ . Store::DATABASE_FILE
-            : $outputFileName;
-
-        /*
-         * Defining HTTP adapter.
-         * */
-
-        if (null === $httpAdapter) {
-            $this->httpAdapter = new CurlAdapter();
-
-            return;
-        }
-
-        if (!class_exists($httpAdapter)) {
-            throw new Exceptions\UpdateException(sprintf('Class "%s" is not defined', $httpAdapter));
-        }
-
-        $this->httpAdapter = new $httpAdapter();
-
-        if (!($this->httpAdapter instanceof AdapterInterface)) {
-            throw new Exceptions\UpdateException(sprintf('Class "%s" is implements adapter interface', $httpAdapter));
-        }
-    }
-
-    /**
-     * Fetches actual Public Suffix List and writes obtained suffixes to target file.
-     *
-     * @return void
-     *
-     * @throws IOException
-     */
-    public function run()
-    {
-        /*
-         * Fetching Public Suffix List and parse suffixes.
-         * */
-
-        $lines = $this->httpAdapter->get(Update::PUBLIC_SUFFIX_LIST_URL);
-
-        $parser = new Parser($lines);
-        $suffixes = $parser->parse();
-
-        /*
-         * Write file with exclusive file write lock.
-         * */
-
-        $handle = @fopen($this->outputFileName, 'w+');
-
-        if ($handle === false) {
-            throw new Exceptions\IOException(error_get_last()['message']);
-        }
-
-        if (!flock($handle, LOCK_EX)) {
-            throw new Exceptions\IOException(sprintf('Cannot obtain lock to output file (%s)', $this->outputFileName));
-        }
-
-        $suffixFile = '<?php' . PHP_EOL . 'return ' . var_export($suffixes, true) . ';';
-        $writtenBytes = fwrite($handle, $suffixFile);
-
-        if ($writtenBytes === false || $writtenBytes !== strlen($suffixFile)) {
-            throw new Exceptions\IOException(sprintf('Write to output file (%s) failed', $this->outputFileName));
-        }
-
-        flock($handle, LOCK_UN);
-        fclose($handle);
-    }
-}

+ 0 - 44
api/vendor/layershifter/tld-extract/composer.json

@@ -1,44 +0,0 @@
-{
-  "name": "layershifter/tld-extract",
-  "type": "library",
-  "description": "TLDExtract, library for extracting parts of domain, e.q. domain parser",
-  "keywords": [
-    "TLDExtract",
-    "domain parser"
-  ],
-  "minimum-stability": "stable",
-  "license": "Apache-2.0",
-  "authors": [
-    {
-      "name": "Alexander Fedyashov",
-      "email": "a@fedyashov.com"
-    }
-  ],
-  "require": {
-    "php": "^5.5.0 || ^7.0",
-    "layershifter/tld-database": "^1.0",
-    "layershifter/tld-support": "^1.1",
-    "true/punycode": "^2.1.1"
-  },
-  "require-dev": {
-    "phpmd/phpmd": "@stable",
-    "phpunit/phpunit": "^4.8 || ^5.0",
-    "squizlabs/php_codesniffer": "~2.0"
-  },
-  "autoload": {
-    "files": [
-      "src/static.php"
-    ],
-    "psr-4": {
-      "LayerShifter\\TLDExtract\\": "src/"
-    }
-  },
-  "autoload-dev": {
-    "psr-4": {
-      "LayerShifter\\TLDExtract\\Tests\\": "tests/"
-    }
-  },
-  "scripts": {
-    "test": "phpunit"
-  }
-}

+ 0 - 19
api/vendor/layershifter/tld-extract/src/Exceptions/Exception.php

@@ -1,19 +0,0 @@
-<?php
-/**
- * TLDExtract: Library for extraction of domain parts e.g. TLD. Domain parser that uses Public Suffix List.
- *
- * @link      https://github.com/layershifter/TLDExtract
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDExtract/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDExtract\Exceptions;
-
-/**
- * Base exception.
- */
-abstract class Exception extends \Exception
-{
-
-}

+ 0 - 18
api/vendor/layershifter/tld-extract/src/Exceptions/RuntimeException.php

@@ -1,18 +0,0 @@
-<?php
-/**
- * TLDExtract: Library for extraction of domain parts e.g. TLD. Domain parser that uses Public Suffix List.
- *
- * @link      https://github.com/layershifter/TLDExtract
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDExtract/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDExtract\Exceptions;
-
-/**
- * Exception for runtime errors.
- */
-class RuntimeException extends Exception
-{
-}

+ 0 - 398
api/vendor/layershifter/tld-extract/src/Extract.php

@@ -1,398 +0,0 @@
-<?php
-/**
- * TLDExtract: Library for extraction of domain parts e.g. TLD. Domain parser that uses Public Suffix List.
- *
- * @link      https://github.com/layershifter/TLDExtract
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDExtract/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDExtract;
-
-use LayerShifter\TLDDatabase\Store;
-use LayerShifter\TLDExtract\Exceptions\RuntimeException;
-use LayerShifter\TLDSupport\Helpers\Arr;
-use LayerShifter\TLDSupport\Helpers\IP;
-use LayerShifter\TLDSupport\Helpers\Str;
-use TrueBV\Exception\OutOfBoundsException;
-
-/**
- * Extract class accurately extracts subdomain, domain and TLD components from URLs.
- *
- * @see Result for more information on the returned data structure.
- */
-class Extract
-{
-
-    /**
-     * @const int If this option provided, extract will consider ICANN suffixes.
-     */
-    const MODE_ALLOW_ICANN = 2;
-
-    /**
-     * @deprecated This constant is a typo, please use self::MODE_ALLOW_ICANN
-     */
-    const MODE_ALLOW_ICCAN = self::MODE_ALLOW_ICANN;
-
-    /**
-     * @const int If this option provided, extract will consider private suffixes.
-     */
-    const MODE_ALLOW_PRIVATE = 4;
-    /**
-     * @const int If this option provided, extract will consider custom domains.
-     */
-    const MODE_ALLOW_NOT_EXISTING_SUFFIXES = 8;
-    /**
-     * @const string RFC 3986 compliant scheme regex pattern.
-     *
-     * @see   https://tools.ietf.org/html/rfc3986#section-3.1
-     */
-    const SCHEMA_PATTERN = '#^([a-zA-Z][a-zA-Z0-9+\-.]*:)?//#';
-    /**
-     * @const string The specification for this regex is based upon the extracts from RFC 1034 and RFC 2181 below.
-     *
-     * @see   https://tools.ietf.org/html/rfc1034
-     * @see   https://tools.ietf.org/html/rfc2181
-     */
-    const HOSTNAME_PATTERN = '#^((?!-)[a-z0-9_-]{0,62}[a-z0-9_]\.)+[a-z]{2,63}|[xn\-\-a-z0-9]]{6,63}$#';
-
-    /**
-     * @var int Value of extraction options.
-     */
-    private $extractionMode;
-    /**
-     * @var string Name of class that will store results of parsing.
-     */
-    private $resultClassName;
-    /**
-     * @var IDN Object of TLDExtract\IDN class.
-     */
-    private $idn;
-    /**
-     * @var Store Object of TLDDatabase\Store class.
-     */
-    private $suffixStore;
-
-    /**
-     * Factory constructor.
-     *
-     * @param null|string $databaseFile    Optional, name of file with Public Suffix List database
-     * @param null|string $resultClassName Optional, name of class that will store results of parsing
-     * @param null|int    $extractionMode  Optional, option that will control extraction process
-     *
-     * @throws RuntimeException
-     */
-    public function __construct($databaseFile = null, $resultClassName = null, $extractionMode = null)
-    {
-        $this->idn = new IDN();
-        $this->suffixStore = new Store($databaseFile);
-        $this->resultClassName = Result::class;
-
-        // Checks for resultClassName argument.
-
-        if (null !== $resultClassName) {
-            if (!class_exists($resultClassName)) {
-                throw new RuntimeException(sprintf('Class "%s" is not defined', $resultClassName));
-            }
-
-            if (!in_array(ResultInterface::class, class_implements($resultClassName), true)) {
-                throw new RuntimeException(sprintf('Class "%s" not implements ResultInterface', $resultClassName));
-            }
-
-            $this->resultClassName = $resultClassName;
-        }
-
-        $this->setExtractionMode($extractionMode);
-    }
-
-    /**
-     * Sets extraction mode, option that will control extraction process.
-     *
-     * @param int $extractionMode One of MODE_* constants
-     *
-     * @throws RuntimeException
-     */
-    public function setExtractionMode($extractionMode = null)
-    {
-        if (null === $extractionMode) {
-            $this->extractionMode = static::MODE_ALLOW_ICANN
-                | static::MODE_ALLOW_PRIVATE
-                | static::MODE_ALLOW_NOT_EXISTING_SUFFIXES;
-
-            return;
-        }
-
-        if (!is_int($extractionMode)) {
-            throw new RuntimeException('Invalid argument type, extractionMode must be integer');
-        }
-
-        if (!in_array($extractionMode, [
-            static::MODE_ALLOW_ICANN,
-            static::MODE_ALLOW_PRIVATE,
-            static::MODE_ALLOW_NOT_EXISTING_SUFFIXES,
-            static::MODE_ALLOW_ICANN | static::MODE_ALLOW_PRIVATE,
-            static::MODE_ALLOW_ICANN | static::MODE_ALLOW_NOT_EXISTING_SUFFIXES,
-            static::MODE_ALLOW_ICANN | static::MODE_ALLOW_PRIVATE | static::MODE_ALLOW_NOT_EXISTING_SUFFIXES,
-            static::MODE_ALLOW_PRIVATE | static::MODE_ALLOW_NOT_EXISTING_SUFFIXES
-        ], true)
-        ) {
-            throw new RuntimeException(
-                'Invalid argument type, extractionMode must be one of defined constants of their combination'
-            );
-        }
-
-        $this->extractionMode = $extractionMode;
-    }
-
-    /**
-     * Extract the subdomain, host and gTLD/ccTLD components from a URL.
-     *
-     * @param string $url URL that will be extracted
-     *
-     * @return ResultInterface
-     */
-    public function parse($url)
-    {
-        $hostname = $this->extractHostname($url);
-
-        // If received hostname is valid IP address, result will be formed from it.
-
-        if (IP::isValid($hostname)) {
-            return new $this->resultClassName(null, $hostname, null);
-        }
-
-        list($subDomain, $host, $suffix) = $this->extractParts($hostname);
-
-        return new $this->resultClassName($subDomain, $host, $suffix);
-    }
-
-    /**
-     * Method that extracts the hostname or IP address from a URL.
-     *
-     * @param string $url URL for extraction
-     *
-     * @return null|string Hostname or IP address
-     */
-    private function extractHostname($url)
-    {
-        $url = trim(Str::lower($url));
-
-        // Removes scheme and path i.e. "https://github.com/layershifter" to "github.com/layershifter".
-
-        $url = preg_replace(static::SCHEMA_PATTERN, '', $url);
-
-        // Removes path and query part of URL i.e. "github.com/layershifter" to "github.com".
-
-        $url = $this->fixUriParts($url);
-        $hostname = Arr::first(explode('/', $url, 2));
-
-        // Removes username from URL i.e. user@github.com to github.com.
-
-        $hostname = Arr::last(explode('@', $hostname));
-
-        // Remove ports from hosts, also check for IPv6 literals like "[3ffe:2a00:100:7031::1]".
-        //
-        // @see http://www.ietf.org/rfc/rfc2732.txt
-
-        $lastBracketPosition = Str::strrpos($hostname, ']');
-
-        if ($lastBracketPosition !== false && Str::startsWith($hostname, '[')) {
-            return Str::substr($hostname, 1, $lastBracketPosition - 1);
-        }
-
-        // This is either a normal hostname or an IPv4 address, just remove the port.
-
-        $hostname = Arr::first(explode(':', $hostname));
-
-        // If string is empty, null will be returned.
-
-        return '' === $hostname ? null : $hostname;
-    }
-
-    /**
-     * Extracts subdomain, host and suffix from input string. Based on algorithm described in
-     * https://publicsuffix.org/list/.
-     *
-     * @param string $hostname Hostname for extraction
-     *
-     * @return array|string[] An array that contains subdomain, host and suffix.
-     */
-    public function extractParts($hostname)
-    {
-        $suffix = $this->extractSuffix($hostname);
-
-        if ($suffix === $hostname) {
-            return [null, $hostname, null];
-        }
-
-        if (null !== $suffix) {
-            $hostname = Str::substr($hostname, 0, -Str::length($suffix) - 1);
-        }
-
-        $lastDot = Str::strrpos($hostname, '.');
-
-        if (false === $lastDot) {
-            return [null, $hostname, $suffix];
-        }
-
-        $subDomain = Str::substr($hostname, 0, $lastDot);
-        $host = Str::substr($hostname, $lastDot + 1);
-
-        return [
-            $subDomain,
-            $host,
-            $suffix
-        ];
-    }
-
-    /**
-     * Extracts suffix from hostname using Public Suffix List database.
-     *
-     * @param string $hostname Hostname for extraction
-     *
-     * @return null|string
-     */
-    private function extractSuffix($hostname)
-    {
-        // If hostname has leading dot, it's invalid.
-        // If hostname is a single label domain makes, it's invalid.
-
-        if (Str::startsWith($hostname, '.') || Str::strpos($hostname, '.') === false) {
-            return null;
-        }
-
-        // If domain is in punycode, it will be converted to IDN.
-
-        $isPunycoded = Str::strpos($hostname, 'xn--') !== false;
-
-        if ($isPunycoded) {
-            $hostname = $this->idn->toUTF8($hostname);
-        }
-
-        // URI producers should use names that conform to the DNS syntax, even when use of DNS is not immediately
-        // apparent, and should limit these names to no more than 255 characters in length.
-        //
-        // @see https://tools.ietf.org/html/rfc3986
-        // @see http://blogs.msdn.com/b/oldnewthing/archive/2012/04/12/10292868.aspx
-
-        if (Str::length($hostname) > 253) {
-            return null;
-        }
-
-        // The DNS itself places only one restriction on the particular labels that can be used to identify resource
-        // records. That one restriction relates to the length of the label and the full name. The length of any one
-        // label is limited to between 1 and 63 octets. A full domain name is limited to 255 octets (including the
-        // separators).
-        //
-        // @see http://tools.ietf.org/html/rfc2181
-
-        try {
-            $asciiHostname = $this->idn->toASCII($hostname);
-        } catch (OutOfBoundsException $e) {
-            return null;
-        }
-
-        if (0 === preg_match(self::HOSTNAME_PATTERN, $asciiHostname)) {
-            return null;
-        }
-
-        $suffix = $this->parseSuffix($hostname);
-
-        if (null === $suffix) {
-            if (!($this->extractionMode & static::MODE_ALLOW_NOT_EXISTING_SUFFIXES)) {
-                return null;
-            }
-
-            $suffix = Str::substr($hostname, Str::strrpos($hostname, '.') + 1);
-        }
-
-        // If domain is punycoded, suffix will be converted to punycode.
-
-        return $isPunycoded ? $this->idn->toASCII($suffix) : $suffix;
-    }
-
-    /**
-     * Extracts suffix from hostname using Public Suffix List database.
-     *
-     * @param string $hostname Hostname for extraction
-     *
-     * @return null|string
-     */
-    private function parseSuffix($hostname)
-    {
-        $hostnameParts = explode('.', $hostname);
-        $realSuffix = null;
-
-        for ($i = 0, $count = count($hostnameParts); $i < $count; $i++) {
-            $possibleSuffix = implode('.', array_slice($hostnameParts, $i));
-            $exceptionSuffix = '!' . $possibleSuffix;
-
-            if ($this->suffixExists($exceptionSuffix)) {
-                $realSuffix = implode('.', array_slice($hostnameParts, $i + 1));
-
-                break;
-            }
-
-            if ($this->suffixExists($possibleSuffix)) {
-                $realSuffix = $possibleSuffix;
-
-                break;
-            }
-
-            $wildcardTld = '*.' . implode('.', array_slice($hostnameParts, $i + 1));
-
-            if ($this->suffixExists($wildcardTld)) {
-                $realSuffix = $possibleSuffix;
-
-                break;
-            }
-        }
-
-        return $realSuffix;
-    }
-
-    /**
-     * Method that checks existence of entry in Public Suffix List database, including provided options.
-     *
-     * @param string $entry Entry for check in Public Suffix List database
-     *
-     * @return bool
-     */
-    protected function suffixExists($entry)
-    {
-        if (!$this->suffixStore->isExists($entry)) {
-            return false;
-        }
-
-        $type = $this->suffixStore->getType($entry);
-
-        if ($this->extractionMode & static::MODE_ALLOW_ICANN && $type === Store::TYPE_ICANN) {
-            return true;
-        }
-
-        return $this->extractionMode & static::MODE_ALLOW_PRIVATE && $type === Store::TYPE_PRIVATE;
-    }
-
-    /**
-     * Fixes URL:
-     * - from "github.com?layershifter" to "github.com/?layershifter".
-     * - from "github.com#layershifter" to "github.com/#layershifter".
-     *
-     * @see https://github.com/layershifter/TLDExtract/issues/5
-     *
-     * @param string $url
-     *
-     * @return string
-     */
-    private function fixUriParts($url)
-    {
-        $position = Str::strpos($url, '?') ?: Str::strpos($url, '#');
-
-        if ($position === false) {
-            return $url;
-        }
-
-        return Str::substr($url, 0, $position) . '/' . Str::substr($url, $position);
-    }
-}

+ 0 - 67
api/vendor/layershifter/tld-extract/src/IDN.php

@@ -1,67 +0,0 @@
-<?php
-
-namespace LayerShifter\TLDExtract;
-
-use TrueBV\Punycode;
-
-/**
- * Class that transforms IDN domains, if `intl` extension present uses it.
- */
-class IDN
-{
-
-    /**
-     * @var Punycode Object of TrueBV\Punycode class.
-     */
-    private $transformer;
-
-    /**
-     * Constructor.
-     */
-    public function __construct()
-    {
-        if (!function_exists('\idn_to_utf8')) {
-            $this->transformer = new Punycode();
-        }
-    }
-
-    /**
-     * Converts domain name from Unicode to IDNA ASCII.
-     *
-     * @param string $domain Domain to convert in IDNA ASCII-compatible format.
-     *
-     * @return string
-     */
-    public function toASCII($domain)
-    {
-        if ($this->transformer) {
-            return $this->transformer->encode($domain);
-        }
-
-        if (defined('INTL_IDNA_VARIANT_UTS46')) {
-            return idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46);
-        }
-
-        return idn_to_ascii($domain);
-    }
-
-    /**
-     * Converts domain name from IDNA ASCII to Unicode.
-     *
-     * @param string $domain Domain to convert in Unicode format.
-     *
-     * @return string
-     */
-    public function toUTF8($domain)
-    {
-        if ($this->transformer) {
-            return $this->transformer->decode($domain);
-        }
-
-        if (defined('INTL_IDNA_VARIANT_UTS46')) {
-            return idn_to_utf8($domain, 0, INTL_IDNA_VARIANT_UTS46);
-        }
-
-        return idn_to_utf8($domain);
-    }
-}

+ 0 - 296
api/vendor/layershifter/tld-extract/src/Result.php

@@ -1,296 +0,0 @@
-<?php
-/**
- * TLDExtract: Library for extraction of domain parts e.g. TLD. Domain parser that uses Public Suffix List.
- *
- * @link      https://github.com/layershifter/TLDExtract
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDExtract/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDExtract;
-
-use LayerShifter\TLDSupport\Helpers\IP;
-
-/**
- * This class holds the components of a domain name.
- *
- * You can access the components using either method, property or array syntax. For example, "echo $result->suffix" and
- * "echo $result['suffix']" will both work and output the same string.
- *
- * All properties are read-only.
- *
- * @property-read null|string $subdomain
- * @property-read null|string $hostname
- * @property-read null|string $suffix
- */
-class Result implements \ArrayAccess, ResultInterface
-{
-    /**
-     * The subdomain. For example, the subdomain of "a.b.google.com" is "a.b".
-     *
-     * @var null|string
-     */
-    private $subdomain;
-    /**
-     * Hostname part of domain or IP-address. For example, in "a.b.google.com" the registered domain is "google".
-     *
-     * @var null|string
-     */
-    private $hostname;
-    /**
-     * The top-level domain / public suffix. For example: "com", "co.uk", "act.edu.au".
-     *
-     * @var null|string
-     */
-    private $suffix;
-
-    /**
-     * Constructor of class.
-     *
-     * @param null|string $subdomain
-     * @param null|string $hostname
-     * @param null|string $suffix
-     */
-    public function __construct($subdomain, $hostname, $suffix)
-    {
-        $this->subdomain = $subdomain;
-        $this->hostname = $hostname;
-        $this->suffix = $suffix;
-    }
-
-    /**
-     * Returns subdomain if it exists.
-     *
-     * @return null|string
-     */
-    public function getSubdomain()
-    {
-        return $this->subdomain;
-    }
-
-    /**
-     * Return subdomains if they exist, example subdomain is "www.news", method will return array ['www', 'bbc'].
-     *
-     * @return array
-     */
-    public function getSubdomains()
-    {
-        return null === $this->subdomain ? array() : explode('.', $this->subdomain);
-    }
-
-    /**
-     * Returns hostname if it exists.
-     *
-     * @return null|string
-     */
-    public function getHostname()
-    {
-        return $this->hostname;
-    }
-
-    /**
-     * Returns suffix if it exists.
-     *
-     * @return null|string
-     */
-    public function getSuffix()
-    {
-        return $this->suffix;
-    }
-
-    /**
-     * Method that returns full host record.
-     *
-     * @return string
-     */
-    public function getFullHost()
-    {
-        // Case 1: Host hasn't suffix, possibly IP.
-
-        if (null === $this->suffix) {
-            return $this->hostname;
-        }
-
-        // Case 2: Domain with suffix, but without subdomain.
-
-        if (null === $this->subdomain) {
-            return $this->hostname . '.' . $this->suffix;
-        }
-
-        // Case 3: Domain with suffix & subdomain.
-
-        return implode('.', [$this->subdomain, $this->hostname, $this->suffix]);
-    }
-
-    /**
-     * Returns registrable domain or null.
-     *
-     * @return null|string
-     */
-    public function getRegistrableDomain()
-    {
-        if (null === $this->suffix) {
-            return null;
-        }
-
-        return null === $this->hostname ? null : $this->hostname . '.' . $this->suffix;
-    }
-
-    /**
-     * Returns true if domain is valid.
-     *
-     * @return bool
-     */
-    public function isValidDomain()
-    {
-        return null !== $this->getRegistrableDomain();
-    }
-
-    /**
-     * Returns true is result is IP.
-     *
-     * @return bool
-     */
-    public function isIp()
-    {
-        return null === $this->suffix && IP::isValid($this->hostname);
-    }
-
-    /**
-     * Magic method for run isset on private params.
-     *
-     * @param string $name Field name
-     *
-     * @return bool
-     */
-    public function __isset($name)
-    {
-        return property_exists($this, $name);
-    }
-
-    /**
-     * Converts class fields to string.
-     *
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->getFullHost();
-    }
-
-    /**
-     * Whether or not an offset exists.
-     *
-     * @param mixed $offset An offset to check for
-     *
-     * @return bool
-     */
-    public function offsetExists($offset)
-    {
-        return property_exists($this, $offset);
-    }
-
-    /**
-     * Returns the value at specified offset.
-     *
-     * @param mixed $offset The offset to retrieve.
-     *
-     * @throws \OutOfRangeException
-     *
-     * @return mixed
-     */
-    public function offsetGet($offset)
-    {
-        return $this->{$offset};
-    }
-
-    /**
-     * Magic method, controls access to private params.
-     *
-     * @param string $name Name of params to retrieve
-     *
-     * @throws \OutOfRangeException
-     *
-     * @return mixed
-     */
-    public function __get($name)
-    {
-        if (!property_exists($this, $name)) {
-            throw new \OutOfRangeException(sprintf('Unknown field "%s"', $name));
-        }
-
-        return $this->{$name};
-    }
-
-    /**
-     * Magic method, makes params read-only.
-     *
-     * @param string $name  Name of params to retrieve
-     * @param mixed  $value Value to set
-     *
-     * @throws \LogicException
-     *
-     * @return void
-     */
-    public function __set($name, $value)
-    {
-        throw new \LogicException("Can't modify an immutable object.");
-    }
-
-    /**
-     * Disables assigns a value to the specified offset.
-     *
-     * @param mixed $offset The offset to assign the value to
-     * @param mixed $value  Value to set
-     *
-     * @throws \LogicException
-     *
-     * @return void
-     */
-    public function offsetSet($offset, $value)
-    {
-        throw new \LogicException(
-            sprintf("Can't modify an immutable object. You tried to set value '%s' to field '%s'.", $value, $offset)
-        );
-    }
-
-    /**
-     * Disables unset of an offset.
-     *
-     * @param mixed $offset The offset for unset
-     *
-     * @throws \LogicException
-     *
-     * @return void
-     */
-    public function offsetUnset($offset)
-    {
-        throw new \LogicException(sprintf("Can't modify an immutable object. You tried to unset '%s.'", $offset));
-    }
-
-    /**
-     * Get the domain name components as a native PHP array. The returned array will contain these keys: 'subdomain',
-     * 'domain' and 'tld'.
-     *
-     * @return array
-     */
-    public function toArray()
-    {
-        return [
-            'subdomain' => $this->subdomain,
-            'hostname'  => $this->hostname,
-            'suffix'    => $this->suffix,
-        ];
-    }
-
-    /**
-     * Get the domain name components as a JSON.
-     *
-     * @return string
-     */
-    public function toJson()
-    {
-        return json_encode($this->toArray());
-    }
-}

+ 0 - 83
api/vendor/layershifter/tld-extract/src/ResultInterface.php

@@ -1,83 +0,0 @@
-<?php
-/**
- * TLDExtract: Library for extraction of domain parts e.g. TLD. Domain parser that uses Public Suffix List.
- *
- * @link      https://github.com/layershifter/TLDExtract
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDExtract/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDExtract;
-
-/**
- * Interface for parsing results.
- */
-interface ResultInterface
-{
-
-    /**
-     * Class that implements ResultInterface must have following constructor.
-     *
-     * @param null|string $subdomain
-     * @param null|string $hostname
-     * @param null|string $suffix
-     */
-    public function __construct($subdomain, $hostname, $suffix);
-
-    /**
-     * Returns subdomain if it exists.
-     *
-     * @return null|string
-     */
-    public function getSubdomain();
-
-    /**
-     * Return subdomains if they exist, example subdomain is "www.news", method will return array ['www', 'bbc'].
-     *
-     * @return array
-     */
-    public function getSubdomains();
-
-    /**
-     * Returns hostname if it exists.
-     *
-     * @return null|string
-     */
-    public function getHostname();
-
-    /**
-     * Returns suffix if it exists.
-     *
-     * @return null|string
-     */
-    public function getSuffix();
-
-    /**
-     * Method that returns full host record.
-     *
-     * @return string
-     */
-    public function getFullHost();
-
-    /**
-     * Returns registrable domain or null.
-     *
-     * @return null|string
-     */
-    public function getRegistrableDomain();
-
-    /**
-     * Returns true if domain is valid.
-     *
-     * @return bool
-     */
-    public function isValidDomain();
-
-    /**
-     * Returns true is result is IP.
-     *
-     * @return bool
-     */
-    public function isIp();
-}

+ 0 - 37
api/vendor/layershifter/tld-extract/src/static.php

@@ -1,37 +0,0 @@
-<?php
-/**
- * TLDExtract: Library for extraction of domain parts e.g. TLD. Domain parser that uses Public Suffix List.
- *
- * @link      https://github.com/layershifter/TLDExtract
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDExtract/master/LICENSE Apache 2.0 License
- */
-
-namespace {
-
-    use LayerShifter\TLDExtract\Extract;
-
-    /**
-     * Extract the subdomain, host and gTLD/ccTLD components from a URL.
-     *
-     * @param string $url  URL that will be extracted
-     * @param int    $mode Optional, option that will control extraction process
-     *
-     * @return \LayerShifter\TLDExtract\ResultInterface
-     */
-    function tld_extract($url, $mode = null)
-    {
-        static $extract = null;
-
-        if (null === $extract) {
-            $extract = new Extract();
-        }
-
-        if (null !== $mode) {
-            $extract->setExtractionMode($mode);
-        }
-
-        return $extract->parse($url);
-    }
-}

+ 0 - 8
api/vendor/layershifter/tld-support/.codeclimate.yml

@@ -1,8 +0,0 @@
-exclude_paths:
-  - "/tests/*"
-  - "/vendor/*"
-languages:
-  PHP: true
-ratings:
-  paths:
-  - "**.php"

+ 0 - 8
api/vendor/layershifter/tld-support/.gitignore

@@ -1,8 +0,0 @@
-# IDE specific
-.idea/
-
-# PHP specific
-build/
-vendor/
-composer.lock
-composer.phar

+ 0 - 27
api/vendor/layershifter/tld-support/.travis.yml

@@ -1,27 +0,0 @@
-language: php
-
-php:
-  - 5.5
-  - 5.6
-  - 7.0
-  - hhvm
-
-install:
-  - composer self-update
-  - composer --prefer-source install
-
-notifications:
-  email: false
-
-env:
-  global:
-    - CODECLIMATE_REPO_TOKEN=3f96e0739f5ada6c5e2aedb71278a9b1ba2db06dc139426ae8d657b0f3020308
-
-before_script:
-  - mkdir -p build/logs
-
-script:
-  - ./vendor/bin/phpunit -v --coverage-clover ./build/logs/clover.xml
-
-after_script:
-  - ./vendor/bin/test-reporter --coverage-report ./build/logs/clover.xml

+ 0 - 201
api/vendor/layershifter/tld-support/LICENSE

@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.

+ 0 - 59
api/vendor/layershifter/tld-support/README.md

@@ -1,59 +0,0 @@
-# TLDSupport
-
-Support package for [TLDDatabase](https://github.com/layershifter/TLDDatabase) and [TLDExtract](https://github.com/layershifter/TLDExtract). This package provides helpers for work with arrays, IP addresses, strings and more.
-
-[![Build Status](https://travis-ci.org/layershifter/TLDSupport.svg)](https://travis-ci.org/layershifter/TLDSupport) [![Code Climate](https://codeclimate.com/github/layershifter/TLDSupport/badges/gpa.svg)](https://codeclimate.com/github/layershifter/TLDSupport) [![Test Coverage](https://codeclimate.com/github/layershifter/TLDSupport/badges/coverage.svg)](https://codeclimate.com/github/layershifter/TLDSupport/coverage) [![PHP 7 ready](http://php7ready.timesplinter.ch/layershifter/TLDSupport/master/badge.svg)](https://travis-ci.org/layershifter/TLDSupport})
-
----
-
-This package is compliant with [PSR-1][], [PSR-2][], [PSR-4][]. If you notice compliance oversights, please send a patch via pull request.
-
-## Requirements
-
-The following versions of PHP are supported.
-
-* PHP 5.5
-* PHP 5.6
-* PHP 7.0
-* HHVM
-
-## Usage
-
-### Arrays:
-```php
-mixed Arr::first(array $haystack, null|callable $callback, mixed $default);
-mixed Arr::last(array $haystack, null|callable $callback, mixed $default);
-```
-### IP addresses:
-```php
-bool IP::isValid(string $hostname);
-```
-### Strings:
-```php
-bool     Str::endsWith(string $haystack, string|array $needles);
-int      Str::length(string $value);
-string   Str::lower(string $value);
-string   Str::substr(string $string, int $start, int|null $length = null);
-bool     Str::startsWith(string $haystack, string|array $needles);
-bool|int Str::strpos(string $haystack, string $needles, int $offset = 0);
-bool|int Str::strrpos(string $haystack, string $needles, int $offset = 0);
-```
-### Mixed:
-```php
-mixed Mixed::value(mixed $value);
-```
-## Install
-
-Via Composer
-
-``` bash
-$ composer require layershifter/tld-support
-```
-
-## License
-
-This library is released under the Apache 2.0 license. Please see [License File](LICENSE) for more information.
-
-[PSR-1]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md
-[PSR-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
-[PSR-4]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md

+ 0 - 32
api/vendor/layershifter/tld-support/composer.json

@@ -1,32 +0,0 @@
-{
-  "name": "layershifter/tld-support",
-  "description": "Support package for TLDDatabase and TLDExtract",
-  "minimum-stability": "stable",
-  "license": "Apache-2.0",
-  "authors": [
-    {
-      "name": "Alexander Fedyashov",
-      "email": "a@fedyashov.com"
-    }
-  ],
-  "autoload": {
-    "psr-4": {
-      "LayerShifter\\TLDSupport\\": "src/"
-    }
-  },
-  "autoload-dev": {
-    "psr-4": {
-      "LayerShifter\\TLDSupport\\Tests\\": "tests/"
-    }
-  },
-  "require": {
-    "php": ">=5.5",
-    "symfony/polyfill-mbstring": "^1.2"
-  },
-  "require-dev": {
-    "codeclimate/php-test-reporter": "dev-master",
-    "phpmd/phpmd": "@stable",
-    "phpunit/phpunit": "4.8.*",
-    "squizlabs/php_codesniffer": "2.*"
-  }
-}

+ 0 - 26
api/vendor/layershifter/tld-support/phpunit.xml

@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         bootstrap="tests/bootstrap.php"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnError="false"
-         stopOnFailure="false"
-         syntaxCheck="true"
-         verbose="true"
->
-    <testsuites>
-        <testsuite name="TLDSupport Test Suite">
-            <directory>./tests</directory>
-        </testsuite>
-    </testsuites>
-
-    <filter>
-        <whitelist>
-            <directory>./src</directory>
-        </whitelist>
-    </filter>
-</phpunit>

+ 0 - 55
api/vendor/layershifter/tld-support/src/Helpers/Arr.php

@@ -1,55 +0,0 @@
-<?php
-
-namespace LayerShifter\TLDSupport\Helpers;
-
-/**
- * Helper class for work with arrays.
- * Taken from Illuminate/Support package.
- *
- * @see https://github.com/illuminate/support
- */
-class Arr
-{
-
-    /**
-     * Return the first element in an array passing a given truth test.
-     *
-     * @param array         $array    Haystack array
-     * @param null|callable $callback Optional callback function
-     * @param mixed         $default  Default value if array element not found
-     *
-     * @return mixed
-     */
-    public static function first($array, callable $callback = null, $default = null)
-    {
-        if (null === $callback) {
-            return 0 === count($array) ? Mixed::value($default) : reset($array);
-        }
-
-        foreach ($array as $key => $value) {
-            if (call_user_func($callback, $value, $key)) {
-                return $value;
-            }
-        }
-
-        return Mixed::value($default);
-    }
-
-    /**
-     * Return the last element in an array passing a given truth test.
-     *
-     * @param array         $array    Haystack array
-     * @param null|callable $callback Optional callback function
-     * @param mixed         $default  Default value if array element not found
-     *
-     * @return mixed
-     */
-    public static function last($array, callable $callback = null, $default = null)
-    {
-        if (null === $callback) {
-            return 0 === count($array) ? Mixed::value($default) : end($array);
-        }
-
-        return static::first(array_reverse($array, true), $callback, $default);
-    }
-}

+ 0 - 38
api/vendor/layershifter/tld-support/src/Helpers/IP.php

@@ -1,38 +0,0 @@
-<?php
-/**
- * TLDSupport: Support package for TLDDatabase and TLDExtract.
- *
- * @link      https://github.com/layershifter/TLDSupport
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDSupport/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDSupport\Helpers;
-
-/**
- * Helper class for work with IP addresses.
- */
-class IP
-{
-
-    /**
-     * Check if the input is a valid IP address. Recognizes both IPv4 and IPv6 addresses.
-     *
-     * @param string $hostname Hostname that will be checked
-     *
-     * @return boolean
-     */
-    public static function isValid($hostname)
-    {
-        $hostname = trim($hostname);
-
-        // Strip the wrapping square brackets from IPv6 addresses.
-
-        if (Str::startsWith($hostname, '[') && Str::endsWith($hostname, ']')) {
-            $hostname = substr($hostname, 1, -1);
-        }
-
-        return (bool)filter_var($hostname, FILTER_VALIDATE_IP);
-    }
-}

+ 0 - 25
api/vendor/layershifter/tld-support/src/Helpers/Mixed.php

@@ -1,25 +0,0 @@
-<?php
-
-namespace LayerShifter\TLDSupport\Helpers;
-
-/**
- * Helper class with mixed functions.
- * Taken from Illuminate/Support package.
- *
- * @see https://github.com/illuminate/support
- */
-class Mixed
-{
-
-    /**
-     * Return the default value of the given value.
-     *
-     * @param mixed $value
-     *
-     * @return mixed
-     */
-    public static function value($value)
-    {
-        return $value instanceof \Closure ? $value() : $value;
-    }
-}

+ 0 - 122
api/vendor/layershifter/tld-support/src/Helpers/Str.php

@@ -1,122 +0,0 @@
-<?php
-
-namespace LayerShifter\TLDSupport\Helpers;
-
-/**
- * Helper class for work with strings.
- * Taken from Illuminate/Support package.
- *
- * @see https://github.com/illuminate/support
- */
-class Str
-{
-
-    /**
-     * @const string Encoding for strings.
-     */
-    const ENCODING = 'UTF-8';
-
-    /**
-     * Determine if a given string ends with a given substring.
-     *
-     * @param string       $haystack
-     * @param string|array $needles
-     *
-     * @return bool
-     */
-    public static function endsWith($haystack, $needles)
-    {
-        foreach ((array)$needles as $needle) {
-            if ((string)$needle === self::substr($haystack, -self::length($needle))) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Return the length of the given string.
-     *
-     * @param string $value
-     *
-     * @return int
-     */
-    public static function length($value)
-    {
-        return mb_strlen($value, self::ENCODING);
-    }
-
-    /**
-     * Convert the given string to lower-case.
-     *
-     * @param string $value
-     *
-     * @return string
-     */
-    public static function lower($value)
-    {
-        return mb_strtolower($value, self::ENCODING);
-    }
-
-    /**
-     * Returns the portion of string specified by the start and length parameters.
-     *
-     * @param string   $string
-     * @param int      $start
-     * @param int|null $length
-     *
-     * @return string
-     */
-    public static function substr($string, $start, $length = null)
-    {
-        return mb_substr($string, $start, $length, self::ENCODING);
-    }
-
-    /**
-     * Determine if a given string starts with a given substring.
-     *
-     * @param string       $haystack
-     * @param string|array $needles
-     *
-     * @return boolean
-     */
-    public static function startsWith($haystack, $needles)
-    {
-        foreach ((array)$needles as $needle) {
-            if ($needle !== '' && mb_strpos($haystack, $needle) === 0) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Find position of first occurrence of string in a string.
-     *
-     * @param string $haystack
-     * @param string $needle
-     * @param int    $offset
-     *
-     * @return bool|int
-     */
-    public static function strpos($haystack, $needle, $offset = 0)
-    {
-        return mb_strpos($haystack, $needle, $offset, self::ENCODING);
-    }
-
-    /**
-     * Find position of last occurrence of a string in a string.
-     *
-     * @param string $haystack
-     * @param string $needle
-     * @param int    $offset
-     *
-     * @return bool|int
-     */
-    public static function strrpos($haystack, $needle, $offset = 0)
-    {
-        return mb_strrpos($haystack, $needle, $offset, self::ENCODING);
-    }
-}

+ 0 - 64
api/vendor/layershifter/tld-support/tests/Helpers/ArrTest.php

@@ -1,64 +0,0 @@
-<?php
-/**
- * TLDSupport: Support package for TLDDatabase and TLDExtract.
- *
- * @link      https://github.com/layershifter/TLDSupport
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDSupport/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDSupport\Tests\Helpers;
-
-use LayerShifter\TLDSupport\Helpers\Arr;
-
-/**
- * Test cases for Helpers\Arr class.
- */
-class ArrTest extends \PHPUnit_Framework_TestCase
-{
-
-    /**
-     * Test for first() method.
-     *
-     * @return void
-     */
-    public function testFirst()
-    {
-        self::assertEquals(1, Arr::first([1, 2, 3]));
-        self::assertEquals('a', Arr::first(['a', 'b', 'c']));
-        self::assertNotEquals('b', Arr::first(['a', 'b', 'c']));
-
-        self::assertEquals(2, Arr::first([1, 2, 3], function ($value) {
-            return $value === 2;
-        }));
-        self::assertEquals(null, Arr::first([1, 2, 3], function ($value) {
-            return $value === 20;
-        }));
-
-        self::assertInternalType('int', Arr::first([1, 2, 3]));
-        self::assertInternalType('string', Arr::first(['a', 'b', 'c']));
-    }
-
-    /**
-     * Test for last() method.
-     *
-     * @return void
-     */
-    public function testLast()
-    {
-        self::assertEquals(3, Arr::last([1, 2, 3]));
-        self::assertEquals('c', Arr::last(['a', 'b', 'c']));
-        self::assertNotEquals('b', Arr::last(['a', 'b', 'c']));
-
-        self::assertEquals(2, Arr::last([1, 2, 3], function ($value) {
-            return $value === 2;
-        }));
-        self::assertEquals(null, Arr::last([1, 2, 3], function ($value) {
-            return $value === 20;
-        }));
-
-        self::assertInternalType('int', Arr::last([1, 2, 3]));
-        self::assertInternalType('string', Arr::last(['a', 'b', 'c']));
-    }
-}

+ 0 - 81
api/vendor/layershifter/tld-support/tests/Helpers/IPTest.php

@@ -1,81 +0,0 @@
-<?php
-/**
- * TLDSupport: Support package for TLDDatabase and TLDExtract.
- *
- * @link      https://github.com/layershifter/TLDSupport
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDSupport/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDSupport\Tests\Helpers;
-
-use LayerShifter\TLDSupport\Helpers\IP;
-
-/**
- * Test cases for Helpers\IP class.
- */
-class IPTest extends \PHPUnit_Framework_TestCase
-{
-
-    /**
-     * Test for isValid() method.
-     *
-     * @return void
-     */
-    public function testIsValid()
-    {
-        // IPv4 test cases.
-
-        self::assertTrue(IP::isValid('200.200.200.200'));
-        self::assertTrue(IP::isValid(' 200.200.200.200'));
-        self::assertTrue(IP::isValid('200.200.200.200 '));
-        self::assertTrue(IP::isValid('0.0.0.0'));
-        self::assertTrue(IP::isValid('255.255.255.255'));
-
-        self::assertFalse(IP::isValid('00.00.00.00'));
-        self::assertFalse(IP::isValid('100.100.020.100'));
-        self::assertFalse(IP::isValid('-1.0.0.0'));
-        self::assertFalse(IP::isValid('200.200.256.200'));
-        self::assertFalse(IP::isValid('200.200.200.200.'));
-        self::assertFalse(IP::isValid('200.200.200'));
-        self::assertFalse(IP::isValid('200.200.200.2d0'));
-        self::assertFalse(IP::isValid('200000000000000000000000000000000000000000000000000000.200.200.200'));
-
-        // IPv6 test cases.
-
-        self::assertTrue(IP::isValid('00AB:0002:3008:8CFD:00AB:0002:3008:8CFD'));
-        self::assertTrue(IP::isValid('00ab:0002:3008:8cfd:00ab:0002:3008:8cfd'));
-        self::assertTrue(IP::isValid('00aB:0002:3008:8cFd:00Ab:0002:3008:8cfD'));
-        self::assertTrue(IP::isValid('AB:02:3008:8CFD:AB:02:3008:8CFD'));
-        self::assertTrue(IP::isValid('AB:02:3008:8CFD::02:3008:8CFD'));
-        self::assertTrue(IP::isValid('::'));
-        self::assertTrue(IP::isValid('0::'));
-        self::assertTrue(IP::isValid('0::0'));
-
-        self::assertFalse(IP::isValid('00AB:00002:3008:8CFD:00AB:0002:3008:8CFD'));
-        self::assertFalse(IP::isValid(':0002:3008:8CFD:00AB:0002:3008:8CFD'));
-        self::assertFalse(IP::isValid('00AB:0002:3008:8CFD:00AB:0002:3008:'));
-        self::assertFalse(IP::isValid('AB:02:3008:8CFD:AB:02:3008:8CFD:02'));
-        self::assertFalse(IP::isValid('AB:02:3008:8CFD::02:3008:8CFD:02'));
-        self::assertFalse(IP::isValid('AB:02:3008:8CFD::02::8CFD'));
-        self::assertFalse(IP::isValid('GB:02:3008:8CFD:AB:02:3008:8CFD'));
-        self::assertFalse(IP::isValid('00000000000005.10.10.10'));
-        self::assertFalse(IP::isValid('2:::3'));
-
-        self::assertTrue(IP::isValid('[AB:02:3008:8CFD::02:3008:8CFD]'));
-        self::assertTrue(IP::isValid('[::]'));
-        self::assertTrue(IP::isValid('[::1]'));
-
-        self::assertFalse(IP::isValid('[AB:02:3008:8CFD::02:3008:8CFD'));
-        self::assertFalse(IP::isValid('::]'));
-        self::assertFalse(IP::isValid('/[::1]'));
-
-        // Domain test cases.
-
-        self::assertFalse(IP::isValid('google.com'));
-        self::assertFalse(IP::isValid('.google.com'));
-        self::assertFalse(IP::isValid('www.google.com'));
-        self::assertFalse(IP::isValid('com'));
-    }
-}

+ 0 - 38
api/vendor/layershifter/tld-support/tests/Helpers/Mixed.php

@@ -1,38 +0,0 @@
-<?php
-/**
- * TLDSupport: Support package for TLDDatabase and TLDExtract.
- *
- * @link      https://github.com/layershifter/TLDSupport
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDSupport/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDSupport\Tests\Helpers;
-
-use LayerShifter\TLDSupport\Helpers\Mixed;
-
-/**
- * Test cases for Helpers\Mixed class.
- */
-class MixedTest extends \PHPUnit_Framework_TestCase
-{
-
-    /**
-     * Test for value() method.
-     *
-     * @return void
-     */
-    public function testValue()
-    {
-        self::assertEquals(1, Mixed::value(1));
-        self::assertInternalType('int', Mixed::value(1));
-
-        self::assertEquals(2, Mixed::value(function () {
-            return 2;
-        }));
-        self::assertInternalType('int', Mixed::value(function () {
-            return 2;
-        }));
-    }
-}

+ 0 - 122
api/vendor/layershifter/tld-support/tests/Helpers/StrTest.php

@@ -1,122 +0,0 @@
-<?php
-/**
- * TLDSupport: Support package for TLDDatabase and TLDExtract.
- *
- * @link      https://github.com/layershifter/TLDSupport
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDSupport/master/LICENSE Apache 2.0 License
- */
-
-namespace LayerShifter\TLDSupport\Tests\Helpers;
-
-use LayerShifter\TLDSupport\Helpers\Str;
-
-/**
- * Test cases for Helpers\Str class.
- */
-class StrTest extends \PHPUnit_Framework_TestCase
-{
-
-    /**
-     * Test for endsWith() method.
-     *
-     * @return void
-     */
-    public function testEndsWith()
-    {
-        self::assertTrue(Str::endsWith('jason', 'on'));
-        self::assertTrue(Str::endsWith('jason', 'jason'));
-        self::assertTrue(Str::endsWith('jason', ['on']));
-        self::assertTrue(Str::endsWith('jason', ['no', 'on']));
-        self::assertFalse(Str::endsWith('jason', 'no'));
-        self::assertFalse(Str::endsWith('jason', ['no']));
-        self::assertFalse(Str::endsWith('jason', ''));
-        self::assertFalse(Str::endsWith('7', ' 7'));
-    }
-
-    /**
-     * Test for length() method.
-     *
-     * @return void
-     */
-    public function testLength()
-    {
-        self::assertEquals(11, Str::length('foo bar baz'));
-    }
-
-    /**
-     * Test for lower() method.
-     *
-     * @return void
-     */
-    public function testLower()
-    {
-        self::assertEquals('foo bar baz', Str::lower('FOO BAR BAZ'));
-        self::assertEquals('foo bar baz', Str::lower('fOo Bar bAz'));
-    }
-
-    /**
-     * Test for substr() method.
-     *
-     * @return void
-     */
-    public function testSubstr()
-    {
-        self::assertEquals('Ё', Str::substr('БГДЖИЛЁ', -1));
-        self::assertEquals('ЛЁ', Str::substr('БГДЖИЛЁ', -2));
-        self::assertEquals('И', Str::substr('БГДЖИЛЁ', -3, 1));
-        self::assertEquals('ДЖИЛ', Str::substr('БГДЖИЛЁ', 2, -1));
-        self::assertEmpty(Str::substr('БГДЖИЛЁ', 4, -4));
-        self::assertEquals('ИЛ', Str::substr('БГДЖИЛЁ', -3, -1));
-        self::assertEquals('ГДЖИЛЁ', Str::substr('БГДЖИЛЁ', 1));
-        self::assertEquals('ГДЖ', Str::substr('БГДЖИЛЁ', 1, 3));
-        self::assertEquals('БГДЖ', Str::substr('БГДЖИЛЁ', 0, 4));
-        self::assertEquals('Ё', Str::substr('БГДЖИЛЁ', -1, 1));
-        self::assertEmpty(Str::substr('Б', 2));
-    }
-
-    /**
-     * Test for startsWith() method.
-     *
-     * @return void
-     */
-    public function testStartsWith()
-    {
-        self::assertTrue(Str::startsWith('jason', 'jas'));
-        self::assertTrue(Str::startsWith('jason', 'jason'));
-        self::assertTrue(Str::startsWith('jason', ['jas']));
-        self::assertTrue(Str::startsWith('jason', ['day', 'jas']));
-        self::assertFalse(Str::startsWith('jason', 'day'));
-        self::assertFalse(Str::startsWith('jason', ['day']));
-        self::assertFalse(Str::startsWith('jason', ''));
-    }
-
-    /**
-     * Test for strpos() method.
-     *
-     * @return void
-     */
-    public function testStrPos()
-    {
-        self::assertEquals(6, Str::strpos('БГДЖИЛЁ', 'Ё'));
-        self::assertEquals(0, Str::strpos('БГДЖИЛЁ', 'Б'));
-        self::assertEquals(0, Str::strpos('ЁБГДЖИЛЁ', 'Ё'));
-        self::assertEquals(2, Str::strpos('БГДЖИЛЁД', 'Д'));
-        self::assertFalse(Str::strpos('БГДЖИЛЁ', 'П'));
-    }
-
-    /**
-     * Test for strrpos() method.
-     *
-     * @return void
-     */
-    public function testStrRPos()
-    {
-        self::assertEquals(6, Str::strrpos('БГДЖИЛЁ', 'Ё'));
-        self::assertEquals(0, Str::strrpos('БГДЖИЛЁ', 'Б'));
-        self::assertEquals(7, Str::strrpos('ЁБГДЖИЛЁ', 'Ё'));
-        self::assertEquals(7, Str::strrpos('БГДЖИЛЁД', 'Д'));
-        self::assertFalse(Str::strrpos('БГДЖИЛЁ', 'П'));
-    }
-}

+ 0 - 11
api/vendor/layershifter/tld-support/tests/bootstrap.php

@@ -1,11 +0,0 @@
-<?php
-/**
- * TLDSupport: Support package for TLDDatabase and TLDExtract.
- *
- * @link      https://github.com/layershifter/TLDSupport
- *
- * @copyright Copyright (c) 2016, Alexander Fedyashov
- * @license   https://raw.githubusercontent.com/layershifter/TLDSupport/master/LICENSE Apache 2.0 License
- */
-
-require __DIR__ . '/../vendor/autoload.php';

+ 1 - 1
api/vendor/symfony/polyfill-mbstring/LICENSE

@@ -1,4 +1,4 @@
-Copyright (c) 2015-2018 Fabien Potencier
+Copyright (c) 2015-2019 Fabien Potencier
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal

+ 49 - 2
api/vendor/symfony/polyfill-mbstring/Mbstring.php

@@ -35,6 +35,7 @@ namespace Symfony\Polyfill\Mbstring;
  * - mb_strlen               - Get string length
  * - mb_strpos               - Find position of first occurrence of string in a string
  * - mb_strrpos              - Find position of last occurrence of a string in a string
+ * - mb_str_split            - Convert a string to an array
  * - mb_strtolower           - Make a string lowercase
  * - mb_strtoupper           - Make a string uppercase
  * - mb_substitute_character - Set/Get substitution character
@@ -511,7 +512,9 @@ final class Mbstring
             $offset = 0;
         } elseif ($offset = (int) $offset) {
             if ($offset < 0) {
-                $haystack = self::mb_substr($haystack, 0, $offset, $encoding);
+                if (0 > $offset += self::mb_strlen($needle)) {
+                    $haystack = self::mb_substr($haystack, 0, $offset, $encoding);
+                }
                 $offset = 0;
             } else {
                 $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding);
@@ -523,6 +526,45 @@ final class Mbstring
         return false !== $pos ? $offset + $pos : false;
     }
 
+    public static function mb_str_split($string, $split_length = 1, $encoding = null)
+    {
+        if (null !== $string && !\is_scalar($string) && !(\is_object($string) && \method_exists($string, '__toString'))) {
+            trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', E_USER_WARNING);
+
+            return null;
+        }
+
+        if (1 > $split_length = (int) $split_length) {
+            trigger_error('The length of each segment must be greater than zero', E_USER_WARNING);
+
+            return false;
+        }
+
+        if (null === $encoding) {
+            $encoding = mb_internal_encoding();
+        }
+
+        if ('UTF-8' === $encoding = self::getEncoding($encoding)) {
+            $rx = '/(';
+            while (65535 < $split_length) {
+                $rx .= '.{65535}';
+                $split_length -= 65535;
+            }
+            $rx .= '.{'.$split_length.'})/us';
+
+            return preg_split($rx, $string, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
+        }
+
+        $result = array();
+        $length = mb_strlen($string, $encoding);
+
+        for ($i = 0; $i < $length; $i += $split_length) {
+            $result[] = mb_substr($string, $i, $split_length, $encoding);
+        }
+
+        return $result;
+    }
+
     public static function mb_strtolower($s, $encoding = null)
     {
         return self::mb_convert_case($s, MB_CASE_LOWER, $encoding);
@@ -546,7 +588,7 @@ final class Mbstring
     {
         $encoding = self::getEncoding($encoding);
         if ('CP850' === $encoding || 'ASCII' === $encoding) {
-            return substr($s, $start, null === $length ? 2147483647 : $length);
+            return (string) substr($s, $start, null === $length ? 2147483647 : $length);
         }
 
         if ($start < 0) {
@@ -786,11 +828,16 @@ final class Mbstring
             return self::$internalEncoding;
         }
 
+        if ('UTF-8' === $encoding) {
+            return 'UTF-8';
+        }
+
         $encoding = strtoupper($encoding);
 
         if ('8BIT' === $encoding || 'BINARY' === $encoding) {
             return 'CP850';
         }
+
         if ('UTF8' === $encoding) {
             return 'UTF-8';
         }

+ 4 - 0
api/vendor/symfony/polyfill-mbstring/bootstrap.php

@@ -56,3 +56,7 @@ if (!function_exists('mb_chr')) {
     function mb_chr($code, $enc = null) { return p\Mbstring::mb_chr($code, $enc); }
     function mb_scrub($s, $enc = null) { $enc = null === $enc ? mb_internal_encoding() : $enc; return mb_convert_encoding($s, $enc, $enc); }
 }
+
+if (!function_exists('mb_str_split')) {
+    function mb_str_split($string, $split_length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $split_length, $encoding); }
+}

+ 1 - 1
api/vendor/symfony/polyfill-mbstring/composer.json

@@ -28,7 +28,7 @@
     "minimum-stability": "dev",
     "extra": {
         "branch-alias": {
-            "dev-master": "1.9-dev"
+            "dev-master": "1.14-dev"
         }
     }
 }

+ 0 - 45
api/vendor/true/punycode/CHANGELOG.md

@@ -1,45 +0,0 @@
-# Changelog
-
-## 2.1.0 - 2016-08-09
-
-- [Enhancement] Increase rfc compliance (#20)
-  - Thanks to [@skroczek](https://github.com/skroczek) for the full patch.
-
-## 2.0.3 - 2016-05-23
-
-- [Fix] Exclude development stuff from repository autogenerated ZIP archives (#18)
-  - Thanks to [@mlocati](https://github.com/mlocati) for the full patch.
-
-## 2.0.2 - 2016-01-07
-
-- [Fix] Encode and decode domains regardless of their casing (#16)
-  - Thanks to [@abcdmitry](https://github.com/abcdmitry) for the full patch.
-
-
-## 2.0.1 - 2015-09-01
-
-- [Fix] Removed `version` property from `composer.json` file
-  - Thanks to [@GrahamCampbell](https://github.com/GrahamCampbell) for the patch.
-
-
-## 2.0.0 - 2015-06-24
-
-- [Enhancement] PHP 7 support
-- [Fix] Renamed `True` namespace to `TrueBV` as it is a reserved word in PHP 7
-
-
-## 1.1.0 - 2015-03-12
-
-- [Enhancement] Character encoding is now passed to the constructor, defaulting to UTF-8, as opposite to relying on `mb_internal_encoding` function call (#9).
-
-
-## 1.0.1 - 2014-08-26
-
-- [PSR-2](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) compliant and automation on Travis-CI
-  - Thanks to [@nyamsprod](https://github.com/nyamsprod) for initial patch.
-- [Fix] Domain containing `x`, `n` or `-` would result in failures while decoding (#6).
-
-
-## 1.0.0 - 2014-03-10
-
-- Initial release

+ 0 - 19
api/vendor/true/punycode/LICENSE

@@ -1,19 +0,0 @@
-Copyright (c) 2014 TrueServer B.V.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is furnished
-to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.

+ 0 - 45
api/vendor/true/punycode/README.md

@@ -1,45 +0,0 @@
-# Punycode
-
-[![Build Status](https://secure.travis-ci.org/true/php-punycode.png?branch=master)](http://travis-ci.org/true/php-punycode)
-[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/true/php-punycode/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/true/php-punycode/?branch=master)
-[![Code Coverage](https://scrutinizer-ci.com/g/true/php-punycode/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/true/php-punycode/?branch=master)
-[![Latest Stable Version](https://poser.pugx.org/true/punycode/version.png)](https://packagist.org/packages/true/punycode)
-
-A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA).
-
-
-## Install
-
-```
-composer require true/punycode:~2.0
-```
-
-
-## Usage
-
-```php
-<?php
-
-// Import Punycode
-use TrueBV\Punycode;
-
-$Punycode = new Punycode();
-var_dump($Punycode->encode('renangonçalves.com'));
-// outputs: xn--renangonalves-pgb.com
-
-var_dump($Punycode->decode('xn--renangonalves-pgb.com'));
-// outputs: renangonçalves.com
-```
-
-
-## FAQ
-
-### 1. What is this library for?
-
-This library converts a Unicode encoded domain name to a IDNA ASCII form and vice-versa.
-
-
-### 2. Why should I use this instead of [PHP's IDN Functions](http://php.net/manual/en/ref.intl.idn.php)?
-
-If you can compile the needed dependencies (intl, libidn) there is not much difference.
-But if you want to write portable code between hosts (including Windows and Mac OS), or can't install PECL extensions, this is the right library for you.

+ 0 - 26
api/vendor/true/punycode/composer.json

@@ -1,26 +0,0 @@
-{
-	"name": "true/punycode",
-	"description": "A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)",
-	"keywords": ["IDNA", "punycode"],
-	"homepage": "https://github.com/true/php-punycode",
-	"license": "MIT",
-	"authors": [
-		{
-			"name": "Renan Gonçalves",
-			"email": "renan.saddam@gmail.com"
-		}
-	],
-	"autoload": {
-		"psr-4": {
-			"TrueBV\\": "src/"
-		}
-	},
-	"require": {
-		"symfony/polyfill-mbstring": "^1.3",
-		"php": ">=5.3.0"
-	},
-	"require-dev": {
-		"phpunit/phpunit": "~4.7",
-		"squizlabs/php_codesniffer": "~2.0"
-	}
-}

+ 0 - 13
api/vendor/true/punycode/src/Exception/DomainOutOfBoundsException.php

@@ -1,13 +0,0 @@
-<?php
-
-namespace TrueBV\Exception;
-
-/**
- * Class DomainOutOfBoundsException
- * @package TrueBV\Exception
- * @author  Sebastian Kroczek <sk@xbug.de>
- */
-class DomainOutOfBoundsException extends OutOfBoundsException
-{
-
-}

+ 0 - 13
api/vendor/true/punycode/src/Exception/LabelOutOfBoundsException.php

@@ -1,13 +0,0 @@
-<?php
-
-namespace TrueBV\Exception;
-
-/**
- * Class LabelOutOfBoundsException
- * @package TrueBV\Exception
- * @author  Sebastian Kroczek <sk@xbug.de>
- */
-class LabelOutOfBoundsException extends OutOfBoundsException
-{
-
-}

+ 0 - 13
api/vendor/true/punycode/src/Exception/OutOfBoundsException.php

@@ -1,13 +0,0 @@
-<?php
-
-namespace TrueBV\Exception;
-
-/**
- * Class OutOfBoundsException
- * @package TrueBV\Exception
- * @author  Sebastian Kroczek <sk@xbug.de>
- */
-class OutOfBoundsException extends \RuntimeException
-{
-
-}

+ 0 - 360
api/vendor/true/punycode/src/Punycode.php

@@ -1,360 +0,0 @@
-<?php
-namespace TrueBV;
-
-use TrueBV\Exception\DomainOutOfBoundsException;
-use TrueBV\Exception\LabelOutOfBoundsException;
-
-/**
- * Punycode implementation as described in RFC 3492
- *
- * @link http://tools.ietf.org/html/rfc3492
- */
-class Punycode
-{
-
-    /**
-     * Bootstring parameter values
-     *
-     */
-    const BASE         = 36;
-    const TMIN         = 1;
-    const TMAX         = 26;
-    const SKEW         = 38;
-    const DAMP         = 700;
-    const INITIAL_BIAS = 72;
-    const INITIAL_N    = 128;
-    const PREFIX       = 'xn--';
-    const DELIMITER    = '-';
-
-    /**
-     * Encode table
-     *
-     * @param array
-     */
-    protected static $encodeTable = array(
-        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
-        'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
-        'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
-    );
-
-    /**
-     * Decode table
-     *
-     * @param array
-     */
-    protected static $decodeTable = array(
-        'a' =>  0, 'b' =>  1, 'c' =>  2, 'd' =>  3, 'e' =>  4, 'f' =>  5,
-        'g' =>  6, 'h' =>  7, 'i' =>  8, 'j' =>  9, 'k' => 10, 'l' => 11,
-        'm' => 12, 'n' => 13, 'o' => 14, 'p' => 15, 'q' => 16, 'r' => 17,
-        's' => 18, 't' => 19, 'u' => 20, 'v' => 21, 'w' => 22, 'x' => 23,
-        'y' => 24, 'z' => 25, '0' => 26, '1' => 27, '2' => 28, '3' => 29,
-        '4' => 30, '5' => 31, '6' => 32, '7' => 33, '8' => 34, '9' => 35
-    );
-
-    /**
-     * Character encoding
-     *
-     * @param string
-     */
-    protected $encoding;
-
-    /**
-     * Constructor
-     *
-     * @param string $encoding Character encoding
-     */
-    public function __construct($encoding = 'UTF-8')
-    {
-        $this->encoding = $encoding;
-    }
-
-    /**
-     * Encode a domain to its Punycode version
-     *
-     * @param string $input Domain name in Unicode to be encoded
-     * @return string Punycode representation in ASCII
-     */
-    public function encode($input)
-    {
-        $input = mb_strtolower($input, $this->encoding);
-        $parts = explode('.', $input);
-        foreach ($parts as &$part) {
-            $length = strlen($part);
-            if ($length < 1) {
-                throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length));
-            }
-            $part = $this->encodePart($part);
-        }
-        $output = implode('.', $parts);
-        $length = strlen($output);
-        if ($length > 255) {
-            throw new DomainOutOfBoundsException(sprintf('A full domain name is limited to 255 octets (including the separators), %s given.', $length));
-        }
-
-        return $output;
-    }
-
-    /**
-     * Encode a part of a domain name, such as tld, to its Punycode version
-     *
-     * @param string $input Part of a domain name
-     * @return string Punycode representation of a domain part
-     */
-    protected function encodePart($input)
-    {
-        $codePoints = $this->listCodePoints($input);
-
-        $n = static::INITIAL_N;
-        $bias = static::INITIAL_BIAS;
-        $delta = 0;
-        $h = $b = count($codePoints['basic']);
-
-        $output = '';
-        foreach ($codePoints['basic'] as $code) {
-            $output .= $this->codePointToChar($code);
-        }
-        if ($input === $output) {
-            return $output;
-        }
-        if ($b > 0) {
-            $output .= static::DELIMITER;
-        }
-
-        $codePoints['nonBasic'] = array_unique($codePoints['nonBasic']);
-        sort($codePoints['nonBasic']);
-
-        $i = 0;
-        $length = mb_strlen($input, $this->encoding);
-        while ($h < $length) {
-            $m = $codePoints['nonBasic'][$i++];
-            $delta = $delta + ($m - $n) * ($h + 1);
-            $n = $m;
-
-            foreach ($codePoints['all'] as $c) {
-                if ($c < $n || $c < static::INITIAL_N) {
-                    $delta++;
-                }
-                if ($c === $n) {
-                    $q = $delta;
-                    for ($k = static::BASE;; $k += static::BASE) {
-                        $t = $this->calculateThreshold($k, $bias);
-                        if ($q < $t) {
-                            break;
-                        }
-
-                        $code = $t + (($q - $t) % (static::BASE - $t));
-                        $output .= static::$encodeTable[$code];
-
-                        $q = ($q - $t) / (static::BASE - $t);
-                    }
-
-                    $output .= static::$encodeTable[$q];
-                    $bias = $this->adapt($delta, $h + 1, ($h === $b));
-                    $delta = 0;
-                    $h++;
-                }
-            }
-
-            $delta++;
-            $n++;
-        }
-        $out = static::PREFIX . $output;
-        $length = strlen($out);
-        if ($length > 63 || $length < 1) {
-            throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length));
-        }
-
-        return $out;
-    }
-
-    /**
-     * Decode a Punycode domain name to its Unicode counterpart
-     *
-     * @param string $input Domain name in Punycode
-     * @return string Unicode domain name
-     */
-    public function decode($input)
-    {
-        $input = strtolower($input);
-        $parts = explode('.', $input);
-        foreach ($parts as &$part) {
-            $length = strlen($part);
-            if ($length > 63 || $length < 1) {
-                throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length));
-            }
-            if (strpos($part, static::PREFIX) !== 0) {
-                continue;
-            }
-
-            $part = substr($part, strlen(static::PREFIX));
-            $part = $this->decodePart($part);
-        }
-        $output = implode('.', $parts);
-        $length = strlen($output);
-        if ($length > 255) {
-            throw new DomainOutOfBoundsException(sprintf('A full domain name is limited to 255 octets (including the separators), %s given.', $length));
-        }
-
-        return $output;
-    }
-
-    /**
-     * Decode a part of domain name, such as tld
-     *
-     * @param string $input Part of a domain name
-     * @return string Unicode domain part
-     */
-    protected function decodePart($input)
-    {
-        $n = static::INITIAL_N;
-        $i = 0;
-        $bias = static::INITIAL_BIAS;
-        $output = '';
-
-        $pos = strrpos($input, static::DELIMITER);
-        if ($pos !== false) {
-            $output = substr($input, 0, $pos++);
-        } else {
-            $pos = 0;
-        }
-
-        $outputLength = strlen($output);
-        $inputLength = strlen($input);
-        while ($pos < $inputLength) {
-            $oldi = $i;
-            $w = 1;
-
-            for ($k = static::BASE;; $k += static::BASE) {
-                $digit = static::$decodeTable[$input[$pos++]];
-                $i = $i + ($digit * $w);
-                $t = $this->calculateThreshold($k, $bias);
-
-                if ($digit < $t) {
-                    break;
-                }
-
-                $w = $w * (static::BASE - $t);
-            }
-
-            $bias = $this->adapt($i - $oldi, ++$outputLength, ($oldi === 0));
-            $n = $n + (int) ($i / $outputLength);
-            $i = $i % ($outputLength);
-            $output = mb_substr($output, 0, $i, $this->encoding) . $this->codePointToChar($n) . mb_substr($output, $i, $outputLength - 1, $this->encoding);
-
-            $i++;
-        }
-
-        return $output;
-    }
-
-    /**
-     * Calculate the bias threshold to fall between TMIN and TMAX
-     *
-     * @param integer $k
-     * @param integer $bias
-     * @return integer
-     */
-    protected function calculateThreshold($k, $bias)
-    {
-        if ($k <= $bias + static::TMIN) {
-            return static::TMIN;
-        } elseif ($k >= $bias + static::TMAX) {
-            return static::TMAX;
-        }
-        return $k - $bias;
-    }
-
-    /**
-     * Bias adaptation
-     *
-     * @param integer $delta
-     * @param integer $numPoints
-     * @param boolean $firstTime
-     * @return integer
-     */
-    protected function adapt($delta, $numPoints, $firstTime)
-    {
-        $delta = (int) (
-            ($firstTime)
-                ? $delta / static::DAMP
-                : $delta / 2
-            );
-        $delta += (int) ($delta / $numPoints);
-
-        $k = 0;
-        while ($delta > ((static::BASE - static::TMIN) * static::TMAX) / 2) {
-            $delta = (int) ($delta / (static::BASE - static::TMIN));
-            $k = $k + static::BASE;
-        }
-        $k = $k + (int) (((static::BASE - static::TMIN + 1) * $delta) / ($delta + static::SKEW));
-
-        return $k;
-    }
-
-    /**
-     * List code points for a given input
-     *
-     * @param string $input
-     * @return array Multi-dimension array with basic, non-basic and aggregated code points
-     */
-    protected function listCodePoints($input)
-    {
-        $codePoints = array(
-            'all'      => array(),
-            'basic'    => array(),
-            'nonBasic' => array(),
-        );
-
-        $length = mb_strlen($input, $this->encoding);
-        for ($i = 0; $i < $length; $i++) {
-            $char = mb_substr($input, $i, 1, $this->encoding);
-            $code = $this->charToCodePoint($char);
-            if ($code < 128) {
-                $codePoints['all'][] = $codePoints['basic'][] = $code;
-            } else {
-                $codePoints['all'][] = $codePoints['nonBasic'][] = $code;
-            }
-        }
-
-        return $codePoints;
-    }
-
-    /**
-     * Convert a single or multi-byte character to its code point
-     *
-     * @param string $char
-     * @return integer
-     */
-    protected function charToCodePoint($char)
-    {
-        $code = ord($char[0]);
-        if ($code < 128) {
-            return $code;
-        } elseif ($code < 224) {
-            return (($code - 192) * 64) + (ord($char[1]) - 128);
-        } elseif ($code < 240) {
-            return (($code - 224) * 4096) + ((ord($char[1]) - 128) * 64) + (ord($char[2]) - 128);
-        } else {
-            return (($code - 240) * 262144) + ((ord($char[1]) - 128) * 4096) + ((ord($char[2]) - 128) * 64) + (ord($char[3]) - 128);
-        }
-    }
-
-    /**
-     * Convert a code point to its single or multi-byte character
-     *
-     * @param integer $code
-     * @return string
-     */
-    protected function codePointToChar($code)
-    {
-        if ($code <= 0x7F) {
-            return chr($code);
-        } elseif ($code <= 0x7FF) {
-            return chr(($code >> 6) + 192) . chr(($code & 63) + 128);
-        } elseif ($code <= 0xFFFF) {
-            return chr(($code >> 12) + 224) . chr((($code >> 6) & 63) + 128) . chr(($code & 63) + 128);
-        } else {
-            return chr(($code >> 18) + 240) . chr((($code >> 12) & 63) + 128) . chr((($code >> 6) & 63) + 128) . chr(($code & 63) + 128);
-        }
-    }
-}