diff --git a/console b/console index 07cd41f0e56301d28e3289f3aa49cb00284ff01b..f0b25f3d8e96451ff377a740eaf3b166fc30198e 100755 --- a/console +++ b/console @@ -27,4 +27,4 @@ if (!Piwik\Common::isPhpCliMode()) { $console = new Piwik\Console(); $console->init(); -$console->run(); +$console->run(); \ No newline at end of file diff --git a/libs/MaxMindGeoIP/geoip.inc b/libs/MaxMindGeoIP/geoip.inc index 96226d60796801e99b5097b9846ebb33f50374f6..516eb2fc594b50e5fbf216232ee568ec020acb8d 100755 --- a/libs/MaxMindGeoIP/geoip.inc +++ b/libs/MaxMindGeoIP/geoip.inc @@ -28,16 +28,36 @@ define("GEOIP_MEMORY_CACHE", 1); define("GEOIP_SHARED_MEMORY", 2); define("STRUCTURE_INFO_MAX_SIZE", 20); define("DATABASE_INFO_MAX_SIZE", 100); -define("GEOIP_COUNTRY_EDITION", 1); -define("GEOIP_PROXY_EDITION", 8); -define("GEOIP_ASNUM_EDITION", 9); -define("GEOIP_NETSPEED_EDITION", 10); -define("GEOIP_REGION_EDITION_REV0", 7); -define("GEOIP_REGION_EDITION_REV1", 3); -define("GEOIP_CITY_EDITION_REV0", 6); -define("GEOIP_CITY_EDITION_REV1", 2); -define("GEOIP_ORG_EDITION", 5); -define("GEOIP_ISP_EDITION", 4); +if (!defined('GEOIP_COUNTRY_EDITION')) { + define("GEOIP_COUNTRY_EDITION", 106); +} +if (!defined("GEOIP_PROXY_EDITION")) { + define("GEOIP_PROXY_EDITION", 8); +} +if (!defined("GEOIP_ASNUM_EDITION")) { + define("GEOIP_ASNUM_EDITION", 9); +} +if (!defined("GEOIP_NETSPEED_EDITION")) { + define("GEOIP_NETSPEED_EDITION", 10); +} +if (!defined("GEOIP_REGION_EDITION_REV0")) { + define("GEOIP_REGION_EDITION_REV0", 112); +} +if (!defined("GEOIP_REGION_EDITION_REV1")) { + define("GEOIP_REGION_EDITION_REV1", 3); +} +if (!defined("GEOIP_CITY_EDITION_REV0")) { + define("GEOIP_CITY_EDITION_REV0", 111); +} +if (!defined("GEOIP_CITY_EDITION_REV1")) { + define("GEOIP_CITY_EDITION_REV1", 2); +} +if (!defined("GEOIP_ORG_EDITION")) { + define("GEOIP_ORG_EDITION", 110); +} +if (!defined("GEOIP_ISP_EDITION")) { + define("GEOIP_ISP_EDITION", 4); +} define("SEGMENT_RECORD_LENGTH", 3); define("STANDARD_RECORD_LENGTH", 3); define("ORG_RECORD_LENGTH", 4); @@ -48,1844 +68,682 @@ define("US_OFFSET", 1); define("CANADA_OFFSET", 677); define("WORLD_OFFSET", 1353); define("FIPS_RANGE", 360); -define("GEOIP_UNKNOWN_SPEED", 0); -define("GEOIP_DIALUP_SPEED", 1); -define("GEOIP_CABLEDSL_SPEED", 2); -define("GEOIP_CORPORATE_SPEED", 3); -define("GEOIP_DOMAIN_EDITION", 11); -define("GEOIP_COUNTRY_EDITION_V6", 12); +if (!defined("GEOIP_UNKNOWN_SPEED")) { + define("GEOIP_UNKNOWN_SPEED", 0); +} +if (!defined("GEOIP_DIALUP_SPEED")) { + define("GEOIP_DIALUP_SPEED", 1); +} +if (!defined("GEOIP_CABLEDSL_SPEED")) { + define("GEOIP_CABLEDSL_SPEED", 2); +} +if (!defined("GEOIP_CORPORATE_SPEED")) { + define("GEOIP_CORPORATE_SPEED", 3); +} +if (!defined("GEOIP_DOMAIN_EDITION")) { + define("GEOIP_DOMAIN_EDITION", 11); +} +if (!defined("GEOIP_COUNTRY_EDITION_V6")) { + 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); -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", - "--" - ); +define("GEOIP_CITY_EDITION_REV0_V6",31); +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 { + var $flags; + var $filehandle; + var $memory_buffer; + var $databaseType; + var $databaseSegments; + var $record_length; + var $shmid; + var $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, +); + var $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"); + var $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" + ); + var $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" +); + + var $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" +); + } - -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 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) +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)); + $offset++; + + if ($gi->databaseType == GEOIP_REGION_EDITION_REV0){ + $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0; + } else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1){ + $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1; + } else if (($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_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; - } + || ($gi->databaseType == GEOIP_ISP_EDITION) + || ($gi->databaseType == GEOIP_ISP_EDITION_V6)) { + $gi->record_length = ORG_RECORD_LENGTH; } - break; - } else { - $offset -= 4; } + 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; + } + 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 == GEOIP_REGION_EDITION_REV0){ + $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0; } - } 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) + else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1){ + $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1; + } else if (($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_ORG_EDITION) || ($gi->databaseType == GEOIP_DOMAIN_EDITION) - || ($gi->databaseType == GEOIP_ISP_EDITION) - || ($gi->databaseType == GEOIP_ORG_EDITION_V6) + || ($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_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_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); + || ($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; } } - 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; + break; + } else { + fseek($gi->filehandle, -4, SEEK_CUR); } - fseek($gi->filehandle, $filepos, SEEK_SET); } - return $gi; + 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); +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->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; + $gi = _setup_segments($gi); + return $gi; } -function geoip_close($gi) -{ - if ($gi->flags & GEOIP_SHARED_MEMORY) { - return true; - } +function geoip_close($gi) { + if ($gi->flags & GEOIP_SHARED_MEMORY) { + return true; + } - return fclose($gi->filehandle); + 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_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); +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); } -function geoip_country_code_by_name_v6($gi, $name) -{ - $country_id = geoip_country_id_by_name_v6($gi, $name); - if ($country_id !== false) { +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; + } + return false; } -function geoip_country_code_by_name($gi, $name) -{ - $country_id = geoip_country_id_by_name($gi, $name); +if (!function_exists('geoip_country_code_by_name')) { // added for Piwik + 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 $gi->GEOIP_COUNTRY_CODES[$country_id]; } return false; + } } -function geoip_country_name_by_name_v6($gi, $name) -{ - $country_id = geoip_country_id_by_name_v6($gi, $name); - if ($country_id !== false) { +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; + } + return false; } -function geoip_country_name_by_name($gi, $name) -{ - $country_id = geoip_country_id_by_name($gi, $name); +if (!function_exists('geoip_country_name_by_name')) { // added for Piwik + 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 $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_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_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); +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 $gi->GEOIP_COUNTRY_CODES[$country_id]; } - return false; + 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]; - } +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; } - return false; + } 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); +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 $gi->GEOIP_COUNTRY_NAMES[$country_id]; } - return false; + 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]; - } +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; + } + 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 - ); +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) { + // workaround php's broken substr, strpos, etc handling with + // mbstring.func_overload and mbstring.internal_encoding + $enc = mb_internal_encoding(); + mb_internal_encoding('ISO-8859-1'); + + $buf = substr($gi->memory_buffer, + 2 * $gi->record_length * $offset, + 2 * $gi->record_length); + + mb_internal_encoding($enc); + } 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); - } - } + 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]; - } + $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; + } + 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 - ); +function _geoip_seek_country($gi, $ipnum) { + $offset = 0; + for ($depth = 31; $depth >= 0; --$depth) { + if ($gi->flags & GEOIP_MEMORY_CACHE) { + // workaround php's broken substr, strpos, etc handling with + // mbstring.func_overload and mbstring.internal_encoding + $enc = mb_internal_encoding(); + mb_internal_encoding('ISO-8859-1'); + + $buf = substr($gi->memory_buffer, + 2 * $gi->record_length * $offset, + 2 * $gi->record_length); + + mb_internal_encoding($enc); + } 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]; + 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]; - } + 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; + } + 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); +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; + fseek($gi->filehandle, $record_pointer, SEEK_SET); + $org_buf = fread($gi->filehandle,MAX_ORG_RECORD_LENGTH); + } + // workaround php's broken substr, strpos, etc handling with + // mbstring.func_overload and mbstring.internal_encoding + $enc = mb_internal_encoding(); + mb_internal_encoding('ISO-8859-1'); + $org_buf = substr($org_buf, 0, strpos($org_buf, "\0")); + mb_internal_encoding($enc); + 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_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 _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_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_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 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 { +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 { + $region = ""; + } + return array ($country_code,$region); + } else if ($gi->databaseType == GEOIP_REGION_EDITION_REV1) { + $seek_region = _geoip_seek_country($gi,$ipnum) - GEOIP_STATE_BEGIN_REV1; + //print $seek_region; + if ($seek_region < US_OFFSET){ + $country_code = ""; + $region = ""; + } else if ($seek_region < CANADA_OFFSET) { + $country_code = "US"; + $region = chr(($seek_region - US_OFFSET)/26 + 65) . chr(($seek_region - US_OFFSET)%26 + 65); + } else if ($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); + $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); +function geoip_region_by_addr ($gi,$addr) { + if ($addr == NULL) { + return 0; + } + $ipnum = ip2long($addr); + return _get_region($gi, $ipnum); } -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 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 index 44ed49b878eae9495c7e5ae79dcb2f3f0f642d45..a93c3d35ddf121071eed98456ff10845ab0d5d76 100755 --- a/libs/MaxMindGeoIP/geoipcity.inc +++ b/libs/MaxMindGeoIP/geoipcity.inc @@ -2,7 +2,7 @@ /* geoipcity.inc * - * Copyright (C) 2013 MaxMind, Inc. + * Copyright (C) 2004 Maxmind LLC * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -11,231 +11,227 @@ * * 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 + * 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 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* + * Changelog: + * + * 2005-01-13 Andrew Hill, Awarez Ltd. (http://www.awarez.net) + * Formatted file according to PEAR library standards. + * Changed inclusion of geoip.inc file to require_once, so that + * this library can be used in the same script as geoip.inc. + */ -define("FULL_RECORD_LENGTH", 50); +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 geoiprecord { + var $country_code; + var $country_code3; + var $country_name; + var $region; + var $city; + var $postal_code; + var $latitude; + var $longitude; + var $area_code; + var $dma_code; # metro and dma code are the same. use metro_code + var $metro_code; + var $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; +class geoipdnsrecord { + var $country_code; + var $country_code3; + var $country_name; + var $region; + var $regionname; + var $city; + var $postal_code; + var $latitude; + var $longitude; + var $areacode; + var $dmacode; + var $isp; + var $org; + var $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; - } +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; } - $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]; - } + if ($key == "ci"){ + $record->city = $value; } - return $record; -} - - -function _get_record_v6($gi, $ipnum) -{ - $seek_country = _geoip_seek_country_v6($gi, $ipnum); - if ($seek_country == $gi->databaseSegments) { - return null; + 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; } - return _common_get_record($gi, $seek_country); + 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 _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; +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); +} - 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)); +function _common_get_record($gi, $seek_country){ + // workaround php's broken substr, strpos, etc handling with + // mbstring.func_overload and mbstring.internal_encoding + $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; - + $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; + $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; + $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; + $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; + $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; + } + } + 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 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 _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); +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 index 9cbfd61ce673af4ee1adca0909dd6bdbac3b4b4f..c18a4aff8e802db314daa7f5ffbf3a24cd8a1c0f 100755 --- a/libs/MaxMindGeoIP/geoipregionvars.php +++ b/libs/MaxMindGeoIP/geoipregionvars.php @@ -1,4447 +1,4192 @@ <?php -# Copyright 2013 MaxMind, Inc. All Rights Reserved +# Copyright 2012 Maxmind LLC 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" - ) +"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"), +"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"), +"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", + "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( + "01" => "Amparai", + "02" => "Anuradhapura", + "03" => "Badulla", + "04" => "Batticaloa", + "06" => "Galle", + "07" => "Hambantota", + "09" => "Kalutara", + "10" => "Kandy", + "11" => "Kegalla", + "12" => "Kurunegala", + "14" => "Matale", + "15" => "Matara", + "16" => "Moneragala", + "17" => "Nuwara Eliya", + "18" => "Polonnaruwa", + "19" => "Puttalam", + "20" => "Ratnapura", + "21" => "Trincomalee", + "23" => "Colombo", + "24" => "Gampaha", + "25" => "Jaffna", + "26" => "Mannar", + "27" => "Mullaittivu", + "28" => "Vavuniya", + "29" => "Central", + "30" => "North Central", + "31" => "Northern", + "32" => "North Western", + "33" => "Sabaragamuwa", + "34" => "Southern", + "35" => "Uva", + "36" => "Western"), +"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"), +"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", + "02" => "Beltinci", + "03" => "Bled", + "04" => "Bohinj", + "05" => "Borovnica", + "06" => "Bovec", + "07" => "Brda", + "08" => "Brezice", + "09" => "Brezovica", + "11" => "Celje", + "12" => "Cerklje na Gorenjskem", + "13" => "Cerknica", + "14" => "Cerkno", + "15" => "Crensovci", + "16" => "Crna na Koroskem", + "17" => "Crnomelj", + "19" => "Divaca", + "20" => "Dobrepolje", + "22" => "Dol pri Ljubljani", + "24" => "Dornava", + "25" => "Dravograd", + "26" => "Duplek", + "27" => "Gorenja Vas-Poljane", + "28" => "Gorisnica", + "29" => "Gornja Radgona", + "30" => "Gornji Grad", + "31" => "Gornji Petrovci", + "32" => "Grosuplje", + "34" => "Hrastnik", + "35" => "Hrpelje-Kozina", + "36" => "Idrija", + "37" => "Ig", + "38" => "Ilirska Bistrica", + "39" => "Ivancna Gorica", + "40" => "Izola-Isola", + "42" => "Jursinci", + "44" => "Kanal", + "45" => "Kidricevo", + "46" => "Kobarid", + "47" => "Kobilje", + "49" => "Komen", + "50" => "Koper-Capodistria", + "51" => "Kozje", + "52" => "Kranj", + "53" => "Kranjska Gora", + "54" => "Krsko", + "55" => "Kungota", + "57" => "Lasko", + "61" => "Ljubljana", + "62" => "Ljubno", + "64" => "Logatec", + "66" => "Loski Potok", + "68" => "Lukovica", + "71" => "Medvode", + "72" => "Menges", + "73" => "Metlika", + "74" => "Mezica", + "76" => "Mislinja", + "77" => "Moravce", + "78" => "Moravske Toplice", + "79" => "Mozirje", + "80" => "Murska Sobota", + "81" => "Muta", + "82" => "Naklo", + "83" => "Nazarje", + "84" => "Nova Gorica", + "86" => "Odranci", + "87" => "Ormoz", + "88" => "Osilnica", + "89" => "Pesnica", + "91" => "Pivka", + "92" => "Podcetrtek", + "94" => "Postojna", + "97" => "Puconci", + "98" => "Racam", + "99" => "Radece", + "A1" => "Radenci", + "A2" => "Radlje ob Dravi", + "A3" => "Radovljica", + "A6" => "Rogasovci", + "A7" => "Rogaska Slatina", + "A8" => "Rogatec", + "B1" => "Semic", + "B2" => "Sencur", + "B3" => "Sentilj", + "B4" => "Sentjernej", + "B6" => "Sevnica", + "B7" => "Sezana", + "B8" => "Skocjan", + "B9" => "Skofja Loka", + "C1" => "Skofljica", + "C2" => "Slovenj Gradec", + "C4" => "Slovenske Konjice", + "C5" => "Smarje pri Jelsah", + "C6" => "Smartno ob Paki", + "C7" => "Sostanj", + "C8" => "Starse", + "C9" => "Store", + "D1" => "Sveti Jurij", + "D2" => "Tolmin", + "D3" => "Trbovlje", + "D4" => "Trebnje", + "D5" => "Trzic", + "D6" => "Turnisce", + "D7" => "Velenje", + "D8" => "Velike Lasce", + "E1" => "Vipava", + "E2" => "Vitanje", + "E3" => "Vodice", + "E5" => "Vrhnika", + "E6" => "Vuzenica", + "E7" => "Zagorje ob Savi", + "E9" => "Zavrc", + "F1" => "Zelezniki", + "F2" => "Ziri", + "F3" => "Zrece", + "G4" => "Dobrova-Horjul-Polhov Gradec", + "G7" => "Domzale", + "H4" => "Jesenice", + "H6" => "Kamnik", + "H7" => "Kocevje", + "I2" => "Kuzma", + "I3" => "Lenart", + "I5" => "Litija", + "I6" => "Ljutomer", + "I7" => "Loska Dolina", + "I9" => "Luce", + "J1" => "Majsperk", + "J2" => "Maribor", + "J5" => "Miren-Kostanjevica", + "J7" => "Novo Mesto", + "J9" => "Piran", + "K5" => "Preddvor", + "K7" => "Ptuj", + "L1" => "Ribnica", + "L3" => "Ruse", + "L7" => "Sentjur pri Celju", + "L8" => "Slovenska Bistrica", + "N2" => "Videm", + "N3" => "Vojnik", + "N5" => "Zalec"), +"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"), +"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", + "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" => "An Giang", + "44" => "Dac Lac", + "45" => "Dong Nai", + "46" => "Dong Thap", + "47" => "Kien Giang", + "49" => "Song Be", + "50" => "Vinh Phu", + "51" => "Ha Noi", + "52" => "Ho Chi Minh", + "53" => "Ba Ria-Vung Tau", + "54" => "Binh Dinh", + "55" => "Binh Thuan", + "58" => "Ha Giang", + "59" => "Ha Tay", + "60" => "Ha Tinh", + "61" => "Hoa Binh", + "62" => "Khanh Hoa", + "63" => "Kon Tum", + "64" => "Quang Tri", + "65" => "Nam Ha", + "66" => "Nghe An", + "67" => "Ninh Binh", + "68" => "Ninh Thuan", + "69" => "Phu Yen", + "70" => "Quang Binh", + "71" => "Quang Ngai", + "72" => "Quang Tri", + "73" => "Soc Trang", + "74" => "Thua Thien", + "75" => "Tra Vinh", + "76" => "Tuyen Quang", + "77" => "Vinh Long", + "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 Puc Province", + "87" => "Can Tho", + "88" => "Dak 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") ); +?> diff --git a/plugins/UserCountry/LocationProvider.php b/plugins/UserCountry/LocationProvider.php index 2c431565e5f27c86fa4655d0c6954ae08ca543e8..a5a656c42f263bc9da546de3790df51184b2e48e 100755 --- a/plugins/UserCountry/LocationProvider.php +++ b/plugins/UserCountry/LocationProvider.php @@ -444,7 +444,8 @@ abstract class LocationProvider /** * Returns an IP address from an array that was passed into getLocation. This - * will return an IPv4 address or IPv6 address. + * will return an IPv4 address or null if the address is IPv6 (IPv6 is not + * supported yet). * * @param array $info Must have 'ip' key. * @return string|null @@ -453,11 +454,7 @@ abstract class LocationProvider { $ip = \Piwik\Network\IP::fromStringIP($info['ip']); - if ($ip instanceof \Piwik\Network\IPv6 && $ip->isMappedIPv4()) { - return $ip->toIPv4String(); - } else { - return $ip->toString(); - } + return $ip->toIPv4String(); } } diff --git a/plugins/UserCountry/LocationProvider/GeoIp/Php.php b/plugins/UserCountry/LocationProvider/GeoIp/Php.php index 33b763e502075b57b5c4d9a3f68c60b09f08c96b..2a3fda9deed9f80477c6430a77681e3c4f802465 100755 --- a/plugins/UserCountry/LocationProvider/GeoIp/Php.php +++ b/plugins/UserCountry/LocationProvider/GeoIp/Php.php @@ -95,7 +95,6 @@ class Php extends GeoIp public function getLocation($info) { $ip = $this->getIpFromInfo($info); - $isIPv6 = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); $result = array(); @@ -105,11 +104,7 @@ class Php extends GeoIp case GEOIP_CITY_EDITION_REV0: // city database type case GEOIP_CITY_EDITION_REV1: case GEOIP_CITYCOMBINED_EDITION: - if ($isIPv6) { - $location = geoip_record_by_addr_v6($locationGeoIp, $ip); - } else { - $location = geoip_record_by_addr($locationGeoIp, $ip); - } + $location = geoip_record_by_addr($locationGeoIp, $ip); if (!empty($location)) { $result[self::COUNTRY_CODE_KEY] = $location->country_code; $result[self::REGION_CODE_KEY] = $location->region; @@ -122,46 +117,28 @@ class Php extends GeoIp break; case GEOIP_REGION_EDITION_REV0: // region database type case GEOIP_REGION_EDITION_REV1: - if ($isIPv6) { - // NOTE: geoip_region_by_addr_v6 does not exist (yet?), so we - // return the country code and an empty region code - $location = array(geoip_country_code_by_addr_v6($locationGeoIp, $ip), ''); - } else { - $location = geoip_region_by_addr($locationGeoIp, $ip); - } + $location = geoip_region_by_addr($locationGeoIp, $ip); if (!empty($location)) { $result[self::COUNTRY_CODE_KEY] = $location[0]; $result[self::REGION_CODE_KEY] = $location[1]; } break; case GEOIP_COUNTRY_EDITION: // country database type - if ($isIPv6) { - $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr_v6($locationGeoIp, $ip); - } else { - $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr($locationGeoIp, $ip); - } + $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr($locationGeoIp, $ip); break; default: // unknown database type, log warning and fallback to country edition Log::warning("Found unrecognized database type: %s", $locationGeoIp->databaseType); - if ($isIPv6) { - $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr_v6($locationGeoIp, $ip); - } else { - $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr($locationGeoIp, $ip); - } + $result[self::COUNTRY_CODE_KEY] = geoip_country_code_by_addr($locationGeoIp, $ip); break; } } - // NOTE: ISP & ORG require commercial dbs to test. The code has been tested manually, + // NOTE: ISP & ORG require commercial dbs to test. this code has been tested manually, // but not by system tests. $ispGeoIp = $this->getGeoIpInstance($key = 'isp'); if ($ispGeoIp) { - if ($isIPv6) { - $isp = geoip_name_by_addr_v6($ispGeoIp, $ip); - } else { - $isp = geoip_org_by_addr($ispGeoIp, $ip); - } + $isp = geoip_org_by_addr($ispGeoIp, $ip); if (!empty($isp)) { $result[self::ISP_KEY] = utf8_encode($isp); } @@ -169,11 +146,7 @@ class Php extends GeoIp $orgGeoIp = $this->getGeoIpInstance($key = 'org'); if ($orgGeoIp) { - if ($isIPv6) { - $org = geoip_name_by_addr_v6($orgGeoIp, $ip); - } else { - $org = geoip_org_by_addr($orgGeoIp, $ip); - } + $org = geoip_org_by_addr($orgGeoIp, $ip); if (!empty($org)) { $result[self::ORG_KEY] = utf8_encode($org); } diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php index 3abb1ee414a49caf0df59aac9eff93d49755780a..b499959f782c68e89734b7384510eb0ec89b7847 100644 --- a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php +++ b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php @@ -33,7 +33,7 @@ class ManyVisitsWithGeoIP extends Fixture '::ffff:137.82.130.49', // in British Columbia (mapped ipv4) '137.82.130.0', // anonymization tests '137.82.0.0', - '2001:db8:85a3:0:0:8a2e:370:7334', // ipv6 + '2001:db8:85a3:0:0:8a2e:370:7334', // ipv6 (geoip lookup not supported) '113.62.1.1', // in Lhasa, Tibet '151.100.101.92', // in Rome, Italy (using country DB, so only Italy will show) '103.29.196.229', // in Indonesia (Bali), (only Indonesia will show up) @@ -257,4 +257,4 @@ class ManyVisitsWithGeoIP extends Fixture // ignore error } } -} +} \ No newline at end of file diff --git a/tests/PHPUnit/System/ManyVisitorsOneWebsiteTest.php b/tests/PHPUnit/System/ManyVisitorsOneWebsiteTest.php index 22897c17a4c7e4ba9e669118f119c763e177a67d..8910c8568e674464f0b9bcfbcd22876af8aa7a6d 100755 --- a/tests/PHPUnit/System/ManyVisitorsOneWebsiteTest.php +++ b/tests/PHPUnit/System/ManyVisitorsOneWebsiteTest.php @@ -102,18 +102,6 @@ class ManyVisitorsOneWebsiteTest extends SystemTestCase 'periods' => array('month'), 'otherRequestParameters' => array('ip' => '194.57.91.215') )), - - array(array('UserCountry.getLocationFromIP'), array( - 'otherRequestParameters' => array('ip' => '194.57.91.215') - )), - - array(array('UserCountry.getLocationFromIP'), array( - 'format' => 'json', - 'otherRequestParameters' => array( - 'ip' => '2001:db8:85a3:0:0:8a2e:370:7334', - 'format' => 'json' - ) - )), ); // Randomly fails on 5.3 @@ -172,4 +160,4 @@ class ManyVisitorsOneWebsiteTest extends SystemTestCase } } -ManyVisitorsOneWebsiteTest::$fixture = new ManyVisitsWithGeoIP(); +ManyVisitorsOneWebsiteTest::$fixture = new ManyVisitsWithGeoIP(); \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml index fbebee5b1f2ad84edb9509e186200c5b70783bb6..188f7cb3c254e8364e056e002a57dc6c4111c1e4 100644 --- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml +++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest__Live.getLastVisitsDetails_range.xml @@ -2277,17 +2277,17 @@ <browserFamily /> <browserFamilyDescription>Unknown</browserFamilyDescription> <events>1</events> - <continent>North America</continent> - <continentCode>amn</continentCode> - <country>United States</country> - <countryCode>us</countryCode> - <countryFlag>plugins/UserCountry/images/flags/us.png</countryFlag> + <continent>Unknown</continent> + <continentCode>unk</continentCode> + <country>Unknown</country> + <countryCode>xx</countryCode> + <countryFlag>plugins/UserCountry/images/flags/xx.png</countryFlag> <region /> <regionCode /> <city /> - <location>United States</location> - <latitude>38</latitude> - <longitude>-97</longitude> + <location>Unknown</location> + <latitude /> + <longitude /> <visitLocalTime>12:34:06</visitLocalTime> <visitLocalHour>12</visitLocalHour> <daysSinceLastVisit>10</daysSinceLastVisit> @@ -2519,17 +2519,17 @@ <browserFamily /> <browserFamilyDescription>Unknown</browserFamilyDescription> <events>0</events> - <continent>North America</continent> - <continentCode>amn</continentCode> - <country>United States</country> - <countryCode>us</countryCode> - <countryFlag>plugins/UserCountry/images/flags/us.png</countryFlag> + <continent>Unknown</continent> + <continentCode>unk</continentCode> + <country>Unknown</country> + <countryCode>xx</countryCode> + <countryFlag>plugins/UserCountry/images/flags/xx.png</countryFlag> <region /> <regionCode /> <city /> - <location>United States</location> - <latitude>38</latitude> - <longitude>-97</longitude> + <location>Unknown</location> + <latitude /> + <longitude /> <visitLocalTime>12:34:06</visitLocalTime> <visitLocalHour>12</visitLocalHour> <daysSinceLastVisit>11</daysSinceLastVisit> diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml index 84baa921c6ded718bdbf4b1967334e863030fb55..949a6486de82c8071638a5c048e2773115344081 100644 --- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml +++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_countryCode__API.getSuggestedValuesForSegment.xml @@ -2,12 +2,12 @@ <result> <row>gb</row> <row>ca</row> + <row>xx</row> <row>ru</row> - <row>us</row> <row>it</row> - <row>fr</row> <row>id</row> + <row>fr</row> <row>ti</row> <row>mk</row> - <row>xx</row> + <row>us</row> </result> \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml index 8cc367528e4fc8414aa125c3fd052695cb63edf5..d48ae3233272cd70881e4115237ed2bf7a5a37ce 100644 --- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml +++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_latitude__API.getSuggestedValuesForSegment.xml @@ -3,8 +3,7 @@ <row>49.25</row> <row>123.456</row> <row>47.249</row> - <row>38</row> - <row>29.65</row> <row>124.456</row> + <row>29.65</row> <row>1</row> </result> \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml index 43e5a510a3134105ef95ca7ec38c93f9d97143ea..34b2e9333daeb3d7d7e4bcab7bea4cc2ec2b52c3 100644 --- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml +++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_longitude__API.getSuggestedValuesForSegment.xml @@ -3,8 +3,7 @@ <row>-123.133</row> <row>21.321</row> <row>6.018</row> - <row>-97</row> - <row>91.1</row> <row>22.231</row> + <row>91.1</row> <row>2</row> </result> \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml index a608b58f48a5d020cdf3d4c660ecc9af7804cda5..9572d1df13ae25495e876e9035009f0b8a81c536 100644 --- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml +++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getContinent_month.xml @@ -27,34 +27,34 @@ </row> <row> <label>North America</label> - <nb_visits>9</nb_visits> - <nb_actions>15</nb_actions> + <nb_visits>7</nb_visits> + <nb_actions>11</nb_actions> <max_actions>3</max_actions> - <sum_visit_length>5044</sum_visit_length> - <bounce_count>5</bounce_count> + <sum_visit_length>3783</sum_visit_length> + <bounce_count>4</bounce_count> <goals> <row idgoal='1'> - <nb_conversions>9</nb_conversions> - <nb_visits_converted>9</nb_visits_converted> - <revenue>45</revenue> + <nb_conversions>7</nb_conversions> + <nb_visits_converted>7</nb_visits_converted> + <revenue>35</revenue> </row> <row idgoal='2'> - <nb_conversions>4</nb_conversions> - <nb_visits_converted>4</nb_visits_converted> - <revenue>20</revenue> + <nb_conversions>3</nb_conversions> + <nb_visits_converted>3</nb_visits_converted> + <revenue>15</revenue> </row> </goals> - <nb_conversions>13</nb_conversions> - <revenue>65</revenue> - <sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors> + <nb_conversions>10</nb_conversions> + <revenue>50</revenue> + <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>1</sum_daily_nb_users> <code>North America</code> </row> <row> - <label>Asia</label> + <label>Unknown</label> <nb_visits>4</nb_visits> - <nb_actions>6</nb_actions> - <max_actions>2</max_actions> + <nb_actions>8</nb_actions> + <max_actions>3</max_actions> <sum_visit_length>2522</sum_visit_length> <bounce_count>2</bounce_count> <goals> @@ -73,31 +73,31 @@ <revenue>30</revenue> <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <code>Asia</code> + <code>Unknown</code> </row> <row> - <label>Unknown</label> - <nb_visits>2</nb_visits> - <nb_actions>4</nb_actions> - <max_actions>3</max_actions> - <sum_visit_length>1261</sum_visit_length> - <bounce_count>1</bounce_count> + <label>Asia</label> + <nb_visits>4</nb_visits> + <nb_actions>6</nb_actions> + <max_actions>2</max_actions> + <sum_visit_length>2522</sum_visit_length> + <bounce_count>2</bounce_count> <goals> <row idgoal='1'> + <nb_conversions>4</nb_conversions> + <nb_visits_converted>4</nb_visits_converted> + <revenue>20</revenue> + </row> + <row idgoal='2'> <nb_conversions>2</nb_conversions> <nb_visits_converted>2</nb_visits_converted> <revenue>10</revenue> </row> - <row idgoal='2'> - <nb_conversions>1</nb_conversions> - <nb_visits_converted>1</nb_visits_converted> - <revenue>5</revenue> - </row> </goals> - <nb_conversions>3</nb_conversions> - <revenue>15</revenue> - <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> + <nb_conversions>6</nb_conversions> + <revenue>30</revenue> + <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> <sum_daily_nb_users>0</sum_daily_nb_users> - <code>Unknown</code> + <code>Asia</code> </row> </result> \ No newline at end of file diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml index c56807d77179ee6bec88c5712baa06e0a5c893ba..c37c6d773bbf9548ac41f47537400cbbfb4f307a 100644 --- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml +++ b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getCountry_month.xml @@ -85,30 +85,30 @@ <logoHeight>11</logoHeight> </row> <row> - <label>United States</label> - <nb_visits>3</nb_visits> - <nb_actions>5</nb_actions> + <label>Unknown</label> + <nb_visits>4</nb_visits> + <nb_actions>8</nb_actions> <max_actions>3</max_actions> - <sum_visit_length>1261</sum_visit_length> + <sum_visit_length>2522</sum_visit_length> <bounce_count>2</bounce_count> <goals> <row idgoal='1'> - <nb_conversions>3</nb_conversions> - <nb_visits_converted>3</nb_visits_converted> - <revenue>15</revenue> + <nb_conversions>4</nb_conversions> + <nb_visits_converted>4</nb_visits_converted> + <revenue>20</revenue> </row> <row idgoal='2'> - <nb_conversions>1</nb_conversions> - <nb_visits_converted>1</nb_visits_converted> - <revenue>5</revenue> + <nb_conversions>2</nb_conversions> + <nb_visits_converted>2</nb_visits_converted> + <revenue>10</revenue> </row> </goals> - <nb_conversions>4</nb_conversions> - <revenue>20</revenue> + <nb_conversions>6</nb_conversions> + <revenue>30</revenue> <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors> - <sum_daily_nb_users>1</sum_daily_nb_users> - <code>us</code> - <logo>plugins/UserCountry/images/flags/us.png</logo> + <sum_daily_nb_users>0</sum_daily_nb_users> + <code>xx</code> + <logo>plugins/UserCountry/images/flags/xx.png</logo> <logoWidth>16</logoWidth> <logoHeight>11</logoHeight> </row> @@ -253,30 +253,25 @@ <logoHeight>11</logoHeight> </row> <row> - <label>Unknown</label> - <nb_visits>2</nb_visits> - <nb_actions>4</nb_actions> - <max_actions>3</max_actions> - <sum_visit_length>1261</sum_visit_length> + <label>United States</label> + <nb_visits>1</nb_visits> + <nb_actions>1</nb_actions> + <max_actions>1</max_actions> + <sum_visit_length>0</sum_visit_length> <bounce_count>1</bounce_count> <goals> <row idgoal='1'> - <nb_conversions>2</nb_conversions> - <nb_visits_converted>2</nb_visits_converted> - <revenue>10</revenue> - </row> - <row idgoal='2'> <nb_conversions>1</nb_conversions> <nb_visits_converted>1</nb_visits_converted> <revenue>5</revenue> </row> </goals> - <nb_conversions>3</nb_conversions> - <revenue>15</revenue> + <nb_conversions>1</nb_conversions> + <revenue>5</revenue> <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors> - <sum_daily_nb_users>0</sum_daily_nb_users> - <code>xx</code> - <logo>plugins/UserCountry/images/flags/xx.png</logo> + <sum_daily_nb_users>1</sum_daily_nb_users> + <code>us</code> + <logo>plugins/UserCountry/images/flags/us.png</logo> <logoWidth>16</logoWidth> <logoHeight>11</logoHeight> </row> diff --git a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getLocationFromIP.json b/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getLocationFromIP.json deleted file mode 100644 index cc4c5534d22d1cf570c43f4a920341cc6230cee2..0000000000000000000000000000000000000000 --- a/tests/PHPUnit/System/expected/test_ManyVisitorsOneWebsiteTest__UserCountry.getLocationFromIP.json +++ /dev/null @@ -1 +0,0 @@ -[{"country_code":"US","region_code":null,"city_name":"","area_code":0,"lat":38,"long":-97,"postal_code":null,"continent_code":"amn","continent_name":"North America","country_name":"United States","ip":"2001:db8:85a3:0:0:8a2e:370:7334"}] \ No newline at end of file