Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorsgiehl <stefan@piwik.org>2017-11-21 21:28:08 +0300
committerStefan Giehl <stefan@piwik.org>2017-11-22 23:24:52 +0300
commitbfc71ad6468737edf3c11093cb4d24735299f228 (patch)
tree045d8e47f77fd3426d18e78203c0643914c2b886 /libs
parentd6dea0a51d4dee03a2a324a8eebcb93880ca3213 (diff)
Revert "Use composer version of GeoIP library (#12021)"
This reverts commit 23249e9eec85350e7464eac3ec90450b2614e3c7.
Diffstat (limited to 'libs')
-rwxr-xr-xlibs/MaxMindGeoIP/geoip.inc1953
-rwxr-xr-xlibs/MaxMindGeoIP/geoipcity.inc241
-rwxr-xr-xlibs/MaxMindGeoIP/geoipregionvars.php4447
3 files changed, 6641 insertions, 0 deletions
diff --git a/libs/MaxMindGeoIP/geoip.inc b/libs/MaxMindGeoIP/geoip.inc
new file mode 100755
index 0000000000..519e48d373
--- /dev/null
+++ b/libs/MaxMindGeoIP/geoip.inc
@@ -0,0 +1,1953 @@
+<?php
+
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
+/* geoip.inc
+ *
+ * Copyright (C) 2007 MaxMind LLC
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+define("GEOIP_COUNTRY_BEGIN", 16776960);
+define("GEOIP_STATE_BEGIN_REV0", 16700000);
+define("GEOIP_STATE_BEGIN_REV1", 16000000);
+define("GEOIP_STANDARD", 0);
+define("GEOIP_MEMORY_CACHE", 1);
+define("GEOIP_SHARED_MEMORY", 2);
+define("STRUCTURE_INFO_MAX_SIZE", 20);
+define("DATABASE_INFO_MAX_SIZE", 100);
+if (!defined('GEOIP_COUNTRY_EDITION')) {
+ // GeoIP PECL installed?
+ define("GEOIP_COUNTRY_EDITION", 1);
+}
+if (!defined('GEOIP_PROXY_EDITION')) {
+ // GeoIP PECL installed?
+ define("GEOIP_PROXY_EDITION", 8);
+}
+if (!defined('GEOIP_ASNUM_EDITION')) {
+ // GeoIP PECL installed?
+ define("GEOIP_ASNUM_EDITION", 9);
+}
+if (!defined('GEOIP_NETSPEED_EDITION')) {
+ // GeoIP PECL installed?
+ define("GEOIP_NETSPEED_EDITION", 10);
+}
+if (!defined('GEOIP_REGION_EDITION_REV0')) {
+ // GeoIP PECL installed?
+ define("GEOIP_REGION_EDITION_REV0", 7);
+}
+if (!defined('GEOIP_REGION_EDITION_REV1')) {
+ // GeoIP PECL installed?
+ define("GEOIP_REGION_EDITION_REV1", 3);
+}
+if (!defined('GEOIP_CITY_EDITION_REV0')) {
+ // GeoIP PECL installed?
+ define("GEOIP_CITY_EDITION_REV0", 6);
+}
+if (!defined('GEOIP_CITY_EDITION_REV1')) {
+ // GeoIP PECL installed?
+ define("GEOIP_CITY_EDITION_REV1", 2);
+}
+if (!defined('GEOIP_ORG_EDITION')) {
+ // GeoIP PECL installed?
+ define("GEOIP_ORG_EDITION", 5);
+}
+if (!defined('GEOIP_ISP_EDITION')) {
+ // GeoIP PECL installed?
+ define("GEOIP_ISP_EDITION", 4);
+}
+define("SEGMENT_RECORD_LENGTH", 3);
+define("STANDARD_RECORD_LENGTH", 3);
+define("ORG_RECORD_LENGTH", 4);
+define("MAX_RECORD_LENGTH", 4);
+define("MAX_ORG_RECORD_LENGTH", 300);
+define("GEOIP_SHM_KEY", 0x4f415401);
+define("US_OFFSET", 1);
+define("CANADA_OFFSET", 677);
+define("WORLD_OFFSET", 1353);
+define("FIPS_RANGE", 360);
+if (!defined('GEOIP_UNKNOWN_SPEED')) {
+ // GeoIP PECL installed?
+ define("GEOIP_UNKNOWN_SPEED", 0);
+}
+if (!defined('GEOIP_DIALUP_SPEED')) {
+ // GeoIP PECL installed?
+ define("GEOIP_DIALUP_SPEED", 1);
+}
+if (!defined('GEOIP_CABLEDSL_SPEED')) {
+ // GeoIP PECL installed?
+ define("GEOIP_CABLEDSL_SPEED", 2);
+}
+if (!defined('GEOIP_CORPORATE_SPEED')) {
+ // GeoIP PECL installed?
+ define("GEOIP_CORPORATE_SPEED", 3);
+}
+if (!defined('GEOIP_DOMAIN_EDITION')) {
+ // GeoIP PECL installed?
+ define("GEOIP_DOMAIN_EDITION", 11);
+}
+//if (!defined('GEOIP_COUNTRY_EDITION_V6')) {
+ // GeoIP PECL installed?
+ define("GEOIP_COUNTRY_EDITION_V6", 12);
+//}
+define("GEOIP_LOCATIONA_EDITION", 13);
+define("GEOIP_ACCURACYRADIUS_EDITION", 14);
+define("GEOIP_CITYCOMBINED_EDITION", 15);
+define("GEOIP_CITY_EDITION_REV1_V6", 30);
+define("GEOIP_CITY_EDITION_REV0_V6", 31);
+if (!defined('GEOIP_NETSPEED_EDITION_REV1')) {
+ // GeoIP PECL installed?
+ define("GEOIP_NETSPEED_EDITION_REV1", 32);
+}
+define("GEOIP_NETSPEED_EDITION_REV1_V6", 33);
+define("GEOIP_USERTYPE_EDITION", 28);
+define("GEOIP_USERTYPE_EDITION_V6", 29);
+define("GEOIP_ASNUM_EDITION_V6", 21);
+define("GEOIP_ISP_EDITION_V6", 22);
+define("GEOIP_ORG_EDITION_V6", 23);
+define("GEOIP_DOMAIN_EDITION_V6", 24);
+
+define("CITYCOMBINED_FIXED_RECORD", 7);
+
+class GeoIP
+{
+ public $flags;
+ public $filehandle;
+ public $memory_buffer;
+ public $databaseType;
+ public $databaseSegments;
+ public $record_length;
+ public $shmid;
+ public $GEOIP_COUNTRY_CODE_TO_NUMBER = array(
+ "" => 0,
+ "AP" => 1,
+ "EU" => 2,
+ "AD" => 3,
+ "AE" => 4,
+ "AF" => 5,
+ "AG" => 6,
+ "AI" => 7,
+ "AL" => 8,
+ "AM" => 9,
+ "CW" => 10,
+ "AO" => 11,
+ "AQ" => 12,
+ "AR" => 13,
+ "AS" => 14,
+ "AT" => 15,
+ "AU" => 16,
+ "AW" => 17,
+ "AZ" => 18,
+ "BA" => 19,
+ "BB" => 20,
+ "BD" => 21,
+ "BE" => 22,
+ "BF" => 23,
+ "BG" => 24,
+ "BH" => 25,
+ "BI" => 26,
+ "BJ" => 27,
+ "BM" => 28,
+ "BN" => 29,
+ "BO" => 30,
+ "BR" => 31,
+ "BS" => 32,
+ "BT" => 33,
+ "BV" => 34,
+ "BW" => 35,
+ "BY" => 36,
+ "BZ" => 37,
+ "CA" => 38,
+ "CC" => 39,
+ "CD" => 40,
+ "CF" => 41,
+ "CG" => 42,
+ "CH" => 43,
+ "CI" => 44,
+ "CK" => 45,
+ "CL" => 46,
+ "CM" => 47,
+ "CN" => 48,
+ "CO" => 49,
+ "CR" => 50,
+ "CU" => 51,
+ "CV" => 52,
+ "CX" => 53,
+ "CY" => 54,
+ "CZ" => 55,
+ "DE" => 56,
+ "DJ" => 57,
+ "DK" => 58,
+ "DM" => 59,
+ "DO" => 60,
+ "DZ" => 61,
+ "EC" => 62,
+ "EE" => 63,
+ "EG" => 64,
+ "EH" => 65,
+ "ER" => 66,
+ "ES" => 67,
+ "ET" => 68,
+ "FI" => 69,
+ "FJ" => 70,
+ "FK" => 71,
+ "FM" => 72,
+ "FO" => 73,
+ "FR" => 74,
+ "SX" => 75,
+ "GA" => 76,
+ "GB" => 77,
+ "GD" => 78,
+ "GE" => 79,
+ "GF" => 80,
+ "GH" => 81,
+ "GI" => 82,
+ "GL" => 83,
+ "GM" => 84,
+ "GN" => 85,
+ "GP" => 86,
+ "GQ" => 87,
+ "GR" => 88,
+ "GS" => 89,
+ "GT" => 90,
+ "GU" => 91,
+ "GW" => 92,
+ "GY" => 93,
+ "HK" => 94,
+ "HM" => 95,
+ "HN" => 96,
+ "HR" => 97,
+ "HT" => 98,
+ "HU" => 99,
+ "ID" => 100,
+ "IE" => 101,
+ "IL" => 102,
+ "IN" => 103,
+ "IO" => 104,
+ "IQ" => 105,
+ "IR" => 106,
+ "IS" => 107,
+ "IT" => 108,
+ "JM" => 109,
+ "JO" => 110,
+ "JP" => 111,
+ "KE" => 112,
+ "KG" => 113,
+ "KH" => 114,
+ "KI" => 115,
+ "KM" => 116,
+ "KN" => 117,
+ "KP" => 118,
+ "KR" => 119,
+ "KW" => 120,
+ "KY" => 121,
+ "KZ" => 122,
+ "LA" => 123,
+ "LB" => 124,
+ "LC" => 125,
+ "LI" => 126,
+ "LK" => 127,
+ "LR" => 128,
+ "LS" => 129,
+ "LT" => 130,
+ "LU" => 131,
+ "LV" => 132,
+ "LY" => 133,
+ "MA" => 134,
+ "MC" => 135,
+ "MD" => 136,
+ "MG" => 137,
+ "MH" => 138,
+ "MK" => 139,
+ "ML" => 140,
+ "MM" => 141,
+ "MN" => 142,
+ "MO" => 143,
+ "MP" => 144,
+ "MQ" => 145,
+ "MR" => 146,
+ "MS" => 147,
+ "MT" => 148,
+ "MU" => 149,
+ "MV" => 150,
+ "MW" => 151,
+ "MX" => 152,
+ "MY" => 153,
+ "MZ" => 154,
+ "NA" => 155,
+ "NC" => 156,
+ "NE" => 157,
+ "NF" => 158,
+ "NG" => 159,
+ "NI" => 160,
+ "NL" => 161,
+ "NO" => 162,
+ "NP" => 163,
+ "NR" => 164,
+ "NU" => 165,
+ "NZ" => 166,
+ "OM" => 167,
+ "PA" => 168,
+ "PE" => 169,
+ "PF" => 170,
+ "PG" => 171,
+ "PH" => 172,
+ "PK" => 173,
+ "PL" => 174,
+ "PM" => 175,
+ "PN" => 176,
+ "PR" => 177,
+ "PS" => 178,
+ "PT" => 179,
+ "PW" => 180,
+ "PY" => 181,
+ "QA" => 182,
+ "RE" => 183,
+ "RO" => 184,
+ "RU" => 185,
+ "RW" => 186,
+ "SA" => 187,
+ "SB" => 188,
+ "SC" => 189,
+ "SD" => 190,
+ "SE" => 191,
+ "SG" => 192,
+ "SH" => 193,
+ "SI" => 194,
+ "SJ" => 195,
+ "SK" => 196,
+ "SL" => 197,
+ "SM" => 198,
+ "SN" => 199,
+ "SO" => 200,
+ "SR" => 201,
+ "ST" => 202,
+ "SV" => 203,
+ "SY" => 204,
+ "SZ" => 205,
+ "TC" => 206,
+ "TD" => 207,
+ "TF" => 208,
+ "TG" => 209,
+ "TH" => 210,
+ "TJ" => 211,
+ "TK" => 212,
+ "TM" => 213,
+ "TN" => 214,
+ "TO" => 215,
+ "TL" => 216,
+ "TR" => 217,
+ "TT" => 218,
+ "TV" => 219,
+ "TW" => 220,
+ "TZ" => 221,
+ "UA" => 222,
+ "UG" => 223,
+ "UM" => 224,
+ "US" => 225,
+ "UY" => 226,
+ "UZ" => 227,
+ "VA" => 228,
+ "VC" => 229,
+ "VE" => 230,
+ "VG" => 231,
+ "VI" => 232,
+ "VN" => 233,
+ "VU" => 234,
+ "WF" => 235,
+ "WS" => 236,
+ "YE" => 237,
+ "YT" => 238,
+ "RS" => 239,
+ "ZA" => 240,
+ "ZM" => 241,
+ "ME" => 242,
+ "ZW" => 243,
+ "A1" => 244,
+ "A2" => 245,
+ "O1" => 246,
+ "AX" => 247,
+ "GG" => 248,
+ "IM" => 249,
+ "JE" => 250,
+ "BL" => 251,
+ "MF" => 252,
+ "BQ" => 253,
+ "SS" => 254
+ );
+
+ public $GEOIP_COUNTRY_CODES = array(
+ "",
+ "AP",
+ "EU",
+ "AD",
+ "AE",
+ "AF",
+ "AG",
+ "AI",
+ "AL",
+ "AM",
+ "CW",
+ "AO",
+ "AQ",
+ "AR",
+ "AS",
+ "AT",
+ "AU",
+ "AW",
+ "AZ",
+ "BA",
+ "BB",
+ "BD",
+ "BE",
+ "BF",
+ "BG",
+ "BH",
+ "BI",
+ "BJ",
+ "BM",
+ "BN",
+ "BO",
+ "BR",
+ "BS",
+ "BT",
+ "BV",
+ "BW",
+ "BY",
+ "BZ",
+ "CA",
+ "CC",
+ "CD",
+ "CF",
+ "CG",
+ "CH",
+ "CI",
+ "CK",
+ "CL",
+ "CM",
+ "CN",
+ "CO",
+ "CR",
+ "CU",
+ "CV",
+ "CX",
+ "CY",
+ "CZ",
+ "DE",
+ "DJ",
+ "DK",
+ "DM",
+ "DO",
+ "DZ",
+ "EC",
+ "EE",
+ "EG",
+ "EH",
+ "ER",
+ "ES",
+ "ET",
+ "FI",
+ "FJ",
+ "FK",
+ "FM",
+ "FO",
+ "FR",
+ "SX",
+ "GA",
+ "GB",
+ "GD",
+ "GE",
+ "GF",
+ "GH",
+ "GI",
+ "GL",
+ "GM",
+ "GN",
+ "GP",
+ "GQ",
+ "GR",
+ "GS",
+ "GT",
+ "GU",
+ "GW",
+ "GY",
+ "HK",
+ "HM",
+ "HN",
+ "HR",
+ "HT",
+ "HU",
+ "ID",
+ "IE",
+ "IL",
+ "IN",
+ "IO",
+ "IQ",
+ "IR",
+ "IS",
+ "IT",
+ "JM",
+ "JO",
+ "JP",
+ "KE",
+ "KG",
+ "KH",
+ "KI",
+ "KM",
+ "KN",
+ "KP",
+ "KR",
+ "KW",
+ "KY",
+ "KZ",
+ "LA",
+ "LB",
+ "LC",
+ "LI",
+ "LK",
+ "LR",
+ "LS",
+ "LT",
+ "LU",
+ "LV",
+ "LY",
+ "MA",
+ "MC",
+ "MD",
+ "MG",
+ "MH",
+ "MK",
+ "ML",
+ "MM",
+ "MN",
+ "MO",
+ "MP",
+ "MQ",
+ "MR",
+ "MS",
+ "MT",
+ "MU",
+ "MV",
+ "MW",
+ "MX",
+ "MY",
+ "MZ",
+ "NA",
+ "NC",
+ "NE",
+ "NF",
+ "NG",
+ "NI",
+ "NL",
+ "NO",
+ "NP",
+ "NR",
+ "NU",
+ "NZ",
+ "OM",
+ "PA",
+ "PE",
+ "PF",
+ "PG",
+ "PH",
+ "PK",
+ "PL",
+ "PM",
+ "PN",
+ "PR",
+ "PS",
+ "PT",
+ "PW",
+ "PY",
+ "QA",
+ "RE",
+ "RO",
+ "RU",
+ "RW",
+ "SA",
+ "SB",
+ "SC",
+ "SD",
+ "SE",
+ "SG",
+ "SH",
+ "SI",
+ "SJ",
+ "SK",
+ "SL",
+ "SM",
+ "SN",
+ "SO",
+ "SR",
+ "ST",
+ "SV",
+ "SY",
+ "SZ",
+ "TC",
+ "TD",
+ "TF",
+ "TG",
+ "TH",
+ "TJ",
+ "TK",
+ "TM",
+ "TN",
+ "TO",
+ "TL",
+ "TR",
+ "TT",
+ "TV",
+ "TW",
+ "TZ",
+ "UA",
+ "UG",
+ "UM",
+ "US",
+ "UY",
+ "UZ",
+ "VA",
+ "VC",
+ "VE",
+ "VG",
+ "VI",
+ "VN",
+ "VU",
+ "WF",
+ "WS",
+ "YE",
+ "YT",
+ "RS",
+ "ZA",
+ "ZM",
+ "ME",
+ "ZW",
+ "A1",
+ "A2",
+ "O1",
+ "AX",
+ "GG",
+ "IM",
+ "JE",
+ "BL",
+ "MF",
+ "BQ",
+ "SS",
+ "O1"
+ );
+
+ public $GEOIP_COUNTRY_CODES3 = array(
+ "",
+ "AP",
+ "EU",
+ "AND",
+ "ARE",
+ "AFG",
+ "ATG",
+ "AIA",
+ "ALB",
+ "ARM",
+ "CUW",
+ "AGO",
+ "ATA",
+ "ARG",
+ "ASM",
+ "AUT",
+ "AUS",
+ "ABW",
+ "AZE",
+ "BIH",
+ "BRB",
+ "BGD",
+ "BEL",
+ "BFA",
+ "BGR",
+ "BHR",
+ "BDI",
+ "BEN",
+ "BMU",
+ "BRN",
+ "BOL",
+ "BRA",
+ "BHS",
+ "BTN",
+ "BVT",
+ "BWA",
+ "BLR",
+ "BLZ",
+ "CAN",
+ "CCK",
+ "COD",
+ "CAF",
+ "COG",
+ "CHE",
+ "CIV",
+ "COK",
+ "CHL",
+ "CMR",
+ "CHN",
+ "COL",
+ "CRI",
+ "CUB",
+ "CPV",
+ "CXR",
+ "CYP",
+ "CZE",
+ "DEU",
+ "DJI",
+ "DNK",
+ "DMA",
+ "DOM",
+ "DZA",
+ "ECU",
+ "EST",
+ "EGY",
+ "ESH",
+ "ERI",
+ "ESP",
+ "ETH",
+ "FIN",
+ "FJI",
+ "FLK",
+ "FSM",
+ "FRO",
+ "FRA",
+ "SXM",
+ "GAB",
+ "GBR",
+ "GRD",
+ "GEO",
+ "GUF",
+ "GHA",
+ "GIB",
+ "GRL",
+ "GMB",
+ "GIN",
+ "GLP",
+ "GNQ",
+ "GRC",
+ "SGS",
+ "GTM",
+ "GUM",
+ "GNB",
+ "GUY",
+ "HKG",
+ "HMD",
+ "HND",
+ "HRV",
+ "HTI",
+ "HUN",
+ "IDN",
+ "IRL",
+ "ISR",
+ "IND",
+ "IOT",
+ "IRQ",
+ "IRN",
+ "ISL",
+ "ITA",
+ "JAM",
+ "JOR",
+ "JPN",
+ "KEN",
+ "KGZ",
+ "KHM",
+ "KIR",
+ "COM",
+ "KNA",
+ "PRK",
+ "KOR",
+ "KWT",
+ "CYM",
+ "KAZ",
+ "LAO",
+ "LBN",
+ "LCA",
+ "LIE",
+ "LKA",
+ "LBR",
+ "LSO",
+ "LTU",
+ "LUX",
+ "LVA",
+ "LBY",
+ "MAR",
+ "MCO",
+ "MDA",
+ "MDG",
+ "MHL",
+ "MKD",
+ "MLI",
+ "MMR",
+ "MNG",
+ "MAC",
+ "MNP",
+ "MTQ",
+ "MRT",
+ "MSR",
+ "MLT",
+ "MUS",
+ "MDV",
+ "MWI",
+ "MEX",
+ "MYS",
+ "MOZ",
+ "NAM",
+ "NCL",
+ "NER",
+ "NFK",
+ "NGA",
+ "NIC",
+ "NLD",
+ "NOR",
+ "NPL",
+ "NRU",
+ "NIU",
+ "NZL",
+ "OMN",
+ "PAN",
+ "PER",
+ "PYF",
+ "PNG",
+ "PHL",
+ "PAK",
+ "POL",
+ "SPM",
+ "PCN",
+ "PRI",
+ "PSE",
+ "PRT",
+ "PLW",
+ "PRY",
+ "QAT",
+ "REU",
+ "ROU",
+ "RUS",
+ "RWA",
+ "SAU",
+ "SLB",
+ "SYC",
+ "SDN",
+ "SWE",
+ "SGP",
+ "SHN",
+ "SVN",
+ "SJM",
+ "SVK",
+ "SLE",
+ "SMR",
+ "SEN",
+ "SOM",
+ "SUR",
+ "STP",
+ "SLV",
+ "SYR",
+ "SWZ",
+ "TCA",
+ "TCD",
+ "ATF",
+ "TGO",
+ "THA",
+ "TJK",
+ "TKL",
+ "TKM",
+ "TUN",
+ "TON",
+ "TLS",
+ "TUR",
+ "TTO",
+ "TUV",
+ "TWN",
+ "TZA",
+ "UKR",
+ "UGA",
+ "UMI",
+ "USA",
+ "URY",
+ "UZB",
+ "VAT",
+ "VCT",
+ "VEN",
+ "VGB",
+ "VIR",
+ "VNM",
+ "VUT",
+ "WLF",
+ "WSM",
+ "YEM",
+ "MYT",
+ "SRB",
+ "ZAF",
+ "ZMB",
+ "MNE",
+ "ZWE",
+ "A1",
+ "A2",
+ "O1",
+ "ALA",
+ "GGY",
+ "IMN",
+ "JEY",
+ "BLM",
+ "MAF",
+ "BES",
+ "SSD",
+ "O1"
+ );
+
+ public $GEOIP_COUNTRY_NAMES = array(
+ "",
+ "Asia/Pacific Region",
+ "Europe",
+ "Andorra",
+ "United Arab Emirates",
+ "Afghanistan",
+ "Antigua and Barbuda",
+ "Anguilla",
+ "Albania",
+ "Armenia",
+ "Curacao",
+ "Angola",
+ "Antarctica",
+ "Argentina",
+ "American Samoa",
+ "Austria",
+ "Australia",
+ "Aruba",
+ "Azerbaijan",
+ "Bosnia and Herzegovina",
+ "Barbados",
+ "Bangladesh",
+ "Belgium",
+ "Burkina Faso",
+ "Bulgaria",
+ "Bahrain",
+ "Burundi",
+ "Benin",
+ "Bermuda",
+ "Brunei Darussalam",
+ "Bolivia",
+ "Brazil",
+ "Bahamas",
+ "Bhutan",
+ "Bouvet Island",
+ "Botswana",
+ "Belarus",
+ "Belize",
+ "Canada",
+ "Cocos (Keeling) Islands",
+ "Congo, The Democratic Republic of the",
+ "Central African Republic",
+ "Congo",
+ "Switzerland",
+ "Cote D'Ivoire",
+ "Cook Islands",
+ "Chile",
+ "Cameroon",
+ "China",
+ "Colombia",
+ "Costa Rica",
+ "Cuba",
+ "Cape Verde",
+ "Christmas Island",
+ "Cyprus",
+ "Czech Republic",
+ "Germany",
+ "Djibouti",
+ "Denmark",
+ "Dominica",
+ "Dominican Republic",
+ "Algeria",
+ "Ecuador",
+ "Estonia",
+ "Egypt",
+ "Western Sahara",
+ "Eritrea",
+ "Spain",
+ "Ethiopia",
+ "Finland",
+ "Fiji",
+ "Falkland Islands (Malvinas)",
+ "Micronesia, Federated States of",
+ "Faroe Islands",
+ "France",
+ "Sint Maarten (Dutch part)",
+ "Gabon",
+ "United Kingdom",
+ "Grenada",
+ "Georgia",
+ "French Guiana",
+ "Ghana",
+ "Gibraltar",
+ "Greenland",
+ "Gambia",
+ "Guinea",
+ "Guadeloupe",
+ "Equatorial Guinea",
+ "Greece",
+ "South Georgia and the South Sandwich Islands",
+ "Guatemala",
+ "Guam",
+ "Guinea-Bissau",
+ "Guyana",
+ "Hong Kong",
+ "Heard Island and McDonald Islands",
+ "Honduras",
+ "Croatia",
+ "Haiti",
+ "Hungary",
+ "Indonesia",
+ "Ireland",
+ "Israel",
+ "India",
+ "British Indian Ocean Territory",
+ "Iraq",
+ "Iran, Islamic Republic of",
+ "Iceland",
+ "Italy",
+ "Jamaica",
+ "Jordan",
+ "Japan",
+ "Kenya",
+ "Kyrgyzstan",
+ "Cambodia",
+ "Kiribati",
+ "Comoros",
+ "Saint Kitts and Nevis",
+ "Korea, Democratic People's Republic of",
+ "Korea, Republic of",
+ "Kuwait",
+ "Cayman Islands",
+ "Kazakhstan",
+ "Lao People's Democratic Republic",
+ "Lebanon",
+ "Saint Lucia",
+ "Liechtenstein",
+ "Sri Lanka",
+ "Liberia",
+ "Lesotho",
+ "Lithuania",
+ "Luxembourg",
+ "Latvia",
+ "Libya",
+ "Morocco",
+ "Monaco",
+ "Moldova, Republic of",
+ "Madagascar",
+ "Marshall Islands",
+ "Macedonia",
+ "Mali",
+ "Myanmar",
+ "Mongolia",
+ "Macau",
+ "Northern Mariana Islands",
+ "Martinique",
+ "Mauritania",
+ "Montserrat",
+ "Malta",
+ "Mauritius",
+ "Maldives",
+ "Malawi",
+ "Mexico",
+ "Malaysia",
+ "Mozambique",
+ "Namibia",
+ "New Caledonia",
+ "Niger",
+ "Norfolk Island",
+ "Nigeria",
+ "Nicaragua",
+ "Netherlands",
+ "Norway",
+ "Nepal",
+ "Nauru",
+ "Niue",
+ "New Zealand",
+ "Oman",
+ "Panama",
+ "Peru",
+ "French Polynesia",
+ "Papua New Guinea",
+ "Philippines",
+ "Pakistan",
+ "Poland",
+ "Saint Pierre and Miquelon",
+ "Pitcairn Islands",
+ "Puerto Rico",
+ "Palestinian Territory",
+ "Portugal",
+ "Palau",
+ "Paraguay",
+ "Qatar",
+ "Reunion",
+ "Romania",
+ "Russian Federation",
+ "Rwanda",
+ "Saudi Arabia",
+ "Solomon Islands",
+ "Seychelles",
+ "Sudan",
+ "Sweden",
+ "Singapore",
+ "Saint Helena",
+ "Slovenia",
+ "Svalbard and Jan Mayen",
+ "Slovakia",
+ "Sierra Leone",
+ "San Marino",
+ "Senegal",
+ "Somalia",
+ "Suriname",
+ "Sao Tome and Principe",
+ "El Salvador",
+ "Syrian Arab Republic",
+ "Swaziland",
+ "Turks and Caicos Islands",
+ "Chad",
+ "French Southern Territories",
+ "Togo",
+ "Thailand",
+ "Tajikistan",
+ "Tokelau",
+ "Turkmenistan",
+ "Tunisia",
+ "Tonga",
+ "Timor-Leste",
+ "Turkey",
+ "Trinidad and Tobago",
+ "Tuvalu",
+ "Taiwan",
+ "Tanzania, United Republic of",
+ "Ukraine",
+ "Uganda",
+ "United States Minor Outlying Islands",
+ "United States",
+ "Uruguay",
+ "Uzbekistan",
+ "Holy See (Vatican City State)",
+ "Saint Vincent and the Grenadines",
+ "Venezuela",
+ "Virgin Islands, British",
+ "Virgin Islands, U.S.",
+ "Vietnam",
+ "Vanuatu",
+ "Wallis and Futuna",
+ "Samoa",
+ "Yemen",
+ "Mayotte",
+ "Serbia",
+ "South Africa",
+ "Zambia",
+ "Montenegro",
+ "Zimbabwe",
+ "Anonymous Proxy",
+ "Satellite Provider",
+ "Other",
+ "Aland Islands",
+ "Guernsey",
+ "Isle of Man",
+ "Jersey",
+ "Saint Barthelemy",
+ "Saint Martin",
+ "Bonaire, Saint Eustatius and Saba",
+ "South Sudan",
+ "Other"
+ );
+
+ public $GEOIP_CONTINENT_CODES = array(
+ "--",
+ "AS",
+ "EU",
+ "EU",
+ "AS",
+ "AS",
+ "NA",
+ "NA",
+ "EU",
+ "AS",
+ "NA",
+ "AF",
+ "AN",
+ "SA",
+ "OC",
+ "EU",
+ "OC",
+ "NA",
+ "AS",
+ "EU",
+ "NA",
+ "AS",
+ "EU",
+ "AF",
+ "EU",
+ "AS",
+ "AF",
+ "AF",
+ "NA",
+ "AS",
+ "SA",
+ "SA",
+ "NA",
+ "AS",
+ "AN",
+ "AF",
+ "EU",
+ "NA",
+ "NA",
+ "AS",
+ "AF",
+ "AF",
+ "AF",
+ "EU",
+ "AF",
+ "OC",
+ "SA",
+ "AF",
+ "AS",
+ "SA",
+ "NA",
+ "NA",
+ "AF",
+ "AS",
+ "AS",
+ "EU",
+ "EU",
+ "AF",
+ "EU",
+ "NA",
+ "NA",
+ "AF",
+ "SA",
+ "EU",
+ "AF",
+ "AF",
+ "AF",
+ "EU",
+ "AF",
+ "EU",
+ "OC",
+ "SA",
+ "OC",
+ "EU",
+ "EU",
+ "NA",
+ "AF",
+ "EU",
+ "NA",
+ "AS",
+ "SA",
+ "AF",
+ "EU",
+ "NA",
+ "AF",
+ "AF",
+ "NA",
+ "AF",
+ "EU",
+ "AN",
+ "NA",
+ "OC",
+ "AF",
+ "SA",
+ "AS",
+ "AN",
+ "NA",
+ "EU",
+ "NA",
+ "EU",
+ "AS",
+ "EU",
+ "AS",
+ "AS",
+ "AS",
+ "AS",
+ "AS",
+ "EU",
+ "EU",
+ "NA",
+ "AS",
+ "AS",
+ "AF",
+ "AS",
+ "AS",
+ "OC",
+ "AF",
+ "NA",
+ "AS",
+ "AS",
+ "AS",
+ "NA",
+ "AS",
+ "AS",
+ "AS",
+ "NA",
+ "EU",
+ "AS",
+ "AF",
+ "AF",
+ "EU",
+ "EU",
+ "EU",
+ "AF",
+ "AF",
+ "EU",
+ "EU",
+ "AF",
+ "OC",
+ "EU",
+ "AF",
+ "AS",
+ "AS",
+ "AS",
+ "OC",
+ "NA",
+ "AF",
+ "NA",
+ "EU",
+ "AF",
+ "AS",
+ "AF",
+ "NA",
+ "AS",
+ "AF",
+ "AF",
+ "OC",
+ "AF",
+ "OC",
+ "AF",
+ "NA",
+ "EU",
+ "EU",
+ "AS",
+ "OC",
+ "OC",
+ "OC",
+ "AS",
+ "NA",
+ "SA",
+ "OC",
+ "OC",
+ "AS",
+ "AS",
+ "EU",
+ "NA",
+ "OC",
+ "NA",
+ "AS",
+ "EU",
+ "OC",
+ "SA",
+ "AS",
+ "AF",
+ "EU",
+ "EU",
+ "AF",
+ "AS",
+ "OC",
+ "AF",
+ "AF",
+ "EU",
+ "AS",
+ "AF",
+ "EU",
+ "EU",
+ "EU",
+ "AF",
+ "EU",
+ "AF",
+ "AF",
+ "SA",
+ "AF",
+ "NA",
+ "AS",
+ "AF",
+ "NA",
+ "AF",
+ "AN",
+ "AF",
+ "AS",
+ "AS",
+ "OC",
+ "AS",
+ "AF",
+ "OC",
+ "AS",
+ "EU",
+ "NA",
+ "OC",
+ "AS",
+ "AF",
+ "EU",
+ "AF",
+ "OC",
+ "NA",
+ "SA",
+ "AS",
+ "EU",
+ "NA",
+ "SA",
+ "NA",
+ "NA",
+ "AS",
+ "OC",
+ "OC",
+ "OC",
+ "AS",
+ "AF",
+ "EU",
+ "AF",
+ "AF",
+ "EU",
+ "AF",
+ "--",
+ "--",
+ "--",
+ "EU",
+ "EU",
+ "EU",
+ "EU",
+ "NA",
+ "NA",
+ "NA",
+ "AF",
+ "--"
+ );
+}
+
+function geoip_load_shared_mem($file)
+{
+ $fp = fopen($file, "rb");
+ if (!$fp) {
+ print "error opening $file: $php_errormsg\n";
+ exit;
+ }
+ $s_array = fstat($fp);
+ $size = $s_array['size'];
+ if (($shmid = @shmop_open(GEOIP_SHM_KEY, "w", 0, 0))) {
+ shmop_delete($shmid);
+ shmop_close($shmid);
+ }
+ $shmid = shmop_open(GEOIP_SHM_KEY, "c", 0644, $size);
+ shmop_write($shmid, fread($fp, $size), 0);
+ shmop_close($shmid);
+}
+
+function _setup_segments($gi)
+{
+ $gi->databaseType = GEOIP_COUNTRY_EDITION;
+ $gi->record_length = STANDARD_RECORD_LENGTH;
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
+ $offset = @shmop_size($gi->shmid) - 3;
+ for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
+ $delim = @shmop_read($gi->shmid, $offset, 3);
+ $offset += 3;
+ if ($delim == (chr(255) . chr(255) . chr(255))) {
+ $gi->databaseType = ord(@shmop_read($gi->shmid, $offset, 1));
+ if ($gi->databaseType >= 106) {
+ $gi->databaseType -= 105;
+ }
+ $offset++;
+
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
+ } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
+ } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
+ || ($gi->databaseType == GEOIP_ORG_EDITION)
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
+ || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
+ || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION)
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)
+ ) {
+ $gi->databaseSegments = 0;
+ $buf = @shmop_read($gi->shmid, $offset, SEGMENT_RECORD_LENGTH);
+ for ($j = 0; $j < SEGMENT_RECORD_LENGTH; $j++) {
+ $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
+ }
+ if (($gi->databaseType == GEOIP_ORG_EDITION)
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
+ ) {
+ $gi->record_length = ORG_RECORD_LENGTH;
+ }
+ }
+ break;
+ } else {
+ $offset -= 4;
+ }
+ }
+ if (($gi->databaseType == GEOIP_COUNTRY_EDITION) ||
+ ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) ||
+ ($gi->databaseType == GEOIP_PROXY_EDITION) ||
+ ($gi->databaseType == GEOIP_NETSPEED_EDITION)
+ ) {
+ $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
+ }
+ } else {
+ $filepos = ftell($gi->filehandle);
+ fseek($gi->filehandle, -3, SEEK_END);
+ for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
+ $delim = fread($gi->filehandle, 3);
+ if ($delim == (chr(255) . chr(255) . chr(255))) {
+ $gi->databaseType = ord(fread($gi->filehandle, 1));
+ if ($gi->databaseType >= 106) {
+ $gi->databaseType -= 105;
+ }
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
+ } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
+ } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
+ || ($gi->databaseType == GEOIP_ORG_EDITION)
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
+ || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
+ || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION)
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)
+ ) {
+ $gi->databaseSegments = 0;
+ $buf = fread($gi->filehandle, SEGMENT_RECORD_LENGTH);
+ for ($j = 0; $j < SEGMENT_RECORD_LENGTH; $j++) {
+ $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
+ }
+ if (($gi->databaseType == GEOIP_ORG_EDITION)
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
+ ) {
+ $gi->record_length = ORG_RECORD_LENGTH;
+ }
+ }
+ break;
+ } else {
+ fseek($gi->filehandle, -4, SEEK_CUR);
+ }
+ }
+ if (($gi->databaseType == GEOIP_COUNTRY_EDITION) ||
+ ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) ||
+ ($gi->databaseType == GEOIP_PROXY_EDITION) ||
+ ($gi->databaseType == GEOIP_NETSPEED_EDITION)
+ ) {
+ $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
+ }
+ fseek($gi->filehandle, $filepos, SEEK_SET);
+ }
+ return $gi;
+}
+
+function geoip_open($filename, $flags)
+{
+ $gi = new GeoIP;
+ $gi->flags = $flags;
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
+ $gi->shmid = @shmop_open(GEOIP_SHM_KEY, "a", 0, 0);
+ } else {
+ $gi->filehandle = fopen($filename, "rb") or die("Can not open $filename\n");
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
+ $s_array = fstat($gi->filehandle);
+ $gi->memory_buffer = fread($gi->filehandle, $s_array['size']);
+ }
+ }
+
+ $gi = _setup_segments($gi);
+ return $gi;
+}
+
+function geoip_close($gi)
+{
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
+ return true;
+ }
+
+ return fclose($gi->filehandle);
+}
+
+function geoip_country_id_by_name_v6($gi, $name)
+{
+ $rec = dns_get_record($name, DNS_AAAA);
+ if (!$rec) {
+ return false;
+ }
+ $addr = $rec[0]["ipv6"];
+ if (!$addr || $addr == $name) {
+ return false;
+ }
+ return geoip_country_id_by_addr_v6($gi, $addr);
+}
+
+function geoip_country_id_by_name($gi, $name)
+{
+ $addr = gethostbyname($name);
+ if (!$addr || $addr == $name) {
+ return false;
+ }
+ return geoip_country_id_by_addr($gi, $addr);
+}
+
+if (!function_exists('geoip_country_code_by_name_v6')) {
+// GeoIP PECL installed?
+function geoip_country_code_by_name_v6($gi, $name)
+{
+ $country_id = geoip_country_id_by_name_v6($gi, $name);
+ if ($country_id !== false) {
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
+ }
+ return false;
+}
+}
+if (!function_exists('geoip_country_code_by_name')) {
+// GeoIP PECL installed?
+function geoip_country_code_by_name($gi, $name)
+{
+ $country_id = geoip_country_id_by_name($gi, $name);
+ if ($country_id !== false) {
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
+ }
+ return false;
+}
+}
+
+if (!function_exists('geoip_country_name_by_name_v6')) {
+// GeoIP PECL installed?
+function geoip_country_name_by_name_v6($gi, $name)
+{
+ $country_id = geoip_country_id_by_name_v6($gi, $name);
+ if ($country_id !== false) {
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
+ }
+ return false;
+}
+}
+if (!function_exists('geoip_country_name_by_name')) {
+// GeoIP PECL installed?
+function geoip_country_name_by_name($gi, $name)
+{
+ $country_id = geoip_country_id_by_name($gi, $name);
+ if ($country_id !== false) {
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
+ }
+ return false;
+}
+}
+
+function geoip_country_id_by_addr_v6($gi, $addr)
+{
+ $ipnum = inet_pton($addr);
+ return _geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
+}
+
+function geoip_country_id_by_addr($gi, $addr)
+{
+ $ipnum = ip2long($addr);
+ return _geoip_seek_country($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
+}
+
+function geoip_country_code_by_addr_v6($gi, $addr)
+{
+ $country_id = geoip_country_id_by_addr_v6($gi, $addr);
+ if ($country_id !== false) {
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
+ }
+ return false;
+}
+
+function geoip_country_code_by_addr($gi, $addr)
+{
+ if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
+ $record = geoip_record_by_addr($gi, $addr);
+ if ($record !== false) {
+ return $record->country_code;
+ }
+ } else {
+ $country_id = geoip_country_id_by_addr($gi, $addr);
+ if ($country_id !== false) {
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
+ }
+ }
+ return false;
+}
+
+function geoip_country_name_by_addr_v6($gi, $addr)
+{
+ $country_id = geoip_country_id_by_addr_v6($gi, $addr);
+ if ($country_id !== false) {
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
+ }
+ return false;
+}
+
+function geoip_country_name_by_addr($gi, $addr)
+{
+ if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
+ $record = geoip_record_by_addr($gi, $addr);
+ return $record->country_name;
+ } else {
+ $country_id = geoip_country_id_by_addr($gi, $addr);
+ if ($country_id !== false) {
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
+ }
+ }
+ return false;
+}
+
+function _geoip_seek_country_v6($gi, $ipnum)
+{
+ # arrays from unpack start with offset 1
+ # yet another php mystery. array_merge work around
+ # this broken behaviour
+ $v6vec = array_merge(unpack("C16", $ipnum));
+
+ $offset = 0;
+ for ($depth = 127; $depth >= 0; --$depth) {
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
+ $buf = _safe_substr(
+ $gi->memory_buffer,
+ 2 * $gi->record_length * $offset,
+ 2 * $gi->record_length
+ );
+ } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
+ $buf = @shmop_read(
+ $gi->shmid,
+ 2 * $gi->record_length * $offset,
+ 2 * $gi->record_length
+ );
+ } else {
+ fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
+ or die("fseek failed");
+ $buf = fread($gi->filehandle, 2 * $gi->record_length);
+ }
+ $x = array(0, 0);
+ for ($i = 0; $i < 2; ++$i) {
+ for ($j = 0; $j < $gi->record_length; ++$j) {
+ $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
+ }
+ }
+
+ $bnum = 127 - $depth;
+ $idx = $bnum >> 3;
+ $b_mask = 1 << ($bnum & 7 ^ 7);
+ if (($v6vec[$idx] & $b_mask) > 0) {
+ if ($x[1] >= $gi->databaseSegments) {
+ return $x[1];
+ }
+ $offset = $x[1];
+ } else {
+ if ($x[0] >= $gi->databaseSegments) {
+ return $x[0];
+ }
+ $offset = $x[0];
+ }
+ }
+ trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
+ return false;
+}
+
+function _geoip_seek_country($gi, $ipnum)
+{
+ $offset = 0;
+ for ($depth = 31; $depth >= 0; --$depth) {
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
+ $buf = _safe_substr(
+ $gi->memory_buffer,
+ 2 * $gi->record_length * $offset,
+ 2 * $gi->record_length
+ );
+ } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
+ $buf = @shmop_read(
+ $gi->shmid,
+ 2 * $gi->record_length * $offset,
+ 2 * $gi->record_length
+ );
+ } else {
+ fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
+ or die("fseek failed");
+ $buf = fread($gi->filehandle, 2 * $gi->record_length);
+ }
+ $x = array(0, 0);
+ for ($i = 0; $i < 2; ++$i) {
+ for ($j = 0; $j < $gi->record_length; ++$j) {
+ $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
+ }
+ }
+ if ($ipnum & (1 << $depth)) {
+ if ($x[1] >= $gi->databaseSegments) {
+ return $x[1];
+ }
+ $offset = $x[1];
+ } else {
+ if ($x[0] >= $gi->databaseSegments) {
+ return $x[0];
+ }
+ $offset = $x[0];
+ }
+ }
+ trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
+ return false;
+}
+
+function _common_get_org($gi, $seek_org)
+{
+ $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments;
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
+ $org_buf = @shmop_read($gi->shmid, $record_pointer, MAX_ORG_RECORD_LENGTH);
+ } else {
+ fseek($gi->filehandle, $record_pointer, SEEK_SET);
+ $org_buf = fread($gi->filehandle, MAX_ORG_RECORD_LENGTH);
+ }
+ $org_buf = _safe_substr($org_buf, 0, strpos($org_buf, "\0"));
+ return $org_buf;
+}
+
+function _get_org_v6($gi, $ipnum)
+{
+ $seek_org = _geoip_seek_country_v6($gi, $ipnum);
+ if ($seek_org == $gi->databaseSegments) {
+ return null;
+ }
+ return _common_get_org($gi, $seek_org);
+}
+
+function _get_org($gi, $ipnum)
+{
+ $seek_org = _geoip_seek_country($gi, $ipnum);
+ if ($seek_org == $gi->databaseSegments) {
+ return null;
+ }
+ return _common_get_org($gi, $seek_org);
+}
+
+
+function geoip_name_by_addr_v6($gi, $addr)
+{
+ if ($addr == null) {
+ return 0;
+ }
+ $ipnum = inet_pton($addr);
+ return _get_org_v6($gi, $ipnum);
+}
+
+function geoip_name_by_addr($gi, $addr)
+{
+ if ($addr == null) {
+ return 0;
+ }
+ $ipnum = ip2long($addr);
+ return _get_org($gi, $ipnum);
+}
+
+function geoip_org_by_addr($gi, $addr)
+{
+ return geoip_name_by_addr($gi, $addr);
+}
+
+function _get_region($gi, $ipnum)
+{
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
+ $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV0;
+ if ($seek_region >= 1000) {
+ $country_code = "US";
+ $region = chr(($seek_region - 1000) / 26 + 65) . chr(($seek_region - 1000) % 26 + 65);
+ } else {
+ $country_code = $gi->GEOIP_COUNTRY_CODES[$seek_region];
+ $region = "";
+ }
+ return array($country_code, $region);
+ } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
+ $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV1;
+ if ($seek_region < US_OFFSET) {
+ $country_code = "";
+ $region = "";
+ } elseif ($seek_region < CANADA_OFFSET) {
+ $country_code = "US";
+ $region = chr(($seek_region - US_OFFSET) / 26 + 65) . chr(($seek_region - US_OFFSET) % 26 + 65);
+ } elseif ($seek_region < WORLD_OFFSET) {
+ $country_code = "CA";
+ $region = chr(($seek_region - CANADA_OFFSET) / 26 + 65) . chr(($seek_region - CANADA_OFFSET) % 26 + 65);
+ } else {
+ $country_code = $gi->GEOIP_COUNTRY_CODES[($seek_region - WORLD_OFFSET) / FIPS_RANGE];
+ $region = "";
+ }
+ return array($country_code, $region);
+ }
+}
+
+function geoip_region_by_addr($gi, $addr)
+{
+ if ($addr == null) {
+ return 0;
+ }
+ $ipnum = ip2long($addr);
+ return _get_region($gi, $ipnum);
+}
+
+if(!function_exists('getdnsattributes')) {
+function getdnsattributes($l, $ip)
+{
+ $r = new Net_DNS_Resolver();
+ $r->nameservers = array("ws1.maxmind.com");
+ $p = $r->search($l . "." . $ip . ".s.maxmind.com", "TXT", "IN");
+ $str = is_object($p->answer[0]) ? $p->answer[0]->string() : '';
+ $str = substr($str, 1, -1);
+ return $str;
+}
+}
+function _safe_substr($string, $start, $length)
+{
+ // workaround php's broken substr, strpos, etc handling with
+ // mbstring.func_overload and mbstring.internal_encoding
+ $mbExists = extension_loaded('mbstring');
+
+ if ($mbExists) {
+ $enc = mb_internal_encoding();
+ mb_internal_encoding('ISO-8859-1');
+ }
+
+ $buf = substr($string, $start, $length);
+
+ if ($mbExists) {
+ mb_internal_encoding($enc);
+ }
+
+ return $buf;
+}
diff --git a/libs/MaxMindGeoIP/geoipcity.inc b/libs/MaxMindGeoIP/geoipcity.inc
new file mode 100755
index 0000000000..44ed49b878
--- /dev/null
+++ b/libs/MaxMindGeoIP/geoipcity.inc
@@ -0,0 +1,241 @@
+<?php
+
+/* geoipcity.inc
+ *
+ * Copyright (C) 2013 MaxMind, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+
+define("FULL_RECORD_LENGTH", 50);
+
+require_once 'geoip.inc';
+require_once 'geoipregionvars.php';
+
+class geoiprecord
+{
+ public $country_code;
+ public $country_code3;
+ public $country_name;
+ public $region;
+ public $city;
+ public $postal_code;
+ public $latitude;
+ public $longitude;
+ public $area_code;
+ public $dma_code; # metro and dma code are the same. use metro_code
+ public $metro_code;
+ public $continent_code;
+}
+
+class geoipdnsrecord
+{
+ public $country_code;
+ public $country_code3;
+ public $country_name;
+ public $region;
+ public $regionname;
+ public $city;
+ public $postal_code;
+ public $latitude;
+ public $longitude;
+ public $areacode;
+ public $dmacode;
+ public $isp;
+ public $org;
+ public $metrocode;
+}
+
+function getrecordwithdnsservice($str)
+{
+ $record = new geoipdnsrecord;
+ $keyvalue = explode(";", $str);
+ foreach ($keyvalue as $keyvalue2) {
+ list($key, $value) = explode("=", $keyvalue2);
+ if ($key == "co") {
+ $record->country_code = $value;
+ }
+ if ($key == "ci") {
+ $record->city = $value;
+ }
+ if ($key == "re") {
+ $record->region = $value;
+ }
+ if ($key == "ac") {
+ $record->areacode = $value;
+ }
+ if ($key == "dm" || $key == "me") {
+ $record->dmacode = $value;
+ $record->metrocode = $value;
+ }
+ if ($key == "is") {
+ $record->isp = $value;
+ }
+ if ($key == "or") {
+ $record->org = $value;
+ }
+ if ($key == "zi") {
+ $record->postal_code = $value;
+ }
+ if ($key == "la") {
+ $record->latitude = $value;
+ }
+ if ($key == "lo") {
+ $record->longitude = $value;
+ }
+ }
+ $number = $GLOBALS['GEOIP_COUNTRY_CODE_TO_NUMBER'][$record->country_code];
+ $record->country_code3 = $GLOBALS['GEOIP_COUNTRY_CODES3'][$number];
+ $record->country_name = $GLOBALS['GEOIP_COUNTRY_NAMES'][$number];
+ if ($record->region != "") {
+ if (($record->country_code == "US") || ($record->country_code == "CA")) {
+ $record->regionname = $GLOBALS['ISO'][$record->country_code][$record->region];
+ } else {
+ $record->regionname = $GLOBALS['FIPS'][$record->country_code][$record->region];
+ }
+ }
+ return $record;
+}
+
+
+function _get_record_v6($gi, $ipnum)
+{
+ $seek_country = _geoip_seek_country_v6($gi, $ipnum);
+ if ($seek_country == $gi->databaseSegments) {
+ return null;
+ }
+ return _common_get_record($gi, $seek_country);
+}
+
+function _common_get_record($gi, $seek_country)
+{
+ // workaround php's broken substr, strpos, etc handling with
+ // mbstring.func_overload and mbstring.internal_encoding
+ $mbExists = extension_loaded('mbstring');
+ if ($mbExists) {
+ $enc = mb_internal_encoding();
+ mb_internal_encoding('ISO-8859-1');
+ }
+
+ $record_pointer = $seek_country + (2 * $gi->record_length - 1) * $gi->databaseSegments;
+
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
+ $record_buf = substr($gi->memory_buffer, $record_pointer, FULL_RECORD_LENGTH);
+ } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
+ $record_buf = @shmop_read($gi->shmid, $record_pointer, FULL_RECORD_LENGTH);
+ } else {
+ fseek($gi->filehandle, $record_pointer, SEEK_SET);
+ $record_buf = fread($gi->filehandle, FULL_RECORD_LENGTH);
+ }
+ $record = new geoiprecord;
+ $record_buf_pos = 0;
+ $char = ord(substr($record_buf, $record_buf_pos, 1));
+ $record->country_code = $gi->GEOIP_COUNTRY_CODES[$char];
+ $record->country_code3 = $gi->GEOIP_COUNTRY_CODES3[$char];
+ $record->country_name = $gi->GEOIP_COUNTRY_NAMES[$char];
+ $record->continent_code = $gi->GEOIP_CONTINENT_CODES[$char];
+ $record_buf_pos++;
+ $str_length = 0;
+
+ // Get region
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
+ while ($char != 0) {
+ $str_length++;
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
+ }
+ if ($str_length > 0) {
+ $record->region = substr($record_buf, $record_buf_pos, $str_length);
+ }
+ $record_buf_pos += $str_length + 1;
+ $str_length = 0;
+ // Get city
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
+ while ($char != 0) {
+ $str_length++;
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
+ }
+ if ($str_length > 0) {
+ $record->city = substr($record_buf, $record_buf_pos, $str_length);
+ }
+ $record_buf_pos += $str_length + 1;
+ $str_length = 0;
+ // Get postal code
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
+ while ($char != 0) {
+ $str_length++;
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
+ }
+ if ($str_length > 0) {
+ $record->postal_code = substr($record_buf, $record_buf_pos, $str_length);
+ }
+ $record_buf_pos += $str_length + 1;
+ $str_length = 0;
+ // Get latitude and longitude
+ $latitude = 0;
+ $longitude = 0;
+ for ($j = 0; $j < 3; ++$j) {
+ $char = ord(substr($record_buf, $record_buf_pos++, 1));
+ $latitude += ($char << ($j * 8));
+ }
+ $record->latitude = ($latitude / 10000) - 180;
+ for ($j = 0; $j < 3; ++$j) {
+ $char = ord(substr($record_buf, $record_buf_pos++, 1));
+ $longitude += ($char << ($j * 8));
+ }
+ $record->longitude = ($longitude / 10000) - 180;
+ if (GEOIP_CITY_EDITION_REV1 == $gi->databaseType) {
+ $metroarea_combo = 0;
+ if ($record->country_code == "US") {
+ for ($j = 0; $j < 3; ++$j) {
+ $char = ord(substr($record_buf, $record_buf_pos++, 1));
+ $metroarea_combo += ($char << ($j * 8));
+ }
+ $record->metro_code = $record->dma_code = floor($metroarea_combo / 1000);
+ $record->area_code = $metroarea_combo % 1000;
+ }
+ }
+ if ($mbExists) {
+ mb_internal_encoding($enc);
+ }
+ return $record;
+}
+
+function GeoIP_record_by_addr_v6($gi, $addr)
+{
+ if ($addr == null) {
+ return 0;
+ }
+ $ipnum = inet_pton($addr);
+ return _get_record_v6($gi, $ipnum);
+}
+
+function _get_record($gi, $ipnum)
+{
+ $seek_country = _geoip_seek_country($gi, $ipnum);
+ if ($seek_country == $gi->databaseSegments) {
+ return null;
+ }
+ return _common_get_record($gi, $seek_country);
+}
+
+function GeoIP_record_by_addr($gi, $addr)
+{
+ if ($addr == null) {
+ return 0;
+ }
+ $ipnum = ip2long($addr);
+ return _get_record($gi, $ipnum);
+}
diff --git a/libs/MaxMindGeoIP/geoipregionvars.php b/libs/MaxMindGeoIP/geoipregionvars.php
new file mode 100755
index 0000000000..9cbfd61ce6
--- /dev/null
+++ b/libs/MaxMindGeoIP/geoipregionvars.php
@@ -0,0 +1,4447 @@
+<?php
+# Copyright 2013 MaxMind, Inc. All Rights Reserved
+$GEOIP_REGION_NAME = array(
+ "AD" => array(
+ "02" => "Canillo",
+ "03" => "Encamp",
+ "04" => "La Massana",
+ "05" => "Ordino",
+ "06" => "Sant Julia de Loria",
+ "07" => "Andorra la Vella",
+ "08" => "Escaldes-Engordany"
+ ),
+ "AE" => array(
+ "01" => "Abu Dhabi",
+ "02" => "Ajman",
+ "03" => "Dubai",
+ "04" => "Fujairah",
+ "05" => "Ras Al Khaimah",
+ "06" => "Sharjah",
+ "07" => "Umm Al Quwain"
+ ),
+ "AF" => array(
+ "01" => "Badakhshan",
+ "02" => "Badghis",
+ "03" => "Baghlan",
+ "05" => "Bamian",
+ "06" => "Farah",
+ "07" => "Faryab",
+ "08" => "Ghazni",
+ "09" => "Ghowr",
+ "10" => "Helmand",
+ "11" => "Herat",
+ "13" => "Kabol",
+ "14" => "Kapisa",
+ "17" => "Lowgar",
+ "18" => "Nangarhar",
+ "19" => "Nimruz",
+ "23" => "Kandahar",
+ "24" => "Kondoz",
+ "26" => "Takhar",
+ "27" => "Vardak",
+ "28" => "Zabol",
+ "29" => "Paktika",
+ "30" => "Balkh",
+ "31" => "Jowzjan",
+ "32" => "Samangan",
+ "33" => "Sar-e Pol",
+ "34" => "Konar",
+ "35" => "Laghman",
+ "36" => "Paktia",
+ "37" => "Khowst",
+ "38" => "Nurestan",
+ "39" => "Oruzgan",
+ "40" => "Parvan",
+ "41" => "Daykondi",
+ "42" => "Panjshir"
+ ),
+ "AG" => array(
+ "01" => "Barbuda",
+ "03" => "Saint George",
+ "04" => "Saint John",
+ "05" => "Saint Mary",
+ "06" => "Saint Paul",
+ "07" => "Saint Peter",
+ "08" => "Saint Philip",
+ "09" => "Redonda"
+ ),
+ "AL" => array(
+ "40" => "Berat",
+ "41" => "Diber",
+ "42" => "Durres",
+ "43" => "Elbasan",
+ "44" => "Fier",
+ "45" => "Gjirokaster",
+ "46" => "Korce",
+ "47" => "Kukes",
+ "48" => "Lezhe",
+ "49" => "Shkoder",
+ "50" => "Tirane",
+ "51" => "Vlore"
+ ),
+ "AM" => array(
+ "01" => "Aragatsotn",
+ "02" => "Ararat",
+ "03" => "Armavir",
+ "04" => "Geghark'unik'",
+ "05" => "Kotayk'",
+ "06" => "Lorri",
+ "07" => "Shirak",
+ "08" => "Syunik'",
+ "09" => "Tavush",
+ "10" => "Vayots' Dzor",
+ "11" => "Yerevan"
+ ),
+ "AO" => array(
+ "01" => "Benguela",
+ "02" => "Bie",
+ "03" => "Cabinda",
+ "04" => "Cuando Cubango",
+ "05" => "Cuanza Norte",
+ "06" => "Cuanza Sul",
+ "07" => "Cunene",
+ "08" => "Huambo",
+ "09" => "Huila",
+ "12" => "Malanje",
+ "13" => "Namibe",
+ "14" => "Moxico",
+ "15" => "Uige",
+ "16" => "Zaire",
+ "17" => "Lunda Norte",
+ "18" => "Lunda Sul",
+ "19" => "Bengo",
+ "20" => "Luanda"
+ ),
+ "AR" => array(
+ "01" => "Buenos Aires",
+ "02" => "Catamarca",
+ "03" => "Chaco",
+ "04" => "Chubut",
+ "05" => "Cordoba",
+ "06" => "Corrientes",
+ "07" => "Distrito Federal",
+ "08" => "Entre Rios",
+ "09" => "Formosa",
+ "10" => "Jujuy",
+ "11" => "La Pampa",
+ "12" => "La Rioja",
+ "13" => "Mendoza",
+ "14" => "Misiones",
+ "15" => "Neuquen",
+ "16" => "Rio Negro",
+ "17" => "Salta",
+ "18" => "San Juan",
+ "19" => "San Luis",
+ "20" => "Santa Cruz",
+ "21" => "Santa Fe",
+ "22" => "Santiago del Estero",
+ "23" => "Tierra del Fuego",
+ "24" => "Tucuman"
+ ),
+ "AT" => array(
+ "01" => "Burgenland",
+ "02" => "Karnten",
+ "03" => "Niederosterreich",
+ "04" => "Oberosterreich",
+ "05" => "Salzburg",
+ "06" => "Steiermark",
+ "07" => "Tirol",
+ "08" => "Vorarlberg",
+ "09" => "Wien"
+ ),
+ "AU" => array(
+ "01" => "Australian Capital Territory",
+ "02" => "New South Wales",
+ "03" => "Northern Territory",
+ "04" => "Queensland",
+ "05" => "South Australia",
+ "06" => "Tasmania",
+ "07" => "Victoria",
+ "08" => "Western Australia"
+ ),
+ "AZ" => array(
+ "01" => "Abseron",
+ "02" => "Agcabadi",
+ "03" => "Agdam",
+ "04" => "Agdas",
+ "05" => "Agstafa",
+ "06" => "Agsu",
+ "07" => "Ali Bayramli",
+ "08" => "Astara",
+ "09" => "Baki",
+ "10" => "Balakan",
+ "11" => "Barda",
+ "12" => "Beylaqan",
+ "13" => "Bilasuvar",
+ "14" => "Cabrayil",
+ "15" => "Calilabad",
+ "16" => "Daskasan",
+ "17" => "Davaci",
+ "18" => "Fuzuli",
+ "19" => "Gadabay",
+ "20" => "Ganca",
+ "21" => "Goranboy",
+ "22" => "Goycay",
+ "23" => "Haciqabul",
+ "24" => "Imisli",
+ "25" => "Ismayilli",
+ "26" => "Kalbacar",
+ "27" => "Kurdamir",
+ "28" => "Lacin",
+ "29" => "Lankaran",
+ "30" => "Lankaran",
+ "31" => "Lerik",
+ "32" => "Masalli",
+ "33" => "Mingacevir",
+ "34" => "Naftalan",
+ "35" => "Naxcivan",
+ "36" => "Neftcala",
+ "37" => "Oguz",
+ "38" => "Qabala",
+ "39" => "Qax",
+ "40" => "Qazax",
+ "41" => "Qobustan",
+ "42" => "Quba",
+ "43" => "Qubadli",
+ "44" => "Qusar",
+ "45" => "Saatli",
+ "46" => "Sabirabad",
+ "47" => "Saki",
+ "48" => "Saki",
+ "49" => "Salyan",
+ "50" => "Samaxi",
+ "51" => "Samkir",
+ "52" => "Samux",
+ "53" => "Siyazan",
+ "54" => "Sumqayit",
+ "55" => "Susa",
+ "56" => "Susa",
+ "57" => "Tartar",
+ "58" => "Tovuz",
+ "59" => "Ucar",
+ "60" => "Xacmaz",
+ "61" => "Xankandi",
+ "62" => "Xanlar",
+ "63" => "Xizi",
+ "64" => "Xocali",
+ "65" => "Xocavand",
+ "66" => "Yardimli",
+ "67" => "Yevlax",
+ "68" => "Yevlax",
+ "69" => "Zangilan",
+ "70" => "Zaqatala",
+ "71" => "Zardab"
+ ),
+ "BA" => array(
+ "01" => "Federation of Bosnia and Herzegovina",
+ "02" => "Republika Srpska"
+ ),
+ "BB" => array(
+ "01" => "Christ Church",
+ "02" => "Saint Andrew",
+ "03" => "Saint George",
+ "04" => "Saint James",
+ "05" => "Saint John",
+ "06" => "Saint Joseph",
+ "07" => "Saint Lucy",
+ "08" => "Saint Michael",
+ "09" => "Saint Peter",
+ "10" => "Saint Philip",
+ "11" => "Saint Thomas"
+ ),
+ "BD" => array(
+ "81" => "Dhaka",
+ "82" => "Khulna",
+ "83" => "Rajshahi",
+ "84" => "Chittagong",
+ "85" => "Barisal",
+ "86" => "Sylhet"
+ ),
+ "BE" => array(
+ "01" => "Antwerpen",
+ "03" => "Hainaut",
+ "04" => "Liege",
+ "05" => "Limburg",
+ "06" => "Luxembourg",
+ "07" => "Namur",
+ "08" => "Oost-Vlaanderen",
+ "09" => "West-Vlaanderen",
+ "10" => "Brabant Wallon",
+ "11" => "Brussels Hoofdstedelijk Gewest",
+ "12" => "Vlaams-Brabant",
+ "13" => "Flanders",
+ "14" => "Wallonia"
+ ),
+ "BF" => array(
+ "15" => "Bam",
+ "19" => "Boulkiemde",
+ "20" => "Ganzourgou",
+ "21" => "Gnagna",
+ "28" => "Kouritenga",
+ "33" => "Oudalan",
+ "34" => "Passore",
+ "36" => "Sanguie",
+ "40" => "Soum",
+ "42" => "Tapoa",
+ "44" => "Zoundweogo",
+ "45" => "Bale",
+ "46" => "Banwa",
+ "47" => "Bazega",
+ "48" => "Bougouriba",
+ "49" => "Boulgou",
+ "50" => "Gourma",
+ "51" => "Houet",
+ "52" => "Ioba",
+ "53" => "Kadiogo",
+ "54" => "Kenedougou",
+ "55" => "Komoe",
+ "56" => "Komondjari",
+ "57" => "Kompienga",
+ "58" => "Kossi",
+ "59" => "Koulpelogo",
+ "60" => "Kourweogo",
+ "61" => "Leraba",
+ "62" => "Loroum",
+ "63" => "Mouhoun",
+ "64" => "Namentenga",
+ "65" => "Naouri",
+ "66" => "Nayala",
+ "67" => "Noumbiel",
+ "68" => "Oubritenga",
+ "69" => "Poni",
+ "70" => "Sanmatenga",
+ "71" => "Seno",
+ "72" => "Sissili",
+ "73" => "Sourou",
+ "74" => "Tuy",
+ "75" => "Yagha",
+ "76" => "Yatenga",
+ "77" => "Ziro",
+ "78" => "Zondoma"
+ ),
+ "BG" => array(
+ "33" => "Mikhaylovgrad",
+ "38" => "Blagoevgrad",
+ "39" => "Burgas",
+ "40" => "Dobrich",
+ "41" => "Gabrovo",
+ "42" => "Grad Sofiya",
+ "43" => "Khaskovo",
+ "44" => "Kurdzhali",
+ "45" => "Kyustendil",
+ "46" => "Lovech",
+ "47" => "Montana",
+ "48" => "Pazardzhik",
+ "49" => "Pernik",
+ "50" => "Pleven",
+ "51" => "Plovdiv",
+ "52" => "Razgrad",
+ "53" => "Ruse",
+ "54" => "Shumen",
+ "55" => "Silistra",
+ "56" => "Sliven",
+ "57" => "Smolyan",
+ "58" => "Sofiya",
+ "59" => "Stara Zagora",
+ "60" => "Turgovishte",
+ "61" => "Varna",
+ "62" => "Veliko Turnovo",
+ "63" => "Vidin",
+ "64" => "Vratsa",
+ "65" => "Yambol"
+ ),
+ "BH" => array(
+ "01" => "Al Hadd",
+ "02" => "Al Manamah",
+ "05" => "Jidd Hafs",
+ "06" => "Sitrah",
+ "08" => "Al Mintaqah al Gharbiyah",
+ "09" => "Mintaqat Juzur Hawar",
+ "10" => "Al Mintaqah ash Shamaliyah",
+ "11" => "Al Mintaqah al Wusta",
+ "12" => "Madinat",
+ "13" => "Ar Rifa",
+ "14" => "Madinat Hamad",
+ "15" => "Al Muharraq",
+ "16" => "Al Asimah",
+ "17" => "Al Janubiyah",
+ "18" => "Ash Shamaliyah",
+ "19" => "Al Wusta"
+ ),
+ "BI" => array(
+ "02" => "Bujumbura",
+ "09" => "Bubanza",
+ "10" => "Bururi",
+ "11" => "Cankuzo",
+ "12" => "Cibitoke",
+ "13" => "Gitega",
+ "14" => "Karuzi",
+ "15" => "Kayanza",
+ "16" => "Kirundo",
+ "17" => "Makamba",
+ "18" => "Muyinga",
+ "19" => "Ngozi",
+ "20" => "Rutana",
+ "21" => "Ruyigi",
+ "22" => "Muramvya",
+ "23" => "Mwaro"
+ ),
+ "BJ" => array(
+ "07" => "Alibori",
+ "08" => "Atakora",
+ "09" => "Atlanyique",
+ "10" => "Borgou",
+ "11" => "Collines",
+ "12" => "Kouffo",
+ "13" => "Donga",
+ "14" => "Littoral",
+ "15" => "Mono",
+ "16" => "Oueme",
+ "17" => "Plateau",
+ "18" => "Zou"
+ ),
+ "BM" => array(
+ "01" => "Devonshire",
+ "02" => "Hamilton",
+ "03" => "Hamilton",
+ "04" => "Paget",
+ "05" => "Pembroke",
+ "06" => "Saint George",
+ "07" => "Saint George's",
+ "08" => "Sandys",
+ "09" => "Smiths",
+ "10" => "Southampton",
+ "11" => "Warwick"
+ ),
+ "BN" => array(
+ "07" => "Alibori",
+ "08" => "Belait",
+ "09" => "Brunei and Muara",
+ "10" => "Temburong",
+ "11" => "Collines",
+ "12" => "Kouffo",
+ "13" => "Donga",
+ "14" => "Littoral",
+ "15" => "Tutong",
+ "16" => "Oueme",
+ "17" => "Plateau",
+ "18" => "Zou"
+ ),
+ "BO" => array(
+ "01" => "Chuquisaca",
+ "02" => "Cochabamba",
+ "03" => "El Beni",
+ "04" => "La Paz",
+ "05" => "Oruro",
+ "06" => "Pando",
+ "07" => "Potosi",
+ "08" => "Santa Cruz",
+ "09" => "Tarija"
+ ),
+ "BR" => array(
+ "01" => "Acre",
+ "02" => "Alagoas",
+ "03" => "Amapa",
+ "04" => "Amazonas",
+ "05" => "Bahia",
+ "06" => "Ceara",
+ "07" => "Distrito Federal",
+ "08" => "Espirito Santo",
+ "11" => "Mato Grosso do Sul",
+ "13" => "Maranhao",
+ "14" => "Mato Grosso",
+ "15" => "Minas Gerais",
+ "16" => "Para",
+ "17" => "Paraiba",
+ "18" => "Parana",
+ "20" => "Piaui",
+ "21" => "Rio de Janeiro",
+ "22" => "Rio Grande do Norte",
+ "23" => "Rio Grande do Sul",
+ "24" => "Rondonia",
+ "25" => "Roraima",
+ "26" => "Santa Catarina",
+ "27" => "Sao Paulo",
+ "28" => "Sergipe",
+ "29" => "Goias",
+ "30" => "Pernambuco",
+ "31" => "Tocantins"
+ ),
+ "BS" => array(
+ "05" => "Bimini",
+ "06" => "Cat Island",
+ "10" => "Exuma",
+ "13" => "Inagua",
+ "15" => "Long Island",
+ "16" => "Mayaguana",
+ "18" => "Ragged Island",
+ "22" => "Harbour Island",
+ "23" => "New Providence",
+ "24" => "Acklins and Crooked Islands",
+ "25" => "Freeport",
+ "26" => "Fresh Creek",
+ "27" => "Governor's Harbour",
+ "28" => "Green Turtle Cay",
+ "29" => "High Rock",
+ "30" => "Kemps Bay",
+ "31" => "Marsh Harbour",
+ "32" => "Nichollstown and Berry Islands",
+ "33" => "Rock Sound",
+ "34" => "Sandy Point",
+ "35" => "San Salvador and Rum Cay"
+ ),
+ "BT" => array(
+ "05" => "Bumthang",
+ "06" => "Chhukha",
+ "07" => "Chirang",
+ "08" => "Daga",
+ "09" => "Geylegphug",
+ "10" => "Ha",
+ "11" => "Lhuntshi",
+ "12" => "Mongar",
+ "13" => "Paro",
+ "14" => "Pemagatsel",
+ "15" => "Punakha",
+ "16" => "Samchi",
+ "17" => "Samdrup",
+ "18" => "Shemgang",
+ "19" => "Tashigang",
+ "20" => "Thimphu",
+ "21" => "Tongsa",
+ "22" => "Wangdi Phodrang"
+ ),
+ "BW" => array(
+ "01" => "Central",
+ "03" => "Ghanzi",
+ "04" => "Kgalagadi",
+ "05" => "Kgatleng",
+ "06" => "Kweneng",
+ "08" => "North-East",
+ "09" => "South-East",
+ "10" => "Southern",
+ "11" => "North-West"
+ ),
+ "BY" => array(
+ "01" => "Brestskaya Voblasts'",
+ "02" => "Homyel'skaya Voblasts'",
+ "03" => "Hrodzyenskaya Voblasts'",
+ "04" => "Minsk",
+ "05" => "Minskaya Voblasts'",
+ "06" => "Mahilyowskaya Voblasts'",
+ "07" => "Vitsyebskaya Voblasts'"
+ ),
+ "BZ" => array(
+ "01" => "Belize",
+ "02" => "Cayo",
+ "03" => "Corozal",
+ "04" => "Orange Walk",
+ "05" => "Stann Creek",
+ "06" => "Toledo"
+ ),
+ "CA" => array(
+ "AB" => "Alberta",
+ "BC" => "British Columbia",
+ "MB" => "Manitoba",
+ "NB" => "New Brunswick",
+ "NL" => "Newfoundland",
+ "NS" => "Nova Scotia",
+ "NT" => "Northwest Territories",
+ "NU" => "Nunavut",
+ "ON" => "Ontario",
+ "PE" => "Prince Edward Island",
+ "QC" => "Quebec",
+ "SK" => "Saskatchewan",
+ "YT" => "Yukon Territory"
+ ),
+ "CD" => array(
+ "01" => "Bandundu",
+ "02" => "Equateur",
+ "04" => "Kasai-Oriental",
+ "05" => "Katanga",
+ "06" => "Kinshasa",
+ "08" => "Bas-Congo",
+ "09" => "Orientale",
+ "10" => "Maniema",
+ "11" => "Nord-Kivu",
+ "12" => "Sud-Kivu"
+ ),
+ "CF" => array(
+ "01" => "Bamingui-Bangoran",
+ "02" => "Basse-Kotto",
+ "03" => "Haute-Kotto",
+ "04" => "Mambere-Kadei",
+ "05" => "Haut-Mbomou",
+ "06" => "Kemo",
+ "07" => "Lobaye",
+ "08" => "Mbomou",
+ "09" => "Nana-Mambere",
+ "11" => "Ouaka",
+ "12" => "Ouham",
+ "13" => "Ouham-Pende",
+ "14" => "Cuvette-Ouest",
+ "15" => "Nana-Grebizi",
+ "16" => "Sangha-Mbaere",
+ "17" => "Ombella-Mpoko",
+ "18" => "Bangui"
+ ),
+ "CG" => array(
+ "01" => "Bouenza",
+ "04" => "Kouilou",
+ "05" => "Lekoumou",
+ "06" => "Likouala",
+ "07" => "Niari",
+ "08" => "Plateaux",
+ "10" => "Sangha",
+ "11" => "Pool",
+ "12" => "Brazzaville",
+ "13" => "Cuvette",
+ "14" => "Cuvette-Ouest"
+ ),
+ "CH" => array(
+ "01" => "Aargau",
+ "02" => "Ausser-Rhoden",
+ "03" => "Basel-Landschaft",
+ "04" => "Basel-Stadt",
+ "05" => "Bern",
+ "06" => "Fribourg",
+ "07" => "Geneve",
+ "08" => "Glarus",
+ "09" => "Graubunden",
+ "10" => "Inner-Rhoden",
+ "11" => "Luzern",
+ "12" => "Neuchatel",
+ "13" => "Nidwalden",
+ "14" => "Obwalden",
+ "15" => "Sankt Gallen",
+ "16" => "Schaffhausen",
+ "17" => "Schwyz",
+ "18" => "Solothurn",
+ "19" => "Thurgau",
+ "20" => "Ticino",
+ "21" => "Uri",
+ "22" => "Valais",
+ "23" => "Vaud",
+ "24" => "Zug",
+ "25" => "Zurich",
+ "26" => "Jura"
+ ),
+ "CI" => array(
+ "74" => "Agneby",
+ "75" => "Bafing",
+ "76" => "Bas-Sassandra",
+ "77" => "Denguele",
+ "78" => "Dix-Huit Montagnes",
+ "79" => "Fromager",
+ "80" => "Haut-Sassandra",
+ "81" => "Lacs",
+ "82" => "Lagunes",
+ "83" => "Marahoue",
+ "84" => "Moyen-Cavally",
+ "85" => "Moyen-Comoe",
+ "86" => "N'zi-Comoe",
+ "87" => "Savanes",
+ "88" => "Sud-Bandama",
+ "89" => "Sud-Comoe",
+ "90" => "Vallee du Bandama",
+ "91" => "Worodougou",
+ "92" => "Zanzan"
+ ),
+ "CL" => array(
+ "01" => "Valparaiso",
+ "02" => "Aisen del General Carlos Ibanez del Campo",
+ "03" => "Antofagasta",
+ "04" => "Araucania",
+ "05" => "Atacama",
+ "06" => "Bio-Bio",
+ "07" => "Coquimbo",
+ "08" => "Libertador General Bernardo O'Higgins",
+ "09" => "Los Lagos",
+ "10" => "Magallanes y de la Antartica Chilena",
+ "11" => "Maule",
+ "12" => "Region Metropolitana",
+ "13" => "Tarapaca",
+ "14" => "Los Lagos",
+ "15" => "Tarapaca",
+ "16" => "Arica y Parinacota",
+ "17" => "Los Rios"
+ ),
+ "CM" => array(
+ "04" => "Est",
+ "05" => "Littoral",
+ "07" => "Nord-Ouest",
+ "08" => "Ouest",
+ "09" => "Sud-Ouest",
+ "10" => "Adamaoua",
+ "11" => "Centre",
+ "12" => "Extreme-Nord",
+ "13" => "Nord",
+ "14" => "Sud"
+ ),
+ "CN" => array(
+ "01" => "Anhui",
+ "02" => "Zhejiang",
+ "03" => "Jiangxi",
+ "04" => "Jiangsu",
+ "05" => "Jilin",
+ "06" => "Qinghai",
+ "07" => "Fujian",
+ "08" => "Heilongjiang",
+ "09" => "Henan",
+ "10" => "Hebei",
+ "11" => "Hunan",
+ "12" => "Hubei",
+ "13" => "Xinjiang",
+ "14" => "Xizang",
+ "15" => "Gansu",
+ "16" => "Guangxi",
+ "18" => "Guizhou",
+ "19" => "Liaoning",
+ "20" => "Nei Mongol",
+ "21" => "Ningxia",
+ "22" => "Beijing",
+ "23" => "Shanghai",
+ "24" => "Shanxi",
+ "25" => "Shandong",
+ "26" => "Shaanxi",
+ "28" => "Tianjin",
+ "29" => "Yunnan",
+ "30" => "Guangdong",
+ "31" => "Hainan",
+ "32" => "Sichuan",
+ "33" => "Chongqing"
+ ),
+ "CO" => array(
+ "01" => "Amazonas",
+ "02" => "Antioquia",
+ "03" => "Arauca",
+ "04" => "Atlantico",
+ "08" => "Caqueta",
+ "09" => "Cauca",
+ "10" => "Cesar",
+ "11" => "Choco",
+ "12" => "Cordoba",
+ "14" => "Guaviare",
+ "15" => "Guainia",
+ "16" => "Huila",
+ "17" => "La Guajira",
+ "19" => "Meta",
+ "20" => "Narino",
+ "21" => "Norte de Santander",
+ "22" => "Putumayo",
+ "23" => "Quindio",
+ "24" => "Risaralda",
+ "25" => "San Andres y Providencia",
+ "26" => "Santander",
+ "27" => "Sucre",
+ "28" => "Tolima",
+ "29" => "Valle del Cauca",
+ "30" => "Vaupes",
+ "31" => "Vichada",
+ "32" => "Casanare",
+ "33" => "Cundinamarca",
+ "34" => "Distrito Especial",
+ "35" => "Bolivar",
+ "36" => "Boyaca",
+ "37" => "Caldas",
+ "38" => "Magdalena"
+ ),
+ "CR" => array(
+ "01" => "Alajuela",
+ "02" => "Cartago",
+ "03" => "Guanacaste",
+ "04" => "Heredia",
+ "06" => "Limon",
+ "07" => "Puntarenas",
+ "08" => "San Jose"
+ ),
+ "CU" => array(
+ "01" => "Pinar del Rio",
+ "02" => "Ciudad de la Habana",
+ "03" => "Matanzas",
+ "04" => "Isla de la Juventud",
+ "05" => "Camaguey",
+ "07" => "Ciego de Avila",
+ "08" => "Cienfuegos",
+ "09" => "Granma",
+ "10" => "Guantanamo",
+ "11" => "La Habana",
+ "12" => "Holguin",
+ "13" => "Las Tunas",
+ "14" => "Sancti Spiritus",
+ "15" => "Santiago de Cuba",
+ "16" => "Villa Clara"
+ ),
+ "CV" => array(
+ "01" => "Boa Vista",
+ "02" => "Brava",
+ "04" => "Maio",
+ "05" => "Paul",
+ "07" => "Ribeira Grande",
+ "08" => "Sal",
+ "10" => "Sao Nicolau",
+ "11" => "Sao Vicente",
+ "13" => "Mosteiros",
+ "14" => "Praia",
+ "15" => "Santa Catarina",
+ "16" => "Santa Cruz",
+ "17" => "Sao Domingos",
+ "18" => "Sao Filipe",
+ "19" => "Sao Miguel",
+ "20" => "Tarrafal"
+ ),
+ "CY" => array(
+ "01" => "Famagusta",
+ "02" => "Kyrenia",
+ "03" => "Larnaca",
+ "04" => "Nicosia",
+ "05" => "Limassol",
+ "06" => "Paphos"
+ ),
+ "CZ" => array(
+ "52" => "Hlavni mesto Praha",
+ "78" => "Jihomoravsky kraj",
+ "79" => "Jihocesky kraj",
+ "80" => "Vysocina",
+ "81" => "Karlovarsky kraj",
+ "82" => "Kralovehradecky kraj",
+ "83" => "Liberecky kraj",
+ "84" => "Olomoucky kraj",
+ "85" => "Moravskoslezsky kraj",
+ "86" => "Pardubicky kraj",
+ "87" => "Plzensky kraj",
+ "88" => "Stredocesky kraj",
+ "89" => "Ustecky kraj",
+ "90" => "Zlinsky kraj"
+ ),
+ "DE" => array(
+ "01" => "Baden-Wurttemberg",
+ "02" => "Bayern",
+ "03" => "Bremen",
+ "04" => "Hamburg",
+ "05" => "Hessen",
+ "06" => "Niedersachsen",
+ "07" => "Nordrhein-Westfalen",
+ "08" => "Rheinland-Pfalz",
+ "09" => "Saarland",
+ "10" => "Schleswig-Holstein",
+ "11" => "Brandenburg",
+ "12" => "Mecklenburg-Vorpommern",
+ "13" => "Sachsen",
+ "14" => "Sachsen-Anhalt",
+ "15" => "Thuringen",
+ "16" => "Berlin"
+ ),
+ "DJ" => array(
+ "01" => "Ali Sabieh",
+ "04" => "Obock",
+ "05" => "Tadjoura",
+ "06" => "Dikhil",
+ "07" => "Djibouti",
+ "08" => "Arta"
+ ),
+ "DK" => array(
+ "17" => "Hovedstaden",
+ "18" => "Midtjylland",
+ "19" => "Nordjylland",
+ "20" => "Sjelland",
+ "21" => "Syddanmark"
+ ),
+ "DM" => array(
+ "02" => "Saint Andrew",
+ "03" => "Saint David",
+ "04" => "Saint George",
+ "05" => "Saint John",
+ "06" => "Saint Joseph",
+ "07" => "Saint Luke",
+ "08" => "Saint Mark",
+ "09" => "Saint Patrick",
+ "10" => "Saint Paul",
+ "11" => "Saint Peter"
+ ),
+ "DO" => array(
+ "01" => "Azua",
+ "02" => "Baoruco",
+ "03" => "Barahona",
+ "04" => "Dajabon",
+ "05" => "Distrito Nacional",
+ "06" => "Duarte",
+ "08" => "Espaillat",
+ "09" => "Independencia",
+ "10" => "La Altagracia",
+ "11" => "Elias Pina",
+ "12" => "La Romana",
+ "14" => "Maria Trinidad Sanchez",
+ "15" => "Monte Cristi",
+ "16" => "Pedernales",
+ "17" => "Peravia",
+ "18" => "Puerto Plata",
+ "19" => "Salcedo",
+ "20" => "Samana",
+ "21" => "Sanchez Ramirez",
+ "23" => "San Juan",
+ "24" => "San Pedro De Macoris",
+ "25" => "Santiago",
+ "26" => "Santiago Rodriguez",
+ "27" => "Valverde",
+ "28" => "El Seibo",
+ "29" => "Hato Mayor",
+ "30" => "La Vega",
+ "31" => "Monsenor Nouel",
+ "32" => "Monte Plata",
+ "33" => "San Cristobal",
+ "34" => "Distrito Nacional",
+ "35" => "Peravia",
+ "36" => "San Jose de Ocoa",
+ "37" => "Santo Domingo"
+ ),
+ "DZ" => array(
+ "01" => "Alger",
+ "03" => "Batna",
+ "04" => "Constantine",
+ "06" => "Medea",
+ "07" => "Mostaganem",
+ "09" => "Oran",
+ "10" => "Saida",
+ "12" => "Setif",
+ "13" => "Tiaret",
+ "14" => "Tizi Ouzou",
+ "15" => "Tlemcen",
+ "18" => "Bejaia",
+ "19" => "Biskra",
+ "20" => "Blida",
+ "21" => "Bouira",
+ "22" => "Djelfa",
+ "23" => "Guelma",
+ "24" => "Jijel",
+ "25" => "Laghouat",
+ "26" => "Mascara",
+ "27" => "M'sila",
+ "29" => "Oum el Bouaghi",
+ "30" => "Sidi Bel Abbes",
+ "31" => "Skikda",
+ "33" => "Tebessa",
+ "34" => "Adrar",
+ "35" => "Ain Defla",
+ "36" => "Ain Temouchent",
+ "37" => "Annaba",
+ "38" => "Bechar",
+ "39" => "Bordj Bou Arreridj",
+ "40" => "Boumerdes",
+ "41" => "Chlef",
+ "42" => "El Bayadh",
+ "43" => "El Oued",
+ "44" => "El Tarf",
+ "45" => "Ghardaia",
+ "46" => "Illizi",
+ "47" => "Khenchela",
+ "48" => "Mila",
+ "49" => "Naama",
+ "50" => "Ouargla",
+ "51" => "Relizane",
+ "52" => "Souk Ahras",
+ "53" => "Tamanghasset",
+ "54" => "Tindouf",
+ "55" => "Tipaza",
+ "56" => "Tissemsilt"
+ ),
+ "EC" => array(
+ "01" => "Galapagos",
+ "02" => "Azuay",
+ "03" => "Bolivar",
+ "04" => "Canar",
+ "05" => "Carchi",
+ "06" => "Chimborazo",
+ "07" => "Cotopaxi",
+ "08" => "El Oro",
+ "09" => "Esmeraldas",
+ "10" => "Guayas",
+ "11" => "Imbabura",
+ "12" => "Loja",
+ "13" => "Los Rios",
+ "14" => "Manabi",
+ "15" => "Morona-Santiago",
+ "17" => "Pastaza",
+ "18" => "Pichincha",
+ "19" => "Tungurahua",
+ "20" => "Zamora-Chinchipe",
+ "22" => "Sucumbios",
+ "23" => "Napo",
+ "24" => "Orellana"
+ ),
+ "EE" => array(
+ "01" => "Harjumaa",
+ "02" => "Hiiumaa",
+ "03" => "Ida-Virumaa",
+ "04" => "Jarvamaa",
+ "05" => "Jogevamaa",
+ "06" => "Kohtla-Jarve",
+ "07" => "Laanemaa",
+ "08" => "Laane-Virumaa",
+ "09" => "Narva",
+ "10" => "Parnu",
+ "11" => "Parnumaa",
+ "12" => "Polvamaa",
+ "13" => "Raplamaa",
+ "14" => "Saaremaa",
+ "15" => "Sillamae",
+ "16" => "Tallinn",
+ "17" => "Tartu",
+ "18" => "Tartumaa",
+ "19" => "Valgamaa",
+ "20" => "Viljandimaa",
+ "21" => "Vorumaa"
+ ),
+ "EG" => array(
+ "01" => "Ad Daqahliyah",
+ "02" => "Al Bahr al Ahmar",
+ "03" => "Al Buhayrah",
+ "04" => "Al Fayyum",
+ "05" => "Al Gharbiyah",
+ "06" => "Al Iskandariyah",
+ "07" => "Al Isma'iliyah",
+ "08" => "Al Jizah",
+ "09" => "Al Minufiyah",
+ "10" => "Al Minya",
+ "11" => "Al Qahirah",
+ "12" => "Al Qalyubiyah",
+ "13" => "Al Wadi al Jadid",
+ "14" => "Ash Sharqiyah",
+ "15" => "As Suways",
+ "16" => "Aswan",
+ "17" => "Asyut",
+ "18" => "Bani Suwayf",
+ "19" => "Bur Sa'id",
+ "20" => "Dumyat",
+ "21" => "Kafr ash Shaykh",
+ "22" => "Matruh",
+ "23" => "Qina",
+ "24" => "Suhaj",
+ "26" => "Janub Sina'",
+ "27" => "Shamal Sina'"
+ ),
+ "ER" => array(
+ "01" => "Anseba",
+ "02" => "Debub",
+ "03" => "Debubawi K'eyih Bahri",
+ "04" => "Gash Barka",
+ "05" => "Ma'akel",
+ "06" => "Semenawi K'eyih Bahri"
+ ),
+ "ES" => array(
+ "07" => "Islas Baleares",
+ "27" => "La Rioja",
+ "29" => "Madrid",
+ "31" => "Murcia",
+ "32" => "Navarra",
+ "34" => "Asturias",
+ "39" => "Cantabria",
+ "51" => "Andalucia",
+ "52" => "Aragon",
+ "53" => "Canarias",
+ "54" => "Castilla-La Mancha",
+ "55" => "Castilla y Leon",
+ "56" => "Catalonia",
+ "57" => "Extremadura",
+ "58" => "Galicia",
+ "59" => "Pais Vasco",
+ "60" => "Comunidad Valenciana"
+ ),
+ "ET" => array(
+ "44" => "Adis Abeba",
+ "45" => "Afar",
+ "46" => "Amara",
+ "47" => "Binshangul Gumuz",
+ "48" => "Dire Dawa",
+ "49" => "Gambela Hizboch",
+ "50" => "Hareri Hizb",
+ "51" => "Oromiya",
+ "52" => "Sumale",
+ "53" => "Tigray",
+ "54" => "YeDebub Biheroch Bihereseboch na Hizboch"
+ ),
+ "FI" => array(
+ "01" => "Aland",
+ "06" => "Lapland",
+ "08" => "Oulu",
+ "13" => "Southern Finland",
+ "14" => "Eastern Finland",
+ "15" => "Western Finland"
+ ),
+ "FJ" => array(
+ "01" => "Central",
+ "02" => "Eastern",
+ "03" => "Northern",
+ "04" => "Rotuma",
+ "05" => "Western"
+ ),
+ "FM" => array(
+ "01" => "Kosrae",
+ "02" => "Pohnpei",
+ "03" => "Chuuk",
+ "04" => "Yap"
+ ),
+ "FR" => array(
+ "97" => "Aquitaine",
+ "98" => "Auvergne",
+ "99" => "Basse-Normandie",
+ "A1" => "Bourgogne",
+ "A2" => "Bretagne",
+ "A3" => "Centre",
+ "A4" => "Champagne-Ardenne",
+ "A5" => "Corse",
+ "A6" => "Franche-Comte",
+ "A7" => "Haute-Normandie",
+ "A8" => "Ile-de-France",
+ "A9" => "Languedoc-Roussillon",
+ "B1" => "Limousin",
+ "B2" => "Lorraine",
+ "B3" => "Midi-Pyrenees",
+ "B4" => "Nord-Pas-de-Calais",
+ "B5" => "Pays de la Loire",
+ "B6" => "Picardie",
+ "B7" => "Poitou-Charentes",
+ "B8" => "Provence-Alpes-Cote d'Azur",
+ "B9" => "Rhone-Alpes",
+ "C1" => "Alsace"
+ ),
+ "GA" => array(
+ "01" => "Estuaire",
+ "02" => "Haut-Ogooue",
+ "03" => "Moyen-Ogooue",
+ "04" => "Ngounie",
+ "05" => "Nyanga",
+ "06" => "Ogooue-Ivindo",
+ "07" => "Ogooue-Lolo",
+ "08" => "Ogooue-Maritime",
+ "09" => "Woleu-Ntem"
+ ),
+ "GB" => array(
+ "A1" => "Barking and Dagenham",
+ "A2" => "Barnet",
+ "A3" => "Barnsley",
+ "A4" => "Bath and North East Somerset",
+ "A5" => "Bedfordshire",
+ "A6" => "Bexley",
+ "A7" => "Birmingham",
+ "A8" => "Blackburn with Darwen",
+ "A9" => "Blackpool",
+ "B1" => "Bolton",
+ "B2" => "Bournemouth",
+ "B3" => "Bracknell Forest",
+ "B4" => "Bradford",
+ "B5" => "Brent",
+ "B6" => "Brighton and Hove",
+ "B7" => "Bristol, City of",
+ "B8" => "Bromley",
+ "B9" => "Buckinghamshire",
+ "C1" => "Bury",
+ "C2" => "Calderdale",
+ "C3" => "Cambridgeshire",
+ "C4" => "Camden",
+ "C5" => "Cheshire",
+ "C6" => "Cornwall",
+ "C7" => "Coventry",
+ "C8" => "Croydon",
+ "C9" => "Cumbria",
+ "D1" => "Darlington",
+ "D2" => "Derby",
+ "D3" => "Derbyshire",
+ "D4" => "Devon",
+ "D5" => "Doncaster",
+ "D6" => "Dorset",
+ "D7" => "Dudley",
+ "D8" => "Durham",
+ "D9" => "Ealing",
+ "E1" => "East Riding of Yorkshire",
+ "E2" => "East Sussex",
+ "E3" => "Enfield",
+ "E4" => "Essex",
+ "E5" => "Gateshead",
+ "E6" => "Gloucestershire",
+ "E7" => "Greenwich",
+ "E8" => "Hackney",
+ "E9" => "Halton",
+ "F1" => "Hammersmith and Fulham",
+ "F2" => "Hampshire",
+ "F3" => "Haringey",
+ "F4" => "Harrow",
+ "F5" => "Hartlepool",
+ "F6" => "Havering",
+ "F7" => "Herefordshire",
+ "F8" => "Hertford",
+ "F9" => "Hillingdon",
+ "G1" => "Hounslow",
+ "G2" => "Isle of Wight",
+ "G3" => "Islington",
+ "G4" => "Kensington and Chelsea",
+ "G5" => "Kent",
+ "G6" => "Kingston upon Hull, City of",
+ "G7" => "Kingston upon Thames",
+ "G8" => "Kirklees",
+ "G9" => "Knowsley",
+ "H1" => "Lambeth",
+ "H2" => "Lancashire",
+ "H3" => "Leeds",
+ "H4" => "Leicester",
+ "H5" => "Leicestershire",
+ "H6" => "Lewisham",
+ "H7" => "Lincolnshire",
+ "H8" => "Liverpool",
+ "H9" => "London, City of",
+ "I1" => "Luton",
+ "I2" => "Manchester",
+ "I3" => "Medway",
+ "I4" => "Merton",
+ "I5" => "Middlesbrough",
+ "I6" => "Milton Keynes",
+ "I7" => "Newcastle upon Tyne",
+ "I8" => "Newham",
+ "I9" => "Norfolk",
+ "J1" => "Northamptonshire",
+ "J2" => "North East Lincolnshire",
+ "J3" => "North Lincolnshire",
+ "J4" => "North Somerset",
+ "J5" => "North Tyneside",
+ "J6" => "Northumberland",
+ "J7" => "North Yorkshire",
+ "J8" => "Nottingham",
+ "J9" => "Nottinghamshire",
+ "K1" => "Oldham",
+ "K2" => "Oxfordshire",
+ "K3" => "Peterborough",
+ "K4" => "Plymouth",
+ "K5" => "Poole",
+ "K6" => "Portsmouth",
+ "K7" => "Reading",
+ "K8" => "Redbridge",
+ "K9" => "Redcar and Cleveland",
+ "L1" => "Richmond upon Thames",
+ "L2" => "Rochdale",
+ "L3" => "Rotherham",
+ "L4" => "Rutland",
+ "L5" => "Salford",
+ "L6" => "Shropshire",
+ "L7" => "Sandwell",
+ "L8" => "Sefton",
+ "L9" => "Sheffield",
+ "M1" => "Slough",
+ "M2" => "Solihull",
+ "M3" => "Somerset",
+ "M4" => "Southampton",
+ "M5" => "Southend-on-Sea",
+ "M6" => "South Gloucestershire",
+ "M7" => "South Tyneside",
+ "M8" => "Southwark",
+ "M9" => "Staffordshire",
+ "N1" => "St. Helens",
+ "N2" => "Stockport",
+ "N3" => "Stockton-on-Tees",
+ "N4" => "Stoke-on-Trent",
+ "N5" => "Suffolk",
+ "N6" => "Sunderland",
+ "N7" => "Surrey",
+ "N8" => "Sutton",
+ "N9" => "Swindon",
+ "O1" => "Tameside",
+ "O2" => "Telford and Wrekin",
+ "O3" => "Thurrock",
+ "O4" => "Torbay",
+ "O5" => "Tower Hamlets",
+ "O6" => "Trafford",
+ "O7" => "Wakefield",
+ "O8" => "Walsall",
+ "O9" => "Waltham Forest",
+ "P1" => "Wandsworth",
+ "P2" => "Warrington",
+ "P3" => "Warwickshire",
+ "P4" => "West Berkshire",
+ "P5" => "Westminster",
+ "P6" => "West Sussex",
+ "P7" => "Wigan",
+ "P8" => "Wiltshire",
+ "P9" => "Windsor and Maidenhead",
+ "Q1" => "Wirral",
+ "Q2" => "Wokingham",
+ "Q3" => "Wolverhampton",
+ "Q4" => "Worcestershire",
+ "Q5" => "York",
+ "Q6" => "Antrim",
+ "Q7" => "Ards",
+ "Q8" => "Armagh",
+ "Q9" => "Ballymena",
+ "R1" => "Ballymoney",
+ "R2" => "Banbridge",
+ "R3" => "Belfast",
+ "R4" => "Carrickfergus",
+ "R5" => "Castlereagh",
+ "R6" => "Coleraine",
+ "R7" => "Cookstown",
+ "R8" => "Craigavon",
+ "R9" => "Down",
+ "S1" => "Dungannon",
+ "S2" => "Fermanagh",
+ "S3" => "Larne",
+ "S4" => "Limavady",
+ "S5" => "Lisburn",
+ "S6" => "Derry",
+ "S7" => "Magherafelt",
+ "S8" => "Moyle",
+ "S9" => "Newry and Mourne",
+ "T1" => "Newtownabbey",
+ "T2" => "North Down",
+ "T3" => "Omagh",
+ "T4" => "Strabane",
+ "T5" => "Aberdeen City",
+ "T6" => "Aberdeenshire",
+ "T7" => "Angus",
+ "T8" => "Argyll and Bute",
+ "T9" => "Scottish Borders, The",
+ "U1" => "Clackmannanshire",
+ "U2" => "Dumfries and Galloway",
+ "U3" => "Dundee City",
+ "U4" => "East Ayrshire",
+ "U5" => "East Dunbartonshire",
+ "U6" => "East Lothian",
+ "U7" => "East Renfrewshire",
+ "U8" => "Edinburgh, City of",
+ "U9" => "Falkirk",
+ "V1" => "Fife",
+ "V2" => "Glasgow City",
+ "V3" => "Highland",
+ "V4" => "Inverclyde",
+ "V5" => "Midlothian",
+ "V6" => "Moray",
+ "V7" => "North Ayrshire",
+ "V8" => "North Lanarkshire",
+ "V9" => "Orkney",
+ "W1" => "Perth and Kinross",
+ "W2" => "Renfrewshire",
+ "W3" => "Shetland Islands",
+ "W4" => "South Ayrshire",
+ "W5" => "South Lanarkshire",
+ "W6" => "Stirling",
+ "W7" => "West Dunbartonshire",
+ "W8" => "Eilean Siar",
+ "W9" => "West Lothian",
+ "X1" => "Isle of Anglesey",
+ "X2" => "Blaenau Gwent",
+ "X3" => "Bridgend",
+ "X4" => "Caerphilly",
+ "X5" => "Cardiff",
+ "X6" => "Ceredigion",
+ "X7" => "Carmarthenshire",
+ "X8" => "Conwy",
+ "X9" => "Denbighshire",
+ "Y1" => "Flintshire",
+ "Y2" => "Gwynedd",
+ "Y3" => "Merthyr Tydfil",
+ "Y4" => "Monmouthshire",
+ "Y5" => "Neath Port Talbot",
+ "Y6" => "Newport",
+ "Y7" => "Pembrokeshire",
+ "Y8" => "Powys",
+ "Y9" => "Rhondda Cynon Taff",
+ "Z1" => "Swansea",
+ "Z2" => "Torfaen",
+ "Z3" => "Vale of Glamorgan, The",
+ "Z4" => "Wrexham",
+ "Z5" => "Bedfordshire",
+ "Z6" => "Central Bedfordshire",
+ "Z7" => "Cheshire East",
+ "Z8" => "Cheshire West and Chester",
+ "Z9" => "Isles of Scilly"
+ ),
+ "GD" => array(
+ "01" => "Saint Andrew",
+ "02" => "Saint David",
+ "03" => "Saint George",
+ "04" => "Saint John",
+ "05" => "Saint Mark",
+ "06" => "Saint Patrick"
+ ),
+ "GE" => array(
+ "01" => "Abashis Raioni",
+ "02" => "Abkhazia",
+ "03" => "Adigenis Raioni",
+ "04" => "Ajaria",
+ "05" => "Akhalgoris Raioni",
+ "06" => "Akhalk'alak'is Raioni",
+ "07" => "Akhalts'ikhis Raioni",
+ "08" => "Akhmetis Raioni",
+ "09" => "Ambrolauris Raioni",
+ "10" => "Aspindzis Raioni",
+ "11" => "Baghdat'is Raioni",
+ "12" => "Bolnisis Raioni",
+ "13" => "Borjomis Raioni",
+ "14" => "Chiat'ura",
+ "15" => "Ch'khorotsqus Raioni",
+ "16" => "Ch'okhatauris Raioni",
+ "17" => "Dedop'listsqaros Raioni",
+ "18" => "Dmanisis Raioni",
+ "19" => "Dushet'is Raioni",
+ "20" => "Gardabanis Raioni",
+ "21" => "Gori",
+ "22" => "Goris Raioni",
+ "23" => "Gurjaanis Raioni",
+ "24" => "Javis Raioni",
+ "25" => "K'arelis Raioni",
+ "26" => "Kaspis Raioni",
+ "27" => "Kharagaulis Raioni",
+ "28" => "Khashuris Raioni",
+ "29" => "Khobis Raioni",
+ "30" => "Khonis Raioni",
+ "31" => "K'ut'aisi",
+ "32" => "Lagodekhis Raioni",
+ "33" => "Lanch'khut'is Raioni",
+ "34" => "Lentekhis Raioni",
+ "35" => "Marneulis Raioni",
+ "36" => "Martvilis Raioni",
+ "37" => "Mestiis Raioni",
+ "38" => "Mts'khet'is Raioni",
+ "39" => "Ninotsmindis Raioni",
+ "40" => "Onis Raioni",
+ "41" => "Ozurget'is Raioni",
+ "42" => "P'ot'i",
+ "43" => "Qazbegis Raioni",
+ "44" => "Qvarlis Raioni",
+ "45" => "Rust'avi",
+ "46" => "Sach'kheris Raioni",
+ "47" => "Sagarejos Raioni",
+ "48" => "Samtrediis Raioni",
+ "49" => "Senakis Raioni",
+ "50" => "Sighnaghis Raioni",
+ "51" => "T'bilisi",
+ "52" => "T'elavis Raioni",
+ "53" => "T'erjolis Raioni",
+ "54" => "T'et'ritsqaros Raioni",
+ "55" => "T'ianet'is Raioni",
+ "56" => "Tqibuli",
+ "57" => "Ts'ageris Raioni",
+ "58" => "Tsalenjikhis Raioni",
+ "59" => "Tsalkis Raioni",
+ "60" => "Tsqaltubo",
+ "61" => "Vanis Raioni",
+ "62" => "Zestap'onis Raioni",
+ "63" => "Zugdidi",
+ "64" => "Zugdidis Raioni"
+ ),
+ "GH" => array(
+ "01" => "Greater Accra",
+ "02" => "Ashanti",
+ "03" => "Brong-Ahafo",
+ "04" => "Central",
+ "05" => "Eastern",
+ "06" => "Northern",
+ "08" => "Volta",
+ "09" => "Western",
+ "10" => "Upper East",
+ "11" => "Upper West"
+ ),
+ "GL" => array(
+ "01" => "Nordgronland",
+ "02" => "Ostgronland",
+ "03" => "Vestgronland"
+ ),
+ "GM" => array(
+ "01" => "Banjul",
+ "02" => "Lower River",
+ "03" => "Central River",
+ "04" => "Upper River",
+ "05" => "Western",
+ "07" => "North Bank"
+ ),
+ "GN" => array(
+ "01" => "Beyla",
+ "02" => "Boffa",
+ "03" => "Boke",
+ "04" => "Conakry",
+ "05" => "Dabola",
+ "06" => "Dalaba",
+ "07" => "Dinguiraye",
+ "09" => "Faranah",
+ "10" => "Forecariah",
+ "11" => "Fria",
+ "12" => "Gaoual",
+ "13" => "Gueckedou",
+ "15" => "Kerouane",
+ "16" => "Kindia",
+ "17" => "Kissidougou",
+ "18" => "Koundara",
+ "19" => "Kouroussa",
+ "21" => "Macenta",
+ "22" => "Mali",
+ "23" => "Mamou",
+ "25" => "Pita",
+ "27" => "Telimele",
+ "28" => "Tougue",
+ "29" => "Yomou",
+ "30" => "Coyah",
+ "31" => "Dubreka",
+ "32" => "Kankan",
+ "33" => "Koubia",
+ "34" => "Labe",
+ "35" => "Lelouma",
+ "36" => "Lola",
+ "37" => "Mandiana",
+ "38" => "Nzerekore",
+ "39" => "Siguiri"
+ ),
+ "GQ" => array(
+ "03" => "Annobon",
+ "04" => "Bioko Norte",
+ "05" => "Bioko Sur",
+ "06" => "Centro Sur",
+ "07" => "Kie-Ntem",
+ "08" => "Litoral",
+ "09" => "Wele-Nzas"
+ ),
+ "GR" => array(
+ "01" => "Evros",
+ "02" => "Rodhopi",
+ "03" => "Xanthi",
+ "04" => "Drama",
+ "05" => "Serrai",
+ "06" => "Kilkis",
+ "07" => "Pella",
+ "08" => "Florina",
+ "09" => "Kastoria",
+ "10" => "Grevena",
+ "11" => "Kozani",
+ "12" => "Imathia",
+ "13" => "Thessaloniki",
+ "14" => "Kavala",
+ "15" => "Khalkidhiki",
+ "16" => "Pieria",
+ "17" => "Ioannina",
+ "18" => "Thesprotia",
+ "19" => "Preveza",
+ "20" => "Arta",
+ "21" => "Larisa",
+ "22" => "Trikala",
+ "23" => "Kardhitsa",
+ "24" => "Magnisia",
+ "25" => "Kerkira",
+ "26" => "Levkas",
+ "27" => "Kefallinia",
+ "28" => "Zakinthos",
+ "29" => "Fthiotis",
+ "30" => "Evritania",
+ "31" => "Aitolia kai Akarnania",
+ "32" => "Fokis",
+ "33" => "Voiotia",
+ "34" => "Evvoia",
+ "35" => "Attiki",
+ "36" => "Argolis",
+ "37" => "Korinthia",
+ "38" => "Akhaia",
+ "39" => "Ilia",
+ "40" => "Messinia",
+ "41" => "Arkadhia",
+ "42" => "Lakonia",
+ "43" => "Khania",
+ "44" => "Rethimni",
+ "45" => "Iraklion",
+ "46" => "Lasithi",
+ "47" => "Dhodhekanisos",
+ "48" => "Samos",
+ "49" => "Kikladhes",
+ "50" => "Khios",
+ "51" => "Lesvos"
+ ),
+ "GT" => array(
+ "01" => "Alta Verapaz",
+ "02" => "Baja Verapaz",
+ "03" => "Chimaltenango",
+ "04" => "Chiquimula",
+ "05" => "El Progreso",
+ "06" => "Escuintla",
+ "07" => "Guatemala",
+ "08" => "Huehuetenango",
+ "09" => "Izabal",
+ "10" => "Jalapa",
+ "11" => "Jutiapa",
+ "12" => "Peten",
+ "13" => "Quetzaltenango",
+ "14" => "Quiche",
+ "15" => "Retalhuleu",
+ "16" => "Sacatepequez",
+ "17" => "San Marcos",
+ "18" => "Santa Rosa",
+ "19" => "Solola",
+ "20" => "Suchitepequez",
+ "21" => "Totonicapan",
+ "22" => "Zacapa"
+ ),
+ "GW" => array(
+ "01" => "Bafata",
+ "02" => "Quinara",
+ "04" => "Oio",
+ "05" => "Bolama",
+ "06" => "Cacheu",
+ "07" => "Tombali",
+ "10" => "Gabu",
+ "11" => "Bissau",
+ "12" => "Biombo"
+ ),
+ "GY" => array(
+ "10" => "Barima-Waini",
+ "11" => "Cuyuni-Mazaruni",
+ "12" => "Demerara-Mahaica",
+ "13" => "East Berbice-Corentyne",
+ "14" => "Essequibo Islands-West Demerara",
+ "15" => "Mahaica-Berbice",
+ "16" => "Pomeroon-Supenaam",
+ "17" => "Potaro-Siparuni",
+ "18" => "Upper Demerara-Berbice",
+ "19" => "Upper Takutu-Upper Essequibo"
+ ),
+ "HN" => array(
+ "01" => "Atlantida",
+ "02" => "Choluteca",
+ "03" => "Colon",
+ "04" => "Comayagua",
+ "05" => "Copan",
+ "06" => "Cortes",
+ "07" => "El Paraiso",
+ "08" => "Francisco Morazan",
+ "09" => "Gracias a Dios",
+ "10" => "Intibuca",
+ "11" => "Islas de la Bahia",
+ "12" => "La Paz",
+ "13" => "Lempira",
+ "14" => "Ocotepeque",
+ "15" => "Olancho",
+ "16" => "Santa Barbara",
+ "17" => "Valle",
+ "18" => "Yoro"
+ ),
+ "HR" => array(
+ "01" => "Bjelovarsko-Bilogorska",
+ "02" => "Brodsko-Posavska",
+ "03" => "Dubrovacko-Neretvanska",
+ "04" => "Istarska",
+ "05" => "Karlovacka",
+ "06" => "Koprivnicko-Krizevacka",
+ "07" => "Krapinsko-Zagorska",
+ "08" => "Licko-Senjska",
+ "09" => "Medimurska",
+ "10" => "Osjecko-Baranjska",
+ "11" => "Pozesko-Slavonska",
+ "12" => "Primorsko-Goranska",
+ "13" => "Sibensko-Kninska",
+ "14" => "Sisacko-Moslavacka",
+ "15" => "Splitsko-Dalmatinska",
+ "16" => "Varazdinska",
+ "17" => "Viroviticko-Podravska",
+ "18" => "Vukovarsko-Srijemska",
+ "19" => "Zadarska",
+ "20" => "Zagrebacka",
+ "21" => "Grad Zagreb"
+ ),
+ "HT" => array(
+ "03" => "Nord-Ouest",
+ "06" => "Artibonite",
+ "07" => "Centre",
+ "09" => "Nord",
+ "10" => "Nord-Est",
+ "11" => "Ouest",
+ "12" => "Sud",
+ "13" => "Sud-Est",
+ "14" => "Grand' Anse",
+ "15" => "Nippes"
+ ),
+ "HU" => array(
+ "01" => "Bacs-Kiskun",
+ "02" => "Baranya",
+ "03" => "Bekes",
+ "04" => "Borsod-Abauj-Zemplen",
+ "05" => "Budapest",
+ "06" => "Csongrad",
+ "07" => "Debrecen",
+ "08" => "Fejer",
+ "09" => "Gyor-Moson-Sopron",
+ "10" => "Hajdu-Bihar",
+ "11" => "Heves",
+ "12" => "Komarom-Esztergom",
+ "13" => "Miskolc",
+ "14" => "Nograd",
+ "15" => "Pecs",
+ "16" => "Pest",
+ "17" => "Somogy",
+ "18" => "Szabolcs-Szatmar-Bereg",
+ "19" => "Szeged",
+ "20" => "Jasz-Nagykun-Szolnok",
+ "21" => "Tolna",
+ "22" => "Vas",
+ "23" => "Veszprem",
+ "24" => "Zala",
+ "25" => "Gyor",
+ "26" => "Bekescsaba",
+ "27" => "Dunaujvaros",
+ "28" => "Eger",
+ "29" => "Hodmezovasarhely",
+ "30" => "Kaposvar",
+ "31" => "Kecskemet",
+ "32" => "Nagykanizsa",
+ "33" => "Nyiregyhaza",
+ "34" => "Sopron",
+ "35" => "Szekesfehervar",
+ "36" => "Szolnok",
+ "37" => "Szombathely",
+ "38" => "Tatabanya",
+ "39" => "Veszprem",
+ "40" => "Zalaegerszeg",
+ "41" => "Salgotarjan",
+ "42" => "Szekszard",
+ "43" => "Erd"
+ ),
+ "ID" => array(
+ "01" => "Aceh",
+ "02" => "Bali",
+ "03" => "Bengkulu",
+ "04" => "Jakarta Raya",
+ "05" => "Jambi",
+ "07" => "Jawa Tengah",
+ "08" => "Jawa Timur",
+ "10" => "Yogyakarta",
+ "11" => "Kalimantan Barat",
+ "12" => "Kalimantan Selatan",
+ "13" => "Kalimantan Tengah",
+ "14" => "Kalimantan Timur",
+ "15" => "Lampung",
+ "17" => "Nusa Tenggara Barat",
+ "18" => "Nusa Tenggara Timur",
+ "21" => "Sulawesi Tengah",
+ "22" => "Sulawesi Tenggara",
+ "24" => "Sumatera Barat",
+ "26" => "Sumatera Utara",
+ "28" => "Maluku",
+ "29" => "Maluku Utara",
+ "30" => "Jawa Barat",
+ "31" => "Sulawesi Utara",
+ "32" => "Sumatera Selatan",
+ "33" => "Banten",
+ "34" => "Gorontalo",
+ "35" => "Kepulauan Bangka Belitung",
+ "36" => "Papua",
+ "37" => "Riau",
+ "38" => "Sulawesi Selatan",
+ "39" => "Irian Jaya Barat",
+ "40" => "Kepulauan Riau",
+ "41" => "Sulawesi Barat"
+ ),
+ "IE" => array(
+ "01" => "Carlow",
+ "02" => "Cavan",
+ "03" => "Clare",
+ "04" => "Cork",
+ "06" => "Donegal",
+ "07" => "Dublin",
+ "10" => "Galway",
+ "11" => "Kerry",
+ "12" => "Kildare",
+ "13" => "Kilkenny",
+ "14" => "Leitrim",
+ "15" => "Laois",
+ "16" => "Limerick",
+ "18" => "Longford",
+ "19" => "Louth",
+ "20" => "Mayo",
+ "21" => "Meath",
+ "22" => "Monaghan",
+ "23" => "Offaly",
+ "24" => "Roscommon",
+ "25" => "Sligo",
+ "26" => "Tipperary",
+ "27" => "Waterford",
+ "29" => "Westmeath",
+ "30" => "Wexford",
+ "31" => "Wicklow"
+ ),
+ "IL" => array(
+ "01" => "HaDarom",
+ "02" => "HaMerkaz",
+ "03" => "HaZafon",
+ "04" => "Hefa",
+ "05" => "Tel Aviv",
+ "06" => "Yerushalayim"
+ ),
+ "IN" => array(
+ "01" => "Andaman and Nicobar Islands",
+ "02" => "Andhra Pradesh",
+ "03" => "Assam",
+ "05" => "Chandigarh",
+ "06" => "Dadra and Nagar Haveli",
+ "07" => "Delhi",
+ "09" => "Gujarat",
+ "10" => "Haryana",
+ "11" => "Himachal Pradesh",
+ "12" => "Jammu and Kashmir",
+ "13" => "Kerala",
+ "14" => "Lakshadweep",
+ "16" => "Maharashtra",
+ "17" => "Manipur",
+ "18" => "Meghalaya",
+ "19" => "Karnataka",
+ "20" => "Nagaland",
+ "21" => "Orissa",
+ "22" => "Puducherry",
+ "23" => "Punjab",
+ "24" => "Rajasthan",
+ "25" => "Tamil Nadu",
+ "26" => "Tripura",
+ "28" => "West Bengal",
+ "29" => "Sikkim",
+ "30" => "Arunachal Pradesh",
+ "31" => "Mizoram",
+ "32" => "Daman and Diu",
+ "33" => "Goa",
+ "34" => "Bihar",
+ "35" => "Madhya Pradesh",
+ "36" => "Uttar Pradesh",
+ "37" => "Chhattisgarh",
+ "38" => "Jharkhand",
+ "39" => "Uttarakhand"
+ ),
+ "IQ" => array(
+ "01" => "Al Anbar",
+ "02" => "Al Basrah",
+ "03" => "Al Muthanna",
+ "04" => "Al Qadisiyah",
+ "05" => "As Sulaymaniyah",
+ "06" => "Babil",
+ "07" => "Baghdad",
+ "08" => "Dahuk",
+ "09" => "Dhi Qar",
+ "10" => "Diyala",
+ "11" => "Arbil",
+ "12" => "Karbala'",
+ "13" => "At Ta'mim",
+ "14" => "Maysan",
+ "15" => "Ninawa",
+ "16" => "Wasit",
+ "17" => "An Najaf",
+ "18" => "Salah ad Din"
+ ),
+ "IR" => array(
+ "01" => "Azarbayjan-e Bakhtari",
+ "03" => "Chahar Mahall va Bakhtiari",
+ "04" => "Sistan va Baluchestan",
+ "05" => "Kohkiluyeh va Buyer Ahmadi",
+ "07" => "Fars",
+ "08" => "Gilan",
+ "09" => "Hamadan",
+ "10" => "Ilam",
+ "11" => "Hormozgan",
+ "12" => "Kerman",
+ "13" => "Bakhtaran",
+ "15" => "Khuzestan",
+ "16" => "Kordestan",
+ "17" => "Mazandaran",
+ "18" => "Semnan Province",
+ "19" => "Markazi",
+ "21" => "Zanjan",
+ "22" => "Bushehr",
+ "23" => "Lorestan",
+ "24" => "Markazi",
+ "25" => "Semnan",
+ "26" => "Tehran",
+ "27" => "Zanjan",
+ "28" => "Esfahan",
+ "29" => "Kerman",
+ "30" => "Khorasan",
+ "31" => "Yazd",
+ "32" => "Ardabil",
+ "33" => "East Azarbaijan",
+ "34" => "Markazi",
+ "35" => "Mazandaran",
+ "36" => "Zanjan",
+ "37" => "Golestan",
+ "38" => "Qazvin",
+ "39" => "Qom",
+ "40" => "Yazd",
+ "41" => "Khorasan-e Janubi",
+ "42" => "Khorasan-e Razavi",
+ "43" => "Khorasan-e Shemali",
+ "44" => "Alborz"
+ ),
+ "IS" => array(
+ "03" => "Arnessysla",
+ "05" => "Austur-Hunavatnssysla",
+ "06" => "Austur-Skaftafellssysla",
+ "07" => "Borgarfjardarsysla",
+ "09" => "Eyjafjardarsysla",
+ "10" => "Gullbringusysla",
+ "15" => "Kjosarsysla",
+ "17" => "Myrasysla",
+ "20" => "Nordur-Mulasysla",
+ "21" => "Nordur-Tingeyjarsysla",
+ "23" => "Rangarvallasysla",
+ "28" => "Skagafjardarsysla",
+ "29" => "Snafellsnes- og Hnappadalssysla",
+ "30" => "Strandasysla",
+ "31" => "Sudur-Mulasysla",
+ "32" => "Sudur-Tingeyjarsysla",
+ "34" => "Vestur-Bardastrandarsysla",
+ "35" => "Vestur-Hunavatnssysla",
+ "36" => "Vestur-Isafjardarsysla",
+ "37" => "Vestur-Skaftafellssysla",
+ "38" => "Austurland",
+ "39" => "Hofuoborgarsvaoio",
+ "40" => "Norourland Eystra",
+ "41" => "Norourland Vestra",
+ "42" => "Suourland",
+ "43" => "Suournes",
+ "44" => "Vestfiroir",
+ "45" => "Vesturland"
+ ),
+ "IT" => array(
+ "01" => "Abruzzi",
+ "02" => "Basilicata",
+ "03" => "Calabria",
+ "04" => "Campania",
+ "05" => "Emilia-Romagna",
+ "06" => "Friuli-Venezia Giulia",
+ "07" => "Lazio",
+ "08" => "Liguria",
+ "09" => "Lombardia",
+ "10" => "Marche",
+ "11" => "Molise",
+ "12" => "Piemonte",
+ "13" => "Puglia",
+ "14" => "Sardegna",
+ "15" => "Sicilia",
+ "16" => "Toscana",
+ "17" => "Trentino-Alto Adige",
+ "18" => "Umbria",
+ "19" => "Valle d'Aosta",
+ "20" => "Veneto"
+ ),
+ "JM" => array(
+ "01" => "Clarendon",
+ "02" => "Hanover",
+ "04" => "Manchester",
+ "07" => "Portland",
+ "08" => "Saint Andrew",
+ "09" => "Saint Ann",
+ "10" => "Saint Catherine",
+ "11" => "Saint Elizabeth",
+ "12" => "Saint James",
+ "13" => "Saint Mary",
+ "14" => "Saint Thomas",
+ "15" => "Trelawny",
+ "16" => "Westmoreland",
+ "17" => "Kingston"
+ ),
+ "JO" => array(
+ "02" => "Al Balqa'",
+ "09" => "Al Karak",
+ "12" => "At Tafilah",
+ "15" => "Al Mafraq",
+ "16" => "Amman",
+ "17" => "Az Zaraqa",
+ "18" => "Irbid",
+ "19" => "Ma'an",
+ "20" => "Ajlun",
+ "21" => "Al Aqabah",
+ "22" => "Jarash",
+ "23" => "Madaba"
+ ),
+ "JP" => array(
+ "01" => "Aichi",
+ "02" => "Akita",
+ "03" => "Aomori",
+ "04" => "Chiba",
+ "05" => "Ehime",
+ "06" => "Fukui",
+ "07" => "Fukuoka",
+ "08" => "Fukushima",
+ "09" => "Gifu",
+ "10" => "Gumma",
+ "11" => "Hiroshima",
+ "12" => "Hokkaido",
+ "13" => "Hyogo",
+ "14" => "Ibaraki",
+ "15" => "Ishikawa",
+ "16" => "Iwate",
+ "17" => "Kagawa",
+ "18" => "Kagoshima",
+ "19" => "Kanagawa",
+ "20" => "Kochi",
+ "21" => "Kumamoto",
+ "22" => "Kyoto",
+ "23" => "Mie",
+ "24" => "Miyagi",
+ "25" => "Miyazaki",
+ "26" => "Nagano",
+ "27" => "Nagasaki",
+ "28" => "Nara",
+ "29" => "Niigata",
+ "30" => "Oita",
+ "31" => "Okayama",
+ "32" => "Osaka",
+ "33" => "Saga",
+ "34" => "Saitama",
+ "35" => "Shiga",
+ "36" => "Shimane",
+ "37" => "Shizuoka",
+ "38" => "Tochigi",
+ "39" => "Tokushima",
+ "40" => "Tokyo",
+ "41" => "Tottori",
+ "42" => "Toyama",
+ "43" => "Wakayama",
+ "44" => "Yamagata",
+ "45" => "Yamaguchi",
+ "46" => "Yamanashi",
+ "47" => "Okinawa"
+ ),
+ "KE" => array(
+ "01" => "Central",
+ "02" => "Coast",
+ "03" => "Eastern",
+ "05" => "Nairobi Area",
+ "06" => "North-Eastern",
+ "07" => "Nyanza",
+ "08" => "Rift Valley",
+ "09" => "Western"
+ ),
+ "KG" => array(
+ "01" => "Bishkek",
+ "02" => "Chuy",
+ "03" => "Jalal-Abad",
+ "04" => "Naryn",
+ "05" => "Osh",
+ "06" => "Talas",
+ "07" => "Ysyk-Kol",
+ "08" => "Osh",
+ "09" => "Batken"
+ ),
+ "KH" => array(
+ "01" => "Batdambang",
+ "02" => "Kampong Cham",
+ "03" => "Kampong Chhnang",
+ "04" => "Kampong Speu",
+ "05" => "Kampong Thum",
+ "06" => "Kampot",
+ "07" => "Kandal",
+ "08" => "Koh Kong",
+ "09" => "Kracheh",
+ "10" => "Mondulkiri",
+ "11" => "Phnum Penh",
+ "12" => "Pursat",
+ "13" => "Preah Vihear",
+ "14" => "Prey Veng",
+ "15" => "Ratanakiri Kiri",
+ "16" => "Siem Reap",
+ "17" => "Stung Treng",
+ "18" => "Svay Rieng",
+ "19" => "Takeo",
+ "25" => "Banteay Meanchey",
+ "29" => "Batdambang",
+ "30" => "Pailin"
+ ),
+ "KI" => array(
+ "01" => "Gilbert Islands",
+ "02" => "Line Islands",
+ "03" => "Phoenix Islands"
+ ),
+ "KM" => array(
+ "01" => "Anjouan",
+ "02" => "Grande Comore",
+ "03" => "Moheli"
+ ),
+ "KN" => array(
+ "01" => "Christ Church Nichola Town",
+ "02" => "Saint Anne Sandy Point",
+ "03" => "Saint George Basseterre",
+ "04" => "Saint George Gingerland",
+ "05" => "Saint James Windward",
+ "06" => "Saint John Capisterre",
+ "07" => "Saint John Figtree",
+ "08" => "Saint Mary Cayon",
+ "09" => "Saint Paul Capisterre",
+ "10" => "Saint Paul Charlestown",
+ "11" => "Saint Peter Basseterre",
+ "12" => "Saint Thomas Lowland",
+ "13" => "Saint Thomas Middle Island",
+ "15" => "Trinity Palmetto Point"
+ ),
+ "KP" => array(
+ "01" => "Chagang-do",
+ "03" => "Hamgyong-namdo",
+ "06" => "Hwanghae-namdo",
+ "07" => "Hwanghae-bukto",
+ "08" => "Kaesong-si",
+ "09" => "Kangwon-do",
+ "11" => "P'yongan-bukto",
+ "12" => "P'yongyang-si",
+ "13" => "Yanggang-do",
+ "14" => "Namp'o-si",
+ "15" => "P'yongan-namdo",
+ "17" => "Hamgyong-bukto",
+ "18" => "Najin Sonbong-si"
+ ),
+ "KR" => array(
+ "01" => "Cheju-do",
+ "03" => "Cholla-bukto",
+ "05" => "Ch'ungch'ong-bukto",
+ "06" => "Kangwon-do",
+ "10" => "Pusan-jikhalsi",
+ "11" => "Seoul-t'ukpyolsi",
+ "12" => "Inch'on-jikhalsi",
+ "13" => "Kyonggi-do",
+ "14" => "Kyongsang-bukto",
+ "15" => "Taegu-jikhalsi",
+ "16" => "Cholla-namdo",
+ "17" => "Ch'ungch'ong-namdo",
+ "18" => "Kwangju-jikhalsi",
+ "19" => "Taejon-jikhalsi",
+ "20" => "Kyongsang-namdo",
+ "21" => "Ulsan-gwangyoksi"
+ ),
+ "KW" => array(
+ "01" => "Al Ahmadi",
+ "02" => "Al Kuwayt",
+ "05" => "Al Jahra",
+ "07" => "Al Farwaniyah",
+ "08" => "Hawalli",
+ "09" => "Mubarak al Kabir"
+ ),
+ "KY" => array(
+ "01" => "Creek",
+ "02" => "Eastern",
+ "03" => "Midland",
+ "04" => "South Town",
+ "05" => "Spot Bay",
+ "06" => "Stake Bay",
+ "07" => "West End",
+ "08" => "Western"
+ ),
+ "KZ" => array(
+ "01" => "Almaty",
+ "02" => "Almaty City",
+ "03" => "Aqmola",
+ "04" => "Aqtobe",
+ "05" => "Astana",
+ "06" => "Atyrau",
+ "07" => "West Kazakhstan",
+ "08" => "Bayqonyr",
+ "09" => "Mangghystau",
+ "10" => "South Kazakhstan",
+ "11" => "Pavlodar",
+ "12" => "Qaraghandy",
+ "13" => "Qostanay",
+ "14" => "Qyzylorda",
+ "15" => "East Kazakhstan",
+ "16" => "North Kazakhstan",
+ "17" => "Zhambyl"
+ ),
+ "LA" => array(
+ "01" => "Attapu",
+ "02" => "Champasak",
+ "03" => "Houaphan",
+ "04" => "Khammouan",
+ "05" => "Louang Namtha",
+ "07" => "Oudomxai",
+ "08" => "Phongsali",
+ "09" => "Saravan",
+ "10" => "Savannakhet",
+ "11" => "Vientiane",
+ "13" => "Xaignabouri",
+ "14" => "Xiangkhoang",
+ "17" => "Louangphrabang"
+ ),
+ "LB" => array(
+ "01" => "Beqaa",
+ "02" => "Al Janub",
+ "03" => "Liban-Nord",
+ "04" => "Beyrouth",
+ "05" => "Mont-Liban",
+ "06" => "Liban-Sud",
+ "07" => "Nabatiye",
+ "08" => "Beqaa",
+ "09" => "Liban-Nord",
+ "10" => "Aakk,r",
+ "11" => "Baalbek-Hermel"
+ ),
+ "LC" => array(
+ "01" => "Anse-la-Raye",
+ "02" => "Dauphin",
+ "03" => "Castries",
+ "04" => "Choiseul",
+ "05" => "Dennery",
+ "06" => "Gros-Islet",
+ "07" => "Laborie",
+ "08" => "Micoud",
+ "09" => "Soufriere",
+ "10" => "Vieux-Fort",
+ "11" => "Praslin"
+ ),
+ "LI" => array(
+ "01" => "Balzers",
+ "02" => "Eschen",
+ "03" => "Gamprin",
+ "04" => "Mauren",
+ "05" => "Planken",
+ "06" => "Ruggell",
+ "07" => "Schaan",
+ "08" => "Schellenberg",
+ "09" => "Triesen",
+ "10" => "Triesenberg",
+ "11" => "Vaduz",
+ "21" => "Gbarpolu",
+ "22" => "River Gee"
+ ),
+ "LK" => array(
+ "29" => "Central",
+ "30" => "North Central",
+ "32" => "North Western",
+ "33" => "Sabaragamuwa",
+ "34" => "Southern",
+ "35" => "Uva",
+ "36" => "Western",
+ "37" => "Eastern",
+ "38" => "Northern"
+ ),
+ "LR" => array(
+ "01" => "Bong",
+ "04" => "Grand Cape Mount",
+ "05" => "Lofa",
+ "06" => "Maryland",
+ "07" => "Monrovia",
+ "09" => "Nimba",
+ "10" => "Sino",
+ "11" => "Grand Bassa",
+ "12" => "Grand Cape Mount",
+ "13" => "Maryland",
+ "14" => "Montserrado",
+ "17" => "Margibi",
+ "18" => "River Cess",
+ "19" => "Grand Gedeh",
+ "20" => "Lofa",
+ "21" => "Gbarpolu",
+ "22" => "River Gee"
+ ),
+ "LS" => array(
+ "10" => "Berea",
+ "11" => "Butha-Buthe",
+ "12" => "Leribe",
+ "13" => "Mafeteng",
+ "14" => "Maseru",
+ "15" => "Mohales Hoek",
+ "16" => "Mokhotlong",
+ "17" => "Qachas Nek",
+ "18" => "Quthing",
+ "19" => "Thaba-Tseka"
+ ),
+ "LT" => array(
+ "56" => "Alytaus Apskritis",
+ "57" => "Kauno Apskritis",
+ "58" => "Klaipedos Apskritis",
+ "59" => "Marijampoles Apskritis",
+ "60" => "Panevezio Apskritis",
+ "61" => "Siauliu Apskritis",
+ "62" => "Taurages Apskritis",
+ "63" => "Telsiu Apskritis",
+ "64" => "Utenos Apskritis",
+ "65" => "Vilniaus Apskritis"
+ ),
+ "LU" => array(
+ "01" => "Diekirch",
+ "02" => "Grevenmacher",
+ "03" => "Luxembourg"
+ ),
+ "LV" => array(
+ "01" => "Aizkraukles",
+ "02" => "Aluksnes",
+ "03" => "Balvu",
+ "04" => "Bauskas",
+ "05" => "Cesu",
+ "06" => "Daugavpils",
+ "07" => "Daugavpils",
+ "08" => "Dobeles",
+ "09" => "Gulbenes",
+ "10" => "Jekabpils",
+ "11" => "Jelgava",
+ "12" => "Jelgavas",
+ "13" => "Jurmala",
+ "14" => "Kraslavas",
+ "15" => "Kuldigas",
+ "16" => "Liepaja",
+ "17" => "Liepajas",
+ "18" => "Limbazu",
+ "19" => "Ludzas",
+ "20" => "Madonas",
+ "21" => "Ogres",
+ "22" => "Preilu",
+ "23" => "Rezekne",
+ "24" => "Rezeknes",
+ "25" => "Riga",
+ "26" => "Rigas",
+ "27" => "Saldus",
+ "28" => "Talsu",
+ "29" => "Tukuma",
+ "30" => "Valkas",
+ "31" => "Valmieras",
+ "32" => "Ventspils",
+ "33" => "Ventspils"
+ ),
+ "LY" => array(
+ "03" => "Al Aziziyah",
+ "05" => "Al Jufrah",
+ "08" => "Al Kufrah",
+ "13" => "Ash Shati'",
+ "30" => "Murzuq",
+ "34" => "Sabha",
+ "41" => "Tarhunah",
+ "42" => "Tubruq",
+ "45" => "Zlitan",
+ "47" => "Ajdabiya",
+ "48" => "Al Fatih",
+ "49" => "Al Jabal al Akhdar",
+ "50" => "Al Khums",
+ "51" => "An Nuqat al Khams",
+ "52" => "Awbari",
+ "53" => "Az Zawiyah",
+ "54" => "Banghazi",
+ "55" => "Darnah",
+ "56" => "Ghadamis",
+ "57" => "Gharyan",
+ "58" => "Misratah",
+ "59" => "Sawfajjin",
+ "60" => "Surt",
+ "61" => "Tarabulus",
+ "62" => "Yafran"
+ ),
+ "MA" => array(
+ "45" => "Grand Casablanca",
+ "46" => "Fes-Boulemane",
+ "47" => "Marrakech-Tensift-Al Haouz",
+ "48" => "Meknes-Tafilalet",
+ "49" => "Rabat-Sale-Zemmour-Zaer",
+ "50" => "Chaouia-Ouardigha",
+ "51" => "Doukkala-Abda",
+ "52" => "Gharb-Chrarda-Beni Hssen",
+ "53" => "Guelmim-Es Smara",
+ "54" => "Oriental",
+ "55" => "Souss-Massa-Dr,a",
+ "56" => "Tadla-Azilal",
+ "57" => "Tanger-Tetouan",
+ "58" => "Taza-Al Hoceima-Taounate",
+ "59" => "La,youne-Boujdour-Sakia El Hamra"
+ ),
+ "MC" => array(
+ "01" => "La Condamine",
+ "02" => "Monaco",
+ "03" => "Monte-Carlo"
+ ),
+ "MD" => array(
+ "51" => "Gagauzia",
+ "57" => "Chisinau",
+ "58" => "Stinga Nistrului",
+ "59" => "Anenii Noi",
+ "60" => "Balti",
+ "61" => "Basarabeasca",
+ "62" => "Bender",
+ "63" => "Briceni",
+ "64" => "Cahul",
+ "65" => "Cantemir",
+ "66" => "Calarasi",
+ "67" => "Causeni",
+ "68" => "Cimislia",
+ "69" => "Criuleni",
+ "70" => "Donduseni",
+ "71" => "Drochia",
+ "72" => "Dubasari",
+ "73" => "Edinet",
+ "74" => "Falesti",
+ "75" => "Floresti",
+ "76" => "Glodeni",
+ "77" => "Hincesti",
+ "78" => "Ialoveni",
+ "79" => "Leova",
+ "80" => "Nisporeni",
+ "81" => "Ocnita",
+ "82" => "Orhei",
+ "83" => "Rezina",
+ "84" => "Riscani",
+ "85" => "Singerei",
+ "86" => "Soldanesti",
+ "87" => "Soroca",
+ "88" => "Stefan-Voda",
+ "89" => "Straseni",
+ "90" => "Taraclia",
+ "91" => "Telenesti",
+ "92" => "Ungheni"
+ ),
+ "MG" => array(
+ "01" => "Antsiranana",
+ "02" => "Fianarantsoa",
+ "03" => "Mahajanga",
+ "04" => "Toamasina",
+ "05" => "Antananarivo",
+ "06" => "Toliara"
+ ),
+ "MK" => array(
+ "01" => "Aracinovo",
+ "02" => "Bac",
+ "03" => "Belcista",
+ "04" => "Berovo",
+ "05" => "Bistrica",
+ "06" => "Bitola",
+ "07" => "Blatec",
+ "08" => "Bogdanci",
+ "09" => "Bogomila",
+ "10" => "Bogovinje",
+ "11" => "Bosilovo",
+ "12" => "Brvenica",
+ "13" => "Cair",
+ "14" => "Capari",
+ "15" => "Caska",
+ "16" => "Cegrane",
+ "17" => "Centar",
+ "18" => "Centar Zupa",
+ "19" => "Cesinovo",
+ "20" => "Cucer-Sandevo",
+ "21" => "Debar",
+ "22" => "Delcevo",
+ "23" => "Delogozdi",
+ "24" => "Demir Hisar",
+ "25" => "Demir Kapija",
+ "26" => "Dobrusevo",
+ "27" => "Dolna Banjica",
+ "28" => "Dolneni",
+ "29" => "Dorce Petrov",
+ "30" => "Drugovo",
+ "31" => "Dzepciste",
+ "32" => "Gazi Baba",
+ "33" => "Gevgelija",
+ "34" => "Gostivar",
+ "35" => "Gradsko",
+ "36" => "Ilinden",
+ "37" => "Izvor",
+ "38" => "Jegunovce",
+ "39" => "Kamenjane",
+ "40" => "Karbinci",
+ "41" => "Karpos",
+ "42" => "Kavadarci",
+ "43" => "Kicevo",
+ "44" => "Kisela Voda",
+ "45" => "Klecevce",
+ "46" => "Kocani",
+ "47" => "Konce",
+ "48" => "Kondovo",
+ "49" => "Konopiste",
+ "50" => "Kosel",
+ "51" => "Kratovo",
+ "52" => "Kriva Palanka",
+ "53" => "Krivogastani",
+ "54" => "Krusevo",
+ "55" => "Kuklis",
+ "56" => "Kukurecani",
+ "57" => "Kumanovo",
+ "58" => "Labunista",
+ "59" => "Lipkovo",
+ "60" => "Lozovo",
+ "61" => "Lukovo",
+ "62" => "Makedonska Kamenica",
+ "63" => "Makedonski Brod",
+ "64" => "Mavrovi Anovi",
+ "65" => "Meseista",
+ "66" => "Miravci",
+ "67" => "Mogila",
+ "68" => "Murtino",
+ "69" => "Negotino",
+ "70" => "Negotino-Polosko",
+ "71" => "Novaci",
+ "72" => "Novo Selo",
+ "73" => "Oblesevo",
+ "74" => "Ohrid",
+ "75" => "Orasac",
+ "76" => "Orizari",
+ "77" => "Oslomej",
+ "78" => "Pehcevo",
+ "79" => "Petrovec",
+ "80" => "Plasnica",
+ "81" => "Podares",
+ "82" => "Prilep",
+ "83" => "Probistip",
+ "84" => "Radovis",
+ "85" => "Rankovce",
+ "86" => "Resen",
+ "87" => "Rosoman",
+ "88" => "Rostusa",
+ "89" => "Samokov",
+ "90" => "Saraj",
+ "91" => "Sipkovica",
+ "92" => "Sopiste",
+ "93" => "Sopotnica",
+ "94" => "Srbinovo",
+ "95" => "Staravina",
+ "96" => "Star Dojran",
+ "97" => "Staro Nagoricane",
+ "98" => "Stip",
+ "99" => "Struga",
+ "A1" => "Strumica",
+ "A2" => "Studenicani",
+ "A3" => "Suto Orizari",
+ "A4" => "Sveti Nikole",
+ "A5" => "Tearce",
+ "A6" => "Tetovo",
+ "A7" => "Topolcani",
+ "A8" => "Valandovo",
+ "A9" => "Vasilevo",
+ "B1" => "Veles",
+ "B2" => "Velesta",
+ "B3" => "Vevcani",
+ "B4" => "Vinica",
+ "B5" => "Vitoliste",
+ "B6" => "Vranestica",
+ "B7" => "Vrapciste",
+ "B8" => "Vratnica",
+ "B9" => "Vrutok",
+ "C1" => "Zajas",
+ "C2" => "Zelenikovo",
+ "C3" => "Zelino",
+ "C4" => "Zitose",
+ "C5" => "Zletovo",
+ "C6" => "Zrnovci"
+ ),
+ "ML" => array(
+ "01" => "Bamako",
+ "03" => "Kayes",
+ "04" => "Mopti",
+ "05" => "Segou",
+ "06" => "Sikasso",
+ "07" => "Koulikoro",
+ "08" => "Tombouctou",
+ "09" => "Gao",
+ "10" => "Kidal"
+ ),
+ "MM" => array(
+ "01" => "Rakhine State",
+ "02" => "Chin State",
+ "03" => "Irrawaddy",
+ "04" => "Kachin State",
+ "05" => "Karan State",
+ "06" => "Kayah State",
+ "07" => "Magwe",
+ "08" => "Mandalay",
+ "09" => "Pegu",
+ "10" => "Sagaing",
+ "11" => "Shan State",
+ "12" => "Tenasserim",
+ "13" => "Mon State",
+ "14" => "Rangoon",
+ "17" => "Yangon"
+ ),
+ "MN" => array(
+ "01" => "Arhangay",
+ "02" => "Bayanhongor",
+ "03" => "Bayan-Olgiy",
+ "05" => "Darhan",
+ "06" => "Dornod",
+ "07" => "Dornogovi",
+ "08" => "Dundgovi",
+ "09" => "Dzavhan",
+ "10" => "Govi-Altay",
+ "11" => "Hentiy",
+ "12" => "Hovd",
+ "13" => "Hovsgol",
+ "14" => "Omnogovi",
+ "15" => "Ovorhangay",
+ "16" => "Selenge",
+ "17" => "Suhbaatar",
+ "18" => "Tov",
+ "19" => "Uvs",
+ "20" => "Ulaanbaatar",
+ "21" => "Bulgan",
+ "22" => "Erdenet",
+ "23" => "Darhan-Uul",
+ "24" => "Govisumber",
+ "25" => "Orhon"
+ ),
+ "MO" => array(
+ "01" => "Ilhas",
+ "02" => "Macau"
+ ),
+ "MR" => array(
+ "01" => "Hodh Ech Chargui",
+ "02" => "Hodh El Gharbi",
+ "03" => "Assaba",
+ "04" => "Gorgol",
+ "05" => "Brakna",
+ "06" => "Trarza",
+ "07" => "Adrar",
+ "08" => "Dakhlet Nouadhibou",
+ "09" => "Tagant",
+ "10" => "Guidimaka",
+ "11" => "Tiris Zemmour",
+ "12" => "Inchiri"
+ ),
+ "MS" => array(
+ "01" => "Saint Anthony",
+ "02" => "Saint Georges",
+ "03" => "Saint Peter"
+ ),
+ "MU" => array(
+ "12" => "Black River",
+ "13" => "Flacq",
+ "14" => "Grand Port",
+ "15" => "Moka",
+ "16" => "Pamplemousses",
+ "17" => "Plaines Wilhems",
+ "18" => "Port Louis",
+ "19" => "Riviere du Rempart",
+ "20" => "Savanne",
+ "21" => "Agalega Islands",
+ "22" => "Cargados Carajos",
+ "23" => "Rodrigues"
+ ),
+ "MV" => array(
+ "01" => "Seenu",
+ "05" => "Laamu",
+ "30" => "Alifu",
+ "31" => "Baa",
+ "32" => "Dhaalu",
+ "33" => "Faafu ",
+ "34" => "Gaafu Alifu",
+ "35" => "Gaafu Dhaalu",
+ "36" => "Haa Alifu",
+ "37" => "Haa Dhaalu",
+ "38" => "Kaafu",
+ "39" => "Lhaviyani",
+ "40" => "Maale",
+ "41" => "Meemu",
+ "42" => "Gnaviyani",
+ "43" => "Noonu",
+ "44" => "Raa",
+ "45" => "Shaviyani",
+ "46" => "Thaa",
+ "47" => "Vaavu"
+ ),
+ "MW" => array(
+ "02" => "Chikwawa",
+ "03" => "Chiradzulu",
+ "04" => "Chitipa",
+ "05" => "Thyolo",
+ "06" => "Dedza",
+ "07" => "Dowa",
+ "08" => "Karonga",
+ "09" => "Kasungu",
+ "11" => "Lilongwe",
+ "12" => "Mangochi",
+ "13" => "Mchinji",
+ "15" => "Mzimba",
+ "16" => "Ntcheu",
+ "17" => "Nkhata Bay",
+ "18" => "Nkhotakota",
+ "19" => "Nsanje",
+ "20" => "Ntchisi",
+ "21" => "Rumphi",
+ "22" => "Salima",
+ "23" => "Zomba",
+ "24" => "Blantyre",
+ "25" => "Mwanza",
+ "26" => "Balaka",
+ "27" => "Likoma",
+ "28" => "Machinga",
+ "29" => "Mulanje",
+ "30" => "Phalombe"
+ ),
+ "MX" => array(
+ "01" => "Aguascalientes",
+ "02" => "Baja California",
+ "03" => "Baja California Sur",
+ "04" => "Campeche",
+ "05" => "Chiapas",
+ "06" => "Chihuahua",
+ "07" => "Coahuila de Zaragoza",
+ "08" => "Colima",
+ "09" => "Distrito Federal",
+ "10" => "Durango",
+ "11" => "Guanajuato",
+ "12" => "Guerrero",
+ "13" => "Hidalgo",
+ "14" => "Jalisco",
+ "15" => "Mexico",
+ "16" => "Michoacan de Ocampo",
+ "17" => "Morelos",
+ "18" => "Nayarit",
+ "19" => "Nuevo Leon",
+ "20" => "Oaxaca",
+ "21" => "Puebla",
+ "22" => "Queretaro de Arteaga",
+ "23" => "Quintana Roo",
+ "24" => "San Luis Potosi",
+ "25" => "Sinaloa",
+ "26" => "Sonora",
+ "27" => "Tabasco",
+ "28" => "Tamaulipas",
+ "29" => "Tlaxcala",
+ "30" => "Veracruz-Llave",
+ "31" => "Yucatan",
+ "32" => "Zacatecas"
+ ),
+ "MY" => array(
+ "01" => "Johor",
+ "02" => "Kedah",
+ "03" => "Kelantan",
+ "04" => "Melaka",
+ "05" => "Negeri Sembilan",
+ "06" => "Pahang",
+ "07" => "Perak",
+ "08" => "Perlis",
+ "09" => "Pulau Pinang",
+ "11" => "Sarawak",
+ "12" => "Selangor",
+ "13" => "Terengganu",
+ "14" => "Kuala Lumpur",
+ "15" => "Labuan",
+ "16" => "Sabah",
+ "17" => "Putrajaya"
+ ),
+ "MZ" => array(
+ "01" => "Cabo Delgado",
+ "02" => "Gaza",
+ "03" => "Inhambane",
+ "04" => "Maputo",
+ "05" => "Sofala",
+ "06" => "Nampula",
+ "07" => "Niassa",
+ "08" => "Tete",
+ "09" => "Zambezia",
+ "10" => "Manica",
+ "11" => "Maputo"
+ ),
+ "NA" => array(
+ "01" => "Bethanien",
+ "02" => "Caprivi Oos",
+ "03" => "Boesmanland",
+ "04" => "Gobabis",
+ "05" => "Grootfontein",
+ "06" => "Kaokoland",
+ "07" => "Karibib",
+ "08" => "Keetmanshoop",
+ "09" => "Luderitz",
+ "10" => "Maltahohe",
+ "11" => "Okahandja",
+ "12" => "Omaruru",
+ "13" => "Otjiwarongo",
+ "14" => "Outjo",
+ "15" => "Owambo",
+ "16" => "Rehoboth",
+ "17" => "Swakopmund",
+ "18" => "Tsumeb",
+ "20" => "Karasburg",
+ "21" => "Windhoek",
+ "22" => "Damaraland",
+ "23" => "Hereroland Oos",
+ "24" => "Hereroland Wes",
+ "25" => "Kavango",
+ "26" => "Mariental",
+ "27" => "Namaland",
+ "28" => "Caprivi",
+ "29" => "Erongo",
+ "30" => "Hardap",
+ "31" => "Karas",
+ "32" => "Kunene",
+ "33" => "Ohangwena",
+ "34" => "Okavango",
+ "35" => "Omaheke",
+ "36" => "Omusati",
+ "37" => "Oshana",
+ "38" => "Oshikoto",
+ "39" => "Otjozondjupa"
+ ),
+ "NE" => array(
+ "01" => "Agadez",
+ "02" => "Diffa",
+ "03" => "Dosso",
+ "04" => "Maradi",
+ "05" => "Niamey",
+ "06" => "Tahoua",
+ "07" => "Zinder",
+ "08" => "Niamey"
+ ),
+ "NG" => array(
+ "05" => "Lagos",
+ "11" => "Federal Capital Territory",
+ "16" => "Ogun",
+ "21" => "Akwa Ibom",
+ "22" => "Cross River",
+ "23" => "Kaduna",
+ "24" => "Katsina",
+ "25" => "Anambra",
+ "26" => "Benue",
+ "27" => "Borno",
+ "28" => "Imo",
+ "29" => "Kano",
+ "30" => "Kwara",
+ "31" => "Niger",
+ "32" => "Oyo",
+ "35" => "Adamawa",
+ "36" => "Delta",
+ "37" => "Edo",
+ "39" => "Jigawa",
+ "40" => "Kebbi",
+ "41" => "Kogi",
+ "42" => "Osun",
+ "43" => "Taraba",
+ "44" => "Yobe",
+ "45" => "Abia",
+ "46" => "Bauchi",
+ "47" => "Enugu",
+ "48" => "Ondo",
+ "49" => "Plateau",
+ "50" => "Rivers",
+ "51" => "Sokoto",
+ "52" => "Bayelsa",
+ "53" => "Ebonyi",
+ "54" => "Ekiti",
+ "55" => "Gombe",
+ "56" => "Nassarawa",
+ "57" => "Zamfara"
+ ),
+ "NI" => array(
+ "01" => "Boaco",
+ "02" => "Carazo",
+ "03" => "Chinandega",
+ "04" => "Chontales",
+ "05" => "Esteli",
+ "06" => "Granada",
+ "07" => "Jinotega",
+ "08" => "Leon",
+ "09" => "Madriz",
+ "10" => "Managua",
+ "11" => "Masaya",
+ "12" => "Matagalpa",
+ "13" => "Nueva Segovia",
+ "14" => "Rio San Juan",
+ "15" => "Rivas",
+ "16" => "Zelaya",
+ "17" => "Autonoma Atlantico Norte",
+ "18" => "Region Autonoma Atlantico Sur"
+ ),
+ "NL" => array(
+ "01" => "Drenthe",
+ "02" => "Friesland",
+ "03" => "Gelderland",
+ "04" => "Groningen",
+ "05" => "Limburg",
+ "06" => "Noord-Brabant",
+ "07" => "Noord-Holland",
+ "09" => "Utrecht",
+ "10" => "Zeeland",
+ "11" => "Zuid-Holland",
+ "15" => "Overijssel",
+ "16" => "Flevoland"
+ ),
+ "NO" => array(
+ "01" => "Akershus",
+ "02" => "Aust-Agder",
+ "04" => "Buskerud",
+ "05" => "Finnmark",
+ "06" => "Hedmark",
+ "07" => "Hordaland",
+ "08" => "More og Romsdal",
+ "09" => "Nordland",
+ "10" => "Nord-Trondelag",
+ "11" => "Oppland",
+ "12" => "Oslo",
+ "13" => "Ostfold",
+ "14" => "Rogaland",
+ "15" => "Sogn og Fjordane",
+ "16" => "Sor-Trondelag",
+ "17" => "Telemark",
+ "18" => "Troms",
+ "19" => "Vest-Agder",
+ "20" => "Vestfold"
+ ),
+ "NP" => array(
+ "01" => "Bagmati",
+ "02" => "Bheri",
+ "03" => "Dhawalagiri",
+ "04" => "Gandaki",
+ "05" => "Janakpur",
+ "06" => "Karnali",
+ "07" => "Kosi",
+ "08" => "Lumbini",
+ "09" => "Mahakali",
+ "10" => "Mechi",
+ "11" => "Narayani",
+ "12" => "Rapti",
+ "13" => "Sagarmatha",
+ "14" => "Seti"
+ ),
+ "NR" => array(
+ "01" => "Aiwo",
+ "02" => "Anabar",
+ "03" => "Anetan",
+ "04" => "Anibare",
+ "05" => "Baiti",
+ "06" => "Boe",
+ "07" => "Buada",
+ "08" => "Denigomodu",
+ "09" => "Ewa",
+ "10" => "Ijuw",
+ "11" => "Meneng",
+ "12" => "Nibok",
+ "13" => "Uaboe",
+ "14" => "Yaren"
+ ),
+ "NZ" => array(
+ "10" => "Chatham Islands",
+ "E7" => "Auckland",
+ "E8" => "Bay of Plenty",
+ "E9" => "Canterbury",
+ "F1" => "Gisborne",
+ "F2" => "Hawke's Bay",
+ "F3" => "Manawatu-Wanganui",
+ "F4" => "Marlborough",
+ "F5" => "Nelson",
+ "F6" => "Northland",
+ "F7" => "Otago",
+ "F8" => "Southland",
+ "F9" => "Taranaki",
+ "G1" => "Waikato",
+ "G2" => "Wellington",
+ "G3" => "West Coast"
+ ),
+ "OM" => array(
+ "01" => "Ad Dakhiliyah",
+ "02" => "Al Batinah",
+ "03" => "Al Wusta",
+ "04" => "Ash Sharqiyah",
+ "05" => "Az Zahirah",
+ "06" => "Masqat",
+ "07" => "Musandam",
+ "08" => "Zufar"
+ ),
+ "PA" => array(
+ "01" => "Bocas del Toro",
+ "02" => "Chiriqui",
+ "03" => "Cocle",
+ "04" => "Colon",
+ "05" => "Darien",
+ "06" => "Herrera",
+ "07" => "Los Santos",
+ "08" => "Panama",
+ "09" => "San Blas",
+ "10" => "Veraguas"
+ ),
+ "PE" => array(
+ "01" => "Amazonas",
+ "02" => "Ancash",
+ "03" => "Apurimac",
+ "04" => "Arequipa",
+ "05" => "Ayacucho",
+ "06" => "Cajamarca",
+ "07" => "Callao",
+ "08" => "Cusco",
+ "09" => "Huancavelica",
+ "10" => "Huanuco",
+ "11" => "Ica",
+ "12" => "Junin",
+ "13" => "La Libertad",
+ "14" => "Lambayeque",
+ "15" => "Lima",
+ "16" => "Loreto",
+ "17" => "Madre de Dios",
+ "18" => "Moquegua",
+ "19" => "Pasco",
+ "20" => "Piura",
+ "21" => "Puno",
+ "22" => "San Martin",
+ "23" => "Tacna",
+ "24" => "Tumbes",
+ "25" => "Ucayali"
+ ),
+ "PG" => array(
+ "01" => "Central",
+ "02" => "Gulf",
+ "03" => "Milne Bay",
+ "04" => "Northern",
+ "05" => "Southern Highlands",
+ "06" => "Western",
+ "07" => "North Solomons",
+ "08" => "Chimbu",
+ "09" => "Eastern Highlands",
+ "10" => "East New Britain",
+ "11" => "East Sepik",
+ "12" => "Madang",
+ "13" => "Manus",
+ "14" => "Morobe",
+ "15" => "New Ireland",
+ "16" => "Western Highlands",
+ "17" => "West New Britain",
+ "18" => "Sandaun",
+ "19" => "Enga",
+ "20" => "National Capital"
+ ),
+ "PH" => array(
+ "01" => "Abra",
+ "02" => "Agusan del Norte",
+ "03" => "Agusan del Sur",
+ "04" => "Aklan",
+ "05" => "Albay",
+ "06" => "Antique",
+ "07" => "Bataan",
+ "08" => "Batanes",
+ "09" => "Batangas",
+ "10" => "Benguet",
+ "11" => "Bohol",
+ "12" => "Bukidnon",
+ "13" => "Bulacan",
+ "14" => "Cagayan",
+ "15" => "Camarines Norte",
+ "16" => "Camarines Sur",
+ "17" => "Camiguin",
+ "18" => "Capiz",
+ "19" => "Catanduanes",
+ "20" => "Cavite",
+ "21" => "Cebu",
+ "22" => "Basilan",
+ "23" => "Eastern Samar",
+ "24" => "Davao",
+ "25" => "Davao del Sur",
+ "26" => "Davao Oriental",
+ "27" => "Ifugao",
+ "28" => "Ilocos Norte",
+ "29" => "Ilocos Sur",
+ "30" => "Iloilo",
+ "31" => "Isabela",
+ "32" => "Kalinga-Apayao",
+ "33" => "Laguna",
+ "34" => "Lanao del Norte",
+ "35" => "Lanao del Sur",
+ "36" => "La Union",
+ "37" => "Leyte",
+ "38" => "Marinduque",
+ "39" => "Masbate",
+ "40" => "Mindoro Occidental",
+ "41" => "Mindoro Oriental",
+ "42" => "Misamis Occidental",
+ "43" => "Misamis Oriental",
+ "44" => "Mountain",
+ "45" => "Negros Occidental",
+ "46" => "Negros Oriental",
+ "47" => "Nueva Ecija",
+ "48" => "Nueva Vizcaya",
+ "49" => "Palawan",
+ "50" => "Pampanga",
+ "51" => "Pangasinan",
+ "53" => "Rizal",
+ "54" => "Romblon",
+ "55" => "Samar",
+ "56" => "Maguindanao",
+ "57" => "North Cotabato",
+ "58" => "Sorsogon",
+ "59" => "Southern Leyte",
+ "60" => "Sulu",
+ "61" => "Surigao del Norte",
+ "62" => "Surigao del Sur",
+ "63" => "Tarlac",
+ "64" => "Zambales",
+ "65" => "Zamboanga del Norte",
+ "66" => "Zamboanga del Sur",
+ "67" => "Northern Samar",
+ "68" => "Quirino",
+ "69" => "Siquijor",
+ "70" => "South Cotabato",
+ "71" => "Sultan Kudarat",
+ "72" => "Tawitawi",
+ "A1" => "Angeles",
+ "A2" => "Bacolod",
+ "A3" => "Bago",
+ "A4" => "Baguio",
+ "A5" => "Bais",
+ "A6" => "Basilan City",
+ "A7" => "Batangas City",
+ "A8" => "Butuan",
+ "A9" => "Cabanatuan",
+ "B1" => "Cadiz",
+ "B2" => "Cagayan de Oro",
+ "B3" => "Calbayog",
+ "B4" => "Caloocan",
+ "B5" => "Canlaon",
+ "B6" => "Cavite City",
+ "B7" => "Cebu City",
+ "B8" => "Cotabato",
+ "B9" => "Dagupan",
+ "C1" => "Danao",
+ "C2" => "Dapitan",
+ "C3" => "Davao City",
+ "C4" => "Dipolog",
+ "C5" => "Dumaguete",
+ "C6" => "General Santos",
+ "C7" => "Gingoog",
+ "C8" => "Iligan",
+ "C9" => "Iloilo City",
+ "D1" => "Iriga",
+ "D2" => "La Carlota",
+ "D3" => "Laoag",
+ "D4" => "Lapu-Lapu",
+ "D5" => "Legaspi",
+ "D6" => "Lipa",
+ "D7" => "Lucena",
+ "D8" => "Mandaue",
+ "D9" => "Manila",
+ "E1" => "Marawi",
+ "E2" => "Naga",
+ "E3" => "Olongapo",
+ "E4" => "Ormoc",
+ "E5" => "Oroquieta",
+ "E6" => "Ozamis",
+ "E7" => "Pagadian",
+ "E8" => "Palayan",
+ "E9" => "Pasay",
+ "F1" => "Puerto Princesa",
+ "F2" => "Quezon City",
+ "F3" => "Roxas",
+ "F4" => "San Carlos",
+ "F5" => "San Carlos",
+ "F6" => "San Jose",
+ "F7" => "San Pablo",
+ "F8" => "Silay",
+ "F9" => "Surigao",
+ "G1" => "Tacloban",
+ "G2" => "Tagaytay",
+ "G3" => "Tagbilaran",
+ "G4" => "Tangub",
+ "G5" => "Toledo",
+ "G6" => "Trece Martires",
+ "G7" => "Zamboanga",
+ "G8" => "Aurora",
+ "H2" => "Quezon",
+ "H3" => "Negros Occidental",
+ "I6" => "Compostela Valley",
+ "I7" => "Davao del Norte",
+ "J7" => "Kalinga",
+ "K6" => "Malaybalay",
+ "M5" => "San Jose del Monte",
+ "M6" => "San Juan",
+ "M8" => "Santiago",
+ "M9" => "Sarangani",
+ "N1" => "Sipalay",
+ "N3" => "Surigao del Norte",
+ "P1" => "Zambales",
+ "P2" => "Zamboanga"
+ ),
+ "PK" => array(
+ "01" => "Federally Administered Tribal Areas",
+ "02" => "Balochistan",
+ "03" => "North-West Frontier",
+ "04" => "Punjab",
+ "05" => "Sindh",
+ "06" => "Azad Kashmir",
+ "07" => "Northern Areas",
+ "08" => "Islamabad"
+ ),
+ "PL" => array(
+ "72" => "Dolnoslaskie",
+ "73" => "Kujawsko-Pomorskie",
+ "74" => "Lodzkie",
+ "75" => "Lubelskie",
+ "76" => "Lubuskie",
+ "77" => "Malopolskie",
+ "78" => "Mazowieckie",
+ "79" => "Opolskie",
+ "80" => "Podkarpackie",
+ "81" => "Podlaskie",
+ "82" => "Pomorskie",
+ "83" => "Slaskie",
+ "84" => "Swietokrzyskie",
+ "85" => "Warminsko-Mazurskie",
+ "86" => "Wielkopolskie",
+ "87" => "Zachodniopomorskie"
+ ),
+ "PS" => array(
+ "GZ" => "Gaza",
+ "WE" => "West Bank"
+ ),
+ "PT" => array(
+ "02" => "Aveiro",
+ "03" => "Beja",
+ "04" => "Braga",
+ "05" => "Braganca",
+ "06" => "Castelo Branco",
+ "07" => "Coimbra",
+ "08" => "Evora",
+ "09" => "Faro",
+ "10" => "Madeira",
+ "11" => "Guarda",
+ "13" => "Leiria",
+ "14" => "Lisboa",
+ "16" => "Portalegre",
+ "17" => "Porto",
+ "18" => "Santarem",
+ "19" => "Setubal",
+ "20" => "Viana do Castelo",
+ "21" => "Vila Real",
+ "22" => "Viseu",
+ "23" => "Azores"
+ ),
+ "PY" => array(
+ "01" => "Alto Parana",
+ "02" => "Amambay",
+ "03" => "Boqueron",
+ "04" => "Caaguazu",
+ "05" => "Caazapa",
+ "06" => "Central",
+ "07" => "Concepcion",
+ "08" => "Cordillera",
+ "10" => "Guaira",
+ "11" => "Itapua",
+ "12" => "Misiones",
+ "13" => "Neembucu",
+ "15" => "Paraguari",
+ "16" => "Presidente Hayes",
+ "17" => "San Pedro",
+ "19" => "Canindeyu",
+ "20" => "Chaco",
+ "21" => "Nueva Asuncion",
+ "23" => "Alto Paraguay"
+ ),
+ "QA" => array(
+ "01" => "Ad Dawhah",
+ "02" => "Al Ghuwariyah",
+ "03" => "Al Jumaliyah",
+ "04" => "Al Khawr",
+ "05" => "Al Wakrah Municipality",
+ "06" => "Ar Rayyan",
+ "08" => "Madinat ach Shamal",
+ "09" => "Umm Salal",
+ "10" => "Al Wakrah",
+ "11" => "Jariyan al Batnah",
+ "12" => "Umm Sa'id"
+ ),
+ "RO" => array(
+ "01" => "Alba",
+ "02" => "Arad",
+ "03" => "Arges",
+ "04" => "Bacau",
+ "05" => "Bihor",
+ "06" => "Bistrita-Nasaud",
+ "07" => "Botosani",
+ "08" => "Braila",
+ "09" => "Brasov",
+ "10" => "Bucuresti",
+ "11" => "Buzau",
+ "12" => "Caras-Severin",
+ "13" => "Cluj",
+ "14" => "Constanta",
+ "15" => "Covasna",
+ "16" => "Dambovita",
+ "17" => "Dolj",
+ "18" => "Galati",
+ "19" => "Gorj",
+ "20" => "Harghita",
+ "21" => "Hunedoara",
+ "22" => "Ialomita",
+ "23" => "Iasi",
+ "25" => "Maramures",
+ "26" => "Mehedinti",
+ "27" => "Mures",
+ "28" => "Neamt",
+ "29" => "Olt",
+ "30" => "Prahova",
+ "31" => "Salaj",
+ "32" => "Satu Mare",
+ "33" => "Sibiu",
+ "34" => "Suceava",
+ "35" => "Teleorman",
+ "36" => "Timis",
+ "37" => "Tulcea",
+ "38" => "Vaslui",
+ "39" => "Valcea",
+ "40" => "Vrancea",
+ "41" => "Calarasi",
+ "42" => "Giurgiu",
+ "43" => "Ilfov"
+ ),
+ "RS" => array(
+ "01" => "Kosovo",
+ "02" => "Vojvodina"
+ ),
+ "RU" => array(
+ "01" => "Adygeya, Republic of",
+ "02" => "Aginsky Buryatsky AO",
+ "03" => "Gorno-Altay",
+ "04" => "Altaisky krai",
+ "05" => "Amur",
+ "06" => "Arkhangel'sk",
+ "07" => "Astrakhan'",
+ "08" => "Bashkortostan",
+ "09" => "Belgorod",
+ "10" => "Bryansk",
+ "11" => "Buryat",
+ "12" => "Chechnya",
+ "13" => "Chelyabinsk",
+ "14" => "Chita",
+ "15" => "Chukot",
+ "16" => "Chuvashia",
+ "17" => "Dagestan",
+ "18" => "Evenk",
+ "19" => "Ingush",
+ "20" => "Irkutsk",
+ "21" => "Ivanovo",
+ "22" => "Kabardin-Balkar",
+ "23" => "Kaliningrad",
+ "24" => "Kalmyk",
+ "25" => "Kaluga",
+ "26" => "Kamchatka",
+ "27" => "Karachay-Cherkess",
+ "28" => "Karelia",
+ "29" => "Kemerovo",
+ "30" => "Khabarovsk",
+ "31" => "Khakass",
+ "32" => "Khanty-Mansiy",
+ "33" => "Kirov",
+ "34" => "Komi",
+ "35" => "Komi-Permyak",
+ "36" => "Koryak",
+ "37" => "Kostroma",
+ "38" => "Krasnodar",
+ "39" => "Krasnoyarsk",
+ "40" => "Kurgan",
+ "41" => "Kursk",
+ "42" => "Leningrad",
+ "43" => "Lipetsk",
+ "44" => "Magadan",
+ "45" => "Mariy-El",
+ "46" => "Mordovia",
+ "47" => "Moskva",
+ "48" => "Moscow City",
+ "49" => "Murmansk",
+ "50" => "Nenets",
+ "51" => "Nizhegorod",
+ "52" => "Novgorod",
+ "53" => "Novosibirsk",
+ "54" => "Omsk",
+ "55" => "Orenburg",
+ "56" => "Orel",
+ "57" => "Penza",
+ "58" => "Perm'",
+ "59" => "Primor'ye",
+ "60" => "Pskov",
+ "61" => "Rostov",
+ "62" => "Ryazan'",
+ "63" => "Sakha",
+ "64" => "Sakhalin",
+ "65" => "Samara",
+ "66" => "Saint Petersburg City",
+ "67" => "Saratov",
+ "68" => "North Ossetia",
+ "69" => "Smolensk",
+ "70" => "Stavropol'",
+ "71" => "Sverdlovsk",
+ "72" => "Tambovskaya oblast",
+ "73" => "Tatarstan",
+ "74" => "Taymyr",
+ "75" => "Tomsk",
+ "76" => "Tula",
+ "77" => "Tver'",
+ "78" => "Tyumen'",
+ "79" => "Tuva",
+ "80" => "Udmurt",
+ "81" => "Ul'yanovsk",
+ "82" => "Ust-Orda Buryat",
+ "83" => "Vladimir",
+ "84" => "Volgograd",
+ "85" => "Vologda",
+ "86" => "Voronezh",
+ "87" => "Yamal-Nenets",
+ "88" => "Yaroslavl'",
+ "89" => "Yevrey",
+ "90" => "Permskiy Kray",
+ "91" => "Krasnoyarskiy Kray",
+ "92" => "Kamchatskiy Kray",
+ "93" => "Zabaykal'skiy Kray"
+ ),
+ "RW" => array(
+ "01" => "Butare",
+ "06" => "Gitarama",
+ "07" => "Kibungo",
+ "09" => "Kigali",
+ "11" => "Est",
+ "12" => "Kigali",
+ "13" => "Nord",
+ "14" => "Ouest",
+ "15" => "Sud"
+ ),
+ "SA" => array(
+ "02" => "Al Bahah",
+ "05" => "Al Madinah",
+ "06" => "Ash Sharqiyah",
+ "08" => "Al Qasim",
+ "10" => "Ar Riyad",
+ "11" => "Asir Province",
+ "13" => "Ha'il",
+ "14" => "Makkah",
+ "15" => "Al Hudud ash Shamaliyah",
+ "16" => "Najran",
+ "17" => "Jizan",
+ "19" => "Tabuk",
+ "20" => "Al Jawf"
+ ),
+ "SB" => array(
+ "03" => "Malaita",
+ "06" => "Guadalcanal",
+ "07" => "Isabel",
+ "08" => "Makira",
+ "09" => "Temotu",
+ "10" => "Central",
+ "11" => "Western",
+ "12" => "Choiseul",
+ "13" => "Rennell and Bellona"
+ ),
+ "SC" => array(
+ "01" => "Anse aux Pins",
+ "02" => "Anse Boileau",
+ "03" => "Anse Etoile",
+ "04" => "Anse Louis",
+ "05" => "Anse Royale",
+ "06" => "Baie Lazare",
+ "07" => "Baie Sainte Anne",
+ "08" => "Beau Vallon",
+ "09" => "Bel Air",
+ "10" => "Bel Ombre",
+ "11" => "Cascade",
+ "12" => "Glacis",
+ "13" => "Grand' Anse",
+ "14" => "Grand' Anse",
+ "15" => "La Digue",
+ "16" => "La Riviere Anglaise",
+ "17" => "Mont Buxton",
+ "18" => "Mont Fleuri",
+ "19" => "Plaisance",
+ "20" => "Pointe La Rue",
+ "21" => "Port Glaud",
+ "22" => "Saint Louis",
+ "23" => "Takamaka"
+ ),
+ "SD" => array(
+ "27" => "Al Wusta",
+ "28" => "Al Istiwa'iyah",
+ "29" => "Al Khartum",
+ "30" => "Ash Shamaliyah",
+ "31" => "Ash Sharqiyah",
+ "32" => "Bahr al Ghazal",
+ "33" => "Darfur",
+ "34" => "Kurdufan",
+ "35" => "Upper Nile",
+ "40" => "Al Wahadah State",
+ "44" => "Central Equatoria State"
+ ),
+ "SE" => array(
+ "02" => "Blekinge Lan",
+ "03" => "Gavleborgs Lan",
+ "05" => "Gotlands Lan",
+ "06" => "Hallands Lan",
+ "07" => "Jamtlands Lan",
+ "08" => "Jonkopings Lan",
+ "09" => "Kalmar Lan",
+ "10" => "Dalarnas Lan",
+ "12" => "Kronobergs Lan",
+ "14" => "Norrbottens Lan",
+ "15" => "Orebro Lan",
+ "16" => "Ostergotlands Lan",
+ "18" => "Sodermanlands Lan",
+ "21" => "Uppsala Lan",
+ "22" => "Varmlands Lan",
+ "23" => "Vasterbottens Lan",
+ "24" => "Vasternorrlands Lan",
+ "25" => "Vastmanlands Lan",
+ "26" => "Stockholms Lan",
+ "27" => "Skane Lan",
+ "28" => "Vastra Gotaland"
+ ),
+ "SH" => array(
+ "01" => "Ascension",
+ "02" => "Saint Helena",
+ "03" => "Tristan da Cunha"
+ ),
+ "SI" => array(
+ "01" => "Ajdovscina Commune",
+ "02" => "Beltinci Commune",
+ "03" => "Bled Commune",
+ "04" => "Bohinj Commune",
+ "05" => "Borovnica Commune",
+ "06" => "Bovec Commune",
+ "07" => "Brda Commune",
+ "08" => "Brezice Commune",
+ "09" => "Brezovica Commune",
+ "11" => "Celje Commune",
+ "12" => "Cerklje na Gorenjskem Commune",
+ "13" => "Cerknica Commune",
+ "14" => "Cerkno Commune",
+ "15" => "Crensovci Commune",
+ "16" => "Crna na Koroskem Commune",
+ "17" => "Crnomelj Commune",
+ "19" => "Divaca Commune",
+ "20" => "Dobrepolje Commune",
+ "22" => "Dol pri Ljubljani Commune",
+ "24" => "Dornava Commune",
+ "25" => "Dravograd Commune",
+ "26" => "Duplek Commune",
+ "27" => "Gorenja vas-Poljane Commune",
+ "28" => "Gorisnica Commune",
+ "29" => "Gornja Radgona Commune",
+ "30" => "Gornji Grad Commune",
+ "31" => "Gornji Petrovci Commune",
+ "32" => "Grosuplje Commune",
+ "34" => "Hrastnik Commune",
+ "35" => "Hrpelje-Kozina Commune",
+ "36" => "Idrija Commune",
+ "37" => "Ig Commune",
+ "38" => "Ilirska Bistrica Commune",
+ "39" => "Ivancna Gorica Commune",
+ "40" => "Izola-Isola Commune",
+ "42" => "Jursinci Commune",
+ "44" => "Kanal Commune",
+ "45" => "Kidricevo Commune",
+ "46" => "Kobarid Commune",
+ "47" => "Kobilje Commune",
+ "49" => "Komen Commune",
+ "50" => "Koper-Capodistria Urban Commune",
+ "51" => "Kozje Commune",
+ "52" => "Kranj Commune",
+ "53" => "Kranjska Gora Commune",
+ "54" => "Krsko Commune",
+ "55" => "Kungota Commune",
+ "57" => "Lasko Commune",
+ "61" => "Ljubljana Urban Commune",
+ "62" => "Ljubno Commune",
+ "64" => "Logatec Commune",
+ "66" => "Loski Potok Commune",
+ "68" => "Lukovica Commune",
+ "71" => "Medvode Commune",
+ "72" => "Menges Commune",
+ "73" => "Metlika Commune",
+ "74" => "Mezica Commune",
+ "76" => "Mislinja Commune",
+ "77" => "Moravce Commune",
+ "78" => "Moravske Toplice Commune",
+ "79" => "Mozirje Commune",
+ "80" => "Murska Sobota Urban Commune",
+ "81" => "Muta Commune",
+ "82" => "Naklo Commune",
+ "83" => "Nazarje Commune",
+ "84" => "Nova Gorica Urban Commune",
+ "86" => "Odranci Commune",
+ "87" => "Ormoz Commune",
+ "88" => "Osilnica Commune",
+ "89" => "Pesnica Commune",
+ "91" => "Pivka Commune",
+ "92" => "Podcetrtek Commune",
+ "94" => "Postojna Commune",
+ "97" => "Puconci Commune",
+ "98" => "Race-Fram Commune",
+ "99" => "Radece Commune",
+ "A1" => "Radenci Commune",
+ "A2" => "Radlje ob Dravi Commune",
+ "A3" => "Radovljica Commune",
+ "A6" => "Rogasovci Commune",
+ "A7" => "Rogaska Slatina Commune",
+ "A8" => "Rogatec Commune",
+ "B1" => "Semic Commune",
+ "B2" => "Sencur Commune",
+ "B3" => "Sentilj Commune",
+ "B4" => "Sentjernej Commune",
+ "B6" => "Sevnica Commune",
+ "B7" => "Sezana Commune",
+ "B8" => "Skocjan Commune",
+ "B9" => "Skofja Loka Commune",
+ "C1" => "Skofljica Commune",
+ "C2" => "Slovenj Gradec Urban Commune",
+ "C4" => "Slovenske Konjice Commune",
+ "C5" => "Smarje pri Jelsah Commune",
+ "C6" => "Smartno ob Paki Commune",
+ "C7" => "Sostanj Commune",
+ "C8" => "Starse Commune",
+ "C9" => "Store Commune",
+ "D1" => "Sveti Jurij Commune",
+ "D2" => "Tolmin Commune",
+ "D3" => "Trbovlje Commune",
+ "D4" => "Trebnje Commune",
+ "D5" => "Trzic Commune",
+ "D6" => "Turnisce Commune",
+ "D7" => "Velenje Urban Commune",
+ "D8" => "Velike Lasce Commune",
+ "E1" => "Vipava Commune",
+ "E2" => "Vitanje Commune",
+ "E3" => "Vodice Commune",
+ "E5" => "Vrhnika Commune",
+ "E6" => "Vuzenica Commune",
+ "E7" => "Zagorje ob Savi Commune",
+ "E9" => "Zavrc Commune",
+ "F1" => "Zelezniki Commune",
+ "F2" => "Ziri Commune",
+ "F3" => "Zrece Commune",
+ "F4" => "Benedikt Commune",
+ "F5" => "Bistrica ob Sotli Commune",
+ "F6" => "Bloke Commune",
+ "F7" => "Braslovce Commune",
+ "F8" => "Cankova Commune",
+ "F9" => "Cerkvenjak Commune",
+ "G1" => "Destrnik Commune",
+ "G2" => "Dobje Commune",
+ "G3" => "Dobrna Commune",
+ "G4" => "Dobrova-Horjul-Polhov Gradec Commune",
+ "G5" => "Dobrovnik-Dobronak Commune",
+ "G6" => "Dolenjske Toplice Commune",
+ "G7" => "Domzale Commune",
+ "G8" => "Grad Commune",
+ "G9" => "Hajdina Commune",
+ "H1" => "Hoce-Slivnica Commune",
+ "H2" => "Hodos-Hodos Commune",
+ "H3" => "Horjul Commune",
+ "H4" => "Jesenice Commune",
+ "H5" => "Jezersko Commune",
+ "H6" => "Kamnik Commune",
+ "H7" => "Kocevje Commune",
+ "H8" => "Komenda Commune",
+ "H9" => "Kostel Commune",
+ "I1" => "Krizevci Commune",
+ "I2" => "Kuzma Commune",
+ "I3" => "Lenart Commune",
+ "I4" => "Lendava-Lendva Commune",
+ "I5" => "Litija Commune",
+ "I6" => "Ljutomer Commune",
+ "I7" => "Loska Dolina Commune",
+ "I8" => "Lovrenc na Pohorju Commune",
+ "I9" => "Luce Commune",
+ "J1" => "Majsperk Commune",
+ "J2" => "Maribor Commune",
+ "J3" => "Markovci Commune",
+ "J4" => "Miklavz na Dravskem polju Commune",
+ "J5" => "Miren-Kostanjevica Commune",
+ "J6" => "Mirna Pec Commune",
+ "J7" => "Novo mesto Urban Commune",
+ "J8" => "Oplotnica Commune",
+ "J9" => "Piran-Pirano Commune",
+ "K1" => "Podlehnik Commune",
+ "K2" => "Podvelka Commune",
+ "K3" => "Polzela Commune",
+ "K4" => "Prebold Commune",
+ "K5" => "Preddvor Commune",
+ "K6" => "Prevalje Commune",
+ "K7" => "Ptuj Urban Commune",
+ "K8" => "Ravne na Koroskem Commune",
+ "K9" => "Razkrizje Commune",
+ "L1" => "Ribnica Commune",
+ "L2" => "Ribnica na Pohorju Commune",
+ "L3" => "Ruse Commune",
+ "L4" => "Salovci Commune",
+ "L5" => "Selnica ob Dravi Commune",
+ "L6" => "Sempeter-Vrtojba Commune",
+ "L7" => "Sentjur pri Celju Commune",
+ "L8" => "Slovenska Bistrica Commune",
+ "L9" => "Smartno pri Litiji Commune",
+ "M1" => "Sodrazica Commune",
+ "M2" => "Solcava Commune",
+ "M3" => "Sveta Ana Commune",
+ "M4" => "Sveti Andraz v Slovenskih goricah Commune",
+ "M5" => "Tabor Commune",
+ "M6" => "Tisina Commune",
+ "M7" => "Trnovska vas Commune",
+ "M8" => "Trzin Commune",
+ "M9" => "Velika Polana Commune",
+ "N1" => "Verzej Commune",
+ "N2" => "Videm Commune",
+ "N3" => "Vojnik Commune",
+ "N4" => "Vransko Commune",
+ "N5" => "Zalec Commune",
+ "N6" => "Zetale Commune",
+ "N7" => "Zirovnica Commune",
+ "N8" => "Zuzemberk Commune",
+ "N9" => "Apace Commune",
+ "O1" => "Cirkulane Commune"
+ ),
+ "SK" => array(
+ "01" => "Banska Bystrica",
+ "02" => "Bratislava",
+ "03" => "Kosice",
+ "04" => "Nitra",
+ "05" => "Presov",
+ "06" => "Trencin",
+ "07" => "Trnava",
+ "08" => "Zilina"
+ ),
+ "SL" => array(
+ "01" => "Eastern",
+ "02" => "Northern",
+ "03" => "Southern",
+ "04" => "Western Area"
+ ),
+ "SM" => array(
+ "01" => "Acquaviva",
+ "02" => "Chiesanuova",
+ "03" => "Domagnano",
+ "04" => "Faetano",
+ "05" => "Fiorentino",
+ "06" => "Borgo Maggiore",
+ "07" => "San Marino",
+ "08" => "Monte Giardino",
+ "09" => "Serravalle"
+ ),
+ "SN" => array(
+ "01" => "Dakar",
+ "03" => "Diourbel",
+ "05" => "Tambacounda",
+ "07" => "Thies",
+ "09" => "Fatick",
+ "10" => "Kaolack",
+ "11" => "Kolda",
+ "12" => "Ziguinchor",
+ "13" => "Louga",
+ "14" => "Saint-Louis",
+ "15" => "Matam"
+ ),
+ "SO" => array(
+ "01" => "Bakool",
+ "02" => "Banaadir",
+ "03" => "Bari",
+ "04" => "Bay",
+ "05" => "Galguduud",
+ "06" => "Gedo",
+ "07" => "Hiiraan",
+ "08" => "Jubbada Dhexe",
+ "09" => "Jubbada Hoose",
+ "10" => "Mudug",
+ "11" => "Nugaal",
+ "12" => "Sanaag",
+ "13" => "Shabeellaha Dhexe",
+ "14" => "Shabeellaha Hoose",
+ "16" => "Woqooyi Galbeed",
+ "18" => "Nugaal",
+ "19" => "Togdheer",
+ "20" => "Woqooyi Galbeed",
+ "21" => "Awdal",
+ "22" => "Sool"
+ ),
+ "SR" => array(
+ "10" => "Brokopondo",
+ "11" => "Commewijne",
+ "12" => "Coronie",
+ "13" => "Marowijne",
+ "14" => "Nickerie",
+ "15" => "Para",
+ "16" => "Paramaribo",
+ "17" => "Saramacca",
+ "18" => "Sipaliwini",
+ "19" => "Wanica"
+ ),
+ "SS" => array(
+ "01" => "Central Equatoria",
+ "02" => "Eastern Equatoria",
+ "03" => "Jonglei",
+ "04" => "Lakes",
+ "05" => "Northern Bahr el Ghazal",
+ "06" => "Unity",
+ "07" => "Upper Nile",
+ "08" => "Warrap",
+ "09" => "Western Bahr el Ghazal",
+ "10" => "Western Equatoria"
+ ),
+ "ST" => array(
+ "01" => "Principe",
+ "02" => "Sao Tome"
+ ),
+ "SV" => array(
+ "01" => "Ahuachapan",
+ "02" => "Cabanas",
+ "03" => "Chalatenango",
+ "04" => "Cuscatlan",
+ "05" => "La Libertad",
+ "06" => "La Paz",
+ "07" => "La Union",
+ "08" => "Morazan",
+ "09" => "San Miguel",
+ "10" => "San Salvador",
+ "11" => "Santa Ana",
+ "12" => "San Vicente",
+ "13" => "Sonsonate",
+ "14" => "Usulutan"
+ ),
+ "SY" => array(
+ "01" => "Al Hasakah",
+ "02" => "Al Ladhiqiyah",
+ "03" => "Al Qunaytirah",
+ "04" => "Ar Raqqah",
+ "05" => "As Suwayda'",
+ "06" => "Dar",
+ "07" => "Dayr az Zawr",
+ "08" => "Rif Dimashq",
+ "09" => "Halab",
+ "10" => "Hamah",
+ "11" => "Hims",
+ "12" => "Idlib",
+ "13" => "Dimashq",
+ "14" => "Tartus"
+ ),
+ "SZ" => array(
+ "01" => "Hhohho",
+ "02" => "Lubombo",
+ "03" => "Manzini",
+ "04" => "Shiselweni",
+ "05" => "Praslin"
+ ),
+ "TD" => array(
+ "01" => "Batha",
+ "02" => "Biltine",
+ "03" => "Borkou-Ennedi-Tibesti",
+ "04" => "Chari-Baguirmi",
+ "05" => "Guera",
+ "06" => "Kanem",
+ "07" => "Lac",
+ "08" => "Logone Occidental",
+ "09" => "Logone Oriental",
+ "10" => "Mayo-Kebbi",
+ "11" => "Moyen-Chari",
+ "12" => "Ouaddai",
+ "13" => "Salamat",
+ "14" => "Tandjile"
+ ),
+ "TG" => array(
+ "22" => "Centrale",
+ "23" => "Kara",
+ "24" => "Maritime",
+ "25" => "Plateaux",
+ "26" => "Savanes"
+ ),
+ "TH" => array(
+ "01" => "Mae Hong Son",
+ "02" => "Chiang Mai",
+ "03" => "Chiang Rai",
+ "04" => "Nan",
+ "05" => "Lamphun",
+ "06" => "Lampang",
+ "07" => "Phrae",
+ "08" => "Tak",
+ "09" => "Sukhothai",
+ "10" => "Uttaradit",
+ "11" => "Kamphaeng Phet",
+ "12" => "Phitsanulok",
+ "13" => "Phichit",
+ "14" => "Phetchabun",
+ "15" => "Uthai Thani",
+ "16" => "Nakhon Sawan",
+ "17" => "Nong Khai",
+ "18" => "Loei",
+ "20" => "Sakon Nakhon",
+ "21" => "Nakhon Phanom",
+ "22" => "Khon Kaen",
+ "23" => "Kalasin",
+ "24" => "Maha Sarakham",
+ "25" => "Roi Et",
+ "26" => "Chaiyaphum",
+ "27" => "Nakhon Ratchasima",
+ "28" => "Buriram",
+ "29" => "Surin",
+ "30" => "Sisaket",
+ "31" => "Narathiwat",
+ "32" => "Chai Nat",
+ "33" => "Sing Buri",
+ "34" => "Lop Buri",
+ "35" => "Ang Thong",
+ "36" => "Phra Nakhon Si Ayutthaya",
+ "37" => "Saraburi",
+ "38" => "Nonthaburi",
+ "39" => "Pathum Thani",
+ "40" => "Krung Thep",
+ "41" => "Phayao",
+ "42" => "Samut Prakan",
+ "43" => "Nakhon Nayok",
+ "44" => "Chachoengsao",
+ "45" => "Prachin Buri",
+ "46" => "Chon Buri",
+ "47" => "Rayong",
+ "48" => "Chanthaburi",
+ "49" => "Trat",
+ "50" => "Kanchanaburi",
+ "51" => "Suphan Buri",
+ "52" => "Ratchaburi",
+ "53" => "Nakhon Pathom",
+ "54" => "Samut Songkhram",
+ "55" => "Samut Sakhon",
+ "56" => "Phetchaburi",
+ "57" => "Prachuap Khiri Khan",
+ "58" => "Chumphon",
+ "59" => "Ranong",
+ "60" => "Surat Thani",
+ "61" => "Phangnga",
+ "62" => "Phuket",
+ "63" => "Krabi",
+ "64" => "Nakhon Si Thammarat",
+ "65" => "Trang",
+ "66" => "Phatthalung",
+ "67" => "Satun",
+ "68" => "Songkhla",
+ "69" => "Pattani",
+ "70" => "Yala",
+ "71" => "Ubon Ratchathani",
+ "72" => "Yasothon",
+ "73" => "Nakhon Phanom",
+ "74" => "Prachin Buri",
+ "75" => "Ubon Ratchathani",
+ "76" => "Udon Thani",
+ "77" => "Amnat Charoen",
+ "78" => "Mukdahan",
+ "79" => "Nong Bua Lamphu",
+ "80" => "Sa Kaeo"
+ ),
+ "TJ" => array(
+ "01" => "Kuhistoni Badakhshon",
+ "02" => "Khatlon",
+ "03" => "Sughd"
+ ),
+ "TM" => array(
+ "01" => "Ahal",
+ "02" => "Balkan",
+ "03" => "Dashoguz",
+ "04" => "Lebap",
+ "05" => "Mary"
+ ),
+ "TN" => array(
+ "02" => "Kasserine",
+ "03" => "Kairouan",
+ "06" => "Jendouba",
+ "10" => "Qafsah",
+ "14" => "El Kef",
+ "15" => "Al Mahdia",
+ "16" => "Al Munastir",
+ "17" => "Bajah",
+ "18" => "Bizerte",
+ "19" => "Nabeul",
+ "22" => "Siliana",
+ "23" => "Sousse",
+ "27" => "Ben Arous",
+ "28" => "Madanin",
+ "29" => "Gabes",
+ "31" => "Kebili",
+ "32" => "Sfax",
+ "33" => "Sidi Bou Zid",
+ "34" => "Tataouine",
+ "35" => "Tozeur",
+ "36" => "Tunis",
+ "37" => "Zaghouan",
+ "38" => "Aiana",
+ "39" => "Manouba"
+ ),
+ "TO" => array(
+ "01" => "Ha",
+ "02" => "Tongatapu",
+ "03" => "Vava"
+ ),
+ "TR" => array(
+ "02" => "Adiyaman",
+ "03" => "Afyonkarahisar",
+ "04" => "Agri",
+ "05" => "Amasya",
+ "07" => "Antalya",
+ "08" => "Artvin",
+ "09" => "Aydin",
+ "10" => "Balikesir",
+ "11" => "Bilecik",
+ "12" => "Bingol",
+ "13" => "Bitlis",
+ "14" => "Bolu",
+ "15" => "Burdur",
+ "16" => "Bursa",
+ "17" => "Canakkale",
+ "19" => "Corum",
+ "20" => "Denizli",
+ "21" => "Diyarbakir",
+ "22" => "Edirne",
+ "23" => "Elazig",
+ "24" => "Erzincan",
+ "25" => "Erzurum",
+ "26" => "Eskisehir",
+ "28" => "Giresun",
+ "31" => "Hatay",
+ "32" => "Mersin",
+ "33" => "Isparta",
+ "34" => "Istanbul",
+ "35" => "Izmir",
+ "37" => "Kastamonu",
+ "38" => "Kayseri",
+ "39" => "Kirklareli",
+ "40" => "Kirsehir",
+ "41" => "Kocaeli",
+ "43" => "Kutahya",
+ "44" => "Malatya",
+ "45" => "Manisa",
+ "46" => "Kahramanmaras",
+ "48" => "Mugla",
+ "49" => "Mus",
+ "50" => "Nevsehir",
+ "52" => "Ordu",
+ "53" => "Rize",
+ "54" => "Sakarya",
+ "55" => "Samsun",
+ "57" => "Sinop",
+ "58" => "Sivas",
+ "59" => "Tekirdag",
+ "60" => "Tokat",
+ "61" => "Trabzon",
+ "62" => "Tunceli",
+ "63" => "Sanliurfa",
+ "64" => "Usak",
+ "65" => "Van",
+ "66" => "Yozgat",
+ "68" => "Ankara",
+ "69" => "Gumushane",
+ "70" => "Hakkari",
+ "71" => "Konya",
+ "72" => "Mardin",
+ "73" => "Nigde",
+ "74" => "Siirt",
+ "75" => "Aksaray",
+ "76" => "Batman",
+ "77" => "Bayburt",
+ "78" => "Karaman",
+ "79" => "Kirikkale",
+ "80" => "Sirnak",
+ "81" => "Adana",
+ "82" => "Cankiri",
+ "83" => "Gaziantep",
+ "84" => "Kars",
+ "85" => "Zonguldak",
+ "86" => "Ardahan",
+ "87" => "Bartin",
+ "88" => "Igdir",
+ "89" => "Karabuk",
+ "90" => "Kilis",
+ "91" => "Osmaniye",
+ "92" => "Yalova",
+ "93" => "Duzce"
+ ),
+ "TT" => array(
+ "01" => "Arima",
+ "02" => "Caroni",
+ "03" => "Mayaro",
+ "04" => "Nariva",
+ "05" => "Port-of-Spain",
+ "06" => "Saint Andrew",
+ "07" => "Saint David",
+ "08" => "Saint George",
+ "09" => "Saint Patrick",
+ "10" => "San Fernando",
+ "11" => "Tobago",
+ "12" => "Victoria"
+ ),
+ "TW" => array(
+ "01" => "Fu-chien",
+ "02" => "Kao-hsiung",
+ "03" => "T'ai-pei",
+ "04" => "T'ai-wan"
+ ),
+ "TZ" => array(
+ "02" => "Pwani",
+ "03" => "Dodoma",
+ "04" => "Iringa",
+ "05" => "Kigoma",
+ "06" => "Kilimanjaro",
+ "07" => "Lindi",
+ "08" => "Mara",
+ "09" => "Mbeya",
+ "10" => "Morogoro",
+ "11" => "Mtwara",
+ "12" => "Mwanza",
+ "13" => "Pemba North",
+ "14" => "Ruvuma",
+ "15" => "Shinyanga",
+ "16" => "Singida",
+ "17" => "Tabora",
+ "18" => "Tanga",
+ "19" => "Kagera",
+ "20" => "Pemba South",
+ "21" => "Zanzibar Central",
+ "22" => "Zanzibar North",
+ "23" => "Dar es Salaam",
+ "24" => "Rukwa",
+ "25" => "Zanzibar Urban",
+ "26" => "Arusha",
+ "27" => "Manyara"
+ ),
+ "UA" => array(
+ "01" => "Cherkas'ka Oblast'",
+ "02" => "Chernihivs'ka Oblast'",
+ "03" => "Chernivets'ka Oblast'",
+ "04" => "Dnipropetrovs'ka Oblast'",
+ "05" => "Donets'ka Oblast'",
+ "06" => "Ivano-Frankivs'ka Oblast'",
+ "07" => "Kharkivs'ka Oblast'",
+ "08" => "Khersons'ka Oblast'",
+ "09" => "Khmel'nyts'ka Oblast'",
+ "10" => "Kirovohrads'ka Oblast'",
+ "11" => "Krym",
+ "12" => "Kyyiv",
+ "13" => "Kyyivs'ka Oblast'",
+ "14" => "Luhans'ka Oblast'",
+ "15" => "L'vivs'ka Oblast'",
+ "16" => "Mykolayivs'ka Oblast'",
+ "17" => "Odes'ka Oblast'",
+ "18" => "Poltavs'ka Oblast'",
+ "19" => "Rivnens'ka Oblast'",
+ "20" => "Sevastopol'",
+ "21" => "Sums'ka Oblast'",
+ "22" => "Ternopil's'ka Oblast'",
+ "23" => "Vinnyts'ka Oblast'",
+ "24" => "Volyns'ka Oblast'",
+ "25" => "Zakarpats'ka Oblast'",
+ "26" => "Zaporiz'ka Oblast'",
+ "27" => "Zhytomyrs'ka Oblast'"
+ ),
+ "UG" => array(
+ "26" => "Apac",
+ "28" => "Bundibugyo",
+ "29" => "Bushenyi",
+ "30" => "Gulu",
+ "31" => "Hoima",
+ "33" => "Jinja",
+ "36" => "Kalangala",
+ "37" => "Kampala",
+ "38" => "Kamuli",
+ "39" => "Kapchorwa",
+ "40" => "Kasese",
+ "41" => "Kibale",
+ "42" => "Kiboga",
+ "43" => "Kisoro",
+ "45" => "Kotido",
+ "46" => "Kumi",
+ "47" => "Lira",
+ "50" => "Masindi",
+ "52" => "Mbarara",
+ "56" => "Mubende",
+ "58" => "Nebbi",
+ "59" => "Ntungamo",
+ "60" => "Pallisa",
+ "61" => "Rakai",
+ "65" => "Adjumani",
+ "66" => "Bugiri",
+ "67" => "Busia",
+ "69" => "Katakwi",
+ "70" => "Luwero",
+ "71" => "Masaka",
+ "72" => "Moyo",
+ "73" => "Nakasongola",
+ "74" => "Sembabule",
+ "76" => "Tororo",
+ "77" => "Arua",
+ "78" => "Iganga",
+ "79" => "Kabarole",
+ "80" => "Kaberamaido",
+ "81" => "Kamwenge",
+ "82" => "Kanungu",
+ "83" => "Kayunga",
+ "84" => "Kitgum",
+ "85" => "Kyenjojo",
+ "86" => "Mayuge",
+ "87" => "Mbale",
+ "88" => "Moroto",
+ "89" => "Mpigi",
+ "90" => "Mukono",
+ "91" => "Nakapiripirit",
+ "92" => "Pader",
+ "93" => "Rukungiri",
+ "94" => "Sironko",
+ "95" => "Soroti",
+ "96" => "Wakiso",
+ "97" => "Yumbe"
+ ),
+ "US" => array(
+ "AA" => "Armed Forces Americas",
+ "AE" => "Armed Forces Europe, Middle East, & Canada",
+ "AK" => "Alaska",
+ "AL" => "Alabama",
+ "AP" => "Armed Forces Pacific",
+ "AR" => "Arkansas",
+ "AS" => "American Samoa",
+ "AZ" => "Arizona",
+ "CA" => "California",
+ "CO" => "Colorado",
+ "CT" => "Connecticut",
+ "DC" => "District of Columbia",
+ "DE" => "Delaware",
+ "FL" => "Florida",
+ "FM" => "Federated States of Micronesia",
+ "GA" => "Georgia",
+ "GU" => "Guam",
+ "HI" => "Hawaii",
+ "IA" => "Iowa",
+ "ID" => "Idaho",
+ "IL" => "Illinois",
+ "IN" => "Indiana",
+ "KS" => "Kansas",
+ "KY" => "Kentucky",
+ "LA" => "Louisiana",
+ "MA" => "Massachusetts",
+ "MD" => "Maryland",
+ "ME" => "Maine",
+ "MH" => "Marshall Islands",
+ "MI" => "Michigan",
+ "MN" => "Minnesota",
+ "MO" => "Missouri",
+ "MP" => "Northern Mariana Islands",
+ "MS" => "Mississippi",
+ "MT" => "Montana",
+ "NC" => "North Carolina",
+ "ND" => "North Dakota",
+ "NE" => "Nebraska",
+ "NH" => "New Hampshire",
+ "NJ" => "New Jersey",
+ "NM" => "New Mexico",
+ "NV" => "Nevada",
+ "NY" => "New York",
+ "OH" => "Ohio",
+ "OK" => "Oklahoma",
+ "OR" => "Oregon",
+ "PA" => "Pennsylvania",
+ "PR" => "Puerto Rico",
+ "PW" => "Palau",
+ "RI" => "Rhode Island",
+ "SC" => "South Carolina",
+ "SD" => "South Dakota",
+ "TN" => "Tennessee",
+ "TX" => "Texas",
+ "UT" => "Utah",
+ "VA" => "Virginia",
+ "VI" => "Virgin Islands",
+ "VT" => "Vermont",
+ "WA" => "Washington",
+ "WI" => "Wisconsin",
+ "WV" => "West Virginia",
+ "WY" => "Wyoming"
+ ),
+ "UY" => array(
+ "01" => "Artigas",
+ "02" => "Canelones",
+ "03" => "Cerro Largo",
+ "04" => "Colonia",
+ "05" => "Durazno",
+ "06" => "Flores",
+ "07" => "Florida",
+ "08" => "Lavalleja",
+ "09" => "Maldonado",
+ "10" => "Montevideo",
+ "11" => "Paysandu",
+ "12" => "Rio Negro",
+ "13" => "Rivera",
+ "14" => "Rocha",
+ "15" => "Salto",
+ "16" => "San Jose",
+ "17" => "Soriano",
+ "18" => "Tacuarembo",
+ "19" => "Treinta y Tres"
+ ),
+ "UZ" => array(
+ "01" => "Andijon",
+ "02" => "Bukhoro",
+ "03" => "Farghona",
+ "04" => "Jizzakh",
+ "05" => "Khorazm",
+ "06" => "Namangan",
+ "07" => "Nawoiy",
+ "08" => "Qashqadaryo",
+ "09" => "Qoraqalpoghiston",
+ "10" => "Samarqand",
+ "11" => "Sirdaryo",
+ "12" => "Surkhondaryo",
+ "13" => "Toshkent",
+ "14" => "Toshkent"
+ ),
+ "VC" => array(
+ "01" => "Charlotte",
+ "02" => "Saint Andrew",
+ "03" => "Saint David",
+ "04" => "Saint George",
+ "05" => "Saint Patrick",
+ "06" => "Grenadines"
+ ),
+ "VE" => array(
+ "01" => "Amazonas",
+ "02" => "Anzoategui",
+ "03" => "Apure",
+ "04" => "Aragua",
+ "05" => "Barinas",
+ "06" => "Bolivar",
+ "07" => "Carabobo",
+ "08" => "Cojedes",
+ "09" => "Delta Amacuro",
+ "11" => "Falcon",
+ "12" => "Guarico",
+ "13" => "Lara",
+ "14" => "Merida",
+ "15" => "Miranda",
+ "16" => "Monagas",
+ "17" => "Nueva Esparta",
+ "18" => "Portuguesa",
+ "19" => "Sucre",
+ "20" => "Tachira",
+ "21" => "Trujillo",
+ "22" => "Yaracuy",
+ "23" => "Zulia",
+ "24" => "Dependencias Federales",
+ "25" => "Distrito Federal",
+ "26" => "Vargas"
+ ),
+ "VN" => array(
+ "01" => "An Giang",
+ "03" => "Ben Tre",
+ "05" => "Cao Bang",
+ "09" => "Dong Thap",
+ "13" => "Hai Phong",
+ "20" => "Ho Chi Minh",
+ "21" => "Kien Giang",
+ "23" => "Lam Dong",
+ "24" => "Long An",
+ "30" => "Quang Ninh",
+ "32" => "Son La",
+ "33" => "Tay Ninh",
+ "34" => "Thanh Hoa",
+ "35" => "Thai Binh",
+ "37" => "Tien Giang",
+ "39" => "Lang Son",
+ "43" => "Dong Nai",
+ "44" => "Ha Noi",
+ "45" => "Ba Ria-Vung Tau",
+ "46" => "Binh Dinh",
+ "47" => "Binh Thuan",
+ "49" => "Gia Lai",
+ "50" => "Ha Giang",
+ "52" => "Ha Tinh",
+ "53" => "Hoa Binh",
+ "54" => "Khanh Hoa",
+ "55" => "Kon Tum",
+ "58" => "Nghe An",
+ "59" => "Ninh Binh",
+ "60" => "Ninh Thuan",
+ "61" => "Phu Yen",
+ "62" => "Quang Binh",
+ "63" => "Quang Ngai",
+ "64" => "Quang Tri",
+ "65" => "Soc Trang",
+ "66" => "Thua Thien-Hue",
+ "67" => "Tra Vinh",
+ "68" => "Tuyen Quang",
+ "69" => "Vinh Long",
+ "70" => "Yen Bai",
+ "71" => "Bac Giang",
+ "72" => "Bac Kan",
+ "73" => "Bac Lieu",
+ "74" => "Bac Ninh",
+ "75" => "Binh Duong",
+ "76" => "Binh Phuoc",
+ "77" => "Ca Mau",
+ "78" => "Da Nang",
+ "79" => "Hai Duong",
+ "80" => "Ha Nam",
+ "81" => "Hung Yen",
+ "82" => "Nam Dinh",
+ "83" => "Phu Tho",
+ "84" => "Quang Nam",
+ "85" => "Thai Nguyen",
+ "86" => "Vinh Phuc",
+ "87" => "Can Tho",
+ "88" => "Dac Lak",
+ "89" => "Lai Chau",
+ "90" => "Lao Cai",
+ "91" => "Dak Nong",
+ "92" => "Dien Bien",
+ "93" => "Hau Giang"
+ ),
+ "VU" => array(
+ "05" => "Ambrym",
+ "06" => "Aoba",
+ "07" => "Torba",
+ "08" => "Efate",
+ "09" => "Epi",
+ "10" => "Malakula",
+ "11" => "Paama",
+ "12" => "Pentecote",
+ "13" => "Sanma",
+ "14" => "Shepherd",
+ "15" => "Tafea",
+ "16" => "Malampa",
+ "17" => "Penama",
+ "18" => "Shefa"
+ ),
+ "WS" => array(
+ "02" => "Aiga-i-le-Tai",
+ "03" => "Atua",
+ "04" => "Fa",
+ "05" => "Gaga",
+ "06" => "Va",
+ "07" => "Gagaifomauga",
+ "08" => "Palauli",
+ "09" => "Satupa",
+ "10" => "Tuamasaga",
+ "11" => "Vaisigano"
+ ),
+ "YE" => array(
+ "01" => "Abyan",
+ "02" => "Adan",
+ "03" => "Al Mahrah",
+ "04" => "Hadramawt",
+ "05" => "Shabwah",
+ "06" => "Lahij",
+ "07" => "Al Bayda'",
+ "08" => "Al Hudaydah",
+ "09" => "Al Jawf",
+ "10" => "Al Mahwit",
+ "11" => "Dhamar",
+ "12" => "Hajjah",
+ "13" => "Ibb",
+ "14" => "Ma'rib",
+ "15" => "Sa'dah",
+ "16" => "San'a'",
+ "17" => "Taizz",
+ "18" => "Ad Dali",
+ "19" => "Amran",
+ "20" => "Al Bayda'",
+ "21" => "Al Jawf",
+ "22" => "Hajjah",
+ "23" => "Ibb",
+ "24" => "Lahij",
+ "25" => "Taizz"
+ ),
+ "ZA" => array(
+ "01" => "North-Western Province",
+ "02" => "KwaZulu-Natal",
+ "03" => "Free State",
+ "05" => "Eastern Cape",
+ "06" => "Gauteng",
+ "07" => "Mpumalanga",
+ "08" => "Northern Cape",
+ "09" => "Limpopo",
+ "10" => "North-West",
+ "11" => "Western Cape"
+ ),
+ "ZM" => array(
+ "01" => "Western",
+ "02" => "Central",
+ "03" => "Eastern",
+ "04" => "Luapula",
+ "05" => "Northern",
+ "06" => "North-Western",
+ "07" => "Southern",
+ "08" => "Copperbelt",
+ "09" => "Lusaka"
+ ),
+ "ZW" => array(
+ "01" => "Manicaland",
+ "02" => "Midlands",
+ "03" => "Mashonaland Central",
+ "04" => "Mashonaland East",
+ "05" => "Mashonaland West",
+ "06" => "Matabeleland North",
+ "07" => "Matabeleland South",
+ "08" => "Masvingo",
+ "09" => "Bulawayo",
+ "10" => "Harare"
+ )
+);