site-accueil-insa/matomo/plugins/GeoIp2/data/regionMapping.php

4635 lines
No EOL
132 KiB
PHP

<?php
return [
'AD' => [
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
],
'AE' => [
'01' => 'AZ',
'02' => 'AJ',
'03' => 'DU',
'04' => 'FU',
'05' => 'RK',
'06' => 'SH',
'07' => 'UQ',
],
'AF' => [
'01' => 'BDS', // Badakhshan
'02' => 'BDG', // Badghis
'03' => 'BGL', // Baghlan
'05' => 'BAM', // Bamian
'06' => 'FRA', // Farah
'07' => 'FYB', // Faryab
'08' => 'GHA', // Ghazni
'09' => 'GHO', // Ghowr
'10' => 'HEL', // Helmand
'11' => 'HER', // Herat
'13' => 'KAB', // Kabol
'14' => 'KAP', // Kapisa
'17' => 'LOG', // Lowgar
'18' => 'NAN', // Nangarhar
'19' => 'NIM', // Nimruz
'23' => 'KAN', // Kandahar
'24' => 'KDZ', // Kondoz
'26' => 'TAK', // Takhar
'27' => 'WAR', // Vardak
'28' => 'ZAB', // Zabol
'29' => 'PKA', // Paktika
'30' => 'BAL', // Balkh
'31' => 'JOW', // Jowzjan
'32' => 'SAM', // Samangan
'33' => 'SAR', // Sar-e Pol
'34' => 'KNR', // Konar
'35' => 'LAG', // Laghman
'36' => 'PIA', // Paktia
'37' => 'KHO', // Khowst
'38' => 'NUR', // Nurestan
'39' => 'URU', // Oruzgan
'40' => 'PAR', // Parvan
'41' => 'DAY', // Daykondi
'42' => 'PAN', // Panjshir
],
'AG' => [
'01' => '10',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '11',
],
'AL' => [
'40' => '01',
'41' => '09',
'42' => '02',
'43' => '03',
'44' => '04',
'45' => '05',
'46' => '06',
'47' => '07',
'48' => '08',
'49' => '10',
'50' => '11',
'51' => '12',
],
'AM' => [
'01' => 'AG',
'02' => 'AR',
'03' => 'AV',
'04' => 'GR',
'05' => 'KT',
'06' => 'LO',
'07' => 'SH',
'08' => 'SU',
'09' => 'TV',
'10' => 'VD',
'11' => 'ER',
],
'AO' => [
'01' => 'BGU',
'02' => 'BIE',
'03' => 'CAB',
'04' => 'CCU',
'05' => 'CNO',
'06' => 'CUS',
'07' => 'CNN',
'08' => 'HUA',
'09' => 'HUI',
'12' => 'MAL',
'13' => 'NAM',
'14' => 'MOX',
'15' => 'UIG',
'16' => 'ZAI',
'17' => 'LNO',
'18' => 'LSU',
'19' => 'BGO',
'20' => 'LUA',
],
'AR' => [
'01' => 'B',
'02' => 'K',
'03' => 'H',
'04' => 'U',
'05' => 'X',
'06' => 'W',
'07' => 'C',
'08' => 'E',
'09' => 'P',
'10' => 'Y',
'11' => 'L',
'12' => 'F',
'13' => 'M',
'14' => 'N',
'15' => 'Q',
'16' => 'R',
'17' => 'A',
'18' => 'J',
'19' => 'D',
'20' => 'Z',
'21' => 'S',
'22' => 'G',
'23' => 'V',
'24' => 'T',
],
'AT' => [
'01' => '1',
'02' => '2',
'03' => '3',
'04' => '4',
'05' => '5',
'06' => '6',
'07' => '7',
'08' => '8',
'09' => '9',
],
'AU' => [
'01' => 'ACT',
'02' => 'NSW',
'03' => 'NT',
'04' => 'QLD',
'05' => 'SA',
'06' => 'TAS',
'07' => 'VIC',
'08' => 'WA',
],
'AZ' => [
'01' => 'ABS', // Abseron
'02' => 'AGC', // Agcabadi
'03' => 'AGM', // Agdam
'04' => 'AGS', // Agdas
'05' => 'AGA', // Agstafa
'06' => 'AGU', // Agsu
'07' => '', // Ali Bayramli
'08' => 'AST', // Astara
'09' => 'BA', // Baki
'10' => 'BAL', // Balakan
'11' => 'BAR', // Barda
'12' => 'BEY', // Beylaqan
'13' => 'BIL', // Bilasuvar
'14' => 'CAB', // Cabrayil
'15' => 'CAL', // Calilabad
'16' => 'DAS', // Daskasan
'17' => '', // Davaci
'18' => 'FUZ', // Fuzuli
'19' => 'GAD', // Gadabay
'20' => 'GA', // Ganca
'21' => 'GOR', // Goranboy
'22' => 'GOY', // Goycay
'23' => 'HAC', // Haciqabul
'24' => 'IMI', // Imisli
'25' => 'ISM', // Ismayilli
'26' => 'KAL', // Kalbacar
'27' => 'KUR', // Kurdamir
'28' => 'LAC', // Lacin
'29' => 'LAN', // Lankaran
'30' => 'LA', // Lankaran city
'31' => 'LER', // Lerik
'32' => 'MAS', // Masalli
'33' => 'MI', // Mingacevir
'34' => 'NA', // Naftalan
'35' => 'NV', // Naxcivan
'36' => 'NEF', // Neftcala
'37' => 'OGU', // Oguz
'38' => 'QAB', // Qabala
'39' => 'QAX', // Qax
'40' => 'QAZ', // Qazax
'41' => 'QOB', // Qobustan
'42' => 'QBA', // Quba
'43' => 'QBI', // Qubadli
'44' => 'QUS', // Qusar
'45' => 'SAT', // Saatli
'46' => 'SAB', // Sabirabad
'47' => 'SAK', // Saki
'48' => 'SA', // Saki
'49' => 'SAL', // Salyan
'50' => 'SMI', // Samaxi
'51' => 'SKR', // Samkir
'52' => 'SMX', // Samux
'53' => 'SIY', // Siyazan
'54' => 'SM', // Sumqayit
'55' => 'SUS', // Susa
'56' => 'SUS', // Susa City Şuşa used to have SS, but was deleted in 2011. See https://en.wikipedia.org/wiki/ISO_3166-2:AZ#Changes. Now maps to region Şuşa [SUS]
'57' => 'TAR', // Tartar
'58' => 'TOV', // Tovuz
'59' => 'UCA', // Ucar
'60' => 'XAC', // Xacmaz
'61' => 'XA', // Xankandi
'62' => 'GYG', // Xanlar
'63' => 'XIZ', // Xizi
'64' => 'XCI', // Xocali
'65' => 'XVD', // Xocavand
'66' => 'YAR', // Yardimli
'67' => 'YEV', // Yevlax
'68' => 'YE', // Yevlax
'69' => 'ZAN', // Zangilan
'70' => 'ZAQ', // Zaqatala
'71' => 'ZAR', // Zardab
],
'BA' => [
'01' => 'BIH',
'02' => 'SRP',
// invalid codes [used by maxmind]
'03' => 'BRC' // Brčko distrikt was added in 2010. See https://en.wikipedia.org/wiki/ISO_3166-2:BA#Changes
],
'BB' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '09',
'10' => '10',
'11' => '11',
],
'BD' => [
'81' => 'C',
'82' => 'D',
'83' => 'E',
'84' => 'B',
'85' => 'A',
'86' => 'G',
// invalid codes [used by maxmind]
'87' => 'F' // Rangpur added in 2011. See https://en.wikipedia.org/wiki/ISO_3166-2:BD#Changes
],
'BE' => [
'01' => 'VAN',
'03' => 'WHT',
'04' => 'WLG',
'05' => 'VLI',
'06' => 'WLX',
'07' => 'WNA',
'08' => 'VOV',
'09' => 'VWV',
'10' => 'WBR',
'11' => 'BRU',
'12' => 'VBR',
// Conventional FIPS codes that are not listed on wikidata
'13' => 'VLG', // Flanders
'14' => 'WAL' // Wallonia
],
'BF' => [
'15' => 'BAM', // Bam
'19' => 'BLK', // Boulkiemde
'20' => 'GAN', // Ganzourgou
'21' => 'GNA', // Gnagna
'28' => 'KOT', // Kouritenga
'33' => 'OUD', // Oudalan
'34' => 'PAS', // Passore
'36' => 'SNG', // Sanguie
'40' => 'SOM', // Soum
'42' => 'TAP', // Tapoa
'44' => 'ZOU', // Zoundweogo
'45' => 'BAL', // Bale
'46' => 'BAN', // Banwa
'47' => 'BAZ', // Bazega
'48' => 'BGR', // Bougouriba
'49' => 'BLG', // Boulgou
'50' => 'GOU', // Gourma
'51' => 'HOU', // Houet
'52' => 'IOB', // Ioba
'53' => 'KAD', // Kadiogo
'54' => 'KEN', // Kenedougou
'55' => 'COM', // Komoe
'56' => 'KMD', // Komondjari
'57' => 'KMP', // Kompienga
'58' => 'KOS', // Kossi
'59' => 'KOP', // Koulpelogo
'60' => 'KOW', // Kourweogo
'61' => 'LER', // Leraba
'62' => 'LOR', // Loroum
'63' => 'MOU', // Mouhoun
'64' => 'NAM', // Namentenga
'65' => 'NAO', // Naouri
'66' => 'NAY', // Nayala
'67' => 'NOU', // Noumbiel
'68' => 'OUB', // Oubritenga
'69' => 'PON', // Poni
'70' => 'SMT', // Sanmatenga
'71' => 'SEN', // Seno
'72' => 'SIS', // Sissili
'73' => 'SOR', // Sourou
'74' => 'TUI', // Tuy
'75' => 'YAG', // Yagha
'76' => 'YAT', // Yatenga
'77' => 'ZIR', // Ziro
'78' => 'ZON', // Zondoma
],
'BG' => [
'38' => '01',
'39' => '02',
'40' => '08',
'41' => '07',
'42' => '23',
'43' => '26',
'44' => '09',
'45' => '10',
'46' => '11',
'47' => '12',
'48' => '13',
'49' => '14',
'50' => '15',
'51' => '16',
'52' => '17',
'53' => '18',
'54' => '27',
'55' => '19',
'56' => '20',
'57' => '21',
'58' => '23',
'59' => '24',
'60' => '25',
'61' => '03',
'62' => '04',
'63' => '05',
'64' => '06',
'65' => '28',
// Mikhaylovgrad seems to be a city in the region Montana
'33' => '12'
],
'BH' => [
'01' => '15', // Al Hadd => Muharraq Governorate (https://en.wikipedia.org/wiki/Al_Hidd)
'02' => '13', // Al Manamah => Capital Governorate (https://en.wikipedia.org/wiki/Manama)
'05' => '', // Jidd Hafs => Capital and Northern Governorate 13/17 (https://en.wikipedia.org/wiki/Jidhafs)
'06' => '', // Sitrah => Capital and Southern Governorate 13/14 (https://en.wikipedia.org/wiki/Sitra)
'08' => '', // Al Mintaqah al Gharbiyah => Northern and Southern Governorate 17/14 (https://en.wikipedia.org/wiki/Western_Region,_Bahrain)
'09' => '14', // Mintaqat Juzur Hawar => Southern Governorate (https://en.wikipedia.org/wiki/Hawar_Islands)
'10' => '17', // Al Mintaqah ash Shamaliyah => Northern Governorate (https://en.wikipedia.org/wiki/Northern_Region,_Bahrain)
'11' => '', // Al Mintaqah al Wusta => Capital and Northern Governorates 13/17 (https://en.wikipedia.org/wiki/Central_Region,_Bahrain)
'12' => '14', // Madīnat ٰĪsá => seems to be Southern Governorate based on the maps shown on wikipedia (https://en.wikipedia.org/wiki/Isa_Town)
'13' => '14', // Ar Rifa => Southern Governorates (https://en.wikipedia.org/wiki/Rifa_and_Southern_Region,_Bahrain)
'14' => '17', // Madinat Hamad => Northern Governorate (https://en.wikipedia.org/wiki/Hamad_Town)
'15' => '15',
'16' => '13',
'17' => '14',
'18' => '17',
'19' => '', // seems to be Southern and Northern Governorate 14/17 based on the maps shown on wikipedia (https://en.wikipedia.org/wiki/Isa_Town)
],
'BI' => [
'02' => '', // Bujumbura was splitted into Bujumbura Mairie (BM) and Bujumbura Rural (BL) in 2010
'09' => 'BB',
'10' => 'BR',
'11' => 'CA',
'12' => 'CI',
'13' => 'GI',
'14' => 'KR',
'15' => 'KY',
'16' => 'KI',
'17' => 'MA',
'18' => 'MY',
'19' => 'NG',
'20' => 'RT',
'21' => 'RY',
'22' => 'MU',
'23' => 'MW',
],
'BJ' => [
'07' => 'AL',
'08' => 'AK',
'09' => 'AQ',
'10' => 'BO',
'11' => 'CO',
'12' => 'KO',
'13' => 'DO',
'14' => 'LI',
'15' => 'MO',
'16' => 'OU',
'17' => 'PL',
'18' => 'ZO',
],
'BM' => [
// ISO 3166-2 does not define any subdivisions of Bermuda, so simply remove them (https://en.wikipedia.org/wiki/ISO_3166-2:BM)
'01' => '',
'02' => '',
'03' => '',
'04' => '',
'05' => '',
'06' => '',
'07' => '',
'08' => '',
'09' => '',
'10' => '',
'11' => '',
],
'BN' => [
// Seems Maxmind totally screwed up the region codes for Brunei
// They used the codes for Benin (which has BN as FIPS country code) and replaced those codes available for Brunei
// valid codes
'08' => 'BE', // Belait
'09' => 'BM', // Brunei and Muara
'10' => 'TE', // Temburong
'15' => 'TU', // Tutong
// invalid codes that should not occur
'07' => '', // Alibori
'11' => '', // Collines
'12' => '', // Kouffo
'13' => '', // Donga
'14' => '', // Littoral
'16' => '', // Oueme
'17' => '', // Plateau
'18' => '', // Zou
],
'BO' => [
'01' => 'H',
'02' => 'C',
'03' => 'B',
'04' => 'L',
'05' => 'O',
'06' => 'N',
'07' => 'P',
'08' => 'S',
'09' => 'T',
],
'BR' => [
'01' => 'AC',
'02' => 'AL',
'03' => 'AP',
'04' => 'AM',
'05' => 'BA',
'06' => 'CE',
'07' => 'DF',
'08' => 'ES',
'11' => 'MS',
'13' => 'MA',
'14' => 'MT',
'15' => 'MG',
'16' => 'PA',
'17' => 'PB',
'18' => 'PR',
'20' => 'PI',
'21' => 'RJ',
'22' => 'RN',
'23' => 'RS',
'24' => 'RO',
'25' => 'RR',
'26' => 'SC',
'27' => 'SP',
'28' => 'SE',
'29' => 'GO',
'30' => 'PE',
'31' => 'TO',
],
'BS' => [
'05' => 'BI', // Bimini
'06' => 'CI', // Cat Island
'10' => 'EX', // Exuma
'13' => 'IN', // Inagua
'15' => 'LI', // Long Island
'16' => 'MG', // Mayaguana
'18' => 'RI', // Ragged Island
'22' => 'HI', // Harbour Island
'23' => '', // New Providence deleted in 2011 - without replacement (https://en.wikipedia.org/wiki/ISO_3166-2:BS#Changes)
'24' => '', // Acklins and Crooked Islands [now two seperate codes AK & CK]
'25' => 'FP', // Freeport
'26' => 'CS', // Fresh Creek [is now roughly Central Andros]
'27' => 'CE', // Governor's Harbour [is now roughly Central Eleuthera]
'28' => 'HT', // Green Turtle Cay - mapped to GT by wikidata, but removed in 2010 - now HT according to geonames (http://www.geonames.org/maps/google_26.758_-77.325.html)
'29' => 'EG', // High Rock [is now roughly East Grand Bahama]
'30' => 'SA', // Kemps Bay [now in South Andros]
'31' => '', // Marsh Harbour
'32' => '', // Nichollstown and Berry Islands
'33' => 'SE', // Rock Sound [is now roughly South Eleuthera]
'34' => '', // Sandy Point
'35' => '', // San Salvador and Rum Cay [now two seperate codes SS & RC]
],
'BT' => [
'05' => '33',
'06' => '12',
'07' => '21',
'08' => '22',
'09' => '31',
'10' => '13',
'11' => '44',
'12' => '42',
'13' => '11',
'14' => '43',
'15' => '23',
'16' => '14', // Samtse
'17' => '45',
'18' => '34', // Zhemgang
'19' => '41',
'20' => '15',
'21' => '32', // Tongsa
'22' => '24', // Wangdi Phodrang
],
'BW' => [
'01' => 'CE',
'03' => 'GH',
'04' => 'KG',
'05' => 'KL',
'06' => 'KW',
'08' => 'NE',
'09' => 'SE',
'10' => 'SO',
'11' => 'NW',
],
'BY' => [
'01' => 'BR',
'02' => 'HO',
'03' => 'HR',
'04' => 'HM',
'05' => 'MI',
'06' => 'MA',
'07' => 'VI',
],
'BZ' => [
'01' => 'BZ',
'02' => 'CY',
'03' => 'CZL',
'04' => 'OW',
'05' => 'SC',
'06' => 'TOL',
],
'CD' => [
'01' => '', // Bandundu [split up]
'02' => 'EQ', // Equateur
'04' => 'KE', // Kasai-Oriental
'05' => '', // Katanga [split up]
'06' => 'KN', // Kinshasa
'08' => 'BC', // Bas-Congo
'09' => '', // Orientale [split up]
'10' => 'MA', // Maniema
'11' => 'NK', // Nord-Kivu
'12' => 'SK', // Sud-Kivu
// valid codes [not used by maxmind]
'03' => '', // Kasaï-Occidental [split up]
],
'CF' => [
'01' => 'BB',
'02' => 'BK',
'03' => 'HK',
'04' => 'HS',
'05' => 'HM',
'06' => 'KG',
'07' => 'LB',
'08' => 'MB',
'09' => 'NM',
'11' => 'UK',
'12' => 'AC',
'13' => 'OP',
'14' => 'VK',
'15' => 'KB',
'16' => 'SE',
'17' => 'MP',
'18' => 'BGF',
],
'CG' => [
'01' => '11',
'04' => '5',
'05' => '2',
'06' => '7',
'07' => '9',
'08' => '14',
'10' => '13',
'11' => '12',
'12' => 'BZV',
'13' => '8',
'14' => '15',
],
'CH' => [
'01' => 'AG',
'02' => 'AR',
'03' => 'BL',
'04' => 'BS',
'05' => 'BE',
'06' => 'FR',
'07' => 'GE',
'08' => 'GL',
'09' => 'GR',
'10' => 'AI',
'11' => 'LU',
'12' => 'NE',
'13' => 'NW',
'14' => 'OW',
'15' => 'SG',
'16' => 'SH',
'17' => 'SZ',
'18' => 'SO',
'19' => 'TG',
'20' => 'TI',
'21' => 'UR',
'22' => 'VS',
'23' => 'VD',
'24' => 'ZG',
'25' => 'ZH',
'26' => 'JU',
],
'CI' => [
'74' => 'LG', // Agneby [now part of Lagunes]
'75' => 'WR', // Bafing [now part of Woroba]
'76' => 'BS', // Bas-Sassandra
'77' => 'DN', // Denguele
'78' => 'MG', // Dix-Huit Montagnes
'79' => 'GD', // Fromager [now part of Gôh-Djiboua]
'80' => 'SM', // Haut-Sassandra
'81' => 'LC', // Lacs
'82' => 'LG', // Lagunes
'83' => 'SM', // Marahoue
'84' => 'MG', // Moyen-Cavally [now part of Montagnes]
'85' => 'CM', // Moyen-Comoe [now part of Comoé]
'86' => 'LC', // N'zi-Comoe [now part of Lacs]
'87' => 'SV', // Savanes
'88' => '', // Sud-Bandama [spit up]
'89' => 'CM', // Sud-Comoe
'90' => 'VB', // Vallee du Bandama
'91' => 'WR', // Worodougou [now part of Woroba]
'92' => 'ZZ', // Zanzan
],
'CL' => [
'01' => 'VS',
'02' => 'AI',
'03' => 'AN',
'04' => 'AR',
'05' => 'AT',
'06' => 'BI',
'07' => 'CO',
'08' => 'LI',
'10' => 'MA',
'11' => 'ML',
'12' => 'RM',
'14' => 'LL',
'15' => 'TA',
'16' => 'AP',
'17' => 'LR',
// mapped based on their names (https://en.wikipedia.org/wiki/ISO_3166-2:CL)
'09' => 'LL', // Los Lagos
'13' => 'TA', // Tarapaca
],
'CM' => [
'04' => 'ES',
'05' => 'LT',
'07' => 'NW',
'08' => 'OU',
'09' => 'SW',
'10' => 'AD',
'11' => 'CE',
'12' => 'EN',
'13' => 'NO',
'14' => 'SU',
],
'CN' => [
'01' => 'AH',
'02' => 'ZJ',
'03' => 'JX',
'04' => 'JS',
'05' => 'JL',
'06' => 'QH',
'07' => 'FJ',
'08' => 'HL',
'09' => 'HA',
'10' => 'HE',
'11' => 'HN',
'12' => 'HB',
'13' => 'XJ',
'14' => 'XZ',
'15' => 'GS',
'16' => 'GX',
'18' => 'GZ',
'19' => 'LN',
'20' => 'NM',
'21' => 'NX',
'22' => 'BJ',
'23' => 'SH',
'24' => 'SX',
'25' => 'SD',
'26' => 'SN',
'28' => 'TJ',
'29' => 'YN',
'30' => 'GD',
'31' => 'HI',
'32' => 'SC',
'33' => 'CQ',
],
'CO' => [
'01' => 'AMA',
'02' => 'ANT',
'03' => 'ARA',
'04' => 'ATL',
'08' => 'CAQ',
'09' => 'CAU',
'10' => 'CES',
'11' => 'CHO',
'12' => 'COR',
'14' => 'GUV',
'15' => 'GUA',
'16' => 'HUI',
'17' => 'LAG',
'19' => 'MET',
'20' => 'NAR',
'21' => 'NSA',
'22' => 'PUT',
'23' => 'QUI',
'24' => 'RIS',
'25' => 'SAP',
'26' => 'SAN',
'27' => 'SUC',
'28' => 'TOL',
'29' => 'VAC',
'30' => 'VAU',
'31' => 'VID',
'32' => 'CAS',
'33' => 'CUN',
'34' => 'DC',
'35' => 'BOL',
'36' => 'BOY',
'37' => 'CAL',
'38' => 'MAG',
],
'CR' => [
'01' => 'A',
'02' => 'C',
'03' => 'G',
'04' => 'H',
'06' => 'L',
'07' => 'P',
'08' => 'SJ',
],
'CU' => [
'01' => '01', // Pinar del Rio
'02' => '', // Ciudad de la Habana was splitted in 2011 into 15 & 16 (https://en.wikipedia.org/wiki/ISO_3166-2:CU)
'03' => '04', // Matanzas
'04' => '99', // Isla de la Juventud
'05' => '09', // Camaguey
'07' => '08', // Ciego de Avila
'08' => '06', // Cienfuegos
'09' => '12', // Granma
'10' => '14', // Guantanamo
'11' => '03', // La Habana
'12' => '11', // Holguin
'13' => '10', // Las Tunas
'14' => '07', // Sancti Spiritus
'15' => '13', // Santiago de Cuba
'16' => '05', // Villa Clara
],
'CV' => [
'01' => 'BV',
'02' => 'BR',
'04' => 'MA',
'05' => 'PA',
'07' => 'RG',
'08' => 'SL',
'10' => '', // Sao Nicolau was splitted in 2005 into Ribeira Brava (BR) & Tarrafal de São Nicolau (TS) (https://en.wikipedia.org/wiki/ISO_3166-2:CV)
'11' => 'SV',
'13' => 'MO',
'14' => 'PR',
'15' => 'CA',
'16' => 'CR',
'17' => 'SD',
'18' => 'SF',
'19' => 'SM',
'20' => 'TA',
],
'CY' => [
'01' => '04',
'02' => '06',
'03' => '03',
'04' => '01',
'05' => '02',
'06' => '05',
],
'CZ' => [
'52' => '10',
'78' => '64',
'79' => '31',
'80' => '63',
'81' => '41',
'82' => '52',
'83' => '51',
'84' => '71',
'85' => '80',
'86' => '53',
'87' => '32',
'88' => '20',
'89' => '42',
'90' => '72',
],
'DE' => [
'01' => 'BW',
'02' => 'BY',
'03' => 'HB',
'04' => 'HH',
'05' => 'HE',
'06' => 'NI',
'07' => 'NW',
'08' => 'RP',
'09' => 'SL',
'10' => 'SH',
'11' => 'BB',
'12' => 'MV',
'13' => 'SN',
'14' => 'ST',
'15' => 'TH',
'16' => 'BE',
],
'DJ' => [
'01' => 'AS',
'04' => 'OB',
'05' => 'TA',
'06' => 'DI',
'07' => 'DJ',
'08' => 'AR',
],
'DK' => [
'17' => '84',
'18' => '82',
'19' => '81',
'20' => '85',
'21' => '83',
],
'DM' => [
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '09',
'10' => '10',
'11' => '11',
],
'DO' => [
'01' => '02',
'02' => '03',
'03' => '04',
'04' => '05',
'05' => '01', // Distrito Nacional
'06' => '06',
'08' => '09',
'09' => '10',
'10' => '11',
'11' => '07',
'12' => '12',
'14' => '14',
'15' => '15',
'16' => '16',
'17' => '17', // Peravia
'18' => '18',
'19' => '19',
'20' => '20',
'21' => '24',
'23' => '22',
'24' => '23',
'25' => '25',
'26' => '26',
'27' => '27',
'28' => '08',
'29' => '30',
'30' => '13',
'31' => '28',
'32' => '29',
'33' => '21',
'34' => '01',
'35' => '17',
'36' => '31',
'37' => '32',
],
'DZ' => [
'01' => '16',
'03' => '05',
'04' => '25',
'06' => '26',
'07' => '27',
'09' => '31',
'10' => '20',
'12' => '19',
'13' => '14',
'14' => '15',
'15' => '13',
'18' => '06',
'19' => '07',
'20' => '09',
'21' => '10',
'22' => '17',
'23' => '24',
'24' => '18',
'25' => '03',
'26' => '29',
'27' => '28',
'29' => '04',
'30' => '22',
'31' => '21',
'33' => '12',
'34' => '01',
'35' => '44',
'36' => '46',
'37' => '23',
'38' => '08',
'39' => '34',
'40' => '35',
'41' => '02',
'42' => '32',
'43' => '39',
'44' => '36',
'45' => '47',
'46' => '33',
'47' => '40',
'48' => '43',
'49' => '45',
'50' => '30',
'51' => '48',
'52' => '41',
'53' => '11',
'54' => '37',
'55' => '42',
'56' => '38',
],
'EC' => [
'01' => 'W',
'02' => 'A',
'03' => 'B',
'04' => 'F',
'05' => 'C',
'06' => 'H',
'07' => 'X',
'08' => 'O',
'09' => 'E',
'10' => 'G',
'11' => 'I',
'12' => 'L',
'13' => 'R',
'14' => 'M',
'15' => 'S',
'17' => 'Y',
'18' => 'P',
'19' => 'T',
'20' => 'Z',
'22' => 'U',
'23' => 'N',
'24' => 'D',
],
'EE' => [
'01' => '37',
'02' => '39',
'03' => '44',
'04' => '51',
'05' => '49',
'07' => '57',
'08' => '59',
'11' => '67',
'12' => '65',
'13' => '70',
'14' => '74',
'18' => '78',
'19' => '82',
'20' => '84',
'21' => '86',
// invalid codes [used by maxmind] (mapped based on https://en.wikipedia.org/wiki/Municipalities_of_Estonia#Former_municipalities)
'06' => '44', // Kohtla-Jarve is part of Ida-Viru
'09' => '44', // Narva is part of Ida-Viru
'10' => '67', // Parnu
'15' => '44', // Sillamae is part of Ida-Viru
'16' => '37', // Tallinn is part of Harju
'17' => '78', // Tartu
],
'EG' => [
'01' => 'DK',
'02' => 'BA',
'03' => 'BH',
'04' => 'FYM',
'05' => 'GH',
'06' => 'ALX',
'07' => 'IS',
'08' => 'GZ',
'09' => 'MNF',
'10' => 'MN',
'11' => 'C',
'12' => 'KB',
'13' => 'WAD',
'14' => 'SHR',
'15' => 'SUZ',
'16' => 'ASN',
'17' => 'AST',
'18' => 'BNS',
'19' => 'PTS',
'20' => 'DT',
'21' => 'KFS',
'22' => 'MT',
'23' => 'KN',
'24' => 'SHG',
'26' => 'JS',
'27' => 'SIN',
// invalid codes [used by maxmind]
'28' => 'LX', // Al Uqsur
],
'ER' => [
'01' => 'AN',
'02' => 'DU',
'03' => 'DK',
'04' => 'GB',
'05' => 'MA',
'06' => 'SK',
],
'ES' => [
'07' => 'IB',
'27' => 'LO',
'29' => 'MD',
'31' => 'MC',
'32' => 'NC',
'34' => 'AS',
'39' => 'CB',
'51' => 'AN',
'52' => 'AR',
'53' => 'CN',
'54' => 'CM',
'55' => 'CL',
'56' => 'CT',
'57' => 'EX',
'58' => 'GA',
'59' => 'PV',
'60' => 'VC',
],
'ET' => [
'44' => 'AA',
'45' => 'AF',
'46' => 'AM',
'47' => 'BE',
'48' => 'DD',
'49' => 'GA',
'50' => 'HA',
'51' => 'OR',
'52' => 'SO',
'53' => 'TI',
'54' => 'SN',
],
'FI' => [
// was rearranged in 2011. codes on wikidata are outdated (https://en.wikipedia.org/wiki/ISO_3166-2:FI)
'01' => '01', // Aland
'06' => '10', // Lapland
'08' => '', // Oulu splitted into subdivisions
'13' => '', // Southern Finland splitted into subdivisions
'14' => '', // Eastern Finland splitted into subdivisions
'15' => '', // Western Finland splitted into subdivisions
],
'FJ' => [
'01' => 'C',
'02' => 'E',
'03' => 'N',
'04' => 'R',
'05' => 'W',
],
'FR' => [
'97' => 'NAQ', // Aquitaine
'98' => 'ARA', // Auvergne
'99' => 'NOR', // Basse-Normandie
'A1' => 'BFC', // Bourgogne
'A2' => 'BRE', // Bretagne
'A3' => 'CVL', // Centre
'A4' => 'GES', // Champagne-Ardenne
'A5' => 'COR', // Corse
'A6' => 'BFC', // Franche-Comte
'A7' => 'NOR', // Haute-Normandie
'A8' => 'IDF', // Ile-de-France
'A9' => 'OCC', // Languedoc-Roussillon
'B1' => 'NAQ', // Limousin
'B2' => 'GES', // Lorraine
'B3' => 'OCC', // Midi-Pyrenees
'B4' => 'HDF', // Nord-Pas-de-Calais
'B5' => 'PDL', // Pays de la Loire
'B6' => 'HDF', // Picardie
'B7' => 'NAQ', // Poitou-Charentes
'B8' => 'PAC', // Provence-Alpes-Cote d'Azur
'B9' => 'ARA', // Rhone-Alpes
'C1' => 'GES', // Alsace
],
'FM' => [
'01' => 'KSA', // Kosrae
'02' => 'PNI', // Pohnpei
'03' => 'TRK', // Chuuk
'04' => 'YAP', // Yap
],
'GA' => [
'01' => '1',
'02' => '2',
'03' => '3',
'04' => '4',
'05' => '5',
'06' => '6',
'07' => '7',
'08' => '8',
'09' => '9',
],
'GB' => [
'A1' => 'BDG',
'A2' => 'BNE',
'A3' => 'BNS',
'A4' => 'BAS',
'A5' => '', // Bedfordshire [split up]
'A6' => 'BEX',
'A7' => 'BIR',
'A8' => 'BBD',
'A9' => 'BPL',
'B1' => 'BOL',
'B2' => 'BMH',
'B3' => 'BRC',
'B4' => 'BRD',
'B5' => 'BEN',
'B6' => 'BNH',
'B7' => 'BST',
'B8' => 'BRY',
'B9' => 'BKM',
'C1' => 'BUR',
'C2' => 'CLD',
'C3' => 'CAM',
'C4' => 'CMD',
'C5' => '', // Cheshire [split up]
'C6' => 'CON',
'C7' => 'COV',
'C8' => 'CRY',
'C9' => 'CMA',
'D1' => 'DAL',
'D2' => 'DER',
'D3' => 'DBY',
'D4' => 'DEV',
'D5' => 'DNC',
'D6' => 'DOR',
'D7' => 'DUD',
'D8' => 'DUR',
'D9' => 'EAL',
'E1' => 'ERY',
'E2' => 'ESX',
'E3' => 'ENF',
'E4' => 'ESS',
'E5' => 'GAT',
'E6' => 'GLS',
'E7' => 'GRE',
'E8' => 'HCK',
'E9' => 'HAL',
'F1' => 'HMF',
'F2' => 'HAM',
'F3' => 'HRY',
'F4' => 'HRW',
'F5' => 'HPL',
'F6' => 'HAV',
'F7' => 'HEF',
'F8' => 'HRT',
'F9' => 'HIL',
'G1' => 'HNS',
'G2' => 'IOW',
'G3' => 'ISL',
'G4' => 'KEC',
'G5' => 'KEN',
'G6' => 'KHL',
'G7' => 'KTT',
'G8' => 'KIR',
'G9' => 'KWL',
'H1' => 'LBH',
'H2' => 'LAN',
'H3' => 'LDS',
'H4' => 'LCE',
'H5' => 'LEC',
'H6' => 'LEW',
'H7' => 'LIN',
'H8' => 'LIV',
'H9' => 'LND',
'I1' => 'LUT',
'I2' => 'MAN',
'I3' => 'MDW',
'I4' => 'MRT',
'I5' => 'MDB',
'I6' => 'MIK',
'I7' => 'NET',
'I8' => 'NWM',
'I9' => 'NFK',
'J1' => 'NTH',
'J2' => 'NEL',
'J3' => 'NLN',
'J4' => 'NSM',
'J5' => 'NTY',
'J6' => 'NBL',
'J7' => 'NYK',
'J8' => 'NGM',
'J9' => 'NTT',
'K1' => 'OLD',
'K2' => 'OXF',
'K3' => 'PTE',
'K4' => 'PLY',
'K5' => 'POL',
'K6' => 'POR',
'K7' => 'RDG',
'K8' => 'RDB',
'K9' => 'RCC',
'L1' => 'RIC',
'L2' => 'RCH',
'L3' => 'ROT',
'L4' => 'RUT',
'L5' => 'SLF',
'L6' => 'SHR',
'L7' => 'SAW',
'L8' => 'SFT',
'L9' => 'SHF',
'M1' => 'SLG',
'M2' => 'SOL',
'M3' => 'SOM',
'M4' => 'STH',
'M5' => 'SOS',
'M6' => 'SGC',
'M7' => 'STY',
'M8' => 'SWK',
'M9' => 'STS',
'N1' => 'SHN',
'N2' => 'SKP',
'N3' => 'STT',
'N4' => 'STE',
'N5' => 'SFK',
'N6' => 'SND',
'N7' => 'SRY',
'N8' => 'STN',
'N9' => 'SWD',
'O1' => 'TAM',
'O2' => 'TFW',
'O3' => 'THR',
'O4' => 'TOB',
'O5' => 'TWH',
'O6' => 'TRF',
'O7' => 'WKF',
'O8' => 'WLL',
'O9' => 'WFT',
'P1' => 'WND',
'P2' => 'WRT',
'P3' => 'WAR',
'P4' => 'WBK',
'P5' => 'WSM',
'P6' => 'WSX',
'P7' => 'WGN',
'P8' => 'WIL',
'P9' => 'WNM',
'Q1' => 'WRL',
'Q2' => 'WOK',
'Q3' => 'WLV',
'Q4' => 'WOR',
'Q5' => 'YOR',
'Q6' => 'ANN',
'Q7' => 'AND',
'Q8' => 'ABC', // Armagh [merged into Armagh, Banbridge and Craigavon]
'Q9' => 'MEA',
'R1' => 'CCG', // Ballymoney [merged into Causeway Coast and Glens]
'R2' => 'ABC', // Banbridge [merged into Armagh, Banbridge and Craigavon]
'R3' => 'BFS',
'R4' => 'MEA',
'R5' => 'LBC', // Castlereagh [merged into Lisburn and Castlereagh]
'R6' => 'CCG',
'R7' => 'MUL',
'R8' => 'ABC', // Craigavon [merged into Armagh, Banbridge and Craigavon]
'R9' => 'NMD', // Down [merged into Newry, Mourne and Down]
'S1' => 'MUL', // Dungannon and South Tyrone [merged into Mid-Ulster]
'S2' => 'FMO', // Fermanagh
'S3' => 'MEA', // Larne [merged into Mid and East Antrim]
'S4' => 'CCG', // Limavady [merged into Causeway Coast and Glens]
'S5' => 'LBC', // Lisburn
'S6' => 'DRS',
'S7' => 'MUL', // Magherafelt [merged into Mid-Ulster]
'S8' => 'CCG',
'S9' => 'NMD',
'T1' => 'ANN', // Newtownabbey [merged into Antrim and Newtownabbey]
'T2' => 'AND', // North Down [merged into North Down and Ards]
'T3' => 'FMO', // Omagh
'T4' => 'DRS', // Strabane
'T5' => 'ABE',
'T6' => 'ABD',
'T7' => 'ANS',
'T8' => 'AGB',
'T9' => 'SCB',
'U1' => 'CLK',
'U2' => 'DGY',
'U3' => 'DND',
'U4' => 'EAY',
'U5' => 'EDU',
'U6' => 'ELN',
'U7' => 'ERW',
'U8' => 'EDH',
'U9' => 'FAL',
'V1' => 'FIF',
'V2' => 'GLG',
'V3' => 'HLD',
'V4' => 'IVC',
'V5' => 'MLN',
'V6' => 'MRY',
'V7' => 'NAY',
'V8' => 'NLK',
'V9' => 'ORK',
'W1' => 'PKN',
'W2' => 'RFW',
'W3' => 'ZET',
'W4' => 'SAY',
'W5' => 'SLK',
'W6' => 'STG',
'W7' => 'WDU',
'W8' => 'ELS',
'W9' => 'WLN',
'X1' => 'AGY',
'X2' => 'BGW',
'X3' => 'BGE',
'X4' => 'CAY',
'X5' => 'CRF',
'X6' => 'CGN',
'X7' => 'CMN',
'X8' => 'CWY',
'X9' => 'DEN',
'Y1' => 'FLN',
'Y2' => 'GWN',
'Y3' => 'MTY',
'Y4' => 'MON',
'Y5' => 'NTL',
'Y6' => 'NWP',
'Y7' => 'PEM',
'Y8' => 'POW',
'Y9' => 'RCT',
'Z1' => 'SWA',
'Z2' => 'TOF',
'Z3' => 'VGL',
'Z4' => 'WRX',
// invalid codes [used by maxmind] (mapped based on names)
'Z5' => '', // Bedfordshire [split up]
'Z6' => 'CBF', // Central Bedfordshire
'Z7' => 'CHE', // Cheshire East
'Z8' => 'CHW', // Cheshire West and Chester
'Z9' => 'IOS', // Isles of Scilly
],
'GD' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
],
'GE' => [
// subdivisions rearranged 2002 (https://en.wikipedia.org/wiki/ISO_3166-2:EG)
// mapping based on the subdivision wikipedia pages
'01' => 'SZ', // Abashis Raioni is within Samegrelo-Zemo Svaneti
'02' => 'AB', // Abkhazia
'03' => 'SJ', // Adigenis Raioni is within Samtskhe-Javakheti
'04' => 'AJ', // Ajaria
'05' => 'MM', // Akhalgoris Raioni is within Mtskheta-Mtianeti
'06' => 'SJ', // Akhalk'alak'is Raioni is within Samtskhe-Javakheti
'07' => 'SJ', // Akhalts'ikhis Raioni is within Samtskhe-Javakheti
'08' => 'KA', // Akhmetis Raioni is within Kakheti
'09' => 'RL', // Ambrolauris Raioni is within Racha-Lechkhumi and Kvemo Svaneti
'10' => 'SJ', // Aspindzis Raioni is within Samtskhe-Javakheti
'11' => 'IM', // Baghdat'is Raioni is within Imereti
'12' => 'KK', // Bolnisis Raioni is within Kvemo Kartli
'13' => 'SJ', // Borjomis Raioni is within Samtskhe-Javakheti
'14' => 'IM', // Chiat'ura is within Imereti
'15' => 'SZ', // Ch'khorotsqus Raioni is within Samegrelo-Zemo Svaneti
'16' => 'GU', // Ch'okhatauris Raioni is within Guria
'17' => 'KA', // Dedop'listsqaros Raioni is within Kakheti
'18' => 'KA', // Dmanisis Raioni is within Kakheti
'19' => 'MM', // Dushet'is Raioni is within Mtskheta-Mtianeti
'20' => 'KK', // Gardabanis Raioni is within Kvemo Kartli
'21' => 'SK', // Gori is within Shida Kartli
'22' => 'SK', // Goris Raioni is within Shida Kartli
'23' => 'KA', // Gurjaanis Raioni is within Kakheti
'24' => 'SK', // Javis Raioni is within Shida Kartli
'25' => 'SK', // K'arelis Raioni is within Shida Kartli
'26' => 'SK', // Kaspis Raioni is within Shida Kartli
'27' => 'IM', // Kharagaulis Raioni is within Imereti
'28' => 'SK', // Khashuris Raioni is within Shida Kartli
'29' => 'SZ', // Khobis Raioni is within Samegrelo-Zemo Svaneti
'30' => 'IM', // Khonis Raioni is within Imereti
'31' => 'IM', // K'ut'aisi is within Imereti
'32' => 'KA', // Lagodekhis Raioni is within Kakheti
'33' => 'GU', // Lanch'khut'is Raioni is within Guria
'34' => 'RL', // Lentekhis Raioni is within Racha-Lechkhumi and Kvemo Svaneti
'35' => 'KK', // Marneulis Raioni is within Kvemo Kartli
'36' => 'SZ', // Martvilis Raioni is within Samegrelo-Zemo Svaneti
'37' => 'SZ', // Mestiis Raioni is within Samegrelo-Zemo Svaneti
'38' => 'MM', // Mts'khet'is Raioni is within Mtskheta-Mtianeti
'39' => 'SJ', // Ninotsmindis Raioni is within Samtskhe-Javakheti
'40' => 'RL', // Onis Raioni is within Racha-Lechkhumi and Kvemo Svaneti
'41' => 'GU', // Ozurget'is Raioni is within Guria
'42' => 'SZ', // P'ot'i is within Samegrelo-Zemo Svaneti
'43' => 'MM', // Qazbegis Raioni is within Mtskheta-Mtianeti
'44' => 'KA', // Qvarlis Raioni is within Kakheti
'45' => 'KK', // Rust'avi is within Kvemo Kartli
'46' => 'IM', // Sach'kheris Raioni is within Imereti
'47' => 'KA', // Sagarejos Raioni is within Kakheti
'48' => 'IM', // Samtrediis Raioni is within Imereti
'49' => 'SZ', // Senakis Raioni is within Samegrelo-Zemo Svaneti
'50' => 'KA', // Sighnaghis Raioni is within Kakheti
'51' => 'TB', // T'bilisi
'52' => 'KA', // T'elavis Raioni is within Kakheti
'53' => 'IM', // T'erjolis Raioni is within Imereti
'54' => 'KK', // T'et'ritsqaros Raioni is within Kvemo Kartli
'55' => 'MM', // T'ianet'is Raioni is within Mtskheta-Mtianeti
'56' => 'IM', // Tqibuli is within Imereti
'57' => 'RL', // Ts'ageris Raioni is within Racha-Lechkhumi and Kvemo Svaneti
'58' => 'SZ', // Tsalenjikhis Raioni is within Samegrelo-Zemo Svaneti
'59' => 'KK', // Tsalkis Raioni is within Kvemo Kartli
'60' => 'IM', // Tsqaltubo is within Imereti
'61' => 'IM', // Vanis Raioni is within Imereti
'62' => 'IM', // Zestap'onis Raioni is within Imereti
'63' => 'SZ', // Zugdidi is within Samegrelo-Zemo Svaneti
'64' => 'SZ', // Zugdidis Raioni is within Samegrelo-Zemo Svaneti
],
'GH' => [
'01' => 'AA',
'02' => 'AH',
'03' => 'BA',
'04' => 'CP',
'05' => 'EP',
'06' => 'NP',
'08' => 'TV',
'09' => 'WP',
'10' => 'UE',
'11' => 'UW',
],
'GL' => [
// ISO introduced their own regions in 2010, they completely differ from FIPS and are not mappable
'01' => '', // Nordgronland
'02' => '', // Ostgronland
'03' => '', // Vestgronland
],
'GM' => [
'01' => 'B',
'02' => 'L',
'03' => 'M',
'04' => 'U',
'05' => 'W',
'07' => 'N',
],
'GN' => [
'01' => 'BE', // Beyla
'02' => 'BF', // Boffa
'03' => 'BK', // Boke
'04' => 'C', // Conakry
'05' => 'DB', // Dabola
'06' => 'DL', // Dalaba
'07' => 'DI', // Dinguiraye
'09' => 'FA', // Faranah
'10' => 'FO', // Forecariah
'11' => 'FR', // Fria
'12' => 'GA', // Gaoual
'13' => 'GU', // Gueckedou
'15' => 'KE', // Kerouane
'16' => 'KD', // Kindia
'17' => 'KS', // Kissidougou
'18' => 'KN', // Koundara
'19' => 'KO', // Kouroussa
'21' => 'MC', // Macenta
'22' => 'ML', // Mali
'23' => 'MM', // Mamou
'25' => 'PI', // Pita
'27' => 'TE', // Telimele
'28' => 'TO', // Tougue
'29' => 'YO', // Yomou
'30' => 'CO', // Coyah
'31' => 'DU', // Dubreka
'32' => 'KA', // Kankan
'33' => 'KB', // Koubia
'34' => 'LA', // Labe
'35' => 'LE', // Lelouma
'36' => 'LO', // Lola
'37' => 'MD', // Mandiana
'38' => 'NZ', // Nzerekore
'39' => 'SI', // Siguiri
],
'GQ' => [
'03' => 'AN',
'04' => 'BN',
'05' => 'BS',
'06' => 'CS',
'07' => 'KN',
'08' => 'LI',
'09' => 'WN',
],
'GR' => [
// rearranged 2016. mapping based on (https://en.wikipedia.org/wiki/ISO_3166-2:GR)
'01' => 'A', // Evros
'02' => 'A', // Rodhopi
'03' => 'A', // Xanthi
'04' => 'A', // Drama
'05' => 'B', // Serrai
'06' => 'B', // Kilkis
'07' => 'B', // Pella
'08' => 'C', // Florina
'09' => 'C', // Kastoria
'10' => 'C', // Grevena
'11' => 'C', // Kozani
'12' => 'B', // Imathia
'13' => 'B', // Thessaloniki
'14' => 'A', // Kavala
'15' => 'B', // Khalkidhiki
'16' => 'B', // Pieria
'17' => 'D', // Ioannina
'18' => 'D', // Thesprotia
'19' => 'D', // Preveza
'20' => 'D', // Arta
'21' => 'E', // Larisa
'22' => 'E', // Trikala
'23' => 'E', // Kardhitsa
'24' => 'E', // Magnisia
'25' => 'F', // Kerkira
'26' => 'F', // Levkas
'27' => 'F', // Kefallinia
'28' => 'F', // Zakinthos
'29' => 'H', // Fthiotis
'30' => 'H', // Evritania
'31' => 'G', // Aitolia kai Akarnania
'32' => 'H', // Fokis
'33' => 'H', // Voiotia
'34' => 'H', // Evvoia
'35' => 'I', // Attiki
'36' => 'J', // Argolis
'37' => 'J', // Korinthia
'38' => 'G', // Akhaia
'39' => 'G', // Ilia
'40' => 'J', // Messinia
'41' => 'J', // Arkadhia
'42' => 'J', // Lakonia
'43' => 'M', // Khania
'44' => 'M', // Rethimni
'45' => 'M', // Iraklion
'46' => 'M', // Lasithi
'47' => 'L', // Dhodhekanisos
'48' => 'K', // Samos
'49' => 'L', // Kikladhes
'50' => 'K', // Khios
'51' => 'K', // Lesvos
],
'GT' => [
'01' => 'AV',
'02' => 'BV',
'03' => 'CM',
'04' => 'CQ',
'05' => 'PR',
'06' => 'ES',
'07' => 'GU',
'08' => 'HU',
'09' => 'IZ',
'10' => 'JA',
'11' => 'JU',
'12' => 'PE',
'13' => 'QZ',
'14' => 'QC',
'15' => 'RE',
'16' => 'SA',
'17' => 'SM',
'18' => 'SR',
'19' => 'SO',
'20' => 'SU',
'21' => 'TO',
'22' => 'ZA',
],
'GW' => [
'01' => 'BA',
'02' => 'QU',
'04' => 'OI',
'05' => 'BL',
'06' => 'CA',
'07' => 'TO',
'10' => 'GA',
'11' => 'BS',
'12' => 'BM',
],
'GY' => [
'10' => 'BA',
'11' => 'CU',
'12' => 'DE',
'13' => 'EB',
'14' => 'ES',
'15' => 'MA',
'16' => 'PM',
'17' => 'PT',
'18' => 'UD',
'19' => 'UT',
],
'HN' => [
'01' => 'AT',
'02' => 'CH',
'03' => 'CL',
'04' => 'CM',
'05' => 'CP',
'06' => 'CR',
'07' => 'EP',
'08' => 'FM',
'09' => 'GD',
'10' => 'IN',
'11' => 'IB',
'12' => 'LP',
'13' => 'LE',
'14' => 'OC',
'15' => 'OL',
'16' => 'SB',
'17' => 'VA',
'18' => 'YO',
],
'HR' => [
'01' => '07',
'02' => '12',
'03' => '19',
'04' => '18',
'05' => '04',
'06' => '06',
'07' => '02',
'08' => '09',
'09' => '20',
'10' => '14',
'11' => '11',
'12' => '08',
'13' => '15',
'14' => '03',
'15' => '17',
'16' => '05',
'17' => '10',
'18' => '16',
'19' => '13',
'20' => '01',
'21' => '21',
],
'HT' => [
'03' => 'NO',
'06' => 'AR',
'07' => 'CE',
'09' => 'ND',
'10' => 'NE',
'11' => 'OU',
'12' => 'SD',
'13' => 'SE',
'14' => 'GA',
'15' => 'NI',
],
'HU' => [
'01' => 'BK', // Bacs-Kiskun
'02' => 'BA', // Baranya
'03' => 'BE', // Bekes
'04' => 'BZ', // Borsod-Abauj-Zemplen
'05' => 'BU', // Budapest
'06' => 'CS', // Csongrad
'07' => 'DE', // Debrecen
'08' => 'FE', // Fejer
'09' => 'GS', // Gyor-Moson-Sopron
'10' => 'HB', // Hajdu-Bihar
'11' => 'HE', // Heves
'12' => 'KE', // Komarom-Esztergom
'13' => 'MI', // Miskolc
'14' => 'NO', // Nograd
'15' => 'PS', // Pecs
'16' => 'PE', // Pest
'17' => 'SO', // Somogy
'18' => 'SZ', // Szabolcs-Szatmar-Bereg
'19' => 'SD', // Szeged
'20' => 'JN', // Jasz-Nagykun-Szolnok
'21' => 'TO', // Tolna
'22' => 'VA', // Vas
'23' => 'VE', // Veszprem
'24' => 'ZA', // Zala
'25' => 'GY', // Gyor
'26' => 'BC', // Bekescsaba
'27' => 'DU', // Dunaujvaros
'28' => 'EG', // Eger
'29' => 'HV', // Hodmezovasarhely
'30' => 'KV', // Kaposvar
'31' => 'KM', // Kecskemet
'32' => 'NK', // Nagykanizsa
'33' => 'NY', // Nyiregyhaza
'34' => 'SN', // Sopron
'35' => 'SF', // Szekesfehervar
'36' => 'SK', // Szolnok
'37' => 'SH', // Szombathely
'38' => 'TB', // Tatabanya
'39' => 'VE', // Veszprem
'40' => 'ZE', // Zalaegerszeg
'41' => 'ST', // Salgotarjan
'42' => 'SS', // Szekszard
'43' => 'ER', // Erd
],
'ID' => [
'01' => 'AC',
'02' => 'BA',
'03' => 'BE',
'04' => 'JK',
'05' => 'JA',
'07' => 'JT',
'08' => 'JI',
'10' => 'YO',
'11' => 'KB',
'12' => 'KS',
'13' => 'KT',
'14' => 'KI',
'15' => 'LA',
'17' => 'NB',
'18' => 'NT',
'21' => 'ST',
'22' => 'SG',
'24' => 'SB',
'26' => 'SU',
'28' => 'MA',
'29' => 'MU',
'30' => 'JB',
'31' => 'SA',
'32' => 'SS',
'33' => 'BT',
'34' => 'GO',
'35' => 'BB',
'36' => 'PA',
'37' => 'RI',
'38' => 'SN',
'39' => 'PB',
'40' => 'KR',
'41' => 'SR',
],
'IE' => [
'01' => 'CW',
'02' => 'CN',
'03' => 'CE',
'04' => 'CO',
'06' => 'DL',
'07' => 'D',
'10' => 'G',
'11' => 'KY',
'12' => 'KE',
'13' => 'KK',
'14' => 'LM',
'15' => 'LS',
'16' => 'LK',
'18' => 'LD',
'19' => 'LH',
'20' => 'MO',
'21' => 'MH',
'22' => 'MN',
'23' => 'OY',
'24' => 'RN',
'25' => 'SO',
'26' => 'TA',
'27' => 'WD',
'29' => 'WH',
'30' => 'WX',
'31' => 'WW',
],
'IL' => [
'01' => 'D',
'02' => 'M',
'03' => 'Z',
'04' => 'HA',
'05' => 'TA',
'06' => 'JM',
],
'IN' => [
'01' => 'AN',
'02' => 'AP',
'03' => 'AS',
'05' => 'CH',
'06' => 'DN',
'07' => 'DL',
'09' => 'GJ',
'10' => 'HR',
'11' => 'HP',
'12' => 'JK',
'13' => 'KL',
'14' => 'LD',
'16' => 'MH',
'17' => 'MN',
'18' => 'ML',
'19' => 'KA',
'20' => 'NL',
'21' => 'OR',
'22' => 'PY',
'23' => 'PB',
'24' => 'RJ',
'25' => 'TN',
'26' => 'TR',
'28' => 'WB',
'29' => 'SK',
'30' => 'AR',
'31' => 'MZ',
'32' => 'DD',
'33' => 'GA',
'34' => 'BR',
'35' => 'MP',
'36' => 'UP',
'37' => 'CT',
'38' => 'JH',
'39' => 'UT',
],
'IQ' => [
'01' => 'AN',
'02' => 'BA',
'03' => 'MU',
'04' => 'QA',
'05' => 'SU',
'06' => 'BB',
'07' => 'BG',
'08' => 'DA',
'09' => 'DQ',
'10' => 'DI',
'11' => 'AR',
'12' => 'KA',
'13' => 'KI',
'14' => 'MA',
'15' => 'NI',
'16' => 'WA',
'17' => 'NA',
'18' => 'SD',
],
'IR' => [
// mapping based on wikidata and on manual name matches
'01' => '02', // Āz̄arbāyjān-e Gharbī Province
'03' => '08', // Chahār Maḩāll va Bakhtīār Province
'04' => '13', // Sīstān va Balūchestān Province
'05' => '18', // Kohgīlūyeh va Būyer Aḩmad Province
'07' => '14', // Fārs Province
'08' => '19', // Gīlān Province
'09' => '24', // Hamadān Province
'10' => '05', // Īlām Province
'11' => '23', // Hormozgān Province
'13' => '17', // Kermānshāh Province
'15' => '10', // Khūzestān Province
'16' => '16', // Kordestān Province
'22' => '06', // Būshehr Province
'23' => '20', // Lorestān Province
'25' => '12', // Semnān Province
'26' => '07', // Tehrān Province
'28' => '04', // Eşfahān Province
'29' => '15', // Kermān Province
'32' => '03', // Ardabīl Province
'33' => '01', // Āz̄arbāyjān-e Sharqī Province
'34' => '22', // Markaz Province
'35' => '21', // Māzandarān Province
'36' => '11', // Zanjān Province
'37' => '27', // Golestān Province
'38' => '28', // Qazvīn Province
'39' => '26', // Qom Province
'40' => '25', // Yazd Province
'41' => '29', // Khorāsān-e Janūbī Province
'42' => '30', // Khorāsān-e Razavī Province
'43' => '31', // Khorāsān-e Razavī Province
'44' => '32', // Alborz Province
// invalid codes [used by maxmind]
'12' => '15', // Kerman
'17' => '21', // Mazandaran
'18' => '12', // Semnan Province
'19' => '22', // Markazi
'21' => '11', // Zanjan
'24' => '22', // Markazi
'27' => '11', // Zanjan
'30' => '', // Khorasan [split up]
'31' => '25', // Yazd
],
'IS' => [
// codes contained in maxmind file, but actually no valid FIPS codes anymore
// mapping roughly based on the maps of Wikipedia
'03' => '8', // Arnessysla
'05' => '5', // Austur-Hunavatnssysla
'06' => '7', // Austur-Skaftafellssysla
'07' => '3', // Borgarfjardarsysla
'09' => '6', // Eyjafjardarsysla
'10' => '2', // Gullbringusysla
'15' => '1', // Kjosarsysla
'17' => '3', // Myrasysla
'20' => '7', // Nordur-Mulasysla
'21' => '6', // Nordur-Tingeyjarsysla
'23' => '8', // Rangarvallasysla
'28' => '5', // Skagafjardarsysla
'29' => '3', // Snafellsnes- og Hnappadalssysla
'30' => '4', // Strandasysla
'31' => '7', // Sudur-Mulasysla
'32' => '6', // Sudur-Tingeyjarsysla
'34' => '4', // Vestur-Bardastrandarsysla
'35' => '5', // Vestur-Hunavatnssysla
'36' => '4', // Vestur-Isafjardarsysla
'37' => '8', // Vestur-Skaftafellssysla
// valid FIPS codes
'38' => '7', // Austurland
'39' => '1', // Hofuoborgarsvaoio
'40' => '6', // Norourland Eystra
'41' => '5', // Norourland Vestra
'42' => '8', // Suourland
'43' => '2', // Suournes
'44' => '4', // Vestfiroir
'45' => '3', // Vesturland
],
'IT' => [
'01' => '65',
'02' => '77',
'03' => '78',
'04' => '72',
'05' => '45',
'06' => '36',
'07' => '62',
'08' => '42',
'09' => '25',
'10' => '57',
'11' => '67',
'12' => '21',
'13' => '75',
'14' => '88',
'15' => '82',
'16' => '52',
'17' => '32',
'18' => '55',
'19' => '23',
'20' => '34',
],
'JM' => [
'01' => '13',
'02' => '09',
'04' => '12',
'07' => '04',
'08' => '02',
'09' => '06',
'10' => '14',
'11' => '11',
'12' => '08',
'13' => '05',
'14' => '03',
'15' => '07',
'16' => '10',
'17' => '01',
],
'JO' => [
'02' => 'BA',
'09' => 'KA',
'12' => 'AT',
'15' => 'MA',
'16' => 'AM',
'17' => 'AZ',
'18' => 'IR',
'19' => 'MN',
'20' => 'AJ',
'21' => 'AQ',
'22' => 'JA',
'23' => 'MD',
],
'JP' => [
'01' => '23',
'02' => '05',
'03' => '02',
'04' => '12',
'05' => '38',
'06' => '18',
'07' => '40',
'08' => '07',
'09' => '21',
'10' => '10',
'11' => '34',
'12' => '01',
'13' => '28',
'14' => '08',
'15' => '17',
'16' => '03',
'17' => '37',
'18' => '46',
'19' => '14',
'20' => '39',
'21' => '43',
'22' => '26',
'23' => '24',
'24' => '04',
'25' => '45',
'26' => '20',
'27' => '42',
'28' => '29',
'29' => '15',
'30' => '44',
'31' => '33',
'32' => '27',
'33' => '41',
'34' => '11',
'35' => '25',
'36' => '32',
'37' => '22',
'38' => '09',
'39' => '36',
'40' => '13',
'41' => '31',
'42' => '16',
'43' => '30',
'44' => '06',
'45' => '35',
'46' => '19',
'47' => '47',
],
'KE' => [
// completely reorganized in 2014
'01' => '',
'02' => '',
'03' => '',
'05' => '',
'06' => '',
'07' => '',
'08' => '',
'09' => '',
],
'KG' => [
'01' => 'GB', // Bishkek
'02' => 'C', // Chuy
'03' => 'J', // Jalal-Abad
'04' => 'N', // Naryn
'06' => 'T', // Talas
'07' => 'Y', // Ysyk-Kol
'08' => 'GO', // Osh
'09' => 'B', // Batken
// [invalid code]
'05' => 'GO', // Osh
],
'KH' => [
'02' => '3',
'03' => '4',
'04' => '5',
'05' => '6',
'07' => '8',
'08' => '9',
'09' => '10',
'10' => '11',
'12' => '15',
'13' => '13',
'14' => '14',
'17' => '19',
'18' => '20',
'19' => '21',
'22' => '12',
'23' => '16',
'25' => '1',
'28' => '18',
'29' => '2',
'30' => '24',
// invalid codes [used by maxmind] (mapped based on the names)
'01' => '2', // Batdambang
'06' => '7', // Kampot
'11' => '12', // Phnum Penh
'15' => '16', // Ratanakiri Kiri
'16' => '17', // Siem Reap
],
'KI' => [
'01' => 'G',
'02' => 'L',
'03' => 'P',
],
'KM' => [
'01' => 'A',
'02' => 'G',
'03' => 'M',
],
'KN' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '09',
'10' => '10',
'11' => '11',
'12' => '12',
'13' => '13',
'15' => '15',
],
'KP' => [
// mapping based on names an wikipedia pages
'01' => '04', // Chagang-do
'03' => '08', // Hamgyong-namdo
'06' => '05', // Hwanghae-namdo
'07' => '09', // Hwanghae-bukto
'08' => '06', // Kaesong-si
'09' => '07', // Kangwon-do
'11' => '09', // P'yongan-bukto
'12' => '01', // P'yongyang-si
'13' => '10', // Yanggang-do
'14' => '14', // Namp'o-si
'15' => '02', // P'yongan-namdo
'17' => '09', // Hamgyong-bukto
'18' => '13', // Najin Sonbong-si
],
'KR' => [
'01' => '49',
'03' => '45',
'05' => '43',
'06' => '42',
'10' => '26',
'11' => '11',
'12' => '28',
'13' => '41',
'14' => '47',
'15' => '27',
'16' => '46',
'17' => '44',
'18' => '29',
'19' => '30',
'20' => '48',
'21' => '31',
],
'KW' => [
'01' => 'AH',
'02' => 'KU',
'05' => 'JA',
'07' => 'FA',
'08' => 'HA',
'09' => 'MU',
],
'KY' => [
// Cayman Islands do not have an ISO regions
'01' => '',
'02' => '',
'03' => '',
'04' => '',
'05' => '',
'06' => '',
'07' => '',
'08' => '',
],
'KZ' => [
'01' => 'ALM',
'02' => 'ALA',
'03' => 'AKM',
'04' => 'AKT',
'05' => 'AST',
'06' => 'ATY',
'07' => 'ZAP',
'08' => 'BAY',
'09' => 'MAN',
'10' => 'YUZ',
'11' => 'PAV',
'12' => 'KAR',
'13' => 'KUS',
'14' => 'KZY',
'15' => 'VOS',
'16' => 'SEV',
'17' => 'ZHA',
],
'LA' => [
'01' => 'AT',
'02' => 'CH',
'03' => 'HO',
'07' => 'OU',
'13' => 'XA',
'14' => 'XI',
'17' => 'LP',
// valid codes [not used by maxmind]
'18' => 'PH', // Phôngsali Province
'19' => 'SL', // Salavan Province
'20' => 'SV', // Savannakhét Province
'22' => 'BK', // Bokèo Province
'23' => 'BL', // Bolikhamxai Province
'24' => 'VI', // Viangchan Municipality
'25' => 'XS', // Xaisômboun Special Zone
'26' => 'XE', // Xékong Province
'27' => 'VI', // Vientiane Province
// invalid codes [used by maxmind] (mapped based on the names)
'04' => 'KH', //Khammouan
'05' => 'LM', //Louang Namtha
'08' => 'PH', //Phongsali
'09' => 'SL', //Saravan
'10' => 'SV', //Savannakhet
'11' => 'VI', //Vientiane
],
'LB' => [
'04' => 'BA',
'05' => 'JL',
'06' => 'JA',
'07' => 'NA',
'08' => 'BI',
'09' => 'AS',
'10' => 'AK',
'11' => 'BH',
// invalid codes [used by maxmind]
'01' => 'BI', // Beqaa
'02' => 'JA', // Al Janub
'03' => 'AS', // Liban-Nord
],
'LC' => [
'01' => '01',
'02' => '', // [split up]
'03' => '02',
'04' => '03',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '10',
'10' => '11',
'11' => '', // [split up]
],
'LI' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '09',
'10' => '10',
'11' => '11',
// codes screwed up by maxmind
// Based on the names they seem to be from Liberia, so remove them
'21' => '', // Gbarpolu
'22' => '', // River Gee
],
'LK' => [
// valid FIPS codes [not used by maxmind]
'01' => '52', // Amparai District
'02' => '71', // Anuradhapura District
'03' => '81', // Badulla District
'04' => '51', // Batticaloa District
'06' => '31', // Galle District
'07' => '33', // Hambantota District
'09' => '13', // Kalutara District
'10' => '21', // Kandy District
'11' => '92', // Kegalla District
'12' => '61', // Kurunegala District
'14' => '22', // Matale District
'15' => '32', // Matara District
'16' => '82', // Moneragala District
'17' => '23', // Nuwara Eliya District
'18' => '72', // Polonnaruwa District
'19' => '62', // Puttalam District
'20' => '91', // Ratnapura District
'21' => '53', // Trincomalee District
'23' => '11', // Colombo District
'24' => '12', // Gampaha District
'25' => '41', // Jaffna District
'26' => '43', // Mannar District
'27' => '45', // Mullaittivu District
'28' => '44', // Vavuniya District
// invalid codes [use by maxmind]
'29' => '2', // Central
'30' => '7', // North Central
'32' => '6', // North Western
'33' => '9', // Sabaragamuwa
'34' => '3', // Southern
'35' => '8', // Uva
'36' => '1', // Western
'37' => '5', // Eastern
'38' => '4', // Northern
],
'LR' => [
'01' => 'BG',
'09' => 'NI',
'10' => 'SI',
'11' => 'GB',
'12' => 'CM',
'13' => 'MY',
'14' => 'MO',
'17' => 'MG',
'18' => 'RI',
'19' => 'GG',
'20' => 'LO',
'21' => 'GP',
'22' => 'RG',
// valid codes [not used by maxmind]
'15' => 'BM',
'16' => 'GK',
// invalid codes [used by maxmind]
'04' => 'CM', // Grand Cape Mount
'05' => 'LO', // Lofa
'06' => 'MY', // Maryland
'07' => 'MO', // Monrovia [capital city in region Montserrado]
],
'LS' => [
'10' => 'D',
'11' => 'B',
'12' => 'C',
'13' => 'E',
'14' => 'A',
'15' => 'F',
'16' => 'J',
'17' => 'H',
'18' => 'G',
'19' => 'K',
],
'LT' => [
'56' => 'AL',
'57' => 'KU',
'58' => 'KL',
'59' => 'MR',
'60' => 'PN',
'61' => 'SA',
'62' => 'TA',
'63' => 'TE',
'64' => 'UT',
'65' => 'VL',
],
'LU' => [
// completely reorganized in 2015
'01' => '',
'02' => '',
'03' => '',
],
'LV' => [
// mapping based on the names on wikipedia
'01' => '002', // Aizkraukles
'02' => '007', // Aluksnes
'03' => '015', // Balvu
'04' => '016', // Bauskas
'05' => '022', // Cesu
'06' => 'DGV', // Daugavpils
'07' => '025', // Daugavpils
'08' => '026', // Dobeles
'09' => '033', // Gulbenes
'10' => '042', // Jekabpils
'11' => 'JEL', // Jelgava
'12' => '041', // Jelgavas
'13' => 'JUR', // Jurmala
'14' => '047', // Kraslavas
'15' => '050', // Kuldigas
'16' => 'LPX', // Liepaja
'17' => '', // Liepajas [splitted in 2009 and not mappable]
'18' => '054', // Limbazu
'19' => '058', // Ludzas
'20' => '059', // Madonas
'21' => '067', // Ogres
'22' => '073', // Preilu
'23' => 'REZ', // Rezekne
'24' => '077', // Rezeknes
'25' => 'RIX', // Riga
'26' => '', // Rigas [splitted in 2009 and not mappable]
'27' => '088', // Saldus
'28' => '097', // Talsu
'29' => '099', // Tukuma
'30' => '101', // Valkas
'31' => 'VMR', // Valmieras
'32' => 'VEN', // Ventspils
'33' => '106', // Ventspils
],
'LY' => [
'03' => 'JI', // Al Aziziyah [part of Jafara since 2009]
'05' => 'JU', // Al Jufrah
'08' => 'KF', // Al Kufrah
'13' => 'WS', // Ash Shati'
'30' => 'MQ', // Murzuq
'34' => 'SB', // Sabha
'41' => 'MQ', // Tarhunah [occupied by Tarhuna wa Msalata and transformed to Murqub in 2009]
'42' => 'BU', // Tubruq
'45' => 'MI', // Zlitan [part of Misrata since 2009]
'47' => 'WA', // Ajdabiya [included in Al Wāḩāt since 2007]
'48' => 'MJ', // Al Fatih [some parts are in Marj]
'49' => 'JA', // Al Jabal al Akhdar
'50' => 'MB', // Al Khums [seems to be part of Al Marqab]
'51' => 'NQ', // An Nuqat al Khams
'52' => 'WD', // Awbari [part of Wadi al Hayaa]
'53' => 'ZA', // Az Zawiyah
'54' => 'BA', // Banghazi
'55' => 'DR', // Darnah
'56' => 'NL', // Ghadamis [part of Nalut]
'57' => 'JG', // Gharyan [part of Jabal al Gharbi since 2007]
'58' => 'MI', // Misratah
'59' => '', // Sawfajjin [split between Sirte and Misrata]
'60' => 'SR', // Surt
'61' => 'TB', // Tarabulus
'62' => '', // Yafran [split between Jabal al Gharbi and Nalut]
],
'MA' => [
'45' => '08',
'46' => '05',
'47' => '11',
'48' => '06',
'49' => '07',
'50' => '09',
'51' => '10',
'52' => '02',
'53' => '14',
'54' => '04',
'55' => '13',
'56' => '12',
'57' => '01',
'58' => '03',
'59' => '15',
],
'MC' => [
// there are no fips codes for Monaco
// those were used by maxind
'01' => 'CO', // La Condamine
'02' => 'MO', // Monaco
'03' => 'MC', // Monte-Carlo
],
'MD' => [
'51' => 'GA',
'57' => 'CU', // Chisinau
'58' => 'SN', // Stinga Nistrului
'59' => 'AN',
'60' => 'BA',
'61' => 'BS',
'62' => 'BD',
'63' => 'BR',
'64' => 'CA',
'65' => 'CT',
'66' => 'CL', // Calarasi
'67' => 'CS',
'68' => 'CM', // Cimislia
'69' => 'CR',
'70' => 'DO',
'71' => 'DR',
'72' => 'DU',
'73' => 'ED',
'74' => 'FA',
'75' => 'FL', // Floresti
'76' => 'GL',
'77' => 'HI',
'78' => 'IA',
'79' => 'LE',
'80' => 'NI',
'81' => 'OC',
'82' => 'OR',
'83' => 'RE',
'84' => 'RI',
'85' => 'SI',
'86' => 'SD',
'87' => 'SO',
'88' => 'SV',
'89' => 'ST',
'90' => 'TA', // Taraclia
'91' => 'TE',
'92' => 'UN', // Ungheni
],
'MG' => [
'01' => 'D', // Antsiranana
'02' => 'F', // Fianarantsoa
'03' => 'M', // Mahajanga
'04' => 'A', // Toamasina
'05' => 'T', // Antananarivo
'06' => 'U', // Toliara
],
'MK' => [
'01' => '02', // Aracinovo
'02' => '55', // Bac [now part of Novaci]
'03' => '22', // Belcista [now Debarca]
'04' => '03', // Berovo
'05' => '04', // Bistrica [city in Bitola]
'06' => '04', // Bitola
'07' => '14', // Blatec [now part of Vinica]
'08' => '05', // Bogdanci
'09' => '80', // Bogomila [city in Caska]
'10' => '03', // Bogovinje
'11' => '07', // Bosilovo
'12' => '08', // Brvenica
'14' => '04', // Capari [city in Bitola]
'15' => '80', // Caska
'16' => '19', // Cegrane [city in Gostivar]
'19' => '81', // Cesinovo
'20' => '82', // Cucer-Sandevo
'21' => '21', // Debar
'22' => '23', // Delcevo
'23' => '72', // Delogozdi [city in Struga]
'24' => '25', // Demir Hisar
'25' => '24', // Demir Kapija
'26' => '53', // Dobrusevo [city in Moglia]
'27' => '19', // Dolna Banjica [city in Gostivar]
'28' => '27', // Dolneni
'30' => '40', // Drugovo [merged with Kicevo]
'31' => '76', // Dzepciste [city in Tetovo]
'33' => '18', // Gevgelija
'34' => '19', // Gostivar
'35' => '20', // Gradsko
'36' => '34', // Ilinden
'37' => '80', // Izvor [attached to Caska]
'38' => '35', // Jegunovce
'39' => '03', // Kamenjane [city in Bogovinje]
'40' => '37', // Karbinci
'41' => '85', // Karpos [now in Skopje]
'42' => '36', // Kavadarci
'43' => '40', // Kicevo
'44' => '85', // Kisela Voda [now in Skopje]
'45' => '', // Klecevce [attached to Klecevce and Staro Nagoricane]
'46' => '42', // Kocani
'47' => '41', // Konce
'48' => '85', // Kondovo [now in Skopje]
'49' => '36', // Konopiste [city in Kavadarci]
'50' => '58', // Kosel [city in Ohrid]
'51' => '43', // Kratovo
'52' => '44', // Kriva Palanka
'53' => '45', // Krivogastani
'54' => '46', // Krusevo
'55' => '73', // Kuklis [city in Strumica]
'56' => '04', // Kukurecani [city in Bitola]
'57' => '47', // Kumanovo
'58' => '72', // Labunista [city in Struga]
'59' => '48', // Lipkovo
'60' => '49', // Lozovo
'61' => '72', // Lukovo [city in Struga]
'62' => '51', // Makedonska Kamenica
'63' => '52', // Makedonski Brod
'64' => '50', // Mavrovi Anovi [city in Mavrovo i Rostuša]
'65' => '22', // Meseista [city in Debarca]
'66' => '18', // Miravci [city in Gevgelija]
'67' => '53', // Mogila
'68' => '73', // Murtino [splitted between Strumica and Bosilovo; major part in Strumica]
'69' => '54', // Negotino
'70' => '54', // Negotino-Polosko
'71' => '55', // Novaci
'72' => '56', // Novo Selo
'73' => '81', // Oblesevo
'74' => '58', // Ohrid
'75' => '47', // Orasac [city in Kumanovo]
'76' => '48', // Orizari [city in Lipkovo]
'77' => '40', // Oslomej [city in Kičevo]
'78' => '60', // Pehcevo
'79' => '59', // Petrovec
'80' => '61', // Plasnica
'81' => '64', // Podares [city in Rodavis]
'82' => '62', // Prilep
'83' => '63', // Probistip
'84' => '64', // Radovis
'85' => '65', // Rankovce
'86' => '66', // Resen
'87' => '67', // Rosoman
'88' => '50', // Rostusa [city in Mavrovo i Rostuša]
'89' => '', // Samokov [city in Sofia] ?????????????????????
'90' => '85', // Saraj [now in Skopje]
'91' => '76', // Sipkovica [city in Tetovo]
'92' => '70', // Sopiste
'93' => '25', // Sopotnica [city in Demir Hisar]
'94' => '19', // Srbinovo [city in Gostivar]
'95' => '55', // Staravina [city in Novaci]
'96' => '26', // (Star) Dojran
'97' => '71', // Staro Nagoricane
'98' => '83', // Stip
'99' => '72', // Struga
'A1' => '73', // Strumica
'A2' => '73', // Studenicani
'A3' => '85', // Suto Orizari [now in Skopje]
'A4' => '69', // Sveti Nikole
'A5' => '75', // Tearce
'A6' => '76', // Tetovo
'A7' => '62', // Topolcani [city in Prilep]
'A8' => '10', // Valandovo
'A9' => '11', // Vasilevo
'B1' => '16', // Veles
'B2' => '72', // Velesta [city in Struga]
'B3' => '12', // Vevcani
'B4' => '14', // Vinica
'B5' => '62', // Vitoliste [city in Prilep]
'B6' => '40', // Vranestica [now in Kicevo]
'B7' => '16', // Vrapciste
'B8' => '35', // Vratnica [city in Jegunovce]
'B9' => '19', // Vrutok [city in Gostivar]
'C1' => '40', // Zajas [now in Kicevo]
'C2' => '32', // Zelenikovo
'C3' => '30', // Zelino
'C4' => '27', // Zitose [city in Dolneni]
'C5' => '63', // Zletovo [city in Probistip]
'C6' => '33', // Zrnovci
// invalid codes [used by maxmind]
'13' => '85', // Cair [now in Skopje]
'17' => '78', // Centar
'18' => '78', // Centar Zupa
'29' => '85', // Dorce Petrov [now in Skopje]
'32' => '85', // Gazi Baba [now in Skopje]
'C8' => '85', // Cair [now in Skopje]
'C9' => '80', // Caska
'D2' => '21', // Debar
'D3' => '25', // Demir Hisar
'D4' => '19', // Gostivar
'D5' => '35', // Jegunovce
'D6' => '36', // Kavadarci
'D7' => '47', // Kumanovo
'D8' => '52', // Makedonski Brod
'E2' => '58', // Ohrid
'E3' => '62', // Prilep
'E5' => '26', // Dojran
'E6' => '72', // Struga
'E7' => '73', // Strumica
'E8' => '76', // Tetovo
'E9' => '10', // Valandovo
'F1' => '13', // Veles
'F2' => '85', // Aerodrom [now in Skopje]
],
'ML' => [
'01' => 'BKO',
'03' => '1',
'04' => '5',
'05' => '4',
'06' => '3',
'07' => '2',
'08' => '6',
'09' => '7',
'10' => '8',
],
'MM' => [
'01' => '16', // Rakhine State
'02' => '14', // Chin State
'03' => '07', // Irrawaddy
'04' => '11', // Kachin State
'05' => '13', // Karan State
'06' => '12', // Kayah State
'08' => '04', // Mandalay
'10' => '01', // Sagaing
'11' => '17', // Shan State
'12' => '05', // Tenasserim
'13' => '15', // Mon State
'17' => '06', // Yangon
// invalid codes [used by maxmind]
'07' => '03', // Magwe
'09' => '02', // Pegu
'14' => '06', // Rangoon
// valid codes [not used by maxmind]
'15' => '03', // Magway Division
'16' => '02', // Bago Division
],
'MN' => [
'01' => '073', // Arhangay
'02' => '069', // Bayanhongor
'03' => '071', // Bayan-Olgiy
'06' => '061', // Dornod
'07' => '063', // Dornogovi
'08' => '059', // Dundgovi
'09' => '057', // Dzavhan
'10' => '065', // Govi-Altay
'11' => '039', // Hentiy
'12' => '043', // Hovd
'13' => '041', // Hovsgol
'14' => '053', // Omnogovi
'15' => '055', // Ovorhangay
'16' => '049', // Selenge
'17' => '051', // Suhbaatar
'18' => '047', // Tov
'19' => '046', // Uvs
'20' => '1', // Ulaanbaatar
'21' => '067', // Bulgan
'23' => '037', // Darhan-Uul
'24' => '064', // Govisumber
'25' => '035', // Orhon
// invalid codes [used by maxmind]
'05' => '037', // Darhan
'22' => '035', // Erdenet [city in Orkhon]
],
'MO' => [
// No ISO codes assigned for Macau
'01' => '', // Ilhas
'02' => '', // Macau
],
'MR' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '09',
'10' => '10',
'11' => '11',
'12' => '12',
],
'MS' => [
// No ISO codes assigned for Montserrat
'01' => '',
'02' => '',
'03' => '',
],
'MU' => [
'12' => 'BL',
'13' => 'FL',
'14' => 'GP',
'15' => 'MO',
'16' => 'PA',
'17' => 'PW',
'18' => 'PL',
'19' => 'RR',
'20' => 'SA',
'21' => 'AG',
'22' => 'CC',
'23' => 'RO',
],
'MV' => [
'01' => '01',
'05' => '05',
'30' => '02',
'31' => '20',
'32' => '17',
'33' => '14',
'34' => '27',
'35' => '28',
'36' => '07',
'37' => '23',
'38' => '26',
'39' => '03',
'40' => 'MLE',
'41' => '12',
'42' => '29',
'43' => '25',
'44' => '13',
'45' => '24',
'46' => '08',
'47' => '04',
],
'MW' => [
'02' => 'CK', // Chikwawa
'03' => 'CR', // Chiradzulu
'04' => 'CT', // Chitipa
'05' => 'TH', // Thyolo
'06' => 'DE', // Dedza
'07' => 'DO', // Dowa
'08' => 'KR', // Karonga
'09' => 'KS', // Kasungu
'11' => 'LI', // Lilongwe
'12' => 'MG', // Mangochi
'13' => 'MC', // Mchinji
'15' => 'MZ', // Mzimba
'16' => 'NU', // Ntcheu
'17' => 'NB', // Nkhata Bay
'18' => 'NK', // Nkhotakota
'19' => 'NS', // Nsanje
'20' => 'NI', // Ntchisi
'21' => 'RU', // Rumphi
'22' => 'SA', // Salima
'23' => 'ZO', // Zomba
'24' => 'BL', // Blantyre
'25' => 'MW', // Mwanza
'26' => 'BA', // Balaka
'27' => 'LK', // Likoma
'28' => 'MH', // Machinga
'29' => 'MU', // Mulanje
'30' => 'PH', // Phalombe
],
'MX' => [
'01' => 'AGU',
'02' => 'BCN',
'03' => 'BCS',
'04' => 'CAM',
'05' => 'CHP',
'06' => 'CHH',
'07' => 'COA',
'08' => 'COL',
'09' => 'CMX',
'10' => 'DUR',
'11' => 'GUA',
'12' => 'GRO',
'13' => 'HID',
'14' => 'JAL',
'15' => 'MEX',
'16' => 'MIC',
'17' => 'MOR',
'18' => 'NAY',
'19' => 'NLE',
'20' => 'OAX',
'21' => 'PUE',
'22' => 'QUE',
'23' => 'ROO',
'24' => 'SLP',
'25' => 'SIN',
'26' => 'SON',
'27' => 'TAB',
'28' => 'TAM',
'29' => 'TLA',
'30' => 'VER',
'31' => 'YUC',
'32' => 'ZAC',
],
'MY' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '08',
'08' => '09',
'09' => '07',
'11' => '13',
'12' => '10',
'13' => '11',
'14' => '14',
'15' => '15',
'16' => '12',
'17' => '16',
],
'MZ' => [
'01' => 'P',
'02' => 'G',
'03' => 'I',
'04' => 'L',
'05' => 'S',
'06' => 'N',
'07' => 'A',
'08' => 'T',
'09' => 'Q',
'10' => 'B',
'11' => 'MPM',
],
'NA' => [
'21' => 'KH', // Windhoek [capital city of Khomas]
'28' => 'CA', // Caprivi (now named Zambezi)
'29' => 'ER', // Erongo
'30' => 'HA', // Hardap
'31' => 'KA', // Karas
'32' => 'KU', // Kunene
'33' => 'OW', // Ohangwena
'34' => '', // Okavango [now splitted in Kavango East and West]
'35' => 'OH', // Omaheke
'36' => 'OS', // Omusati
'37' => 'ON', // Oshana
'38' => 'OT', // Oshikoto
'39' => 'OD', // Otjozondjupa
// invalid codes [used by maxmind]
'01' => 'KA', // Bethanien [city in Karas]
'02' => '', // Caprivi Oos [old region, not mappable]
'03' => '', // Boesmanland [old region, not mappable]
'04' => 'OH', // Gobabis [capital of Omaheke]
'05' => 'OD', // Grootfontein [city in Otjozondjupa]
'06' => 'KU', // Kaokoland [now part of Kunene]
'07' => 'ER', // Karibib [city in Erongo]
'08' => 'KA', // Keetmanshoop [city in Karas]
'09' => 'KA', // Luderitz [city in Karas]
'10' => 'HA', // Maltahohe [city in Hardap]
'11' => 'OD', // Okahandja [city in Otjozondjupa]
'12' => 'ER', // Omaruru [city in Erongo]
'13' => 'OD', // Otjiwarongo [capital in Otjozondjupa]
'14' => 'KU', // Outjo [city in Kunene]
'15' => '', // Owambo [old region, not mappable]
'16' => 'HA', // Rehoboth [city in Hardap]
'17' => 'ER', // Swakopmund [city in Erongo]
'18' => 'OT', // Tsumeb [city in Oshikoto]
'20' => 'KA', // Karasburg [city in Karas]
'22' => '', // Damaraland [old region, not mappable]
'23' => '', // Hereroland Oos [old region, not mappable]
'24' => '', // Hereroland Wes [old region, not mappable]
'25' => '', // Kavango [now splitted in East and West]
'26' => 'HA', // Mariental [city in Hardap]
'27' => '', // Namaland [old region, not mappable]
],
'NE' => [
'01' => '1',
'02' => '2',
'03' => '3',
'04' => '4',
'06' => '5',
'07' => '7',
'08' => '8',
// valid codes [not used by maxmind]
'09' => '6',
// invalid codes [not used by maxmind]
'05' => '8',
],
'NG' => [
'05' => 'LA', // Lagos
'11' => 'FC', // Federal Capital Territory
'16' => 'OG', // Ogun
'21' => 'AK', // Akwa Ibom
'22' => 'CR', // Cross River
'23' => 'KD', // Kaduna
'24' => 'KT', // Katsina
'25' => 'AN', // Anambra
'26' => 'BE', // Benue
'27' => 'BO', // Borno
'28' => 'IM', // Imo
'29' => 'KN', // Kano
'30' => 'KW', // Kwara
'31' => 'NI', // Niger
'32' => 'OY', // Oyo
'35' => 'AD', // Adamawa
'36' => 'DE', // Delta
'37' => 'ED', // Edo
'39' => 'JI', // Jigawa
'40' => 'KE', // Kebbi
'41' => 'KO', // Kogi
'42' => 'OS', // Osun
'43' => 'TA', // Taraba
'44' => 'YO', // Yobe
'45' => 'AB', // Abia
'46' => 'BA', // Bauchi
'47' => 'EN', // Enugu
'48' => 'ON', // Ondo
'49' => 'PL', // Plateau
'50' => 'RI', // Rivers
'51' => 'SO', // Sokoto
'52' => 'BY', // Bayelsa
'53' => 'EB', // Ebonyi
'54' => 'EK', // Ekiti
'55' => 'GO', // Gombe
'56' => 'NA', // Nassarawa
'57' => 'ZA', // Zamfara
],
'NI' => [
'01' => 'BO',
'02' => 'CA',
'03' => 'CI',
'04' => 'CO',
'05' => 'ES',
'06' => 'GR',
'07' => 'JI',
'08' => 'LE',
'09' => 'MD',
'10' => 'MN',
'11' => 'MS',
'12' => 'MT',
'13' => 'NS',
'14' => 'SJ',
'15' => 'RI',
'17' => 'AN',
'18' => 'AS',
// invalid codes [used by maxmind]
'16' => '', // Zelaya
],
'NL' => [
'01' => 'DR',
'02' => 'FR',
'03' => 'GE',
'04' => 'GR',
'05' => 'LI',
'06' => 'NB',
'07' => 'NH',
'09' => 'UT',
'10' => 'ZE',
'11' => 'ZH',
'15' => 'OV',
'16' => 'FL',
],
'NO' => [
'01' => '02',
'02' => '09',
'04' => '06',
'05' => '20',
'06' => '04',
'07' => '12',
'08' => '15',
'09' => '18',
'10' => '17',
'11' => '05',
'12' => '03',
'13' => '01',
'14' => '11',
'15' => '14',
'16' => '16',
'17' => '08',
'18' => '19',
'19' => '10',
'20' => '07',
],
'NP' => [
'01' => 'BA', // Bagmati
'02' => 'BH', // Bheri
'03' => 'DH', // Dhawalagiri
'04' => 'GA', // Gandaki
'05' => 'JA', // Janakpur
'06' => 'KA', // Karnali
'07' => 'KO', // Kosi
'08' => 'LU', // Lumbini
'09' => 'MA', // Mahakali
'10' => 'ME', // Mechi
'11' => 'NA', // Narayani
'12' => 'RA', // Rapti
'13' => 'SA', // Sagarmatha
'14' => 'SE', // Seti
],
'NR' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '09',
'10' => '10',
'11' => '11',
'12' => '12',
'13' => '13',
'14' => '14',
],
'NZ' => [
'10' => 'CIT',
'E7' => 'AUK',
'E8' => 'BOP',
'E9' => 'CAN',
'F1' => 'GIS',
'F2' => 'HKB',
'F3' => 'MWT',
'F4' => 'MBH',
'F5' => 'NSN',
'F6' => 'NTL',
'F7' => 'OTA',
'F8' => 'STL',
'F9' => 'TKI',
'G1' => 'WKO',
'G2' => 'WGN',
'G3' => 'WTC',
],
'OM' => [
'01' => 'DA', // Ad Dakhiliyah
'02' => '', // Al Batinah [splitted in two]
'03' => 'WU', // Al Wusta
'04' => '', // Ash Sharqiyah
'06' => 'MA', // Masqat [splitted in two]
'07' => 'MU', // Musandam
'08' => 'ZU', // Zufar
// valid codes [not used by maxmind]
'09' => 'ZA', // Ad Dhahirah
'10' => 'BU', // Al Buraimi
// invalid codes [used by maxmind]
'05' => 'ZA', // Az Zahirah
],
'PA' => [
'01' => '1',
'02' => '4',
'03' => '2',
'04' => '3',
'05' => '5',
'06' => '6',
'07' => '7',
'08' => '8',
'09' => 'KY',
'10' => '9',
],
'PE' => [
'01' => 'AMA',
'02' => 'ANC',
'03' => 'APU',
'04' => 'ARE',
'05' => 'AYA',
'06' => 'CAJ',
'07' => 'CAL',
'08' => 'CUS',
'09' => 'HUV',
'10' => 'HUC',
'11' => 'ICA',
'12' => 'JUN',
'13' => 'LAL',
'14' => 'LAM',
'15' => 'LIM',
'16' => 'LOR',
'17' => 'MDD',
'18' => 'MOQ',
'19' => 'PAS',
'20' => 'PIU',
'21' => 'PUN',
'22' => 'SAM',
'23' => 'TAC',
'24' => 'TUM',
'25' => 'UCA',
],
'PG' => [
'01' => 'CPM',
'02' => 'GPK',
'03' => 'MBA',
'04' => 'NPP',
'05' => 'SHM',
'06' => 'WPD',
'07' => 'NSB',
'08' => 'CPK',
'09' => 'EHG',
'10' => 'EBR',
'11' => 'ESW',
'12' => 'MPM',
'13' => 'MRL',
'14' => 'MPL',
'15' => 'NIK',
'16' => 'WHM',
'17' => 'WBK',
'18' => 'SAN',
'19' => 'EPW',
'20' => 'NCD',
],
'PH' => [
'01' => 'ABR', // Abra
'02' => 'AGN', // Agusan del Norte
'03' => 'AGS', // Agusan del Sur
'04' => 'AKL', // Aklan
'05' => 'ALB', // Albay
'06' => 'ANT', // Antique
'07' => 'BAN', // Bataan
'08' => 'BTN', // Batanes
'09' => 'BTG', // Batangas
'10' => 'BEN', // Benguet
'11' => 'BOH', // Bohol
'12' => 'BUK', // Bukidnon
'13' => 'BUL', // Bulacan
'14' => 'CAG', // Cagayan
'15' => 'CAN', // Camarines Norte
'16' => 'CAS', // Camarines Sur
'17' => 'CAM', // Camiguin
'18' => 'CAP', // Capiz
'19' => 'CAT', // Catanduanes
'20' => 'CAV', // Cavite
'21' => 'CEB', // Cebu
'22' => 'BAS', // Basilan
'23' => 'EAS', // Eastern Samar
'24' => 'DAV', // Davao
'25' => 'DAS', // Davao del Sur
'26' => 'DAO', // Davao Oriental
'27' => 'IFU', // Ifugao
'28' => 'ILN', // Ilocos Norte
'29' => 'ILS', // Ilocos Sur
'30' => 'ILI', // Iloilo
'31' => 'ISA', // Isabela
'32' => '', // Kalinga-Apayao [splitted in two]
'33' => 'LAG', // Laguna
'34' => 'LAN', // Lanao del Norte
'35' => 'LAS', // Lanao del Sur
'36' => 'LUN', // La Union
'37' => 'LEY', // Leyte
'38' => 'MAD', // Marinduque
'39' => 'MAS', // Masbate
'40' => 'MDC', // Mindoro Occidental
'41' => 'MDR', // Mindoro Oriental
'42' => 'MSC', // Misamis Occidental
'43' => 'MSR', // Misamis Oriental
'44' => 'MOU', // Mountain
'45' => 'NEC', // Negros Occidental
'46' => 'NER', // Negros Oriental
'47' => 'NUE', // Nueva Ecija
'48' => 'NUV', // Nueva Vizcaya
'49' => 'PLW', // Palawan
'50' => 'PAM', // Pampanga
'51' => 'PAN', // Pangasinan
'53' => 'RIZ', // Rizal
'54' => 'ROM', // Romblon
'55' => 'WSA', // Samar
'56' => 'MAG', // Maguindanao
'57' => 'NCO', // North Cotabato
'58' => 'SOR', // Sorsogon
'59' => 'SLE', // Southern Leyte
'60' => 'SLU', // Sulu
'61' => 'SUN', // Surigao del Norte
'62' => 'SUR', // Surigao del Sur
'63' => 'TAR', // Tarlac
'64' => 'ZMB', // Zambales
'65' => 'ZAN', // Zamboanga del Norte
'66' => 'ZAS', // Zamboanga del Sur
'67' => 'NSA', // Northern Samar
'68' => 'QUI', // Quirino
'69' => 'SIG', // Siquijor
'70' => 'SCO', // South Cotabato
'71' => 'SUK', // Sultan Kudarat
'72' => 'TAW', // Tawitawi
'A1' => 'PAM', // Angeles [city in Pamganga]
'A2' => 'NEC', // Bacolod [city in Negros Occidental]
'A3' => 'NEC', // Bago [city in Negros Occidental]
'A4' => 'BEN', // Baguio [city in Benguet]
'A5' => 'NER', // Bais [city in Negros Oriental]
'A6' => '09', // Basilan City [city in Zamboanga Peninsula]
'A7' => 'BTG', // Batangas City [capital of Batangas]
'A8' => 'AGN', // Butuan [city in Agusan del Norte]
'A9' => 'NUE', // Cabanatuan [city in Nueva Ecija]
'B1' => 'NEC', // Cadiz [city in Negros Occidental]
'B2' => 'MSR', // Cagayan de Oro [city in Misamis Oriental]
'B3' => 'WSA', // Calbayog [city in Samar]
'B4' => '00', // Caloocan [part of National Capital Region]
'B5' => 'NER', // Canlaon [city in Negros Oriental]
'B6' => 'CAV', // Cavite City [capital of Cavite]
'B7' => 'CEB', // Cebu City [capital of Cebu]
'B8' => 'MAG', // Cotabato [city in Maguindanao]
'B9' => 'PAN', // Dagupan [city in Pangasinan]
'C1' => 'CEB', // Danao [city in Cebu]
'C2' => 'ZAN', // Dapitan [city in Zamboanga del Norte]
'C3' => 'DAS', // Davao City [city in Davao del Sur]
'C4' => 'ZAN', // Dipolog [city in Zamboanga del Norte]
'C5' => 'NER', // Dumaguete [city in Negros Oriental]
'C6' => 'SCO', // General Santos [city in South Cotabato]
'C7' => 'MSR', // Gingoog [city in Misamis Oriental]
'C8' => 'LAN', // Iligan [city in Lanao del Norte]
'C9' => 'ILI', // Iloilo City [capital of Iloilo]
'D1' => 'CAS', // Iriga [city in Camarines Sur]
'D2' => 'NEC', // La Carlota [city in Negros Occidental]
'D3' => 'ILN', // Laoag [city in Ilocos Norte]
'D4' => 'CEB', // Lapu-Lapu [city in Cebu]
'D5' => 'ALB', // Legaspi [city in Albay]
'D6' => 'BTG', // Lipa [city in Batangas]
'D7' => 'QUE', // Lucena [city in Quezon]
'D8' => 'CEB', // Mandaue [city in Cebu]
'D9' => '00', // Manila [part of National Capital Region]
'E1' => 'LAS', // Marawi [city in Lanao del Sur]
'E2' => 'CAS', // Naga [city in Camarines Sur]
'E3' => 'ZMB', // Olongapo [city in Zambales]
'E4' => 'LEY', // Ormoc [city in Leyte]
'E5' => 'MSC', // Oroquieta [city in Misamis Occidental]
'E6' => 'MSC', // Ozamis [city in Misamis Occidental]
'E7' => 'ZAS', // Pagadian [city in Zamboanga del Sur]
'E8' => 'NUE', // Palayan [city in Nueva Ecija]
'E9' => '00', // Pasay [part of National Capital Region]
'F1' => 'PLW', // Puerto Princesa [city in Palawan]
'F2' => '00', // Quezon City [part of National Capital Region]
'F3' => 'CAP', // Roxas [city in Capiz]
'F4' => 'NEC', // San Carlos [city in Negros Occidental]
'F5' => 'PAN', // San Carlos [city in Pangasinan]
'F6' => 'NUE', // San Jose [city in Nueva Ecija]
'F7' => 'LAG', // San Pablo [city in Laguna]
'F8' => 'NEC', // Silay [city in Negros Occidental]
'F9' => 'SUN', // Surigao [city in Surigao del Norte]
'G1' => 'LEY', // Tacloban [city in Leyte]
'G2' => 'CAV', // Tagaytay [city in Cavite]
'G3' => 'BOH', // Tagbilaran [city in Bohol]
'G4' => 'MSC', // Tangub [city in Misamis Occidental]
'G5' => 'CEB', // Toledo [city in Cebu]
'G6' => 'CAV', // Trece Martires [city in Cavite]
'G7' => 'ZAS', // Zamboanga [city in Zamboanga del Sur]
'G8' => 'AUR', // Aurora
'H2' => 'QUE', // Quezon
'H3' => 'NEC', // Negros Occidental
// invalid codes [used by maxmind]
'H9' => 'BIL', // Biliran
'I6' => 'COM', // Compostela Valley
'I7' => 'DAV', // Davao del Norte
'J3' => 'GUI', // Guimaras
'J4' => 'NEC', // Himamaylan [city in Negros Occidental]
'J7' => 'KAL', // Kalinga
'K1' => '00', // Las Pinas [part of National Capital Region]
'K5' => '00', // Malabon [part of National Capital Region]
'K6' => 'BUK', // Malaybalay [city in Bukidnon]
'L4' => '00', // Muntinlupa [part of National Capital Region]
'L5' => '00', // Navotas [part of National Capital Region]
'L7' => '00', // Paranaque [part of National Capital Region]
'L9' => '', // Passi
'P1' => 'ZMB', // Zambales
'M5' => 'PAM', // San Jose del Monte [city in Pampanga]
'M6' => '', // San Juan [the are many cities with this name]
'M8' => '', // Santiago [the are 3 cities with this name]
'M9' => 'SAR', // Sarangani
'N1' => 'NEC', // Sipalay [city in Negros Occidental]
'N3' => 'SUN', // Surigao del Norte
'P2' => 'ZAS', // Zamboanga [city in Zamboanga del Sur]
],
'PK' => [
'01' => 'TA',
'02' => 'BA',
'03' => 'KP',
'04' => 'PB',
'05' => 'SD',
'06' => 'JK',
'07' => 'GB',
'08' => 'IS',
],
'PL' => [
'72' => 'DS',
'73' => 'KP',
'74' => 'LD',
'75' => 'LU',
'76' => 'LB',
'77' => 'MA',
'78' => 'MZ',
'79' => 'OP',
'80' => 'PK',
'81' => 'PD',
'82' => 'PM',
'83' => 'SL',
'84' => 'SK',
'85' => 'WN',
'86' => 'WP',
'87' => 'ZP',
],
'PS' => [
// completely new regions
'GZ' => '', // Gaza
'WE' => '', // West Bank
],
'PT' => [
'02' => '01',
'03' => '02',
'04' => '03',
'05' => '04',
'06' => '05',
'07' => '06',
'08' => '07',
'09' => '08',
'10' => '30',
'11' => '09',
'13' => '10',
'14' => '11',
'16' => '12',
'17' => '13',
'18' => '14',
'19' => '15',
'20' => '16',
'21' => '17',
'22' => '18',
'23' => '20',
],
'PY' => [
'01' => '10',
'02' => '13',
'04' => '5',
'05' => '6',
'06' => '11',
'07' => '1',
'08' => '3',
'10' => '4',
'11' => '7',
'12' => '8',
'13' => '12',
'15' => '9',
'16' => '15',
'17' => '2',
'19' => '14',
'22' => 'ASU',
'23' => '16',
'24' => '19',
],
'QA' => [
'01' => 'DA', // Ad Dawhah
'02' => 'KH', // Al Ghuwariyah [city in Al Khawr]
'03' => 'SH', // Al Jumaliyah [city in Ash Shīḩānīyah]
'04' => 'KH', // Al Khawr
'06' => 'RA', // Ar Rayyan
'08' => 'MS', // Madinat ach Shamal
'09' => 'US', // Umm Salal
'10' => 'WA', // Al Wakrah
'11' => '', // Jariyan al Batnah [split into two]
'12' => 'WA', // Umm Sa'id [city in Al Wakrah]
// invalid codes [used by maxmind]
'05' => 'WA', // Al Wakrah Municipality
],
'RO' => [
'01' => 'AB',
'02' => 'AR',
'03' => 'AG',
'04' => 'BC',
'05' => 'BH',
'06' => 'BN',
'07' => 'BT',
'08' => 'BR',
'09' => 'BV',
'10' => 'B',
'11' => 'BZ',
'12' => 'CS',
'13' => 'CJ',
'14' => 'CT',
'15' => 'CV',
'16' => 'DB',
'17' => 'DJ',
'18' => 'GL',
'19' => 'GJ',
'20' => 'HR',
'21' => 'HD',
'22' => 'IL',
'23' => 'IS',
'25' => 'MM',
'26' => 'MH',
'27' => 'MS',
'28' => 'NT',
'29' => 'OT',
'30' => 'PH',
'31' => 'SJ',
'32' => 'SM',
'33' => 'SB',
'34' => 'SV',
'35' => 'TR',
'36' => 'TM',
'37' => 'TL',
'38' => 'VS',
'39' => 'VL',
'40' => 'VN',
'41' => 'CL',
'42' => 'GR',
'43' => 'IF',
],
'RS' => [
'01' => 'KM', // Kosovo
'02' => 'VO', // Vojvodina
],
'RU' => [
'01' => 'AD',
'02' => 'ZAB', // Aginsky Buryatsky AO [part of Zabaykal'skiy kray]
'03' => 'AL',
'04' => 'ALT',
'05' => 'AMU',
'06' => 'ARK',
'07' => 'AST',
'08' => 'BA',
'09' => 'BEL',
'10' => 'BRY',
'11' => 'BU',
'12' => 'CE',
'13' => 'CHE',
'14' => 'ZAB', // Chita [part of Zabaykal'skiy kray]
'15' => 'CHU',
'16' => 'CU',
'17' => 'DA',
'19' => 'IN',
'20' => 'IRK',
'21' => 'IVA',
'22' => 'KB',
'23' => 'KGD',
'24' => 'KL',
'25' => 'KLU',
'27' => 'KC',
'28' => 'KR',
'29' => 'KEM',
'30' => 'KHA',
'31' => 'KK',
'32' => 'KHM',
'33' => 'KIR',
'34' => 'KO',
'37' => 'KOS',
'38' => 'KDA',
'40' => 'KGN',
'41' => 'KRS',
'42' => 'LEN',
'43' => 'LIP',
'44' => 'MAG',
'45' => 'ME',
'46' => 'MO',
'47' => 'MOS',
'48' => 'MOW',
'49' => 'MUR',
'50' => 'NEN',
'51' => 'NIZ',
'52' => 'NGR',
'53' => 'NVS',
'54' => 'OMS',
'55' => 'ORE',
'56' => 'ORL',
'57' => 'PNZ',
'59' => 'PRI',
'60' => 'PSK',
'61' => 'ROS',
'62' => 'RYA',
'63' => 'SA',
'64' => 'SAK',
'65' => 'SAM',
'66' => 'SPE',
'67' => 'SAR',
'68' => 'SE',
'69' => 'SMO',
'70' => 'STA',
'71' => 'SVE',
'72' => 'TAM',
'73' => 'TA',
'74' => 'KYA', // Taymyr [part of Krasnoyarsk Krai]
'75' => 'TOM',
'76' => 'TUL',
'77' => 'TVE',
'78' => 'TYU',
'79' => 'TY',
'80' => 'UD',
'81' => 'ULY',
'83' => 'VLA',
'84' => 'VGG',
'85' => 'VLG',
'86' => 'VOR',
'87' => 'YAN',
'88' => 'YAR',
'89' => 'YEV',
'90' => 'PER',
'91' => 'KYA',
'92' => 'KAM',
// valid codes [not used by maxmind]
'82' => 'IRK', // Ust'-Ordynskiy Buryatskiy [part of Irkutsk Oblast]
// invalid codes [used by maymind]
'18' => 'KYA', // Evenk [part of Krasnoyarsk Krai]
'26' => 'KAM', // Kamchatka
'36' => 'KAM', // Koryak [part of Kamchatka Krai]
'39' => 'KYA', // Krasnoyarsk
'58' => 'PER', // Perm
'93' => 'ZAB', // Zabaykal'skiy Kray
],
'RW' => [
'11' => '02', // Est
'12' => '01', // Kigali
'13' => '03', // Nord
'14' => '04', // Ouest
'15' => '05', // Sud
// invalid codes [used by maxmind]
'01' => '05', // Butare [city in Southern]
'06' => '05', // Gitarama [city in Southern]
'07' => '02', // Kibungo [city in Eastern]
'09' => '01', // Kigali
],
'SA' => [
'02' => '11',
'05' => '03',
'06' => '04',
'08' => '05',
'10' => '01',
'11' => '14',
'13' => '06',
'14' => '02',
'15' => '08',
'16' => '10',
'17' => '09',
'19' => '07',
'20' => '12',
],
'SB' => [
'03' => 'ML',
'06' => 'GU',
'07' => 'IS',
'08' => 'MK',
'09' => 'TE',
'10' => 'CE',
'11' => 'WE',
'12' => 'CH',
'13' => 'RB',
],
'SC' => [
'01' => '01', // Anse aux Pins
'02' => '02', // Anse Boileau
'03' => '03', // Anse Etoile
'05' => '05', // Anse Royale
'06' => '06', // Baie Lazare
'07' => '07', // Baie Sainte Anne
'08' => '08', // Beau Vallon
'09' => '09', // Bel Air
'10' => '10', // Bel Ombre
'11' => '11', // Cascade
'12' => '12', // Glacis
'14' => '14', // Grand' Anse
'17' => '17', // Mont Buxton
'18' => '18', // Mont Fleuri
'19' => '19', // Plaisance
'20' => '20', // Pointe La Rue
'22' => '22', // Saint Louis
'23' => '23', // Takamaka
// valid codes [not used by maxmind
'24' => '13',
'25' => '15',
'26' => '16',
'27' => '21',
'28' => '04',
'29' => '24',
'30' => '25',
// invalid codes [used by maxmind]
'04' => '04', // Anse Louis
'13' => '14', // Grand' Anse
'15' => '15', // La Digue
'16' => '16', // La Riviere Anglaise
'21' => '21', // Port Glaud
],
'SD' => [
'29' => 'KH', // Al Khartum
'35' => '', // Upper Nile [reorganized, not mappable]
'40' => '', // Al Wahadah State [reorganized, not mappable]
'44' => '', // Central Equatoria State [reorganized, not mappable]
'49' => 'DS', // Southern Darfur
'50' => 'KS', // Southern Kordofan
'52' => 'KA', // Kassala
'53' => 'NR', // River Nile
'55' => 'DN', // Northern Darfur
// valid codes [not used by maxmind]
'36' => 'RS',
'37' => '', // [reorganized, not mappable]
'38' => 'GZ',
'39' => 'GD',
'41' => 'NW',
'42' => 'NB',
'43' => 'NO',
'45' => '', // [reorganized, not mappable]
'46' => '', // [reorganized, not mappable]
'47' => 'DW',
'48' => 'GK',
'51' => '', // [reorganized, not mappable]
'54' => '', // [reorganized, not mappable]
'56' => 'KN',
'57' => '', // [reorganized, not mappable]
'58' => 'SI',
'59' => '', // [reorganized, not mappable]
// invalid codes [used by maxmind]
'27' => '', // Al Wusta
'28' => '', // Al Istiwa'iyah
'30' => 'NO', // Ash Shamaliyah
'31' => '', // Ash Sharqiyah
'32' => '', // Bahr al Ghazal
'33' => 'DW', // Darfur
'34' => 'GK', // Kurdufan
],
'SE' => [
'02' => 'K',
'03' => 'X',
'05' => 'I',
'06' => 'N',
'07' => 'Z',
'08' => 'F',
'09' => 'H',
'10' => 'W',
'12' => 'G',
'14' => 'BD',
'15' => 'T',
'16' => 'E',
'18' => 'D',
'21' => 'C',
'22' => 'S',
'23' => 'AC',
'24' => 'Y',
'25' => 'U',
'26' => 'AB',
'27' => 'M',
'28' => 'O',
],
'SH' => [
'01' => 'AC',
'02' => 'HL',
'03' => 'TA',
],
'SI' => [
'01' => '001', // Ajdovscina Commune
'02' => '002', // Beltinci Commune
'03' => '003', // Bled Commune
'04' => '004', // Bohinj Commune
'05' => '005', // Borovnica Commune
'06' => '006', // Bovec Commune
'07' => '007', // Brda Commune
'08' => '009', // Brezice Commune
'09' => '008', // Brezovica Commune
'11' => '011', // Celje Commune
'12' => '012', // Cerklje na Gorenjskem Commune
'13' => '013', // Cerknica Commune
'14' => '014', // Cerkno Commune
'15' => '015', // Crensovci Commune
'16' => '016', // Crna na Koroskem Commune
'17' => '017', // Crnomelj Commune
'19' => '019', // Divaca Commune
'20' => '020', // Dobrepolje Commune
'22' => '022', // Dol pri Ljubljani Commune
'24' => '024', // Dornava Commune
'25' => '025', // Dravograd Commune
'26' => '026', // Duplek Commune
'27' => '027', // Gorenja vas-Poljane Commune
'28' => '028', // Gorisnica Commune
'29' => '029', // Gornja Radgona Commune
'30' => '030', // Gornji Grad Commune
'31' => '031', // Gornji Petrovci Commune
'32' => '032', // Grosuplje Commune
'34' => '034', // Hrastnik Commune
'35' => '035', // Hrpelje-Kozina Commune
'36' => '036', // Idrija Commune
'37' => '037', // Ig Commune
'38' => '038', // Ilirska Bistrica Commune
'39' => '039', // Ivancna Gorica Commune
'40' => '040', // Izola-Isola Commune
'42' => '042', // Jursinci Commune
'44' => '044', // Kanal Commune
'45' => '045', // Kidricevo Commune
'46' => '046', // Kobarid Commune
'47' => '047', // Kobilje Commune
'49' => '049', // Komen Commune
'50' => '050', // Koper-Capodistria Urban Commune
'51' => '051', // Kozje Commune
'52' => '052', // Kranj Commune
'53' => '053', // Kranjska Gora Commune
'54' => '054', // Krsko Commune
'55' => '055', // Kungota Commune
'57' => '057', // Lasko Commune
'61' => '061', // Ljubljana Urban Commune
'62' => '062', // Ljubno Commune
'64' => '064', // Logatec Commune
'66' => '066', // Loski Potok Commune
'68' => '068', // Lukovica Commune
'71' => '071', // Medvode Commune
'72' => '072', // Menges Commune
'73' => '073', // Metlika Commune
'74' => '074', // Mezica Commune
'76' => '076', // Mislinja Commune
'77' => '077', // Moravce Commune
'78' => '078', // Moravske Toplice Commune
'79' => '079', // Mozirje Commune
'80' => '080', // Murska Sobota Urban Commune
'81' => '081', // Muta Commune
'82' => '082', // Naklo Commune
'83' => '083', // Nazarje Commune
'84' => '084', // Nova Gorica Urban Commune
'86' => '086', // Odranci Commune
'87' => '087', // Ormoz Commune
'88' => '088', // Osilnica Commune
'89' => '089', // Pesnica Commune
'91' => '091', // Pivka Commune
'92' => '092', // Podcetrtek Commune
'94' => '094', // Postojna Commune
'97' => '097', // Puconci Commune
'98' => '098', // Race-Fram Commune
'99' => '099', // Radece Commune
'A1' => '100', // Radenci Commune
'A2' => '101', // Radlje ob Dravi Commune
'A3' => '102', // Radovljica Commune
'A6' => '105', // Rogasovci Commune
'A7' => '106', // Rogaska Slatina Commune
'A8' => '107', // Rogatec Commune
'B1' => '109', // Semic Commune
'B2' => '117', // Sencur Commune
'B3' => '118', // Sentilj Commune
'B4' => '119', // Sentjernej Commune
'B6' => '110', // Sevnica Commune
'B7' => '111', // Sezana Commune
'B8' => '121', // Skocjan Commune
'B9' => '122', // Skofja Loka Commune
'C1' => '123', // Skofljica Commune
'C2' => '112', // Slovenj Gradec Urban Commune
'C4' => '114', // Slovenske Konjice Commune
'C5' => '124', // Smarje pri Jelsah Commune
'C6' => '125', // Smartno ob Paki Commune
'C7' => '126', // Sostanj Commune
'C8' => '115', // Starse Commune
'C9' => '127', // Store Commune
'D1' => '210', // Sveti Jurij Commune
'D2' => '128', // Tolmin Commune
'D3' => '129', // Trbovlje Commune
'D4' => '130', // Trebnje Commune
'D5' => '131', // Trzic Commune
'D6' => '132', // Turnisce Commune
'D7' => '133', // Velenje Urban Commune
'D8' => '134', // Velike Lasce Commune
'E1' => '136', // Vipava Commune
'E2' => '137', // Vitanje Commune
'E3' => '138', // Vodice Commune
'E5' => '140', // Vrhnika Commune
'E6' => '141', // Vuzenica Commune
'E7' => '142', // Zagorje ob Savi Commune
'E9' => '143', // Zavrc Commune
'F1' => '146', // Zelezniki Commune
'F2' => '147', // Ziri Commune
'F3' => '144', // Zrece Commune
'F4' => '148', // Benedikt Commune
'F5' => '149', // Bistrica ob Sotli Commune
'F6' => '150', // Bloke Commune
'F7' => '151', // Braslovce Commune
'F8' => '152', // Cankova Commune
'F9' => '153', // Cerkvenjak Commune
'G1' => '018', // Destrnik Commune
'G2' => '154', // Dobje Commune
'G3' => '155', // Dobrna Commune
'G4' => '021', // Dobrova-Horjul-Polhov Gradec Commune
'G5' => '156', // Dobrovnik-Dobronak Commune
'G6' => '157', // Dolenjske Toplice Commune
'G7' => '023', // Domzale Commune
'G8' => '158', // Grad Commune
'G9' => '159', // Hajdina Commune
'H1' => '160', // Hoce-Slivnica Commune
'H2' => '161', // Hodos-Hodos Commune
'H3' => '162', // Horjul Commune
'H4' => '041', // Jesenice Commune
'H5' => '163', // Jezersko Commune
'H6' => '043', // Kamnik Commune
'H7' => '048', // Kocevje Commune
'H8' => '164', // Komenda Commune
'H9' => '165', // Kostel Commune
'I1' => '166', // Krizevci Commune
'I2' => '056', // Kuzma Commune
'I3' => '058', // Lenart Commune
'I4' => '059', // Lendava-Lendva Commune
'I5' => '060', // Litija Commune
'I6' => '063', // Ljutomer Commune
'I7' => '065', // Loska Dolina Commune
'I8' => '167', // Lovrenc na Pohorju Commune
'I9' => '067', // Luce Commune
'J1' => '069', // Majsperk Commune
'J2' => '070', // Maribor Commune
'J3' => '168', // Markovci Commune
'J4' => '169', // Miklavz na Dravskem polju Commune
'J5' => '075', // Miren-Kostanjevica Commune
'J6' => '170', // Mirna Pec Commune
'J7' => '085', // Novo mesto Urban Commune
'J8' => '171', // Oplotnica Commune
'J9' => '090', // Piran-Pirano Commune
'K1' => '172', // Podlehnik Commune
'K2' => '093', // Podvelka Commune
'K3' => '173', // Polzela Commune
'K4' => '174', // Prebold Commune
'K5' => '095', // Preddvor Commune
'K6' => '175', // Prevalje Commune
'K7' => '096', // Ptuj Urban Commune
'K8' => '103', // Ravne na Koroskem Commune
'K9' => '176', // Razkrizje Commune
'L1' => '104', // Ribnica Commune
'L2' => '177', // Ribnica na Pohorju Commune
'L3' => '108', // Ruse Commune
'L4' => '033', // Salovci Commune
'L5' => '178', // Selnica ob Dravi Commune
'L6' => '183', // Sempeter-Vrtojba Commune
'L7' => '120', // Sentjur pri Celju Commune
'L8' => '113', // Slovenska Bistrica Commune
'L9' => '194', // Smartno pri Litiji Commune
'M1' => '179', // Sodrazica Commune
'M2' => '180', // Solcava Commune
'M3' => '181', // Sveta Ana Commune
'M4' => '182', // Sveti Andraz v Slovenskih goricah Commune
'M5' => '184', // Tabor Commune
'M6' => '010', // Tisina Commune
'M7' => '185', // Trnovska vas Commune
'M8' => '186', // Trzin Commune
'M9' => '187', // Velika Polana Commune
'N1' => '188', // Verzej Commune
'N2' => '135', // Videm Commune
'N3' => '139', // Vojnik Commune
'N4' => '189', // Vransko Commune
'N5' => '190', // Zalec Commune
'N6' => '191', // Zetale Commune
'N7' => '192', // Zirovnica Commune
'N8' => '193', // Zuzemberk Commune
// invalid codes [used by maxmind]
'N9' => '195', // Apace Commune
'O1' => '196', // Cirkulane Commune
'O2' => '207', // Gorje
'O3' => '197', // Kostanjevica na Krki
'O4' => '208', // Log-Dragomer
'O5' => '198', // Makole
'O6' => '212', // Mirna
'O7' => '199', // Mokronog-Trebelno
'O8' => '200', // Poljcane
'O9' => '209', // Recica ob Savinji
'P1' => '201', // Rence-Vogrsko
'P2' => '211', // Sentrupert
'P3' => '206', // Smarjesk Toplice
'P4' => '202', // Sredisce ob Dravi
'P5' => '203', // Straza
'P7' => '210', // Sveti Jurij v Slovenskih Goricah
],
'SK' => [
'01' => 'BC',
'02' => 'BL',
'03' => 'KI',
'04' => 'NI',
'05' => 'PV',
'06' => 'TC',
'07' => 'TA',
'08' => 'ZI',
],
'SL' => [
'01' => 'E',
'02' => 'N',
'03' => 'S',
'04' => 'W',
],
'SM' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '09',
],
'SN' => [
'01' => 'DK',
'03' => 'DB',
'05' => 'TC',
'07' => 'TH',
'09' => 'FK',
'10' => 'KL',
'11' => 'KD',
'12' => 'ZG',
'13' => 'LG',
'14' => 'SL',
'15' => 'MT',
],
'SO' => [
'01' => 'BK',
'02' => 'BN',
'03' => 'BR',
'04' => 'BY',
'05' => 'GA',
'06' => 'GE',
'07' => 'HI',
'08' => 'JD',
'09' => 'JH',
'10' => 'MU',
'12' => 'SA',
'13' => 'SD',
'14' => 'SH',
'18' => 'NU',
'19' => 'TO',
'20' => 'WO',
'21' => 'AW',
'22' => 'SO',
// invalid codes [used by maxmind]
'11' => 'NU',
'16' => 'WO',
],
'SR' => [
'10' => 'BR',
'11' => 'CM',
'12' => 'CR',
'13' => 'MA',
'14' => 'NI',
'15' => 'PR',
'16' => 'PM',
'17' => 'SA',
'18' => 'SI',
'19' => 'WA',
],
'SS' => [
// invalid codes [used by maxmind]
'01' => 'EC', // Central Equatoria
'02' => 'EE', // Eastern Equatoria
'03' => 'JG', // Jonglei
'04' => 'LK', // Lakes
'05' => 'BN', // Northern Bahr el Ghazal
'06' => 'UY', // Unity
'07' => 'NU', // Upper Nile
'08' => 'WR', // Warrap
'09' => 'BW', // Western Bahr el Ghazal
'10' => 'EW', // Western Equatoria
],
'ST' => [
'01' => 'P', // Principe
'02' => 'S', // Sao Tome
],
'SV' => [
'01' => 'AH',
'02' => 'CA',
'03' => 'CH',
'04' => 'CU',
'05' => 'LI',
'06' => 'PA',
'07' => 'UN',
'08' => 'MO',
'09' => 'SM',
'10' => 'SS',
'11' => 'SA',
'12' => 'SV',
'13' => 'SO',
'14' => 'US',
],
'SY' => [
'01' => 'HA', // Al Hasakah
'02' => 'LA', // Al Ladhiqiyah
'03' => 'QU', // Al Qunaytirah
'04' => 'RA', // Ar Raqqah
'05' => 'SU', // As Suwayda'
'06' => 'DR', // Dar
'07' => 'DY', // Dayr az Zawr
'08' => 'RD', // Rif Dimashq
'09' => 'HL', // Halab
'10' => 'HM', // Hamah
'11' => 'HI', // Hims
'12' => 'ID', // Idlib
'13' => 'DI', // Dimashq
'14' => 'TA', // Tartus
],
'SZ' => [
'01' => 'HH',
'02' => 'LU',
'03' => 'MA',
'04' => 'SH',
// screwed up code, that seems to be from Seychelles
'05' => '', // Praslin
],
'TD' => [
'01' => 'BA',
'02' => 'WF',
'03' => '', // Borkou-Ennedi-Tibesti [split up]
'05' => 'GR',
'06' => 'KA',
'07' => 'LC',
'08' => 'LO',
'09' => 'LR',
'12' => 'OD',
'13' => 'SA',
'14' => 'TA',
// invalid codes [used by maxmind]
'04' => '', // Chari-Baguirmi [split up]
'10' => '', // Mayo-Kebbi [split into east and west]
'11' => 'MC', // Moyen-Chari
// valid codes [not used by maxmind]
'15' => '', // Chari-Baguirmi [split up]
'16' => 'ME',
'17' => 'MC',
'18' => 'HL',
'19' => 'MA',
'20' => 'MO',
'21' => 'ND',
],
'TG' => [
'22' => 'C',
'23' => 'K',
'24' => 'M',
'25' => 'P',
'26' => 'S',
],
'TH' => [
'01' => '58', // Mae Hong Son
'02' => '50', // Chiang Mai
'03' => '57', // Chiang Rai
'04' => '55', // Nan
'05' => '51', // Lamphun
'06' => '52', // Lampang
'07' => '54', // Phrae
'08' => '63', // Tak
'09' => '64', // Sukhothai
'10' => '53', // Uttaradit
'11' => '62', // Kamphaeng Phet
'12' => '65', // Phitsanulok
'13' => '66', // Phichit
'14' => '67', // Phetchabun
'15' => '61', // Uthai Thani
'16' => '60', // Nakhon Sawan
'17' => '43', // Nong Khai
'18' => '42', // Loei
'20' => '47', // Sakon Nakhon
'22' => '40', // Khon Kaen
'23' => '46', // Kalasin
'24' => '44', // Maha Sarakham
'25' => '45', // Roi Et
'26' => '36', // Chaiyaphum
'27' => '30', // Nakhon Ratchasima
'28' => '31', // Buriram
'29' => '32', // Surin
'30' => '33', // Sisaket
'31' => '96', // Narathiwat
'32' => '18', // Chai Nat
'33' => '17', // Sing Buri
'34' => '16', // Lop Buri
'35' => '15', // Ang Thong
'36' => '14', // Phra Nakhon Si Ayutthaya
'37' => '19', // Saraburi
'38' => '12', // Nonthaburi
'39' => '13', // Pathum Thani
'40' => '10', // Krung Thep
'41' => '56', // Phayao
'42' => '11', // Samut Prakan
'43' => '26', // Nakhon Nayok
'44' => '24', // Chachoengsao
'46' => '20', // Chon Buri
'47' => '21', // Rayong
'48' => '22', // Chanthaburi
'49' => '23', // Trat
'50' => '71', // Kanchanaburi
'51' => '72', // Suphan Buri
'52' => '70', // Ratchaburi
'53' => '73', // Nakhon Pathom
'54' => '75', // Samut Songkhram
'55' => '74', // Samut Sakhon
'56' => '76', // Phetchaburi
'57' => '77', // Prachuap Khiri Khan
'58' => '86', // Chumphon
'59' => '85', // Ranong
'60' => '84', // Surat Thani
'61' => '82', // Phangnga
'62' => '83', // Phuket
'63' => '81', // Krabi
'64' => '80', // Nakhon Si Thammarat
'65' => '92', // Trang
'66' => '93', // Phatthalung
'67' => '91', // Satun
'68' => '90', // Songkhla
'69' => '94', // Pattani
'70' => '95', // Yala
'72' => '35', // Yasothon
'73' => '48', // Nakhon Phanom
'74' => '25', // Prachin Buri
'75' => '34', // Ubon Ratchathani
'76' => '41', // Udon Thani
'77' => '37', // Amnat Charoen
'78' => '49', // Mukdahan
'79' => '39', // Nong Bua Lamphu
'80' => '27', // Sa Kaeo
// invalid codes [used by maxmind]
'21' => '48', // Nakhon Phanom
'45' => '25', // Prachin Buri
'71' => '34', // Ubon Ratchathani
'81' => '38', // Bueng Kan
],
'TJ' => [
'01' => 'GB',
'02' => 'KT',
'03' => 'SU',
// invalid codes [used by maxmind]
'04' => 'DU',
'05' => 'RA',
],
'TL' => [
// invalid codes [used by maxmind]
'06' => 'DI', // Dili
],
'TM' => [
'01' => 'A',
'02' => 'B',
'03' => 'D',
'04' => 'L',
'05' => 'M',
],
'TN' => [
'02' => '42',
'03' => '41',
'06' => '32',
'10' => '71',
'14' => '33',
'15' => '53',
'16' => '52',
'17' => '31',
'18' => '23',
'19' => '21',
'22' => '34',
'23' => '51',
'27' => '13',
'28' => '82',
'29' => '81',
'31' => '73',
'32' => '61',
'33' => '43',
'34' => '83',
'35' => '72',
'36' => '11',
'37' => '22',
'38' => '12',
'39' => '14',
],
'TO' => [
'01' => '02',
'02' => '04',
'03' => '05',
],
'TR' => [
'02' => '02', // Adiyaman
'03' => '03', // Afyonkarahisar
'04' => '04', // Agri
'05' => '05', // Amasya
'07' => '07', // Antalya
'08' => '08', // Artvin
'09' => '09', // Aydin
'10' => '10', // Balikesir
'11' => '11', // Bilecik
'12' => '12', // Bingol
'13' => '13', // Bitlis
'14' => '14', // Bolu
'15' => '15', // Burdur
'16' => '16', // Bursa
'17' => '17', // Canakkale
'19' => '19', // Corum
'20' => '20', // Denizli
'21' => '21', // Diyarbakir
'22' => '22', // Edirne
'23' => '23', // Elazig
'24' => '24', // Erzincan
'25' => '25', // Erzurum
'26' => '26', // Eskisehir
'28' => '28', // Giresun
'31' => '31', // Hatay
'32' => '33', // Mersin
'33' => '32', // Isparta
'34' => '34', // Istanbul
'35' => '35', // Izmir
'37' => '37', // Kastamonu
'38' => '38', // Kayseri
'39' => '39', // Kirklareli
'40' => '40', // Kirsehir
'41' => '41', // Kocaeli
'43' => '43', // Kutahya
'44' => '44', // Malatya
'45' => '45', // Manisa
'46' => '46', // Kahramanmaras
'48' => '48', // Mugla
'49' => '49', // Mus
'50' => '50', // Nevsehir
'52' => '52', // Ordu
'53' => '53', // Rize
'54' => '54', // Sakarya
'55' => '55', // Samsun
'57' => '57', // Sinop
'58' => '58', // Sivas
'59' => '59', // Tekirdag
'60' => '60', // Tokat
'61' => '61', // Trabzon
'62' => '62', // Tunceli
'63' => '63', // Sanliurfa
'64' => '64', // Usak
'65' => '65', // Van
'66' => '66', // Yozgat
'68' => '06', // Ankara
'69' => '29', // Gumushane
'70' => '30', // Hakkari
'71' => '42', // Konya
'72' => '47', // Mardin
'73' => '51', // Nigde
'74' => '56', // Siirt
'75' => '68', // Aksaray
'76' => '72', // Batman
'77' => '69', // Bayburt
'78' => '70', // Karaman
'79' => '71', // Kirikkale
'80' => '73', // Sirnak
'81' => '01', // Adana
'82' => '18', // Cankiri
'83' => '27', // Gaziantep
'84' => '36', // Kars
'85' => '67', // Zonguldak
'86' => '75', // Ardahan
'87' => '74', // Bartin
'88' => '76', // Igdir
'89' => '78', // Karabuk
'90' => '79', // Kilis
'91' => '80', // Osmaniye
'92' => '77', // Yalova
'93' => '81', // Duzce
],
'TT' => [
'01' => 'ARI', // Arima
'02' => '', // Caroni [split up]
'03' => 'MRC', // Mayaro
'04' => '', // Nariva [split up]
'05' => 'POS', // Port-of-Spain
'06' => 'SGE', // Saint Andrew [now in Sangre Grand]
'07' => 'SGE', // Saint David [now in Sangre Grand]
'08' => '', // Saint George [split up]
'09' => '', // Saint Patrick [split up]
'10' => 'SFO', // San Fernando
'11' => 'TOB', // Tobago
'12' => '', // Victoria [split up]
],
'TW' => [
'01' => '',
'02' => 'KHH',
'03' => 'TPE',
'04' => '',
],
'TZ' => [
'02' => '19',
'03' => '03',
'04' => '04',
'05' => '08',
'06' => '09',
'07' => '12',
'08' => '13',
'09' => '14',
'10' => '16',
'11' => '17',
'12' => '18',
'13' => '06',
'14' => '21',
'15' => '22',
'16' => '23',
'17' => '24',
'18' => '25',
'19' => '05',
'20' => '10',
'21' => '11',
'22' => '07',
'23' => '02',
'24' => '20',
'25' => '15',
'26' => '01',
'27' => '26',
],
'UA' => [
'01' => '71',
'02' => '74',
'03' => '77',
'04' => '12',
'05' => '14',
'06' => '26',
'07' => '63',
'08' => '65',
'09' => '68',
'10' => '35',
'11' => '43',
'12' => '30',
'13' => '32',
'14' => '09',
'15' => '46',
'16' => '48',
'17' => '51',
'18' => '53',
'19' => '56',
'20' => '40',
'21' => '59',
'22' => '61',
'23' => '05',
'24' => '07',
'25' => '21',
'26' => '23',
'27' => '18',
],
'UG' => [
'26' => '302', // Apac
'28' => '401', // Bundibugyo
'29' => '102', // Bushenyi
'30' => '304', // Gulu
'31' => '403', // Hoima
'33' => '204', // Jinja
'36' => '101', // Kalangala
'37' => '102', // Kampala
'38' => '205', // Kamuli
'39' => '206', // Kapchorwa
'40' => '406', // Kasese
'41' => '407', // Kibale
'42' => '103', // Kiboga
'43' => '408', // Kisoro
'45' => '306', // Kotido
'46' => '208', // Kumi
'47' => '307', // Lira
'50' => '409', // Masindi
'52' => '410', // Mbarara
'56' => '107', // Mubende
'58' => '310', // Nebbi
'59' => '411', // Ntungamo
'60' => '210', // Pallisa
'61' => '110', // Rakai
'65' => '301', // Adjumani
'66' => '201', // Bugiri
'67' => '202', // Busia
'69' => '207', // Katakwi
'70' => '104', // Luwero
'71' => '105', // Masaka
'72' => '309', // Moyo
'73' => '109', // Nakasongola
'74' => '111', // Sembabule
'76' => '212', // Tororo
'77' => '303', // Arua
'78' => '203', // Iganga
'79' => '405', // Kabarole
'80' => '213', // Kaberamaido
'81' => '413', // Kamwenge
'82' => '414', // Kanungu
'83' => '112', // Kayunga
'84' => '305', // Kitgum
'85' => '415', // Kyenjojo
'86' => '214', // Mayuge
'87' => '209', // Mbale
'88' => '308', // Moroto
'89' => '106', // Mpigi
'90' => '108', // Mukono
'91' => '311', // Nakapiripirit
'92' => '312', // Pader
'93' => '412', // Rukungiri
'94' => '215', // Sironko
'95' => '211', // Soroti
'96' => '113', // Wakiso
'97' => '313', // Yumbe
// valid codes [not used by maxmind]
'34' => '404', // Kabale
],
'UY' => [
'01' => 'AR',
'02' => 'CA',
'03' => 'CL',
'04' => 'CO',
'05' => 'DU',
'06' => 'FS',
'07' => 'FD',
'08' => 'LA',
'09' => 'MA',
'10' => 'MO',
'11' => 'PA',
'12' => 'RN',
'13' => 'RV',
'14' => 'RO',
'15' => 'SA',
'16' => 'SJ',
'17' => 'SO',
'18' => 'TA',
'19' => 'TT',
],
'UZ' => [
'01' => 'AN',
'02' => 'BU',
'03' => 'FA',
'05' => 'XO',
'06' => 'NG',
'07' => 'NW',
'08' => 'QA',
'09' => 'QR',
'10' => 'SA',
'12' => 'SU',
'13' => 'TK',
'14' => 'TO',
'15' => 'JI',
// invalid codes [used by maxmind]
'04' => 'JI',
'11' => 'SI',
],
'VC' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
],
'VE' => [
'01' => 'Z',
'02' => 'B',
'03' => 'C',
'04' => 'D',
'05' => 'E',
'06' => 'F',
'07' => 'G',
'08' => 'H',
'09' => 'Y',
'11' => 'I',
'12' => 'J',
'13' => 'K',
'14' => 'L',
'15' => 'M',
'16' => 'N',
'17' => 'O',
'18' => 'P',
'19' => 'R',
'20' => 'S',
'21' => 'T',
'22' => 'U',
'23' => 'V',
'24' => 'W',
'25' => 'A',
'26' => 'X',
],
'VN' => [
'01' => '44', // An Giang
'03' => '50', // Ben Tre
'05' => '04', // Cao Bang
'09' => '45', // Dong Thap
'13' => 'HP', // Hai Phong
'20' => 'SG', // Ho Chi Minh
'21' => '47', // Kien Giang
'23' => '35', // Lam Dong
'24' => '41', // Long An
'30' => '13', // Quang Ninh
'32' => '05', // Son La
'33' => '37', // Tay Ninh
'34' => '21', // Thanh Hoa
'35' => '20', // Thai Binh
'37' => '46', // Tien Giang
'39' => '09', // Lang Son
'43' => '39', // Dong Nai
'44' => 'HN', // Ha Noi
'45' => '45', // Ba Ria-Vung Tau
'46' => '31', // Binh Dinh
'47' => '40', // Binh Thuan
'49' => '30', // Gia Lai
'50' => '03', // Ha Giang
'52' => '23', // Ha Tinh
'53' => '14', // Hoa Binh
'54' => '34', // Khanh Hoa
'55' => '28', // Kon Tum
'58' => '22', // Nghe An
'59' => '18', // Ninh Binh
'60' => '36', // Ninh Thuan
'61' => '32', // Phu Yen
'62' => '24', // Quang Binh
'63' => '29', // Quang Ngai
'64' => '25', // Quang Tri
'65' => '52', // Soc Trang
'66' => '26', // Thua Thien-Hue
'67' => '51', // Tra Vinh
'68' => '07', // Tuyen Quang
'69' => '49', // Vinh Long
'70' => '06', // Yen Bai
'71' => '54', // Bac Giang
'72' => '53', // Bac Kan
'73' => '55', // Bac Lieu
'74' => '56', // Bac Ninh
'75' => '57', // Binh Duong
'76' => '58', // Binh Phuoc
'77' => '59', // Ca Mau
'78' => 'DN', // Da Nang
'79' => '61', // Hai Duong
'80' => '63', // Ha Nam
'81' => '66', // Hung Yen
'82' => '67', // Nam Dinh
'83' => '68', // Phu Tho
'84' => '27', // Quang Nam
'85' => '69', // Thai Nguyen
'86' => '70', // Vinh Phuc
'87' => 'CT', // Can Tho
'88' => '33', // Dac Lak
'89' => '01', // Lai Chau
'90' => '02', // Lao Cai
'91' => '72', // Dak Nong
'92' => '71', // Dien Bien
'93' => '73', // Hau Giang
// valid codes [not used by maxmind]
'51' => 'HN', // Hà Tây [merged in Ha Noi]
],
'VU' => [
'07' => 'TOB',
'13' => 'SAM',
'15' => 'TAE',
'16' => 'MAP',
'17' => 'PAM',
'18' => 'SEE',
// invalid codes [used by maxmind]
'05' => 'MAP', // Ambrym [island in Malampa]
'06' => 'PAM', // Aoba [island in Penama]
'08' => 'SEE', // Efate [island in Shefa]
'09' => 'SEE', // Epi [island in Shefa]
'10' => 'MAP', // Malakula [island in Malampa]
'11' => 'MAP', // Paama [island in Malampa]
'12' => 'PAM', // Pentecote [island in Penama]
'14' => 'SEE', // Shepherd [island in Shefa]
],
'WS' => [
'02' => 'AL',
'03' => 'AT',
'04' => 'FA',
'05' => 'GE',
'06' => 'VF',
'07' => 'GI',
'08' => 'PA',
'09' => 'SA',
'10' => 'TU',
'11' => 'VS',
// valid codes [not used by maxmind]
'01' => 'AA',
],
'YE' => [
'01' => 'AB', // Abyan
'02' => 'AD', // Adan
'03' => 'MR', // Al Mahrah
'04' => 'HD', // Hadramawt
'05' => 'SH', // Shabwah
'08' => 'HU', // Al Hudaydah
'10' => 'MW', // Al Mahwit
'11' => 'DH', // Dhamar
'14' => 'MA', // Ma'rib
'15' => 'SD', // Sa'dah
'16' => 'SN', // San'a'
'18' => 'DA', // Ad Dali
'19' => 'AM', // Amran
'20' => 'BA', // Al Bayda'
'21' => 'JA', // Al Jawf
'22' => 'HJ', // Hajjah
'23' => 'IB', // Ibb
'24' => 'LA', // Lahij
'25' => 'TA', // Taizz
// invalid codes [used by maxmind]
'06' => 'LA', // Lahij
'07' => 'BA', // Al Bayda'
'09' => 'JA', // Al Jawf
'12' => 'HJ', // Hajjah
'13' => 'IB', // Ibb
'17' => 'TA', // Taizz
],
'ZA' => [
'02' => 'NL',
'03' => 'FS',
'05' => 'EC',
'06' => 'GT',
'07' => 'MP',
'08' => 'NC',
'09' => 'LP',
'10' => 'NW',
'11' => 'WC',
// invalid codes [used by maxmind]
'01' => 'NW', // North-Western Province
],
'ZM' => [
'01' => '01',
'02' => '02',
'03' => '03',
'04' => '04',
'05' => '05',
'06' => '06',
'07' => '07',
'08' => '08',
'09' => '09',
],
'ZW' => [
'01' => 'MA',
'02' => 'MI',
'03' => 'MC',
'04' => 'ME',
'05' => 'MW',
'06' => 'MN',
'07' => 'MS',
'08' => 'MV',
'09' => 'BU',
'10' => 'HA',
],
];