CP_GeoLock - Version 0.0.3

Version Notes

Geo Block - Restrict users to access in some country.

Download this release

Release Info

Developer Commerce Pundit
Extension CP_GeoLock
Version 0.0.3
Comparing to
See all releases


Code changes from version 0.0.2 to 0.0.3

lib/GeoLock/GeoIP.dat ADDED
Binary file
lib/GeoLock/geoip.inc ADDED
@@ -0,0 +1,1891 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 2; tab-width: 2 -*- */
4
+ /* geoip.inc
5
+ *
6
+ * Copyright (C) 2007 MaxMind LLC
7
+ *
8
+ * This library is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * This library is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with this library; if not, write to the Free Software
20
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
+ */
22
+
23
+ define("GEOIP_COUNTRY_BEGIN", 16776960);
24
+ define("GEOIP_STATE_BEGIN_REV0", 16700000);
25
+ define("GEOIP_STATE_BEGIN_REV1", 16000000);
26
+ define("GEOIP_STANDARD", 0);
27
+ define("GEOIP_MEMORY_CACHE", 1);
28
+ define("GEOIP_SHARED_MEMORY", 2);
29
+ define("STRUCTURE_INFO_MAX_SIZE", 20);
30
+ define("DATABASE_INFO_MAX_SIZE", 100);
31
+ define("GEOIP_COUNTRY_EDITION", 1);
32
+ define("GEOIP_PROXY_EDITION", 8);
33
+ define("GEOIP_ASNUM_EDITION", 9);
34
+ define("GEOIP_NETSPEED_EDITION", 10);
35
+ define("GEOIP_REGION_EDITION_REV0", 7);
36
+ define("GEOIP_REGION_EDITION_REV1", 3);
37
+ define("GEOIP_CITY_EDITION_REV0", 6);
38
+ define("GEOIP_CITY_EDITION_REV1", 2);
39
+ define("GEOIP_ORG_EDITION", 5);
40
+ define("GEOIP_ISP_EDITION", 4);
41
+ define("SEGMENT_RECORD_LENGTH", 3);
42
+ define("STANDARD_RECORD_LENGTH", 3);
43
+ define("ORG_RECORD_LENGTH", 4);
44
+ define("MAX_RECORD_LENGTH", 4);
45
+ define("MAX_ORG_RECORD_LENGTH", 300);
46
+ define("GEOIP_SHM_KEY", 0x4f415401);
47
+ define("US_OFFSET", 1);
48
+ define("CANADA_OFFSET", 677);
49
+ define("WORLD_OFFSET", 1353);
50
+ define("FIPS_RANGE", 360);
51
+ define("GEOIP_UNKNOWN_SPEED", 0);
52
+ define("GEOIP_DIALUP_SPEED", 1);
53
+ define("GEOIP_CABLEDSL_SPEED", 2);
54
+ define("GEOIP_CORPORATE_SPEED", 3);
55
+ define("GEOIP_DOMAIN_EDITION", 11);
56
+ define("GEOIP_COUNTRY_EDITION_V6", 12);
57
+ define("GEOIP_LOCATIONA_EDITION", 13);
58
+ define("GEOIP_ACCURACYRADIUS_EDITION", 14);
59
+ define("GEOIP_CITYCOMBINED_EDITION", 15);
60
+ define("GEOIP_CITY_EDITION_REV1_V6", 30);
61
+ define("GEOIP_CITY_EDITION_REV0_V6", 31);
62
+ define("GEOIP_NETSPEED_EDITION_REV1", 32);
63
+ define("GEOIP_NETSPEED_EDITION_REV1_V6", 33);
64
+ define("GEOIP_USERTYPE_EDITION", 28);
65
+ define("GEOIP_USERTYPE_EDITION_V6", 29);
66
+ define("GEOIP_ASNUM_EDITION_V6", 21);
67
+ define("GEOIP_ISP_EDITION_V6", 22);
68
+ define("GEOIP_ORG_EDITION_V6", 23);
69
+ define("GEOIP_DOMAIN_EDITION_V6", 24);
70
+
71
+ define("CITYCOMBINED_FIXED_RECORD", 7);
72
+
73
+ class GeoIP
74
+ {
75
+ public $flags;
76
+ public $filehandle;
77
+ public $memory_buffer;
78
+ public $databaseType;
79
+ public $databaseSegments;
80
+ public $record_length;
81
+ public $shmid;
82
+ public $GEOIP_COUNTRY_CODE_TO_NUMBER = array(
83
+ "" => 0,
84
+ "AP" => 1,
85
+ "EU" => 2,
86
+ "AD" => 3,
87
+ "AE" => 4,
88
+ "AF" => 5,
89
+ "AG" => 6,
90
+ "AI" => 7,
91
+ "AL" => 8,
92
+ "AM" => 9,
93
+ "CW" => 10,
94
+ "AO" => 11,
95
+ "AQ" => 12,
96
+ "AR" => 13,
97
+ "AS" => 14,
98
+ "AT" => 15,
99
+ "AU" => 16,
100
+ "AW" => 17,
101
+ "AZ" => 18,
102
+ "BA" => 19,
103
+ "BB" => 20,
104
+ "BD" => 21,
105
+ "BE" => 22,
106
+ "BF" => 23,
107
+ "BG" => 24,
108
+ "BH" => 25,
109
+ "BI" => 26,
110
+ "BJ" => 27,
111
+ "BM" => 28,
112
+ "BN" => 29,
113
+ "BO" => 30,
114
+ "BR" => 31,
115
+ "BS" => 32,
116
+ "BT" => 33,
117
+ "BV" => 34,
118
+ "BW" => 35,
119
+ "BY" => 36,
120
+ "BZ" => 37,
121
+ "CA" => 38,
122
+ "CC" => 39,
123
+ "CD" => 40,
124
+ "CF" => 41,
125
+ "CG" => 42,
126
+ "CH" => 43,
127
+ "CI" => 44,
128
+ "CK" => 45,
129
+ "CL" => 46,
130
+ "CM" => 47,
131
+ "CN" => 48,
132
+ "CO" => 49,
133
+ "CR" => 50,
134
+ "CU" => 51,
135
+ "CV" => 52,
136
+ "CX" => 53,
137
+ "CY" => 54,
138
+ "CZ" => 55,
139
+ "DE" => 56,
140
+ "DJ" => 57,
141
+ "DK" => 58,
142
+ "DM" => 59,
143
+ "DO" => 60,
144
+ "DZ" => 61,
145
+ "EC" => 62,
146
+ "EE" => 63,
147
+ "EG" => 64,
148
+ "EH" => 65,
149
+ "ER" => 66,
150
+ "ES" => 67,
151
+ "ET" => 68,
152
+ "FI" => 69,
153
+ "FJ" => 70,
154
+ "FK" => 71,
155
+ "FM" => 72,
156
+ "FO" => 73,
157
+ "FR" => 74,
158
+ "SX" => 75,
159
+ "GA" => 76,
160
+ "GB" => 77,
161
+ "GD" => 78,
162
+ "GE" => 79,
163
+ "GF" => 80,
164
+ "GH" => 81,
165
+ "GI" => 82,
166
+ "GL" => 83,
167
+ "GM" => 84,
168
+ "GN" => 85,
169
+ "GP" => 86,
170
+ "GQ" => 87,
171
+ "GR" => 88,
172
+ "GS" => 89,
173
+ "GT" => 90,
174
+ "GU" => 91,
175
+ "GW" => 92,
176
+ "GY" => 93,
177
+ "HK" => 94,
178
+ "HM" => 95,
179
+ "HN" => 96,
180
+ "HR" => 97,
181
+ "HT" => 98,
182
+ "HU" => 99,
183
+ "ID" => 100,
184
+ "IE" => 101,
185
+ "IL" => 102,
186
+ "IN" => 103,
187
+ "IO" => 104,
188
+ "IQ" => 105,
189
+ "IR" => 106,
190
+ "IS" => 107,
191
+ "IT" => 108,
192
+ "JM" => 109,
193
+ "JO" => 110,
194
+ "JP" => 111,
195
+ "KE" => 112,
196
+ "KG" => 113,
197
+ "KH" => 114,
198
+ "KI" => 115,
199
+ "KM" => 116,
200
+ "KN" => 117,
201
+ "KP" => 118,
202
+ "KR" => 119,
203
+ "KW" => 120,
204
+ "KY" => 121,
205
+ "KZ" => 122,
206
+ "LA" => 123,
207
+ "LB" => 124,
208
+ "LC" => 125,
209
+ "LI" => 126,
210
+ "LK" => 127,
211
+ "LR" => 128,
212
+ "LS" => 129,
213
+ "LT" => 130,
214
+ "LU" => 131,
215
+ "LV" => 132,
216
+ "LY" => 133,
217
+ "MA" => 134,
218
+ "MC" => 135,
219
+ "MD" => 136,
220
+ "MG" => 137,
221
+ "MH" => 138,
222
+ "MK" => 139,
223
+ "ML" => 140,
224
+ "MM" => 141,
225
+ "MN" => 142,
226
+ "MO" => 143,
227
+ "MP" => 144,
228
+ "MQ" => 145,
229
+ "MR" => 146,
230
+ "MS" => 147,
231
+ "MT" => 148,
232
+ "MU" => 149,
233
+ "MV" => 150,
234
+ "MW" => 151,
235
+ "MX" => 152,
236
+ "MY" => 153,
237
+ "MZ" => 154,
238
+ "NA" => 155,
239
+ "NC" => 156,
240
+ "NE" => 157,
241
+ "NF" => 158,
242
+ "NG" => 159,
243
+ "NI" => 160,
244
+ "NL" => 161,
245
+ "NO" => 162,
246
+ "NP" => 163,
247
+ "NR" => 164,
248
+ "NU" => 165,
249
+ "NZ" => 166,
250
+ "OM" => 167,
251
+ "PA" => 168,
252
+ "PE" => 169,
253
+ "PF" => 170,
254
+ "PG" => 171,
255
+ "PH" => 172,
256
+ "PK" => 173,
257
+ "PL" => 174,
258
+ "PM" => 175,
259
+ "PN" => 176,
260
+ "PR" => 177,
261
+ "PS" => 178,
262
+ "PT" => 179,
263
+ "PW" => 180,
264
+ "PY" => 181,
265
+ "QA" => 182,
266
+ "RE" => 183,
267
+ "RO" => 184,
268
+ "RU" => 185,
269
+ "RW" => 186,
270
+ "SA" => 187,
271
+ "SB" => 188,
272
+ "SC" => 189,
273
+ "SD" => 190,
274
+ "SE" => 191,
275
+ "SG" => 192,
276
+ "SH" => 193,
277
+ "SI" => 194,
278
+ "SJ" => 195,
279
+ "SK" => 196,
280
+ "SL" => 197,
281
+ "SM" => 198,
282
+ "SN" => 199,
283
+ "SO" => 200,
284
+ "SR" => 201,
285
+ "ST" => 202,
286
+ "SV" => 203,
287
+ "SY" => 204,
288
+ "SZ" => 205,
289
+ "TC" => 206,
290
+ "TD" => 207,
291
+ "TF" => 208,
292
+ "TG" => 209,
293
+ "TH" => 210,
294
+ "TJ" => 211,
295
+ "TK" => 212,
296
+ "TM" => 213,
297
+ "TN" => 214,
298
+ "TO" => 215,
299
+ "TL" => 216,
300
+ "TR" => 217,
301
+ "TT" => 218,
302
+ "TV" => 219,
303
+ "TW" => 220,
304
+ "TZ" => 221,
305
+ "UA" => 222,
306
+ "UG" => 223,
307
+ "UM" => 224,
308
+ "US" => 225,
309
+ "UY" => 226,
310
+ "UZ" => 227,
311
+ "VA" => 228,
312
+ "VC" => 229,
313
+ "VE" => 230,
314
+ "VG" => 231,
315
+ "VI" => 232,
316
+ "VN" => 233,
317
+ "VU" => 234,
318
+ "WF" => 235,
319
+ "WS" => 236,
320
+ "YE" => 237,
321
+ "YT" => 238,
322
+ "RS" => 239,
323
+ "ZA" => 240,
324
+ "ZM" => 241,
325
+ "ME" => 242,
326
+ "ZW" => 243,
327
+ "A1" => 244,
328
+ "A2" => 245,
329
+ "O1" => 246,
330
+ "AX" => 247,
331
+ "GG" => 248,
332
+ "IM" => 249,
333
+ "JE" => 250,
334
+ "BL" => 251,
335
+ "MF" => 252,
336
+ "BQ" => 253,
337
+ "SS" => 254
338
+ );
339
+
340
+ public $GEOIP_COUNTRY_CODES = array(
341
+ "",
342
+ "AP",
343
+ "EU",
344
+ "AD",
345
+ "AE",
346
+ "AF",
347
+ "AG",
348
+ "AI",
349
+ "AL",
350
+ "AM",
351
+ "CW",
352
+ "AO",
353
+ "AQ",
354
+ "AR",
355
+ "AS",
356
+ "AT",
357
+ "AU",
358
+ "AW",
359
+ "AZ",
360
+ "BA",
361
+ "BB",
362
+ "BD",
363
+ "BE",
364
+ "BF",
365
+ "BG",
366
+ "BH",
367
+ "BI",
368
+ "BJ",
369
+ "BM",
370
+ "BN",
371
+ "BO",
372
+ "BR",
373
+ "BS",
374
+ "BT",
375
+ "BV",
376
+ "BW",
377
+ "BY",
378
+ "BZ",
379
+ "CA",
380
+ "CC",
381
+ "CD",
382
+ "CF",
383
+ "CG",
384
+ "CH",
385
+ "CI",
386
+ "CK",
387
+ "CL",
388
+ "CM",
389
+ "CN",
390
+ "CO",
391
+ "CR",
392
+ "CU",
393
+ "CV",
394
+ "CX",
395
+ "CY",
396
+ "CZ",
397
+ "DE",
398
+ "DJ",
399
+ "DK",
400
+ "DM",
401
+ "DO",
402
+ "DZ",
403
+ "EC",
404
+ "EE",
405
+ "EG",
406
+ "EH",
407
+ "ER",
408
+ "ES",
409
+ "ET",
410
+ "FI",
411
+ "FJ",
412
+ "FK",
413
+ "FM",
414
+ "FO",
415
+ "FR",
416
+ "SX",
417
+ "GA",
418
+ "GB",
419
+ "GD",
420
+ "GE",
421
+ "GF",
422
+ "GH",
423
+ "GI",
424
+ "GL",
425
+ "GM",
426
+ "GN",
427
+ "GP",
428
+ "GQ",
429
+ "GR",
430
+ "GS",
431
+ "GT",
432
+ "GU",
433
+ "GW",
434
+ "GY",
435
+ "HK",
436
+ "HM",
437
+ "HN",
438
+ "HR",
439
+ "HT",
440
+ "HU",
441
+ "ID",
442
+ "IE",
443
+ "IL",
444
+ "IN",
445
+ "IO",
446
+ "IQ",
447
+ "IR",
448
+ "IS",
449
+ "IT",
450
+ "JM",
451
+ "JO",
452
+ "JP",
453
+ "KE",
454
+ "KG",
455
+ "KH",
456
+ "KI",
457
+ "KM",
458
+ "KN",
459
+ "KP",
460
+ "KR",
461
+ "KW",
462
+ "KY",
463
+ "KZ",
464
+ "LA",
465
+ "LB",
466
+ "LC",
467
+ "LI",
468
+ "LK",
469
+ "LR",
470
+ "LS",
471
+ "LT",
472
+ "LU",
473
+ "LV",
474
+ "LY",
475
+ "MA",
476
+ "MC",
477
+ "MD",
478
+ "MG",
479
+ "MH",
480
+ "MK",
481
+ "ML",
482
+ "MM",
483
+ "MN",
484
+ "MO",
485
+ "MP",
486
+ "MQ",
487
+ "MR",
488
+ "MS",
489
+ "MT",
490
+ "MU",
491
+ "MV",
492
+ "MW",
493
+ "MX",
494
+ "MY",
495
+ "MZ",
496
+ "NA",
497
+ "NC",
498
+ "NE",
499
+ "NF",
500
+ "NG",
501
+ "NI",
502
+ "NL",
503
+ "NO",
504
+ "NP",
505
+ "NR",
506
+ "NU",
507
+ "NZ",
508
+ "OM",
509
+ "PA",
510
+ "PE",
511
+ "PF",
512
+ "PG",
513
+ "PH",
514
+ "PK",
515
+ "PL",
516
+ "PM",
517
+ "PN",
518
+ "PR",
519
+ "PS",
520
+ "PT",
521
+ "PW",
522
+ "PY",
523
+ "QA",
524
+ "RE",
525
+ "RO",
526
+ "RU",
527
+ "RW",
528
+ "SA",
529
+ "SB",
530
+ "SC",
531
+ "SD",
532
+ "SE",
533
+ "SG",
534
+ "SH",
535
+ "SI",
536
+ "SJ",
537
+ "SK",
538
+ "SL",
539
+ "SM",
540
+ "SN",
541
+ "SO",
542
+ "SR",
543
+ "ST",
544
+ "SV",
545
+ "SY",
546
+ "SZ",
547
+ "TC",
548
+ "TD",
549
+ "TF",
550
+ "TG",
551
+ "TH",
552
+ "TJ",
553
+ "TK",
554
+ "TM",
555
+ "TN",
556
+ "TO",
557
+ "TL",
558
+ "TR",
559
+ "TT",
560
+ "TV",
561
+ "TW",
562
+ "TZ",
563
+ "UA",
564
+ "UG",
565
+ "UM",
566
+ "US",
567
+ "UY",
568
+ "UZ",
569
+ "VA",
570
+ "VC",
571
+ "VE",
572
+ "VG",
573
+ "VI",
574
+ "VN",
575
+ "VU",
576
+ "WF",
577
+ "WS",
578
+ "YE",
579
+ "YT",
580
+ "RS",
581
+ "ZA",
582
+ "ZM",
583
+ "ME",
584
+ "ZW",
585
+ "A1",
586
+ "A2",
587
+ "O1",
588
+ "AX",
589
+ "GG",
590
+ "IM",
591
+ "JE",
592
+ "BL",
593
+ "MF",
594
+ "BQ",
595
+ "SS",
596
+ "O1"
597
+ );
598
+
599
+ public $GEOIP_COUNTRY_CODES3 = array(
600
+ "",
601
+ "AP",
602
+ "EU",
603
+ "AND",
604
+ "ARE",
605
+ "AFG",
606
+ "ATG",
607
+ "AIA",
608
+ "ALB",
609
+ "ARM",
610
+ "CUW",
611
+ "AGO",
612
+ "ATA",
613
+ "ARG",
614
+ "ASM",
615
+ "AUT",
616
+ "AUS",
617
+ "ABW",
618
+ "AZE",
619
+ "BIH",
620
+ "BRB",
621
+ "BGD",
622
+ "BEL",
623
+ "BFA",
624
+ "BGR",
625
+ "BHR",
626
+ "BDI",
627
+ "BEN",
628
+ "BMU",
629
+ "BRN",
630
+ "BOL",
631
+ "BRA",
632
+ "BHS",
633
+ "BTN",
634
+ "BVT",
635
+ "BWA",
636
+ "BLR",
637
+ "BLZ",
638
+ "CAN",
639
+ "CCK",
640
+ "COD",
641
+ "CAF",
642
+ "COG",
643
+ "CHE",
644
+ "CIV",
645
+ "COK",
646
+ "CHL",
647
+ "CMR",
648
+ "CHN",
649
+ "COL",
650
+ "CRI",
651
+ "CUB",
652
+ "CPV",
653
+ "CXR",
654
+ "CYP",
655
+ "CZE",
656
+ "DEU",
657
+ "DJI",
658
+ "DNK",
659
+ "DMA",
660
+ "DOM",
661
+ "DZA",
662
+ "ECU",
663
+ "EST",
664
+ "EGY",
665
+ "ESH",
666
+ "ERI",
667
+ "ESP",
668
+ "ETH",
669
+ "FIN",
670
+ "FJI",
671
+ "FLK",
672
+ "FSM",
673
+ "FRO",
674
+ "FRA",
675
+ "SXM",
676
+ "GAB",
677
+ "GBR",
678
+ "GRD",
679
+ "GEO",
680
+ "GUF",
681
+ "GHA",
682
+ "GIB",
683
+ "GRL",
684
+ "GMB",
685
+ "GIN",
686
+ "GLP",
687
+ "GNQ",
688
+ "GRC",
689
+ "SGS",
690
+ "GTM",
691
+ "GUM",
692
+ "GNB",
693
+ "GUY",
694
+ "HKG",
695
+ "HMD",
696
+ "HND",
697
+ "HRV",
698
+ "HTI",
699
+ "HUN",
700
+ "IDN",
701
+ "IRL",
702
+ "ISR",
703
+ "IND",
704
+ "IOT",
705
+ "IRQ",
706
+ "IRN",
707
+ "ISL",
708
+ "ITA",
709
+ "JAM",
710
+ "JOR",
711
+ "JPN",
712
+ "KEN",
713
+ "KGZ",
714
+ "KHM",
715
+ "KIR",
716
+ "COM",
717
+ "KNA",
718
+ "PRK",
719
+ "KOR",
720
+ "KWT",
721
+ "CYM",
722
+ "KAZ",
723
+ "LAO",
724
+ "LBN",
725
+ "LCA",
726
+ "LIE",
727
+ "LKA",
728
+ "LBR",
729
+ "LSO",
730
+ "LTU",
731
+ "LUX",
732
+ "LVA",
733
+ "LBY",
734
+ "MAR",
735
+ "MCO",
736
+ "MDA",
737
+ "MDG",
738
+ "MHL",
739
+ "MKD",
740
+ "MLI",
741
+ "MMR",
742
+ "MNG",
743
+ "MAC",
744
+ "MNP",
745
+ "MTQ",
746
+ "MRT",
747
+ "MSR",
748
+ "MLT",
749
+ "MUS",
750
+ "MDV",
751
+ "MWI",
752
+ "MEX",
753
+ "MYS",
754
+ "MOZ",
755
+ "NAM",
756
+ "NCL",
757
+ "NER",
758
+ "NFK",
759
+ "NGA",
760
+ "NIC",
761
+ "NLD",
762
+ "NOR",
763
+ "NPL",
764
+ "NRU",
765
+ "NIU",
766
+ "NZL",
767
+ "OMN",
768
+ "PAN",
769
+ "PER",
770
+ "PYF",
771
+ "PNG",
772
+ "PHL",
773
+ "PAK",
774
+ "POL",
775
+ "SPM",
776
+ "PCN",
777
+ "PRI",
778
+ "PSE",
779
+ "PRT",
780
+ "PLW",
781
+ "PRY",
782
+ "QAT",
783
+ "REU",
784
+ "ROU",
785
+ "RUS",
786
+ "RWA",
787
+ "SAU",
788
+ "SLB",
789
+ "SYC",
790
+ "SDN",
791
+ "SWE",
792
+ "SGP",
793
+ "SHN",
794
+ "SVN",
795
+ "SJM",
796
+ "SVK",
797
+ "SLE",
798
+ "SMR",
799
+ "SEN",
800
+ "SOM",
801
+ "SUR",
802
+ "STP",
803
+ "SLV",
804
+ "SYR",
805
+ "SWZ",
806
+ "TCA",
807
+ "TCD",
808
+ "ATF",
809
+ "TGO",
810
+ "THA",
811
+ "TJK",
812
+ "TKL",
813
+ "TKM",
814
+ "TUN",
815
+ "TON",
816
+ "TLS",
817
+ "TUR",
818
+ "TTO",
819
+ "TUV",
820
+ "TWN",
821
+ "TZA",
822
+ "UKR",
823
+ "UGA",
824
+ "UMI",
825
+ "USA",
826
+ "URY",
827
+ "UZB",
828
+ "VAT",
829
+ "VCT",
830
+ "VEN",
831
+ "VGB",
832
+ "VIR",
833
+ "VNM",
834
+ "VUT",
835
+ "WLF",
836
+ "WSM",
837
+ "YEM",
838
+ "MYT",
839
+ "SRB",
840
+ "ZAF",
841
+ "ZMB",
842
+ "MNE",
843
+ "ZWE",
844
+ "A1",
845
+ "A2",
846
+ "O1",
847
+ "ALA",
848
+ "GGY",
849
+ "IMN",
850
+ "JEY",
851
+ "BLM",
852
+ "MAF",
853
+ "BES",
854
+ "SSD",
855
+ "O1"
856
+ );
857
+
858
+ public $GEOIP_COUNTRY_NAMES = array(
859
+ "",
860
+ "Asia/Pacific Region",
861
+ "Europe",
862
+ "Andorra",
863
+ "United Arab Emirates",
864
+ "Afghanistan",
865
+ "Antigua and Barbuda",
866
+ "Anguilla",
867
+ "Albania",
868
+ "Armenia",
869
+ "Curacao",
870
+ "Angola",
871
+ "Antarctica",
872
+ "Argentina",
873
+ "American Samoa",
874
+ "Austria",
875
+ "Australia",
876
+ "Aruba",
877
+ "Azerbaijan",
878
+ "Bosnia and Herzegovina",
879
+ "Barbados",
880
+ "Bangladesh",
881
+ "Belgium",
882
+ "Burkina Faso",
883
+ "Bulgaria",
884
+ "Bahrain",
885
+ "Burundi",
886
+ "Benin",
887
+ "Bermuda",
888
+ "Brunei Darussalam",
889
+ "Bolivia",
890
+ "Brazil",
891
+ "Bahamas",
892
+ "Bhutan",
893
+ "Bouvet Island",
894
+ "Botswana",
895
+ "Belarus",
896
+ "Belize",
897
+ "Canada",
898
+ "Cocos (Keeling) Islands",
899
+ "Congo, The Democratic Republic of the",
900
+ "Central African Republic",
901
+ "Congo",
902
+ "Switzerland",
903
+ "Cote D'Ivoire",
904
+ "Cook Islands",
905
+ "Chile",
906
+ "Cameroon",
907
+ "China",
908
+ "Colombia",
909
+ "Costa Rica",
910
+ "Cuba",
911
+ "Cape Verde",
912
+ "Christmas Island",
913
+ "Cyprus",
914
+ "Czech Republic",
915
+ "Germany",
916
+ "Djibouti",
917
+ "Denmark",
918
+ "Dominica",
919
+ "Dominican Republic",
920
+ "Algeria",
921
+ "Ecuador",
922
+ "Estonia",
923
+ "Egypt",
924
+ "Western Sahara",
925
+ "Eritrea",
926
+ "Spain",
927
+ "Ethiopia",
928
+ "Finland",
929
+ "Fiji",
930
+ "Falkland Islands (Malvinas)",
931
+ "Micronesia, Federated States of",
932
+ "Faroe Islands",
933
+ "France",
934
+ "Sint Maarten (Dutch part)",
935
+ "Gabon",
936
+ "United Kingdom",
937
+ "Grenada",
938
+ "Georgia",
939
+ "French Guiana",
940
+ "Ghana",
941
+ "Gibraltar",
942
+ "Greenland",
943
+ "Gambia",
944
+ "Guinea",
945
+ "Guadeloupe",
946
+ "Equatorial Guinea",
947
+ "Greece",
948
+ "South Georgia and the South Sandwich Islands",
949
+ "Guatemala",
950
+ "Guam",
951
+ "Guinea-Bissau",
952
+ "Guyana",
953
+ "Hong Kong",
954
+ "Heard Island and McDonald Islands",
955
+ "Honduras",
956
+ "Croatia",
957
+ "Haiti",
958
+ "Hungary",
959
+ "Indonesia",
960
+ "Ireland",
961
+ "Israel",
962
+ "India",
963
+ "British Indian Ocean Territory",
964
+ "Iraq",
965
+ "Iran, Islamic Republic of",
966
+ "Iceland",
967
+ "Italy",
968
+ "Jamaica",
969
+ "Jordan",
970
+ "Japan",
971
+ "Kenya",
972
+ "Kyrgyzstan",
973
+ "Cambodia",
974
+ "Kiribati",
975
+ "Comoros",
976
+ "Saint Kitts and Nevis",
977
+ "Korea, Democratic People's Republic of",
978
+ "Korea, Republic of",
979
+ "Kuwait",
980
+ "Cayman Islands",
981
+ "Kazakhstan",
982
+ "Lao People's Democratic Republic",
983
+ "Lebanon",
984
+ "Saint Lucia",
985
+ "Liechtenstein",
986
+ "Sri Lanka",
987
+ "Liberia",
988
+ "Lesotho",
989
+ "Lithuania",
990
+ "Luxembourg",
991
+ "Latvia",
992
+ "Libya",
993
+ "Morocco",
994
+ "Monaco",
995
+ "Moldova, Republic of",
996
+ "Madagascar",
997
+ "Marshall Islands",
998
+ "Macedonia",
999
+ "Mali",
1000
+ "Myanmar",
1001
+ "Mongolia",
1002
+ "Macau",
1003
+ "Northern Mariana Islands",
1004
+ "Martinique",
1005
+ "Mauritania",
1006
+ "Montserrat",
1007
+ "Malta",
1008
+ "Mauritius",
1009
+ "Maldives",
1010
+ "Malawi",
1011
+ "Mexico",
1012
+ "Malaysia",
1013
+ "Mozambique",
1014
+ "Namibia",
1015
+ "New Caledonia",
1016
+ "Niger",
1017
+ "Norfolk Island",
1018
+ "Nigeria",
1019
+ "Nicaragua",
1020
+ "Netherlands",
1021
+ "Norway",
1022
+ "Nepal",
1023
+ "Nauru",
1024
+ "Niue",
1025
+ "New Zealand",
1026
+ "Oman",
1027
+ "Panama",
1028
+ "Peru",
1029
+ "French Polynesia",
1030
+ "Papua New Guinea",
1031
+ "Philippines",
1032
+ "Pakistan",
1033
+ "Poland",
1034
+ "Saint Pierre and Miquelon",
1035
+ "Pitcairn Islands",
1036
+ "Puerto Rico",
1037
+ "Palestinian Territory",
1038
+ "Portugal",
1039
+ "Palau",
1040
+ "Paraguay",
1041
+ "Qatar",
1042
+ "Reunion",
1043
+ "Romania",
1044
+ "Russian Federation",
1045
+ "Rwanda",
1046
+ "Saudi Arabia",
1047
+ "Solomon Islands",
1048
+ "Seychelles",
1049
+ "Sudan",
1050
+ "Sweden",
1051
+ "Singapore",
1052
+ "Saint Helena",
1053
+ "Slovenia",
1054
+ "Svalbard and Jan Mayen",
1055
+ "Slovakia",
1056
+ "Sierra Leone",
1057
+ "San Marino",
1058
+ "Senegal",
1059
+ "Somalia",
1060
+ "Suriname",
1061
+ "Sao Tome and Principe",
1062
+ "El Salvador",
1063
+ "Syrian Arab Republic",
1064
+ "Swaziland",
1065
+ "Turks and Caicos Islands",
1066
+ "Chad",
1067
+ "French Southern Territories",
1068
+ "Togo",
1069
+ "Thailand",
1070
+ "Tajikistan",
1071
+ "Tokelau",
1072
+ "Turkmenistan",
1073
+ "Tunisia",
1074
+ "Tonga",
1075
+ "Timor-Leste",
1076
+ "Turkey",
1077
+ "Trinidad and Tobago",
1078
+ "Tuvalu",
1079
+ "Taiwan",
1080
+ "Tanzania, United Republic of",
1081
+ "Ukraine",
1082
+ "Uganda",
1083
+ "United States Minor Outlying Islands",
1084
+ "United States",
1085
+ "Uruguay",
1086
+ "Uzbekistan",
1087
+ "Holy See (Vatican City State)",
1088
+ "Saint Vincent and the Grenadines",
1089
+ "Venezuela",
1090
+ "Virgin Islands, British",
1091
+ "Virgin Islands, U.S.",
1092
+ "Vietnam",
1093
+ "Vanuatu",
1094
+ "Wallis and Futuna",
1095
+ "Samoa",
1096
+ "Yemen",
1097
+ "Mayotte",
1098
+ "Serbia",
1099
+ "South Africa",
1100
+ "Zambia",
1101
+ "Montenegro",
1102
+ "Zimbabwe",
1103
+ "Anonymous Proxy",
1104
+ "Satellite Provider",
1105
+ "Other",
1106
+ "Aland Islands",
1107
+ "Guernsey",
1108
+ "Isle of Man",
1109
+ "Jersey",
1110
+ "Saint Barthelemy",
1111
+ "Saint Martin",
1112
+ "Bonaire, Saint Eustatius and Saba",
1113
+ "South Sudan",
1114
+ "Other"
1115
+ );
1116
+
1117
+ public $GEOIP_CONTINENT_CODES = array(
1118
+ "--",
1119
+ "AS",
1120
+ "EU",
1121
+ "EU",
1122
+ "AS",
1123
+ "AS",
1124
+ "NA",
1125
+ "NA",
1126
+ "EU",
1127
+ "AS",
1128
+ "NA",
1129
+ "AF",
1130
+ "AN",
1131
+ "SA",
1132
+ "OC",
1133
+ "EU",
1134
+ "OC",
1135
+ "NA",
1136
+ "AS",
1137
+ "EU",
1138
+ "NA",
1139
+ "AS",
1140
+ "EU",
1141
+ "AF",
1142
+ "EU",
1143
+ "AS",
1144
+ "AF",
1145
+ "AF",
1146
+ "NA",
1147
+ "AS",
1148
+ "SA",
1149
+ "SA",
1150
+ "NA",
1151
+ "AS",
1152
+ "AN",
1153
+ "AF",
1154
+ "EU",
1155
+ "NA",
1156
+ "NA",
1157
+ "AS",
1158
+ "AF",
1159
+ "AF",
1160
+ "AF",
1161
+ "EU",
1162
+ "AF",
1163
+ "OC",
1164
+ "SA",
1165
+ "AF",
1166
+ "AS",
1167
+ "SA",
1168
+ "NA",
1169
+ "NA",
1170
+ "AF",
1171
+ "AS",
1172
+ "AS",
1173
+ "EU",
1174
+ "EU",
1175
+ "AF",
1176
+ "EU",
1177
+ "NA",
1178
+ "NA",
1179
+ "AF",
1180
+ "SA",
1181
+ "EU",
1182
+ "AF",
1183
+ "AF",
1184
+ "AF",
1185
+ "EU",
1186
+ "AF",
1187
+ "EU",
1188
+ "OC",
1189
+ "SA",
1190
+ "OC",
1191
+ "EU",
1192
+ "EU",
1193
+ "NA",
1194
+ "AF",
1195
+ "EU",
1196
+ "NA",
1197
+ "AS",
1198
+ "SA",
1199
+ "AF",
1200
+ "EU",
1201
+ "NA",
1202
+ "AF",
1203
+ "AF",
1204
+ "NA",
1205
+ "AF",
1206
+ "EU",
1207
+ "AN",
1208
+ "NA",
1209
+ "OC",
1210
+ "AF",
1211
+ "SA",
1212
+ "AS",
1213
+ "AN",
1214
+ "NA",
1215
+ "EU",
1216
+ "NA",
1217
+ "EU",
1218
+ "AS",
1219
+ "EU",
1220
+ "AS",
1221
+ "AS",
1222
+ "AS",
1223
+ "AS",
1224
+ "AS",
1225
+ "EU",
1226
+ "EU",
1227
+ "NA",
1228
+ "AS",
1229
+ "AS",
1230
+ "AF",
1231
+ "AS",
1232
+ "AS",
1233
+ "OC",
1234
+ "AF",
1235
+ "NA",
1236
+ "AS",
1237
+ "AS",
1238
+ "AS",
1239
+ "NA",
1240
+ "AS",
1241
+ "AS",
1242
+ "AS",
1243
+ "NA",
1244
+ "EU",
1245
+ "AS",
1246
+ "AF",
1247
+ "AF",
1248
+ "EU",
1249
+ "EU",
1250
+ "EU",
1251
+ "AF",
1252
+ "AF",
1253
+ "EU",
1254
+ "EU",
1255
+ "AF",
1256
+ "OC",
1257
+ "EU",
1258
+ "AF",
1259
+ "AS",
1260
+ "AS",
1261
+ "AS",
1262
+ "OC",
1263
+ "NA",
1264
+ "AF",
1265
+ "NA",
1266
+ "EU",
1267
+ "AF",
1268
+ "AS",
1269
+ "AF",
1270
+ "NA",
1271
+ "AS",
1272
+ "AF",
1273
+ "AF",
1274
+ "OC",
1275
+ "AF",
1276
+ "OC",
1277
+ "AF",
1278
+ "NA",
1279
+ "EU",
1280
+ "EU",
1281
+ "AS",
1282
+ "OC",
1283
+ "OC",
1284
+ "OC",
1285
+ "AS",
1286
+ "NA",
1287
+ "SA",
1288
+ "OC",
1289
+ "OC",
1290
+ "AS",
1291
+ "AS",
1292
+ "EU",
1293
+ "NA",
1294
+ "OC",
1295
+ "NA",
1296
+ "AS",
1297
+ "EU",
1298
+ "OC",
1299
+ "SA",
1300
+ "AS",
1301
+ "AF",
1302
+ "EU",
1303
+ "EU",
1304
+ "AF",
1305
+ "AS",
1306
+ "OC",
1307
+ "AF",
1308
+ "AF",
1309
+ "EU",
1310
+ "AS",
1311
+ "AF",
1312
+ "EU",
1313
+ "EU",
1314
+ "EU",
1315
+ "AF",
1316
+ "EU",
1317
+ "AF",
1318
+ "AF",
1319
+ "SA",
1320
+ "AF",
1321
+ "NA",
1322
+ "AS",
1323
+ "AF",
1324
+ "NA",
1325
+ "AF",
1326
+ "AN",
1327
+ "AF",
1328
+ "AS",
1329
+ "AS",
1330
+ "OC",
1331
+ "AS",
1332
+ "AF",
1333
+ "OC",
1334
+ "AS",
1335
+ "EU",
1336
+ "NA",
1337
+ "OC",
1338
+ "AS",
1339
+ "AF",
1340
+ "EU",
1341
+ "AF",
1342
+ "OC",
1343
+ "NA",
1344
+ "SA",
1345
+ "AS",
1346
+ "EU",
1347
+ "NA",
1348
+ "SA",
1349
+ "NA",
1350
+ "NA",
1351
+ "AS",
1352
+ "OC",
1353
+ "OC",
1354
+ "OC",
1355
+ "AS",
1356
+ "AF",
1357
+ "EU",
1358
+ "AF",
1359
+ "AF",
1360
+ "EU",
1361
+ "AF",
1362
+ "--",
1363
+ "--",
1364
+ "--",
1365
+ "EU",
1366
+ "EU",
1367
+ "EU",
1368
+ "EU",
1369
+ "NA",
1370
+ "NA",
1371
+ "NA",
1372
+ "AF",
1373
+ "--"
1374
+ );
1375
+ }
1376
+
1377
+ function geoip_load_shared_mem($file)
1378
+ {
1379
+ $fp = fopen($file, "rb");
1380
+ if (!$fp) {
1381
+ print "error opening $file: $php_errormsg\n";
1382
+ exit;
1383
+ }
1384
+ $s_array = fstat($fp);
1385
+ $size = $s_array['size'];
1386
+ if (($shmid = @shmop_open(GEOIP_SHM_KEY, "w", 0, 0))) {
1387
+ shmop_delete($shmid);
1388
+ shmop_close($shmid);
1389
+ }
1390
+ $shmid = shmop_open(GEOIP_SHM_KEY, "c", 0644, $size);
1391
+ shmop_write($shmid, fread($fp, $size), 0);
1392
+ shmop_close($shmid);
1393
+ }
1394
+
1395
+ function _setup_segments($gi)
1396
+ {
1397
+ $gi->databaseType = GEOIP_COUNTRY_EDITION;
1398
+ $gi->record_length = STANDARD_RECORD_LENGTH;
1399
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
1400
+ $offset = @shmop_size($gi->shmid) - 3;
1401
+ for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
1402
+ $delim = @shmop_read($gi->shmid, $offset, 3);
1403
+ $offset += 3;
1404
+ if ($delim == (chr(255) . chr(255) . chr(255))) {
1405
+ $gi->databaseType = ord(@shmop_read($gi->shmid, $offset, 1));
1406
+ if ($gi->databaseType >= 106) {
1407
+ $gi->databaseType -= 105;
1408
+ }
1409
+ $offset++;
1410
+
1411
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
1412
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
1413
+ } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
1414
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
1415
+ } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
1416
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
1417
+ || ($gi->databaseType == GEOIP_ORG_EDITION)
1418
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
1419
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
1420
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
1421
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
1422
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
1423
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
1424
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
1425
+ || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
1426
+ || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
1427
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
1428
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
1429
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
1430
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
1431
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION)
1432
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)
1433
+ ) {
1434
+ $gi->databaseSegments = 0;
1435
+ $buf = @shmop_read($gi->shmid, $offset, SEGMENT_RECORD_LENGTH);
1436
+ for ($j = 0; $j < SEGMENT_RECORD_LENGTH; $j++) {
1437
+ $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
1438
+ }
1439
+ if (($gi->databaseType == GEOIP_ORG_EDITION)
1440
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
1441
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
1442
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
1443
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
1444
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
1445
+ ) {
1446
+ $gi->record_length = ORG_RECORD_LENGTH;
1447
+ }
1448
+ }
1449
+ break;
1450
+ } else {
1451
+ $offset -= 4;
1452
+ }
1453
+ }
1454
+ if (($gi->databaseType == GEOIP_COUNTRY_EDITION) ||
1455
+ ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) ||
1456
+ ($gi->databaseType == GEOIP_PROXY_EDITION) ||
1457
+ ($gi->databaseType == GEOIP_NETSPEED_EDITION)
1458
+ ) {
1459
+ $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
1460
+ }
1461
+ } else {
1462
+ $filepos = ftell($gi->filehandle);
1463
+ fseek($gi->filehandle, -3, SEEK_END);
1464
+ for ($i = 0; $i < STRUCTURE_INFO_MAX_SIZE; $i++) {
1465
+ $delim = fread($gi->filehandle, 3);
1466
+ if ($delim == (chr(255) . chr(255) . chr(255))) {
1467
+ $gi->databaseType = ord(fread($gi->filehandle, 1));
1468
+ if ($gi->databaseType >= 106) {
1469
+ $gi->databaseType -= 105;
1470
+ }
1471
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
1472
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV0;
1473
+ } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
1474
+ $gi->databaseSegments = GEOIP_STATE_BEGIN_REV1;
1475
+ } elseif (($gi->databaseType == GEOIP_CITY_EDITION_REV0)
1476
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1)
1477
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
1478
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
1479
+ || ($gi->databaseType == GEOIP_ORG_EDITION)
1480
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
1481
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
1482
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
1483
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
1484
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
1485
+ || ($gi->databaseType == GEOIP_LOCATIONA_EDITION)
1486
+ || ($gi->databaseType == GEOIP_ACCURACYRADIUS_EDITION)
1487
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV0_V6)
1488
+ || ($gi->databaseType == GEOIP_CITY_EDITION_REV1_V6)
1489
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1)
1490
+ || ($gi->databaseType == GEOIP_NETSPEED_EDITION_REV1_V6)
1491
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION)
1492
+ || ($gi->databaseType == GEOIP_USERTYPE_EDITION_V6)
1493
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION)
1494
+ || ($gi->databaseType == GEOIP_ASNUM_EDITION_V6)
1495
+ ) {
1496
+ $gi->databaseSegments = 0;
1497
+ $buf = fread($gi->filehandle, SEGMENT_RECORD_LENGTH);
1498
+ for ($j = 0; $j < SEGMENT_RECORD_LENGTH; $j++) {
1499
+ $gi->databaseSegments += (ord($buf[$j]) << ($j * 8));
1500
+ }
1501
+ if (($gi->databaseType == GEOIP_ORG_EDITION)
1502
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION)
1503
+ || ($gi->databaseType == GEOIP_ISP_EDITION)
1504
+ || ($gi->databaseType == GEOIP_ORG_EDITION_V6)
1505
+ || ($gi->databaseType == GEOIP_DOMAIN_EDITION_V6)
1506
+ || ($gi->databaseType == GEOIP_ISP_EDITION_V6)
1507
+ ) {
1508
+ $gi->record_length = ORG_RECORD_LENGTH;
1509
+ }
1510
+ }
1511
+ break;
1512
+ } else {
1513
+ fseek($gi->filehandle, -4, SEEK_CUR);
1514
+ }
1515
+ }
1516
+ if (($gi->databaseType == GEOIP_COUNTRY_EDITION) ||
1517
+ ($gi->databaseType == GEOIP_COUNTRY_EDITION_V6) ||
1518
+ ($gi->databaseType == GEOIP_PROXY_EDITION) ||
1519
+ ($gi->databaseType == GEOIP_NETSPEED_EDITION)
1520
+ ) {
1521
+ $gi->databaseSegments = GEOIP_COUNTRY_BEGIN;
1522
+ }
1523
+ fseek($gi->filehandle, $filepos, SEEK_SET);
1524
+ }
1525
+ return $gi;
1526
+ }
1527
+
1528
+ function geoip_open($filename, $flags)
1529
+ {
1530
+ $gi = new GeoIP;
1531
+ $gi->flags = $flags;
1532
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
1533
+ $gi->shmid = @shmop_open(GEOIP_SHM_KEY, "a", 0, 0);
1534
+ } else {
1535
+ $gi->filehandle = fopen($filename, "rb") or die("Can not open $filename\n");
1536
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
1537
+ $s_array = fstat($gi->filehandle);
1538
+ $gi->memory_buffer = fread($gi->filehandle, $s_array['size']);
1539
+ }
1540
+ }
1541
+
1542
+ $gi = _setup_segments($gi);
1543
+ return $gi;
1544
+ }
1545
+
1546
+ function geoip_close($gi)
1547
+ {
1548
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
1549
+ return true;
1550
+ }
1551
+
1552
+ return fclose($gi->filehandle);
1553
+ }
1554
+
1555
+ function geoip_country_id_by_name_v6($gi, $name)
1556
+ {
1557
+ $rec = dns_get_record($name, DNS_AAAA);
1558
+ if (!$rec) {
1559
+ return false;
1560
+ }
1561
+ $addr = $rec[0]["ipv6"];
1562
+ if (!$addr || $addr == $name) {
1563
+ return false;
1564
+ }
1565
+ return geoip_country_id_by_addr_v6($gi, $addr);
1566
+ }
1567
+
1568
+ function geoip_country_id_by_name($gi, $name)
1569
+ {
1570
+ $addr = gethostbyname($name);
1571
+ if (!$addr || $addr == $name) {
1572
+ return false;
1573
+ }
1574
+ return geoip_country_id_by_addr($gi, $addr);
1575
+ }
1576
+
1577
+ function geoip_country_code_by_name_v6($gi, $name)
1578
+ {
1579
+ $country_id = geoip_country_id_by_name_v6($gi, $name);
1580
+ if ($country_id !== false) {
1581
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
1582
+ }
1583
+ return false;
1584
+ }
1585
+
1586
+ function geoip_country_code_by_name($gi, $name)
1587
+ {
1588
+ $country_id = geoip_country_id_by_name($gi, $name);
1589
+ if ($country_id !== false) {
1590
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
1591
+ }
1592
+ return false;
1593
+ }
1594
+
1595
+ function geoip_country_name_by_name_v6($gi, $name)
1596
+ {
1597
+ $country_id = geoip_country_id_by_name_v6($gi, $name);
1598
+ if ($country_id !== false) {
1599
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
1600
+ }
1601
+ return false;
1602
+ }
1603
+
1604
+ function geoip_country_name_by_name($gi, $name)
1605
+ {
1606
+ $country_id = geoip_country_id_by_name($gi, $name);
1607
+ if ($country_id !== false) {
1608
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
1609
+ }
1610
+ return false;
1611
+ }
1612
+
1613
+ function geoip_country_id_by_addr_v6($gi, $addr)
1614
+ {
1615
+ $ipnum = inet_pton($addr);
1616
+ return _geoip_seek_country_v6($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
1617
+ }
1618
+
1619
+ function geoip_country_id_by_addr($gi, $addr)
1620
+ {
1621
+ $ipnum = ip2long($addr);
1622
+ return _geoip_seek_country($gi, $ipnum) - GEOIP_COUNTRY_BEGIN;
1623
+ }
1624
+
1625
+ function geoip_country_code_by_addr_v6($gi, $addr)
1626
+ {
1627
+ $country_id = geoip_country_id_by_addr_v6($gi, $addr);
1628
+ if ($country_id !== false) {
1629
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
1630
+ }
1631
+ return false;
1632
+ }
1633
+
1634
+ function geoip_country_code_by_addr($gi, $addr)
1635
+ {
1636
+ if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
1637
+ $record = geoip_record_by_addr($gi, $addr);
1638
+ if ($record !== false) {
1639
+ return $record->country_code;
1640
+ }
1641
+ } else {
1642
+ $country_id = geoip_country_id_by_addr($gi, $addr);
1643
+ if ($country_id !== false) {
1644
+ return $gi->GEOIP_COUNTRY_CODES[$country_id];
1645
+ }
1646
+ }
1647
+ return false;
1648
+ }
1649
+
1650
+ function geoip_country_name_by_addr_v6($gi, $addr)
1651
+ {
1652
+ $country_id = geoip_country_id_by_addr_v6($gi, $addr);
1653
+ if ($country_id !== false) {
1654
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
1655
+ }
1656
+ return false;
1657
+ }
1658
+
1659
+ function geoip_country_name_by_addr($gi, $addr)
1660
+ {
1661
+ if ($gi->databaseType == GEOIP_CITY_EDITION_REV1) {
1662
+ $record = geoip_record_by_addr($gi, $addr);
1663
+ return $record->country_name;
1664
+ } else {
1665
+ $country_id = geoip_country_id_by_addr($gi, $addr);
1666
+ if ($country_id !== false) {
1667
+ return $gi->GEOIP_COUNTRY_NAMES[$country_id];
1668
+ }
1669
+ }
1670
+ return false;
1671
+ }
1672
+
1673
+ function _geoip_seek_country_v6($gi, $ipnum)
1674
+ {
1675
+ # arrays from unpack start with offset 1
1676
+ # yet another php mystery. array_merge work around
1677
+ # this broken behaviour
1678
+ $v6vec = array_merge(unpack("C16", $ipnum));
1679
+
1680
+ $offset = 0;
1681
+ for ($depth = 127; $depth >= 0; --$depth) {
1682
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
1683
+ $buf = _safe_substr(
1684
+ $gi->memory_buffer,
1685
+ 2 * $gi->record_length * $offset,
1686
+ 2 * $gi->record_length
1687
+ );
1688
+ } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
1689
+ $buf = @shmop_read(
1690
+ $gi->shmid,
1691
+ 2 * $gi->record_length * $offset,
1692
+ 2 * $gi->record_length
1693
+ );
1694
+ } else {
1695
+ fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
1696
+ or die("fseek failed");
1697
+ $buf = fread($gi->filehandle, 2 * $gi->record_length);
1698
+ }
1699
+ $x = array(0, 0);
1700
+ for ($i = 0; $i < 2; ++$i) {
1701
+ for ($j = 0; $j < $gi->record_length; ++$j) {
1702
+ $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
1703
+ }
1704
+ }
1705
+
1706
+ $bnum = 127 - $depth;
1707
+ $idx = $bnum >> 3;
1708
+ $b_mask = 1 << ($bnum & 7 ^ 7);
1709
+ if (($v6vec[$idx] & $b_mask) > 0) {
1710
+ if ($x[1] >= $gi->databaseSegments) {
1711
+ return $x[1];
1712
+ }
1713
+ $offset = $x[1];
1714
+ } else {
1715
+ if ($x[0] >= $gi->databaseSegments) {
1716
+ return $x[0];
1717
+ }
1718
+ $offset = $x[0];
1719
+ }
1720
+ }
1721
+ trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
1722
+ return false;
1723
+ }
1724
+
1725
+ function _geoip_seek_country($gi, $ipnum)
1726
+ {
1727
+ $offset = 0;
1728
+ for ($depth = 31; $depth >= 0; --$depth) {
1729
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
1730
+ $buf = _safe_substr(
1731
+ $gi->memory_buffer,
1732
+ 2 * $gi->record_length * $offset,
1733
+ 2 * $gi->record_length
1734
+ );
1735
+ } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
1736
+ $buf = @shmop_read(
1737
+ $gi->shmid,
1738
+ 2 * $gi->record_length * $offset,
1739
+ 2 * $gi->record_length
1740
+ );
1741
+ } else {
1742
+ fseek($gi->filehandle, 2 * $gi->record_length * $offset, SEEK_SET) == 0
1743
+ or die("fseek failed");
1744
+ $buf = fread($gi->filehandle, 2 * $gi->record_length);
1745
+ }
1746
+ $x = array(0, 0);
1747
+ for ($i = 0; $i < 2; ++$i) {
1748
+ for ($j = 0; $j < $gi->record_length; ++$j) {
1749
+ $x[$i] += ord($buf[$gi->record_length * $i + $j]) << ($j * 8);
1750
+ }
1751
+ }
1752
+ if ($ipnum & (1 << $depth)) {
1753
+ if ($x[1] >= $gi->databaseSegments) {
1754
+ return $x[1];
1755
+ }
1756
+ $offset = $x[1];
1757
+ } else {
1758
+ if ($x[0] >= $gi->databaseSegments) {
1759
+ return $x[0];
1760
+ }
1761
+ $offset = $x[0];
1762
+ }
1763
+ }
1764
+ trigger_error("error traversing database - perhaps it is corrupt?", E_USER_ERROR);
1765
+ return false;
1766
+ }
1767
+
1768
+ function _common_get_org($gi, $seek_org)
1769
+ {
1770
+ $record_pointer = $seek_org + (2 * $gi->record_length - 1) * $gi->databaseSegments;
1771
+ if ($gi->flags & GEOIP_SHARED_MEMORY) {
1772
+ $org_buf = @shmop_read($gi->shmid, $record_pointer, MAX_ORG_RECORD_LENGTH);
1773
+ } else {
1774
+ fseek($gi->filehandle, $record_pointer, SEEK_SET);
1775
+ $org_buf = fread($gi->filehandle, MAX_ORG_RECORD_LENGTH);
1776
+ }
1777
+ $org_buf = _safe_substr($org_buf, 0, strpos($org_buf, "\0"));
1778
+ return $org_buf;
1779
+ }
1780
+
1781
+ function _get_org_v6($gi, $ipnum)
1782
+ {
1783
+ $seek_org = _geoip_seek_country_v6($gi, $ipnum);
1784
+ if ($seek_org == $gi->databaseSegments) {
1785
+ return null;
1786
+ }
1787
+ return _common_get_org($gi, $seek_org);
1788
+ }
1789
+
1790
+ function _get_org($gi, $ipnum)
1791
+ {
1792
+ $seek_org = _geoip_seek_country($gi, $ipnum);
1793
+ if ($seek_org == $gi->databaseSegments) {
1794
+ return null;
1795
+ }
1796
+ return _common_get_org($gi, $seek_org);
1797
+ }
1798
+
1799
+
1800
+ function geoip_name_by_addr_v6($gi, $addr)
1801
+ {
1802
+ if ($addr == null) {
1803
+ return 0;
1804
+ }
1805
+ $ipnum = inet_pton($addr);
1806
+ return _get_org_v6($gi, $ipnum);
1807
+ }
1808
+
1809
+ function geoip_name_by_addr($gi, $addr)
1810
+ {
1811
+ if ($addr == null) {
1812
+ return 0;
1813
+ }
1814
+ $ipnum = ip2long($addr);
1815
+ return _get_org($gi, $ipnum);
1816
+ }
1817
+
1818
+ function geoip_org_by_addr($gi, $addr)
1819
+ {
1820
+ return geoip_name_by_addr($gi, $addr);
1821
+ }
1822
+
1823
+ function _get_region($gi, $ipnum)
1824
+ {
1825
+ if ($gi->databaseType == GEOIP_REGION_EDITION_REV0) {
1826
+ $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV0;
1827
+ if ($seek_region >= 1000) {
1828
+ $country_code = "US";
1829
+ $region = chr(($seek_region - 1000) / 26 + 65) . chr(($seek_region - 1000) % 26 + 65);
1830
+ } else {
1831
+ $country_code = $gi->GEOIP_COUNTRY_CODES[$seek_region];
1832
+ $region = "";
1833
+ }
1834
+ return array($country_code, $region);
1835
+ } elseif ($gi->databaseType == GEOIP_REGION_EDITION_REV1) {
1836
+ $seek_region = _geoip_seek_country($gi, $ipnum) - GEOIP_STATE_BEGIN_REV1;
1837
+ if ($seek_region < US_OFFSET) {
1838
+ $country_code = "";
1839
+ $region = "";
1840
+ } elseif ($seek_region < CANADA_OFFSET) {
1841
+ $country_code = "US";
1842
+ $region = chr(($seek_region - US_OFFSET) / 26 + 65) . chr(($seek_region - US_OFFSET) % 26 + 65);
1843
+ } elseif ($seek_region < WORLD_OFFSET) {
1844
+ $country_code = "CA";
1845
+ $region = chr(($seek_region - CANADA_OFFSET) / 26 + 65) . chr(($seek_region - CANADA_OFFSET) % 26 + 65);
1846
+ } else {
1847
+ $country_code = $gi->GEOIP_COUNTRY_CODES[($seek_region - WORLD_OFFSET) / FIPS_RANGE];
1848
+ $region = "";
1849
+ }
1850
+ return array($country_code, $region);
1851
+ }
1852
+ }
1853
+
1854
+ function geoip_region_by_addr($gi, $addr)
1855
+ {
1856
+ if ($addr == null) {
1857
+ return 0;
1858
+ }
1859
+ $ipnum = ip2long($addr);
1860
+ return _get_region($gi, $ipnum);
1861
+ }
1862
+
1863
+ function getdnsattributes($l, $ip)
1864
+ {
1865
+ $r = new Net_DNS_Resolver();
1866
+ $r->nameservers = array("ws1.maxmind.com");
1867
+ $p = $r->search($l . "." . $ip . ".s.maxmind.com", "TXT", "IN");
1868
+ $str = is_object($p->answer[0]) ? $p->answer[0]->string() : '';
1869
+ $str = substr($str, 1, -1);
1870
+ return $str;
1871
+ }
1872
+
1873
+ function _safe_substr($string, $start, $length)
1874
+ {
1875
+ // workaround php's broken substr, strpos, etc handling with
1876
+ // mbstring.func_overload and mbstring.internal_encoding
1877
+ $mbExists = extension_loaded('mbstring');
1878
+
1879
+ if ($mbExists) {
1880
+ $enc = mb_internal_encoding();
1881
+ mb_internal_encoding('ISO-8859-1');
1882
+ }
1883
+
1884
+ $buf = substr($string, $start, $length);
1885
+
1886
+ if ($mbExists) {
1887
+ mb_internal_encoding($enc);
1888
+ }
1889
+
1890
+ return $buf;
1891
+ }
lib/GeoLock/geoipcity.inc ADDED
@@ -0,0 +1,241 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /* geoipcity.inc
4
+ *
5
+ * Copyright (C) 2013 MaxMind, Inc.
6
+ *
7
+ * This library is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * This library is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with this library; if not, write to the Free Software
19
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
+ */
21
+
22
+
23
+ define("FULL_RECORD_LENGTH", 50);
24
+
25
+ require_once 'geoip.inc';
26
+ require_once 'geoipregionvars.php';
27
+
28
+ class geoiprecord
29
+ {
30
+ public $country_code;
31
+ public $country_code3;
32
+ public $country_name;
33
+ public $region;
34
+ public $city;
35
+ public $postal_code;
36
+ public $latitude;
37
+ public $longitude;
38
+ public $area_code;
39
+ public $dma_code; # metro and dma code are the same. use metro_code
40
+ public $metro_code;
41
+ public $continent_code;
42
+ }
43
+
44
+ class geoipdnsrecord
45
+ {
46
+ public $country_code;
47
+ public $country_code3;
48
+ public $country_name;
49
+ public $region;
50
+ public $regionname;
51
+ public $city;
52
+ public $postal_code;
53
+ public $latitude;
54
+ public $longitude;
55
+ public $areacode;
56
+ public $dmacode;
57
+ public $isp;
58
+ public $org;
59
+ public $metrocode;
60
+ }
61
+
62
+ function getrecordwithdnsservice($str)
63
+ {
64
+ $record = new geoipdnsrecord;
65
+ $keyvalue = explode(";", $str);
66
+ foreach ($keyvalue as $keyvalue2) {
67
+ list($key, $value) = explode("=", $keyvalue2);
68
+ if ($key == "co") {
69
+ $record->country_code = $value;
70
+ }
71
+ if ($key == "ci") {
72
+ $record->city = $value;
73
+ }
74
+ if ($key == "re") {
75
+ $record->region = $value;
76
+ }
77
+ if ($key == "ac") {
78
+ $record->areacode = $value;
79
+ }
80
+ if ($key == "dm" || $key == "me") {
81
+ $record->dmacode = $value;
82
+ $record->metrocode = $value;
83
+ }
84
+ if ($key == "is") {
85
+ $record->isp = $value;
86
+ }
87
+ if ($key == "or") {
88
+ $record->org = $value;
89
+ }
90
+ if ($key == "zi") {
91
+ $record->postal_code = $value;
92
+ }
93
+ if ($key == "la") {
94
+ $record->latitude = $value;
95
+ }
96
+ if ($key == "lo") {
97
+ $record->longitude = $value;
98
+ }
99
+ }
100
+ $number = $GLOBALS['GEOIP_COUNTRY_CODE_TO_NUMBER'][$record->country_code];
101
+ $record->country_code3 = $GLOBALS['GEOIP_COUNTRY_CODES3'][$number];
102
+ $record->country_name = $GLOBALS['GEOIP_COUNTRY_NAMES'][$number];
103
+ if ($record->region != "") {
104
+ if (($record->country_code == "US") || ($record->country_code == "CA")) {
105
+ $record->regionname = $GLOBALS['ISO'][$record->country_code][$record->region];
106
+ } else {
107
+ $record->regionname = $GLOBALS['FIPS'][$record->country_code][$record->region];
108
+ }
109
+ }
110
+ return $record;
111
+ }
112
+
113
+
114
+ function _get_record_v6($gi, $ipnum)
115
+ {
116
+ $seek_country = _geoip_seek_country_v6($gi, $ipnum);
117
+ if ($seek_country == $gi->databaseSegments) {
118
+ return null;
119
+ }
120
+ return _common_get_record($gi, $seek_country);
121
+ }
122
+
123
+ function _common_get_record($gi, $seek_country)
124
+ {
125
+ // workaround php's broken substr, strpos, etc handling with
126
+ // mbstring.func_overload and mbstring.internal_encoding
127
+ $mbExists = extension_loaded('mbstring');
128
+ if ($mbExists) {
129
+ $enc = mb_internal_encoding();
130
+ mb_internal_encoding('ISO-8859-1');
131
+ }
132
+
133
+ $record_pointer = $seek_country + (2 * $gi->record_length - 1) * $gi->databaseSegments;
134
+
135
+ if ($gi->flags & GEOIP_MEMORY_CACHE) {
136
+ $record_buf = substr($gi->memory_buffer, $record_pointer, FULL_RECORD_LENGTH);
137
+ } elseif ($gi->flags & GEOIP_SHARED_MEMORY) {
138
+ $record_buf = @shmop_read($gi->shmid, $record_pointer, FULL_RECORD_LENGTH);
139
+ } else {
140
+ fseek($gi->filehandle, $record_pointer, SEEK_SET);
141
+ $record_buf = fread($gi->filehandle, FULL_RECORD_LENGTH);
142
+ }
143
+ $record = new geoiprecord;
144
+ $record_buf_pos = 0;
145
+ $char = ord(substr($record_buf, $record_buf_pos, 1));
146
+ $record->country_code = $gi->GEOIP_COUNTRY_CODES[$char];
147
+ $record->country_code3 = $gi->GEOIP_COUNTRY_CODES3[$char];
148
+ $record->country_name = $gi->GEOIP_COUNTRY_NAMES[$char];
149
+ $record->continent_code = $gi->GEOIP_CONTINENT_CODES[$char];
150
+ $record_buf_pos++;
151
+ $str_length = 0;
152
+
153
+ // Get region
154
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
155
+ while ($char != 0) {
156
+ $str_length++;
157
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
158
+ }
159
+ if ($str_length > 0) {
160
+ $record->region = substr($record_buf, $record_buf_pos, $str_length);
161
+ }
162
+ $record_buf_pos += $str_length + 1;
163
+ $str_length = 0;
164
+ // Get city
165
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
166
+ while ($char != 0) {
167
+ $str_length++;
168
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
169
+ }
170
+ if ($str_length > 0) {
171
+ $record->city = substr($record_buf, $record_buf_pos, $str_length);
172
+ }
173
+ $record_buf_pos += $str_length + 1;
174
+ $str_length = 0;
175
+ // Get postal code
176
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
177
+ while ($char != 0) {
178
+ $str_length++;
179
+ $char = ord(substr($record_buf, $record_buf_pos + $str_length, 1));
180
+ }
181
+ if ($str_length > 0) {
182
+ $record->postal_code = substr($record_buf, $record_buf_pos, $str_length);
183
+ }
184
+ $record_buf_pos += $str_length + 1;
185
+ $str_length = 0;
186
+ // Get latitude and longitude
187
+ $latitude = 0;
188
+ $longitude = 0;
189
+ for ($j = 0; $j < 3; ++$j) {
190
+ $char = ord(substr($record_buf, $record_buf_pos++, 1));
191
+ $latitude += ($char << ($j * 8));
192
+ }
193
+ $record->latitude = ($latitude / 10000) - 180;
194
+ for ($j = 0; $j < 3; ++$j) {
195
+ $char = ord(substr($record_buf, $record_buf_pos++, 1));
196
+ $longitude += ($char << ($j * 8));
197
+ }
198
+ $record->longitude = ($longitude / 10000) - 180;
199
+ if (GEOIP_CITY_EDITION_REV1 == $gi->databaseType) {
200
+ $metroarea_combo = 0;
201
+ if ($record->country_code == "US") {
202
+ for ($j = 0; $j < 3; ++$j) {
203
+ $char = ord(substr($record_buf, $record_buf_pos++, 1));
204
+ $metroarea_combo += ($char << ($j * 8));
205
+ }
206
+ $record->metro_code = $record->dma_code = floor($metroarea_combo / 1000);
207
+ $record->area_code = $metroarea_combo % 1000;
208
+ }
209
+ }
210
+ if ($mbExists) {
211
+ mb_internal_encoding($enc);
212
+ }
213
+ return $record;
214
+ }
215
+
216
+ function GeoIP_record_by_addr_v6($gi, $addr)
217
+ {
218
+ if ($addr == null) {
219
+ return 0;
220
+ }
221
+ $ipnum = inet_pton($addr);
222
+ return _get_record_v6($gi, $ipnum);
223
+ }
224
+
225
+ function _get_record($gi, $ipnum)
226
+ {
227
+ $seek_country = _geoip_seek_country($gi, $ipnum);
228
+ if ($seek_country == $gi->databaseSegments) {
229
+ return null;
230
+ }
231
+ return _common_get_record($gi, $seek_country);
232
+ }
233
+
234
+ function GeoIP_record_by_addr($gi, $addr)
235
+ {
236
+ if ($addr == null) {
237
+ return 0;
238
+ }
239
+ $ipnum = ip2long($addr);
240
+ return _get_record($gi, $ipnum);
241
+ }
lib/GeoLock/geoipregionvars.php ADDED
@@ -0,0 +1,4616 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * GeoLock extension
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @category CP
13
+ * @package CP_GeoLock
14
+ * @author Commercepundit<magento@commercepundit.com>
15
+ */
16
+ global $GEOIP_REGION_NAME;
17
+ $GEOIP_REGION_NAME = array (
18
+ 'AD' =>
19
+ array (
20
+ '02' => 'Canillo',
21
+ '03' => 'Encamp',
22
+ '04' => 'La Massana',
23
+ '05' => 'Ordino',
24
+ '06' => 'Sant Julia de Loria',
25
+ '07' => 'Andorra la Vella',
26
+ '08' => 'Escaldes-Engordany',
27
+ ),
28
+ 'AE' =>
29
+ array (
30
+ '01' => 'Abu Dhabi',
31
+ '02' => 'Ajman',
32
+ '03' => 'Dubai',
33
+ '04' => 'Fujairah',
34
+ '05' => 'Ras Al Khaimah',
35
+ '06' => 'Sharjah',
36
+ '07' => 'Umm Al Quwain',
37
+ ),
38
+ 'AF' =>
39
+ array (
40
+ '01' => 'Badakhshan',
41
+ '02' => 'Badghis',
42
+ '03' => 'Baghlan',
43
+ '05' => 'Bamian',
44
+ '06' => 'Farah',
45
+ '07' => 'Faryab',
46
+ '08' => 'Ghazni',
47
+ '09' => 'Ghowr',
48
+ 10 => 'Helmand',
49
+ 11 => 'Herat',
50
+ 13 => 'Kabol',
51
+ 14 => 'Kapisa',
52
+ 17 => 'Lowgar',
53
+ 18 => 'Nangarhar',
54
+ 19 => 'Nimruz',
55
+ 23 => 'Kandahar',
56
+ 24 => 'Kondoz',
57
+ 26 => 'Takhar',
58
+ 27 => 'Vardak',
59
+ 28 => 'Zabol',
60
+ 29 => 'Paktika',
61
+ 30 => 'Balkh',
62
+ 31 => 'Jowzjan',
63
+ 32 => 'Samangan',
64
+ 33 => 'Sar-e Pol',
65
+ 34 => 'Konar',
66
+ 35 => 'Laghman',
67
+ 36 => 'Paktia',
68
+ 37 => 'Khowst',
69
+ 38 => 'Nurestan',
70
+ 39 => 'Oruzgan',
71
+ 40 => 'Parvan',
72
+ 41 => 'Daykondi',
73
+ 42 => 'Panjshir',
74
+ ),
75
+ 'AG' =>
76
+ array (
77
+ '01' => 'Barbuda',
78
+ '03' => 'Saint George',
79
+ '04' => 'Saint John',
80
+ '05' => 'Saint Mary',
81
+ '06' => 'Saint Paul',
82
+ '07' => 'Saint Peter',
83
+ '08' => 'Saint Philip',
84
+ '09' => 'Redonda',
85
+ ),
86
+ 'AL' =>
87
+ array (
88
+ 40 => 'Berat',
89
+ 41 => 'Diber',
90
+ 42 => 'Durres',
91
+ 43 => 'Elbasan',
92
+ 44 => 'Fier',
93
+ 45 => 'Gjirokaster',
94
+ 46 => 'Korce',
95
+ 47 => 'Kukes',
96
+ 48 => 'Lezhe',
97
+ 49 => 'Shkoder',
98
+ 50 => 'Tirane',
99
+ 51 => 'Vlore',
100
+ ),
101
+ 'AM' =>
102
+ array (
103
+ '01' => 'Aragatsotn',
104
+ '02' => 'Ararat',
105
+ '03' => 'Armavir',
106
+ '04' => 'Geghark\'unik\'',
107
+ '05' => 'Kotayk\'',
108
+ '06' => 'Lorri',
109
+ '07' => 'Shirak',
110
+ '08' => 'Syunik\'',
111
+ '09' => 'Tavush',
112
+ 10 => 'Vayots\' Dzor',
113
+ 11 => 'Yerevan',
114
+ ),
115
+ 'AO' =>
116
+ array (
117
+ '01' => 'Benguela',
118
+ '02' => 'Bie',
119
+ '03' => 'Cabinda',
120
+ '04' => 'Cuando Cubango',
121
+ '05' => 'Cuanza Norte',
122
+ '06' => 'Cuanza Sul',
123
+ '07' => 'Cunene',
124
+ '08' => 'Huambo',
125
+ '09' => 'Huila',
126
+ 12 => 'Malanje',
127
+ 13 => 'Namibe',
128
+ 14 => 'Moxico',
129
+ 15 => 'Uige',
130
+ 16 => 'Zaire',
131
+ 17 => 'Lunda Norte',
132
+ 18 => 'Lunda Sul',
133
+ 19 => 'Bengo',
134
+ 20 => 'Luanda',
135
+ ),
136
+ 'AR' =>
137
+ array (
138
+ '01' => 'Buenos Aires',
139
+ '02' => 'Catamarca',
140
+ '03' => 'Chaco',
141
+ '04' => 'Chubut',
142
+ '05' => 'Cordoba',
143
+ '06' => 'Corrientes',
144
+ '07' => 'Distrito Federal',
145
+ '08' => 'Entre Rios',
146
+ '09' => 'Formosa',
147
+ 10 => 'Jujuy',
148
+ 11 => 'La Pampa',
149
+ 12 => 'La Rioja',
150
+ 13 => 'Mendoza',
151
+ 14 => 'Misiones',
152
+ 15 => 'Neuquen',
153
+ 16 => 'Rio Negro',
154
+ 17 => 'Salta',
155
+ 18 => 'San Juan',
156
+ 19 => 'San Luis',
157
+ 20 => 'Santa Cruz',
158
+ 21 => 'Santa Fe',
159
+ 22 => 'Santiago del Estero',
160
+ 23 => 'Tierra del Fuego',
161
+ 24 => 'Tucuman',
162
+ ),
163
+ 'AT' =>
164
+ array (
165
+ '01' => 'Burgenland',
166
+ '02' => 'Karnten',
167
+ '03' => 'Niederosterreich',
168
+ '04' => 'Oberosterreich',
169
+ '05' => 'Salzburg',
170
+ '06' => 'Steiermark',
171
+ '07' => 'Tirol',
172
+ '08' => 'Vorarlberg',
173
+ '09' => 'Wien',
174
+ ),
175
+ 'AU' =>
176
+ array (
177
+ '01' => 'Australian Capital Territory',
178
+ '02' => 'New South Wales',
179
+ '03' => 'Northern Territory',
180
+ '04' => 'Queensland',
181
+ '05' => 'South Australia',
182
+ '06' => 'Tasmania',
183
+ '07' => 'Victoria',
184
+ '08' => 'Western Australia',
185
+ ),
186
+ 'AZ' =>
187
+ array (
188
+ '01' => 'Abseron',
189
+ '02' => 'Agcabadi',
190
+ '03' => 'Agdam',
191
+ '04' => 'Agdas',
192
+ '05' => 'Agstafa',
193
+ '06' => 'Agsu',
194
+ '07' => 'Ali Bayramli',
195
+ '08' => 'Astara',
196
+ '09' => 'Baki',
197
+ 10 => 'Balakan',
198
+ 11 => 'Barda',
199
+ 12 => 'Beylaqan',
200
+ 13 => 'Bilasuvar',
201
+ 14 => 'Cabrayil',
202
+ 15 => 'Calilabad',
203
+ 16 => 'Daskasan',
204
+ 17 => 'Davaci',
205
+ 18 => 'Fuzuli',
206
+ 19 => 'Gadabay',
207
+ 20 => 'Ganca',
208
+ 21 => 'Goranboy',
209
+ 22 => 'Goycay',
210
+ 23 => 'Haciqabul',
211
+ 24 => 'Imisli',
212
+ 25 => 'Ismayilli',
213
+ 26 => 'Kalbacar',
214
+ 27 => 'Kurdamir',
215
+ 28 => 'Lacin',
216
+ 30 => 'Lankaran',
217
+ 31 => 'Lerik',
218
+ 32 => 'Masalli',
219
+ 33 => 'Mingacevir',
220
+ 34 => 'Naftalan',
221
+ 35 => 'Naxcivan',
222
+ 36 => 'Neftcala',
223
+ 37 => 'Oguz',
224
+ 38 => 'Qabala',
225
+ 39 => 'Qax',
226
+ 40 => 'Qazax',
227
+ 41 => 'Qobustan',
228
+ 42 => 'Quba',
229
+ 43 => 'Qubadli',
230
+ 44 => 'Qusar',
231
+ 45 => 'Saatli',
232
+ 46 => 'Sabirabad',
233
+ 48 => 'Saki',
234
+ 49 => 'Salyan',
235
+ 50 => 'Samaxi',
236
+ 51 => 'Samkir',
237
+ 52 => 'Samux',
238
+ 53 => 'Siyazan',
239
+ 54 => 'Sumqayit',
240
+ 56 => 'Susa',
241
+ 57 => 'Tartar',
242
+ 58 => 'Tovuz',
243
+ 59 => 'Ucar',
244
+ 60 => 'Xacmaz',
245
+ 61 => 'Xankandi',
246
+ 62 => 'Xanlar',
247
+ 63 => 'Xizi',
248
+ 64 => 'Xocali',
249
+ 65 => 'Xocavand',
250
+ 66 => 'Yardimli',
251
+ 68 => 'Yevlax',
252
+ 69 => 'Zangilan',
253
+ 70 => 'Zaqatala',
254
+ 71 => 'Zardab',
255
+ ),
256
+ 'BA' =>
257
+ array (
258
+ '01' => 'Federation of Bosnia and Herzegovina',
259
+ '03' => 'Brcko District',
260
+ '02' => 'Republika Srpska',
261
+ ),
262
+ 'BB' =>
263
+ array (
264
+ '01' => 'Christ Church',
265
+ '02' => 'Saint Andrew',
266
+ '03' => 'Saint George',
267
+ '04' => 'Saint James',
268
+ '05' => 'Saint John',
269
+ '06' => 'Saint Joseph',
270
+ '07' => 'Saint Lucy',
271
+ '08' => 'Saint Michael',
272
+ '09' => 'Saint Peter',
273
+ 10 => 'Saint Philip',
274
+ 11 => 'Saint Thomas',
275
+ ),
276
+ 'BD' =>
277
+ array (
278
+ 81 => 'Dhaka',
279
+ 82 => 'Khulna',
280
+ 83 => 'Rajshahi',
281
+ 84 => 'Chittagong',
282
+ 85 => 'Barisal',
283
+ 86 => 'Sylhet',
284
+ ),
285
+ 'BE' =>
286
+ array (
287
+ '01' => 'Antwerpen',
288
+ '03' => 'Hainaut',
289
+ '04' => 'Liege',
290
+ '05' => 'Limburg',
291
+ '06' => 'Luxembourg',
292
+ '07' => 'Namur',
293
+ '08' => 'Oost-Vlaanderen',
294
+ '09' => 'West-Vlaanderen',
295
+ 10 => 'Brabant Wallon',
296
+ 11 => 'Brussels Hoofdstedelijk Gewest',
297
+ 12 => 'Vlaams-Brabant',
298
+ 13 => 'Flanders',
299
+ 14 => 'Wallonia',
300
+ ),
301
+ 'BF' =>
302
+ array (
303
+ 15 => 'Bam',
304
+ 19 => 'Boulkiemde',
305
+ 20 => 'Ganzourgou',
306
+ 21 => 'Gnagna',
307
+ 28 => 'Kouritenga',
308
+ 33 => 'Oudalan',
309
+ 34 => 'Passore',
310
+ 36 => 'Sanguie',
311
+ 40 => 'Soum',
312
+ 42 => 'Tapoa',
313
+ 44 => 'Zoundweogo',
314
+ 45 => 'Bale',
315
+ 46 => 'Banwa',
316
+ 47 => 'Bazega',
317
+ 48 => 'Bougouriba',
318
+ 49 => 'Boulgou',
319
+ 50 => 'Gourma',
320
+ 51 => 'Houet',
321
+ 52 => 'Ioba',
322
+ 53 => 'Kadiogo',
323
+ 54 => 'Kenedougou',
324
+ 55 => 'Komoe',
325
+ 56 => 'Komondjari',
326
+ 57 => 'Kompienga',
327
+ 58 => 'Kossi',
328
+ 59 => 'Koulpelogo',
329
+ 60 => 'Kourweogo',
330
+ 61 => 'Leraba',
331
+ 62 => 'Loroum',
332
+ 63 => 'Mouhoun',
333
+ 64 => 'Namentenga',
334
+ 65 => 'Naouri',
335
+ 66 => 'Nayala',
336
+ 67 => 'Noumbiel',
337
+ 68 => 'Oubritenga',
338
+ 69 => 'Poni',
339
+ 70 => 'Sanmatenga',
340
+ 71 => 'Seno',
341
+ 72 => 'Sissili',
342
+ 73 => 'Sourou',
343
+ 74 => 'Tuy',
344
+ 75 => 'Yagha',
345
+ 76 => 'Yatenga',
346
+ 77 => 'Ziro',
347
+ 78 => 'Zondoma',
348
+ ),
349
+ 'BG' =>
350
+ array (
351
+ 33 => 'Mikhaylovgrad',
352
+ 38 => 'Blagoevgrad',
353
+ 39 => 'Burgas',
354
+ 40 => 'Dobrich',
355
+ 41 => 'Gabrovo',
356
+ 42 => 'Grad Sofiya',
357
+ 43 => 'Khaskovo',
358
+ 44 => 'Kurdzhali',
359
+ 45 => 'Kyustendil',
360
+ 46 => 'Lovech',
361
+ 47 => 'Montana',
362
+ 48 => 'Pazardzhik',
363
+ 49 => 'Pernik',
364
+ 50 => 'Pleven',
365
+ 51 => 'Plovdiv',
366
+ 52 => 'Razgrad',
367
+ 53 => 'Ruse',
368
+ 54 => 'Shumen',
369
+ 55 => 'Silistra',
370
+ 56 => 'Sliven',
371
+ 57 => 'Smolyan',
372
+ 58 => 'Sofiya',
373
+ 59 => 'Stara Zagora',
374
+ 60 => 'Turgovishte',
375
+ 61 => 'Varna',
376
+ 62 => 'Veliko Turnovo',
377
+ 63 => 'Vidin',
378
+ 64 => 'Vratsa',
379
+ 65 => 'Yambol',
380
+ ),
381
+ 'BH' =>
382
+ array (
383
+ '01' => 'Al Hadd',
384
+ '02' => 'Al Manamah',
385
+ '05' => 'Jidd Hafs',
386
+ '06' => 'Sitrah',
387
+ '08' => 'Al Mintaqah al Gharbiyah',
388
+ '09' => 'Mintaqat Juzur Hawar',
389
+ 10 => 'Al Mintaqah ash Shamaliyah',
390
+ 11 => 'Al Mintaqah al Wusta',
391
+ 12 => 'Madinat',
392
+ 13 => 'Ar Rifa',
393
+ 14 => 'Madinat Hamad',
394
+ 15 => 'Al Muharraq',
395
+ 16 => 'Al Asimah',
396
+ 17 => 'Al Janubiyah',
397
+ 18 => 'Ash Shamaliyah',
398
+ 19 => 'Al Wusta',
399
+ ),
400
+ 'BI' =>
401
+ array (
402
+ '02' => 'Bujumbura',
403
+ '09' => 'Bubanza',
404
+ 10 => 'Bururi',
405
+ 11 => 'Cankuzo',
406
+ 12 => 'Cibitoke',
407
+ 13 => 'Gitega',
408
+ 14 => 'Karuzi',
409
+ 15 => 'Kayanza',
410
+ 16 => 'Kirundo',
411
+ 17 => 'Makamba',
412
+ 18 => 'Muyinga',
413
+ 19 => 'Ngozi',
414
+ 20 => 'Rutana',
415
+ 21 => 'Ruyigi',
416
+ 22 => 'Muramvya',
417
+ 23 => 'Mwaro',
418
+ ),
419
+ 'BJ' =>
420
+ array (
421
+ '07' => 'Alibori',
422
+ '08' => 'Atakora',
423
+ '09' => 'Atlanyique',
424
+ 10 => 'Borgou',
425
+ 11 => 'Collines',
426
+ 12 => 'Kouffo',
427
+ 13 => 'Donga',
428
+ 14 => 'Littoral',
429
+ 15 => 'Mono',
430
+ 16 => 'Oueme',
431
+ 17 => 'Plateau',
432
+ 18 => 'Zou',
433
+ ),
434
+ 'BM' =>
435
+ array (
436
+ '01' => 'Devonshire',
437
+ '03' => 'Hamilton',
438
+ '04' => 'Paget',
439
+ '05' => 'Pembroke',
440
+ '06' => 'Saint George',
441
+ '07' => 'Saint George\'s',
442
+ '08' => 'Sandys',
443
+ '09' => 'Smiths',
444
+ 10 => 'Southampton',
445
+ 11 => 'Warwick',
446
+ ),
447
+ 'BN' =>
448
+ array (
449
+ '07' => 'Alibori',
450
+ '08' => 'Belait',
451
+ '09' => 'Brunei and Muara',
452
+ 10 => 'Temburong',
453
+ 11 => 'Collines',
454
+ 12 => 'Kouffo',
455
+ 13 => 'Donga',
456
+ 14 => 'Littoral',
457
+ 15 => 'Tutong',
458
+ 16 => 'Oueme',
459
+ 17 => 'Plateau',
460
+ 18 => 'Zou',
461
+ ),
462
+ 'BO' =>
463
+ array (
464
+ '01' => 'Chuquisaca',
465
+ '02' => 'Cochabamba',
466
+ '03' => 'El Beni',
467
+ '04' => 'La Paz',
468
+ '05' => 'Oruro',
469
+ '06' => 'Pando',
470
+ '07' => 'Potosi',
471
+ '08' => 'Santa Cruz',
472
+ '09' => 'Tarija',
473
+ ),
474
+ 'BR' =>
475
+ array (
476
+ '01' => 'Acre',
477
+ '02' => 'Alagoas',
478
+ '03' => 'Amapa',
479
+ '04' => 'Amazonas',
480
+ '05' => 'Bahia',
481
+ '06' => 'Ceara',
482
+ '07' => 'Distrito Federal',
483
+ '08' => 'Espirito Santo',
484
+ 11 => 'Mato Grosso do Sul',
485
+ 13 => 'Maranhao',
486
+ 14 => 'Mato Grosso',
487
+ 15 => 'Minas Gerais',
488
+ 16 => 'Para',
489
+ 17 => 'Paraiba',
490
+ 18 => 'Parana',
491
+ 20 => 'Piaui',
492
+ 21 => 'Rio de Janeiro',
493
+ 22 => 'Rio Grande do Norte',
494
+ 23 => 'Rio Grande do Sul',
495
+ 24 => 'Rondonia',
496
+ 25 => 'Roraima',
497
+ 26 => 'Santa Catarina',
498
+ 27 => 'Sao Paulo',
499
+ 28 => 'Sergipe',
500
+ 29 => 'Goias',
501
+ 30 => 'Pernambuco',
502
+ 31 => 'Tocantins',
503
+ ),
504
+ 'BS' =>
505
+ array (
506
+ '05' => 'Bimini',
507
+ '06' => 'Cat Island',
508
+ 10 => 'Exuma',
509
+ 13 => 'Inagua',
510
+ 15 => 'Long Island',
511
+ 16 => 'Mayaguana',
512
+ 18 => 'Ragged Island',
513
+ 22 => 'Harbour Island',
514
+ 23 => 'New Providence',
515
+ 24 => 'Acklins and Crooked Islands',
516
+ 25 => 'Freeport',
517
+ 26 => 'Fresh Creek',
518
+ 27 => 'Governor\'s Harbour',
519
+ 28 => 'Green Turtle Cay',
520
+ 29 => 'High Rock',
521
+ 30 => 'Kemps Bay',
522
+ 31 => 'Marsh Harbour',
523
+ 32 => 'Nichollstown and Berry Islands',
524
+ 33 => 'Rock Sound',
525
+ 34 => 'Sandy Point',
526
+ 35 => 'San Salvador and Rum Cay',
527
+ ),
528
+ 'BT' =>
529
+ array (
530
+ '05' => 'Bumthang',
531
+ '06' => 'Chhukha',
532
+ '07' => 'Chirang',
533
+ '08' => 'Daga',
534
+ '09' => 'Geylegphug',
535
+ 10 => 'Ha',
536
+ 11 => 'Lhuntshi',
537
+ 12 => 'Mongar',
538
+ 13 => 'Paro',
539
+ 14 => 'Pemagatsel',
540
+ 15 => 'Punakha',
541
+ 16 => 'Samchi',
542
+ 17 => 'Samdrup',
543
+ 18 => 'Shemgang',
544
+ 19 => 'Tashigang',
545
+ 20 => 'Thimphu',
546
+ 21 => 'Tongsa',
547
+ 22 => 'Wangdi Phodrang',
548
+ ),
549
+ 'BW' =>
550
+ array (
551
+ '01' => 'Central',
552
+ '03' => 'Ghanzi',
553
+ '04' => 'Kgalagadi',
554
+ '05' => 'Kgatleng',
555
+ '06' => 'Kweneng',
556
+ '08' => 'North-East',
557
+ '09' => 'South-East',
558
+ 10 => 'Southern',
559
+ 11 => 'North-West',
560
+ ),
561
+ 'BY' =>
562
+ array (
563
+ '01' => 'Brestskaya Voblasts\'',
564
+ '02' => 'Homyel\'skaya Voblasts\'',
565
+ '03' => 'Hrodzyenskaya Voblasts\'',
566
+ '04' => 'Minsk',
567
+ '05' => 'Minskaya Voblasts\'',
568
+ '06' => 'Mahilyowskaya Voblasts\'',
569
+ '07' => 'Vitsyebskaya Voblasts\'',
570
+ ),
571
+ 'BZ' =>
572
+ array (
573
+ '01' => 'Belize',
574
+ '02' => 'Cayo',
575
+ '03' => 'Corozal',
576
+ '04' => 'Orange Walk',
577
+ '05' => 'Stann Creek',
578
+ '06' => 'Toledo',
579
+ ),
580
+ 'CA' =>
581
+ array (
582
+ 'AB' => 'Alberta',
583
+ 'BC' => 'British Columbia',
584
+ 'MB' => 'Manitoba',
585
+ 'NB' => 'New Brunswick',
586
+ 'NL' => 'Newfoundland',
587
+ 'NS' => 'Nova Scotia',
588
+ 'NT' => 'Northwest Territories',
589
+ 'NU' => 'Nunavut',
590
+ 'ON' => 'Ontario',
591
+ 'PE' => 'Prince Edward Island',
592
+ 'QC' => 'Quebec',
593
+ 'SK' => 'Saskatchewan',
594
+ 'YT' => 'Yukon Territory',
595
+ ),
596
+ 'CD' =>
597
+ array (
598
+ '01' => 'Bandundu',
599
+ '02' => 'Equateur',
600
+ '04' => 'Kasai-Oriental',
601
+ '05' => 'Katanga',
602
+ '06' => 'Kinshasa',
603
+ '08' => 'Bas-Congo',
604
+ '09' => 'Orientale',
605
+ 10 => 'Maniema',
606
+ 11 => 'Nord-Kivu',
607
+ 12 => 'Sud-Kivu',
608
+ ),
609
+ 'CF' =>
610
+ array (
611
+ '01' => 'Bamingui-Bangoran',
612
+ '02' => 'Basse-Kotto',
613
+ '03' => 'Haute-Kotto',
614
+ '04' => 'Mambere-Kadei',
615
+ '05' => 'Haut-Mbomou',
616
+ '06' => 'Kemo',
617
+ '07' => 'Lobaye',
618
+ '08' => 'Mbomou',
619
+ '09' => 'Nana-Mambere',
620
+ 11 => 'Ouaka',
621
+ 12 => 'Ouham',
622
+ 13 => 'Ouham-Pende',
623
+ 14 => 'Cuvette-Ouest',
624
+ 15 => 'Nana-Grebizi',
625
+ 16 => 'Sangha-Mbaere',
626
+ 17 => 'Ombella-Mpoko',
627
+ 18 => 'Bangui',
628
+ ),
629
+ 'CG' =>
630
+ array (
631
+ '01' => 'Bouenza',
632
+ '04' => 'Kouilou',
633
+ '05' => 'Lekoumou',
634
+ '06' => 'Likouala',
635
+ '07' => 'Niari',
636
+ '08' => 'Plateaux',
637
+ 10 => 'Sangha',
638
+ 11 => 'Pool',
639
+ 12 => 'Brazzaville',
640
+ 13 => 'Cuvette',
641
+ 14 => 'Cuvette-Ouest',
642
+ ),
643
+ 'CH' =>
644
+ array (
645
+ '01' => 'Aargau',
646
+ '02' => 'Ausser-Rhoden',
647
+ '03' => 'Basel-Landschaft',
648
+ '04' => 'Basel-Stadt',
649
+ '05' => 'Bern',
650
+ '06' => 'Fribourg',
651
+ '07' => 'Geneve',
652
+ '08' => 'Glarus',
653
+ '09' => 'Graubunden',
654
+ 10 => 'Inner-Rhoden',
655
+ 11 => 'Luzern',
656
+ 12 => 'Neuchatel',
657
+ 13 => 'Nidwalden',
658
+ 14 => 'Obwalden',
659
+ 15 => 'Sankt Gallen',
660
+ 16 => 'Schaffhausen',
661
+ 17 => 'Schwyz',
662
+ 18 => 'Solothurn',
663
+ 19 => 'Thurgau',
664
+ 20 => 'Ticino',
665
+ 21 => 'Uri',
666
+ 22 => 'Valais',
667
+ 23 => 'Vaud',
668
+ 24 => 'Zug',
669
+ 25 => 'Zurich',
670
+ 26 => 'Jura',
671
+ ),
672
+ 'CI' =>
673
+ array (
674
+ 74 => 'Agneby',
675
+ 75 => 'Bafing',
676
+ 76 => 'Bas-Sassandra',
677
+ 77 => 'Denguele',
678
+ 78 => 'Dix-Huit Montagnes',
679
+ 79 => 'Fromager',
680
+ 80 => 'Haut-Sassandra',
681
+ 81 => 'Lacs',
682
+ 82 => 'Lagunes',
683
+ 83 => 'Marahoue',
684
+ 84 => 'Moyen-Cavally',
685
+ 85 => 'Moyen-Comoe',
686
+ 86 => 'N\'zi-Comoe',
687
+ 87 => 'Savanes',
688
+ 88 => 'Sud-Bandama',
689
+ 89 => 'Sud-Comoe',
690
+ 90 => 'Vallee du Bandama',
691
+ 91 => 'Worodougou',
692
+ 92 => 'Zanzan',
693
+ ),
694
+ 'CL' =>
695
+ array (
696
+ '01' => 'Valparaiso',
697
+ '02' => 'Aisen del General Carlos Ibanez del Campo',
698
+ '03' => 'Antofagasta',
699
+ '04' => 'Araucania',
700
+ '05' => 'Atacama',
701
+ '06' => 'Bio-Bio',
702
+ '07' => 'Coquimbo',
703
+ '08' => 'Libertador General Bernardo O\'Higgins',
704
+ 14 => 'Los Lagos',
705
+ 10 => 'Magallanes y de la Antartica Chilena',
706
+ 11 => 'Maule',
707
+ 12 => 'Region Metropolitana',
708
+ 15 => 'Tarapaca',
709
+ 16 => 'Arica y Parinacota',
710
+ 17 => 'Los Rios',
711
+ ),
712
+ 'CM' =>
713
+ array (
714
+ '04' => 'Est',
715
+ '05' => 'Littoral',
716
+ '07' => 'Nord-Ouest',
717
+ '08' => 'Ouest',
718
+ '09' => 'Sud-Ouest',
719
+ 10 => 'Adamaoua',
720
+ 11 => 'Centre',
721
+ 12 => 'Extreme-Nord',
722
+ 13 => 'Nord',
723
+ 14 => 'Sud',
724
+ ),
725
+ 'CN' =>
726
+ array (
727
+ '01' => 'Anhui',
728
+ '02' => 'Zhejiang',
729
+ '03' => 'Jiangxi',
730
+ '04' => 'Jiangsu',
731
+ '05' => 'Jilin',
732
+ '06' => 'Qinghai',
733
+ '07' => 'Fujian',
734
+ '08' => 'Heilongjiang',
735
+ '09' => 'Henan',
736
+ 10 => 'Hebei',
737
+ 11 => 'Hunan',
738
+ 12 => 'Hubei',
739
+ 13 => 'Xinjiang',
740
+ 14 => 'Xizang',
741
+ 15 => 'Gansu',
742
+ 16 => 'Guangxi',
743
+ 18 => 'Guizhou',
744
+ 19 => 'Liaoning',
745
+ 20 => 'Nei Mongol',
746
+ 21 => 'Ningxia',
747
+ 22 => 'Beijing',
748
+ 23 => 'Shanghai',
749
+ 24 => 'Shanxi',
750
+ 25 => 'Shandong',
751
+ 26 => 'Shaanxi',
752
+ 28 => 'Tianjin',
753
+ 29 => 'Yunnan',
754
+ 30 => 'Guangdong',
755
+ 31 => 'Hainan',
756
+ 32 => 'Sichuan',
757
+ 33 => 'Chongqing',
758
+ ),
759
+ 'CO' =>
760
+ array (
761
+ '01' => 'Amazonas',
762
+ '02' => 'Antioquia',
763
+ '03' => 'Arauca',
764
+ '04' => 'Atlantico',
765
+ '08' => 'Caqueta',
766
+ '09' => 'Cauca',
767
+ 10 => 'Cesar',
768
+ 11 => 'Choco',
769
+ 12 => 'Cordoba',
770
+ 14 => 'Guaviare',
771
+ 15 => 'Guainia',
772
+ 16 => 'Huila',
773
+ 17 => 'La Guajira',
774
+ 19 => 'Meta',
775
+ 20 => 'Narino',
776
+ 21 => 'Norte de Santander',
777
+ 22 => 'Putumayo',
778
+ 23 => 'Quindio',
779
+ 24 => 'Risaralda',
780
+ 25 => 'San Andres y Providencia',
781
+ 26 => 'Santander',
782
+ 27 => 'Sucre',
783
+ 28 => 'Tolima',
784
+ 29 => 'Valle del Cauca',
785
+ 30 => 'Vaupes',
786
+ 31 => 'Vichada',
787
+ 32 => 'Casanare',
788
+ 33 => 'Cundinamarca',
789
+ 34 => 'Distrito Especial',
790
+ 35 => 'Bolivar',
791
+ 36 => 'Boyaca',
792
+ 37 => 'Caldas',
793
+ 38 => 'Magdalena',
794
+ ),
795
+ 'CR' =>
796
+ array (
797
+ '01' => 'Alajuela',
798
+ '02' => 'Cartago',
799
+ '03' => 'Guanacaste',
800
+ '04' => 'Heredia',
801
+ '06' => 'Limon',
802
+ '07' => 'Puntarenas',
803
+ '08' => 'San Jose',
804
+ ),
805
+ 'CU' =>
806
+ array (
807
+ '01' => 'Pinar del Rio',
808
+ '02' => 'Ciudad de la Habana',
809
+ '03' => 'Matanzas',
810
+ '04' => 'Isla de la Juventud',
811
+ '05' => 'Camaguey',
812
+ '07' => 'Ciego de Avila',
813
+ '08' => 'Cienfuegos',
814
+ '09' => 'Granma',
815
+ 10 => 'Guantanamo',
816
+ 11 => 'La Habana',
817
+ 12 => 'Holguin',
818
+ 13 => 'Las Tunas',
819
+ 14 => 'Sancti Spiritus',
820
+ 15 => 'Santiago de Cuba',
821
+ 16 => 'Villa Clara',
822
+ ),
823
+ 'CV' =>
824
+ array (
825
+ '01' => 'Boa Vista',
826
+ '02' => 'Brava',
827
+ '04' => 'Maio',
828
+ '05' => 'Paul',
829
+ '07' => 'Ribeira Grande',
830
+ '08' => 'Sal',
831
+ 10 => 'Sao Nicolau',
832
+ 11 => 'Sao Vicente',
833
+ 13 => 'Mosteiros',
834
+ 14 => 'Praia',
835
+ 15 => 'Santa Catarina',
836
+ 16 => 'Santa Cruz',
837
+ 17 => 'Sao Domingos',
838
+ 18 => 'Sao Filipe',
839
+ 19 => 'Sao Miguel',
840
+ 20 => 'Tarrafal',
841
+ ),
842
+ 'CY' =>
843
+ array (
844
+ '01' => 'Famagusta',
845
+ '02' => 'Kyrenia',
846
+ '03' => 'Larnaca',
847
+ '04' => 'Nicosia',
848
+ '05' => 'Limassol',
849
+ '06' => 'Paphos',
850
+ ),
851
+ 'CZ' =>
852
+ array (
853
+ 52 => 'Hlavni mesto Praha',
854
+ 78 => 'Jihomoravsky kraj',
855
+ 79 => 'Jihocesky kraj',
856
+ 80 => 'Vysocina',
857
+ 81 => 'Karlovarsky kraj',
858
+ 82 => 'Kralovehradecky kraj',
859
+ 83 => 'Liberecky kraj',
860
+ 84 => 'Olomoucky kraj',
861
+ 85 => 'Moravskoslezsky kraj',
862
+ 86 => 'Pardubicky kraj',
863
+ 87 => 'Plzensky kraj',
864
+ 88 => 'Stredocesky kraj',
865
+ 89 => 'Ustecky kraj',
866
+ 90 => 'Zlinsky kraj',
867
+ ),
868
+ 'DE' =>
869
+ array (
870
+ '01' => 'Baden-Wurttemberg',
871
+ '02' => 'Bayern',
872
+ '03' => 'Bremen',
873
+ '04' => 'Hamburg',
874
+ '05' => 'Hessen',
875
+ '06' => 'Niedersachsen',
876
+ '07' => 'Nordrhein-Westfalen',
877
+ '08' => 'Rheinland-Pfalz',
878
+ '09' => 'Saarland',
879
+ 10 => 'Schleswig-Holstein',
880
+ 11 => 'Brandenburg',
881
+ 12 => 'Mecklenburg-Vorpommern',
882
+ 13 => 'Sachsen',
883
+ 14 => 'Sachsen-Anhalt',
884
+ 15 => 'Thuringen',
885
+ 16 => 'Berlin',
886
+ ),
887
+ 'DJ' =>
888
+ array (
889
+ '01' => 'Ali Sabieh',
890
+ '04' => 'Obock',
891
+ '05' => 'Tadjoura',
892
+ '06' => 'Dikhil',
893
+ '07' => 'Djibouti',
894
+ '08' => 'Arta',
895
+ ),
896
+ 'DK' =>
897
+ array (
898
+ 17 => 'Hovedstaden',
899
+ 18 => 'Midtjylland',
900
+ 19 => 'Nordjylland',
901
+ 20 => 'Sjelland',
902
+ 21 => 'Syddanmark',
903
+ ),
904
+ 'DM' =>
905
+ array (
906
+ '02' => 'Saint Andrew',
907
+ '03' => 'Saint David',
908
+ '04' => 'Saint George',
909
+ '05' => 'Saint John',
910
+ '06' => 'Saint Joseph',
911
+ '07' => 'Saint Luke',
912
+ '08' => 'Saint Mark',
913
+ '09' => 'Saint Patrick',
914
+ 10 => 'Saint Paul',
915
+ 11 => 'Saint Peter',
916
+ ),
917
+ 'DO' =>
918
+ array (
919
+ '01' => 'Azua',
920
+ '02' => 'Baoruco',
921
+ '03' => 'Barahona',
922
+ '04' => 'Dajabon',
923
+ 34 => 'Distrito Nacional',
924
+ '06' => 'Duarte',
925
+ '08' => 'Espaillat',
926
+ '09' => 'Independencia',
927
+ 10 => 'La Altagracia',
928
+ 11 => 'Elias Pina',
929
+ 12 => 'La Romana',
930
+ 14 => 'Maria Trinidad Sanchez',
931
+ 15 => 'Monte Cristi',
932
+ 16 => 'Pedernales',
933
+ 35 => 'Peravia',
934
+ 18 => 'Puerto Plata',
935
+ 19 => 'Salcedo',
936
+ 20 => 'Samana',
937
+ 21 => 'Sanchez Ramirez',
938
+ 23 => 'San Juan',
939
+ 24 => 'San Pedro De Macoris',
940
+ 25 => 'Santiago',
941
+ 26 => 'Santiago Rodriguez',
942
+ 27 => 'Valverde',
943
+ 28 => 'El Seibo',
944
+ 29 => 'Hato Mayor',
945
+ 30 => 'La Vega',
946
+ 31 => 'Monsenor Nouel',
947
+ 32 => 'Monte Plata',
948
+ 33 => 'San Cristobal',
949
+ 36 => 'San Jose de Ocoa',
950
+ 37 => 'Santo Domingo',
951
+ ),
952
+ 'DZ' =>
953
+ array (
954
+ '01' => 'Alger',
955
+ '03' => 'Batna',
956
+ '04' => 'Constantine',
957
+ '06' => 'Medea',
958
+ '07' => 'Mostaganem',
959
+ '09' => 'Oran',
960
+ 10 => 'Saida',
961
+ 12 => 'Setif',
962
+ 13 => 'Tiaret',
963
+ 14 => 'Tizi Ouzou',
964
+ 15 => 'Tlemcen',
965
+ 18 => 'Bejaia',
966
+ 19 => 'Biskra',
967
+ 20 => 'Blida',
968
+ 21 => 'Bouira',
969
+ 22 => 'Djelfa',
970
+ 23 => 'Guelma',
971
+ 24 => 'Jijel',
972
+ 25 => 'Laghouat',
973
+ 26 => 'Mascara',
974
+ 27 => 'M\'sila',
975
+ 29 => 'Oum el Bouaghi',
976
+ 30 => 'Sidi Bel Abbes',
977
+ 31 => 'Skikda',
978
+ 33 => 'Tebessa',
979
+ 34 => 'Adrar',
980
+ 35 => 'Ain Defla',
981
+ 36 => 'Ain Temouchent',
982
+ 37 => 'Annaba',
983
+ 38 => 'Bechar',
984
+ 39 => 'Bordj Bou Arreridj',
985
+ 40 => 'Boumerdes',
986
+ 41 => 'Chlef',
987
+ 42 => 'El Bayadh',
988
+ 43 => 'El Oued',
989
+ 44 => 'El Tarf',
990
+ 45 => 'Ghardaia',
991
+ 46 => 'Illizi',
992
+ 47 => 'Khenchela',
993
+ 48 => 'Mila',
994
+ 49 => 'Naama',
995
+ 50 => 'Ouargla',
996
+ 51 => 'Relizane',
997
+ 52 => 'Souk Ahras',
998
+ 53 => 'Tamanghasset',
999
+ 54 => 'Tindouf',
1000
+ 55 => 'Tipaza',
1001
+ 56 => 'Tissemsilt',
1002
+ ),
1003
+ 'EC' =>
1004
+ array (
1005
+ '01' => 'Galapagos',
1006
+ '02' => 'Azuay',
1007
+ '03' => 'Bolivar',
1008
+ '04' => 'Canar',
1009
+ '05' => 'Carchi',
1010
+ '06' => 'Chimborazo',
1011
+ '07' => 'Cotopaxi',
1012
+ '08' => 'El Oro',
1013
+ '09' => 'Esmeraldas',
1014
+ 10 => 'Guayas',
1015
+ 11 => 'Imbabura',
1016
+ 12 => 'Loja',
1017
+ 13 => 'Los Rios',
1018
+ 14 => 'Manabi',
1019
+ 15 => 'Morona-Santiago',
1020
+ 17 => 'Pastaza',
1021
+ 18 => 'Pichincha',
1022
+ 19 => 'Tungurahua',
1023
+ 20 => 'Zamora-Chinchipe',
1024
+ 22 => 'Sucumbios',
1025
+ 23 => 'Napo',
1026
+ 24 => 'Orellana',
1027
+ ),
1028
+ 'EE' =>
1029
+ array (
1030
+ '01' => 'Harjumaa',
1031
+ '02' => 'Hiiumaa',
1032
+ '03' => 'Ida-Virumaa',
1033
+ '04' => 'Jarvamaa',
1034
+ '05' => 'Jogevamaa',
1035
+ '06' => 'Kohtla-Jarve',
1036
+ '07' => 'Laanemaa',
1037
+ '08' => 'Laane-Virumaa',
1038
+ '09' => 'Narva',
1039
+ 10 => 'Parnu',
1040
+ 11 => 'Parnumaa',
1041
+ 12 => 'Polvamaa',
1042
+ 13 => 'Raplamaa',
1043
+ 14 => 'Saaremaa',
1044
+ 15 => 'Sillamae',
1045
+ 16 => 'Tallinn',
1046
+ 17 => 'Tartu',
1047
+ 18 => 'Tartumaa',
1048
+ 19 => 'Valgamaa',
1049
+ 20 => 'Viljandimaa',
1050
+ 21 => 'Vorumaa',
1051
+ ),
1052
+ 'EG' =>
1053
+ array (
1054
+ '01' => 'Ad Daqahliyah',
1055
+ '02' => 'Al Bahr al Ahmar',
1056
+ '03' => 'Al Buhayrah',
1057
+ '04' => 'Al Fayyum',
1058
+ '05' => 'Al Gharbiyah',
1059
+ '06' => 'Al Iskandariyah',
1060
+ '07' => 'Al Isma\'iliyah',
1061
+ '08' => 'Al Jizah',
1062
+ '09' => 'Al Minufiyah',
1063
+ 10 => 'Al Minya',
1064
+ 11 => 'Al Qahirah',
1065
+ 12 => 'Al Qalyubiyah',
1066
+ 13 => 'Al Wadi al Jadid',
1067
+ 14 => 'Ash Sharqiyah',
1068
+ 15 => 'As Suways',
1069
+ 16 => 'Aswan',
1070
+ 17 => 'Asyut',
1071
+ 18 => 'Bani Suwayf',
1072
+ 19 => 'Bur Sa\'id',
1073
+ 20 => 'Dumyat',
1074
+ 21 => 'Kafr ash Shaykh',
1075
+ 22 => 'Matruh',
1076
+ 23 => 'Qina',
1077
+ 24 => 'Suhaj',
1078
+ 26 => 'Janub Sina\'',
1079
+ 27 => 'Shamal Sina\'',
1080
+ ),
1081
+ 'ER' =>
1082
+ array (
1083
+ '01' => 'Anseba',
1084
+ '02' => 'Debub',
1085
+ '03' => 'Debubawi K\'eyih Bahri',
1086
+ '04' => 'Gash Barka',
1087
+ '05' => 'Ma\'akel',
1088
+ '06' => 'Semenawi K\'eyih Bahri',
1089
+ ),
1090
+ 'ES' =>
1091
+ array (
1092
+ '07' => 'Islas Baleares',
1093
+ 27 => 'La Rioja',
1094
+ 29 => 'Madrid',
1095
+ 31 => 'Murcia',
1096
+ 32 => 'Navarra',
1097
+ 34 => 'Asturias',
1098
+ 39 => 'Cantabria',
1099
+ 51 => 'Andalucia',
1100
+ 52 => 'Aragon',
1101
+ 53 => 'Canarias',
1102
+ 54 => 'Castilla-La Mancha',
1103
+ 55 => 'Castilla y Leon',
1104
+ 56 => 'Catalonia',
1105
+ 57 => 'Extremadura',
1106
+ 58 => 'Galicia',
1107
+ 59 => 'Pais Vasco',
1108
+ 60 => 'Comunidad Valenciana',
1109
+ ),
1110
+ 'ET' =>
1111
+ array (
1112
+ 44 => 'Adis Abeba',
1113
+ 45 => 'Afar',
1114
+ 46 => 'Amara',
1115
+ 47 => 'Binshangul Gumuz',
1116
+ 48 => 'Dire Dawa',
1117
+ 49 => 'Gambela Hizboch',
1118
+ 50 => 'Hareri Hizb',
1119
+ 51 => 'Oromiya',
1120
+ 52 => 'Sumale',
1121
+ 53 => 'Tigray',
1122
+ 54 => 'YeDebub Biheroch Bihereseboch na Hizboch',
1123
+ ),
1124
+ 'FI' =>
1125
+ array (
1126
+ '01' => 'Aland',
1127
+ '06' => 'Lapland',
1128
+ '08' => 'Oulu',
1129
+ 13 => 'Southern Finland',
1130
+ 14 => 'Eastern Finland',
1131
+ 15 => 'Western Finland',
1132
+ ),
1133
+ 'FJ' =>
1134
+ array (
1135
+ '01' => 'Central',
1136
+ '02' => 'Eastern',
1137
+ '03' => 'Northern',
1138
+ '04' => 'Rotuma',
1139
+ '05' => 'Western',
1140
+ ),
1141
+ 'FM' =>
1142
+ array (
1143
+ '01' => 'Kosrae',
1144
+ '02' => 'Pohnpei',
1145
+ '03' => 'Chuuk',
1146
+ '04' => 'Yap',
1147
+ ),
1148
+ 'FR' =>
1149
+ array (
1150
+ 97 => 'Aquitaine',
1151
+ 98 => 'Auvergne',
1152
+ 99 => 'Basse-Normandie',
1153
+ 'A1' => 'Bourgogne',
1154
+ 'A2' => 'Bretagne',
1155
+ 'A3' => 'Centre',
1156
+ 'A4' => 'Champagne-Ardenne',
1157
+ 'A5' => 'Corse',
1158
+ 'A6' => 'Franche-Comte',
1159
+ 'A7' => 'Haute-Normandie',
1160
+ 'A8' => 'Ile-de-France',
1161
+ 'A9' => 'Languedoc-Roussillon',
1162
+ 'B1' => 'Limousin',
1163
+ 'B2' => 'Lorraine',
1164
+ 'B3' => 'Midi-Pyrenees',
1165
+ 'B4' => 'Nord-Pas-de-Calais',
1166
+ 'B5' => 'Pays de la Loire',
1167
+ 'B6' => 'Picardie',
1168
+ 'B7' => 'Poitou-Charentes',
1169
+ 'B8' => 'Provence-Alpes-Cote d\'Azur',
1170
+ 'B9' => 'Rhone-Alpes',
1171
+ 'C1' => 'Alsace',
1172
+ ),
1173
+ 'GA' =>
1174
+ array (
1175
+ '01' => 'Estuaire',
1176
+ '02' => 'Haut-Ogooue',
1177
+ '03' => 'Moyen-Ogooue',
1178
+ '04' => 'Ngounie',
1179
+ '05' => 'Nyanga',
1180
+ '06' => 'Ogooue-Ivindo',
1181
+ '07' => 'Ogooue-Lolo',
1182
+ '08' => 'Ogooue-Maritime',
1183
+ '09' => 'Woleu-Ntem',
1184
+ ),
1185
+ 'GB' =>
1186
+ array (
1187
+ 'A1' => 'Barking and Dagenham',
1188
+ 'A2' => 'Barnet',
1189
+ 'A3' => 'Barnsley',
1190
+ 'A4' => 'Bath and North East Somerset',
1191
+ 'Z5' => 'Bedfordshire',
1192
+ 'A6' => 'Bexley',
1193
+ 'A7' => 'Birmingham',
1194
+ 'A8' => 'Blackburn with Darwen',
1195
+ 'A9' => 'Blackpool',
1196
+ 'B1' => 'Bolton',
1197
+ 'B2' => 'Bournemouth',
1198
+ 'B3' => 'Bracknell Forest',
1199
+ 'B4' => 'Bradford',
1200
+ 'B5' => 'Brent',
1201
+ 'B6' => 'Brighton and Hove',
1202
+ 'B7' => 'Bristol',
1203
+ 'B8' => 'Bromley',
1204
+ 'B9' => 'Buckinghamshire',
1205
+ 'C1' => 'Bury',
1206
+ 'C2' => 'Calderdale',
1207
+ 'C3' => 'Cambridgeshire',
1208
+ 'C4' => 'Camden',
1209
+ 'C5' => 'Cheshire',
1210
+ 'C6' => 'Cornwall',
1211
+ 'C7' => 'Coventry',
1212
+ 'C8' => 'Croydon',
1213
+ 'C9' => 'Cumbria',
1214
+ 'D1' => 'Darlington',
1215
+ 'D2' => 'Derby',
1216
+ 'D3' => 'Derbyshire',
1217
+ 'D4' => 'Devon',
1218
+ 'D5' => 'Doncaster',
1219
+ 'D6' => 'Dorset',
1220
+ 'D7' => 'Dudley',
1221
+ 'D8' => 'Durham',
1222
+ 'D9' => 'Ealing',
1223
+ 'E1' => 'East Riding of Yorkshire',
1224
+ 'E2' => 'East Sussex',
1225
+ 'E3' => 'Enfield',
1226
+ 'E4' => 'Essex',
1227
+ 'E5' => 'Gateshead',
1228
+ 'E6' => 'Gloucestershire',
1229
+ 'E7' => 'Greenwich',
1230
+ 'E8' => 'Hackney',
1231
+ 'E9' => 'Halton',
1232
+ 'F1' => 'Hammersmith and Fulham',
1233
+ 'F2' => 'Hampshire',
1234
+ 'F3' => 'Haringey',
1235
+ 'F4' => 'Harrow',
1236
+ 'F5' => 'Hartlepool',
1237
+ 'F6' => 'Havering',
1238
+ 'F7' => 'Herefordshire',
1239
+ 'F8' => 'Hertford',
1240
+ 'F9' => 'Hillingdon',
1241
+ 'G1' => 'Hounslow',
1242
+ 'G2' => 'Isle of Wight',
1243
+ 'G3' => 'Islington',
1244
+ 'G4' => 'Kensington and Chelsea',
1245
+ 'G5' => 'Kent',
1246
+ 'G6' => 'Kingston upon Hull',
1247
+ 'G7' => 'Kingston upon Thames',
1248
+ 'G8' => 'Kirklees',
1249
+ 'G9' => 'Knowsley',
1250
+ 'H1' => 'Lambeth',
1251
+ 'H2' => 'Lancashire',
1252
+ 'H3' => 'Leeds',
1253
+ 'H4' => 'Leicester',
1254
+ 'H5' => 'Leicestershire',
1255
+ 'H6' => 'Lewisham',
1256
+ 'H7' => 'Lincolnshire',
1257
+ 'H8' => 'Liverpool',
1258
+ 'H9' => 'London',
1259
+ 'I1' => 'Luton',
1260
+ 'I2' => 'Manchester',
1261
+ 'I3' => 'Medway',
1262
+ 'I4' => 'Merton',
1263
+ 'I5' => 'Middlesbrough',
1264
+ 'I6' => 'Milton Keynes',
1265
+ 'I7' => 'Newcastle upon Tyne',
1266
+ 'I8' => 'Newham',
1267
+ 'I9' => 'Norfolk',
1268
+ 'J1' => 'Northamptonshire',
1269
+ 'J2' => 'North East Lincolnshire',
1270
+ 'J3' => 'North Lincolnshire',
1271
+ 'J4' => 'North Somerset',
1272
+ 'J5' => 'North Tyneside',
1273
+ 'J6' => 'Northumberland',
1274
+ 'J7' => 'North Yorkshire',
1275
+ 'J8' => 'Nottingham',
1276
+ 'J9' => 'Nottinghamshire',
1277
+ 'K1' => 'Oldham',
1278
+ 'K2' => 'Oxfordshire',
1279
+ 'K3' => 'Peterborough',
1280
+ 'K4' => 'Plymouth',
1281
+ 'K5' => 'Poole',
1282
+ 'K6' => 'Portsmouth',
1283
+ 'K7' => 'Reading',
1284
+ 'K8' => 'Redbridge',
1285
+ 'K9' => 'Redcar and Cleveland',
1286
+ 'L1' => 'Richmond upon Thames',
1287
+ 'L2' => 'Rochdale',
1288
+ 'L3' => 'Rotherham',
1289
+ 'L4' => 'Rutland',
1290
+ 'L5' => 'Salford',
1291
+ 'L6' => 'Shropshire',
1292
+ 'L7' => 'Sandwell',
1293
+ 'L8' => 'Sefton',
1294
+ 'L9' => 'Sheffield',
1295
+ 'M1' => 'Slough',
1296
+ 'M2' => 'Solihull',
1297
+ 'M3' => 'Somerset',
1298
+ 'M4' => 'Southampton',
1299
+ 'M5' => 'Southend-on-Sea',
1300
+ 'M6' => 'South Gloucestershire',
1301
+ 'M7' => 'South Tyneside',
1302
+ 'M8' => 'Southwark',
1303
+ 'M9' => 'Staffordshire',
1304
+ 'N1' => 'St. Helens',
1305
+ 'N2' => 'Stockport',
1306
+ 'N3' => 'Stockton-on-Tees',
1307
+ 'N4' => 'Stoke-on-Trent',
1308
+ 'N5' => 'Suffolk',
1309
+ 'N6' => 'Sunderland',
1310
+ 'N7' => 'Surrey',
1311
+ 'N8' => 'Sutton',
1312
+ 'N9' => 'Swindon',
1313
+ 'O1' => 'Tameside',
1314
+ 'O2' => 'Telford and Wrekin',
1315
+ 'O3' => 'Thurrock',
1316
+ 'O4' => 'Torbay',
1317
+ 'O5' => 'Tower Hamlets',
1318
+ 'O6' => 'Trafford',
1319
+ 'O7' => 'Wakefield',
1320
+ 'O8' => 'Walsall',
1321
+ 'O9' => 'Waltham Forest',
1322
+ 'P1' => 'Wandsworth',
1323
+ 'P2' => 'Warrington',
1324
+ 'P3' => 'Warwickshire',
1325
+ 'P4' => 'West Berkshire',
1326
+ 'P5' => 'Westminster',
1327
+ 'P6' => 'West Sussex',
1328
+ 'P7' => 'Wigan',
1329
+ 'P8' => 'Wiltshire',
1330
+ 'P9' => 'Windsor and Maidenhead',
1331
+ 'Q1' => 'Wirral',
1332
+ 'Q2' => 'Wokingham',
1333
+ 'Q3' => 'Wolverhampton',
1334
+ 'Q4' => 'Worcestershire',
1335
+ 'Q5' => 'York',
1336
+ 'Q6' => 'Antrim',
1337
+ 'Q7' => 'Ards',
1338
+ 'Q8' => 'Armagh',
1339
+ 'Q9' => 'Ballymena',
1340
+ 'R1' => 'Ballymoney',
1341
+ 'R2' => 'Banbridge',
1342
+ 'R3' => 'Belfast',
1343
+ 'R4' => 'Carrickfergus',
1344
+ 'R5' => 'Castlereagh',
1345
+ 'R6' => 'Coleraine',
1346
+ 'R7' => 'Cookstown',
1347
+ 'R8' => 'Craigavon',
1348
+ 'R9' => 'Down',
1349
+ 'S1' => 'Dungannon',
1350
+ 'S2' => 'Fermanagh',
1351
+ 'S3' => 'Larne',
1352
+ 'S4' => 'Limavady',
1353
+ 'S5' => 'Lisburn',
1354
+ 'S6' => 'Derry',
1355
+ 'S7' => 'Magherafelt',
1356
+ 'S8' => 'Moyle',
1357
+ 'S9' => 'Newry and Mourne',
1358
+ 'T1' => 'Newtownabbey',
1359
+ 'T2' => 'North Down',
1360
+ 'T3' => 'Omagh',
1361
+ 'T4' => 'Strabane',
1362
+ 'T5' => 'Aberdeen City',
1363
+ 'T6' => 'Aberdeenshire',
1364
+ 'T7' => 'Angus',
1365
+ 'T8' => 'Argyll and Bute',
1366
+ 'T9' => 'Scottish Borders',
1367
+ 'U1' => 'Clackmannanshire',
1368
+ 'U2' => 'Dumfries and Galloway',
1369
+ 'U3' => 'Dundee City',
1370
+ 'U4' => 'East Ayrshire',
1371
+ 'U5' => 'East Dunbartonshire',
1372
+ 'U6' => 'East Lothian',
1373
+ 'U7' => 'East Renfrewshire',
1374
+ 'U8' => 'Edinburgh',
1375
+ 'U9' => 'Falkirk',
1376
+ 'V1' => 'Fife',
1377
+ 'V2' => 'Glasgow City',
1378
+ 'V3' => 'Highland',
1379
+ 'V4' => 'Inverclyde',
1380
+ 'V5' => 'Midlothian',
1381
+ 'V6' => 'Moray',
1382
+ 'V7' => 'North Ayrshire',
1383
+ 'V8' => 'North Lanarkshire',
1384
+ 'V9' => 'Orkney',
1385
+ 'W1' => 'Perth and Kinross',
1386
+ 'W2' => 'Renfrewshire',
1387
+ 'W3' => 'Shetland Islands',
1388
+ 'W4' => 'South Ayrshire',
1389
+ 'W5' => 'South Lanarkshire',
1390
+ 'W6' => 'Stirling',
1391
+ 'W7' => 'West Dunbartonshire',
1392
+ 'W8' => 'Eilean Siar',
1393
+ 'W9' => 'West Lothian',
1394
+ 'X1' => 'Isle of Anglesey',
1395
+ 'X2' => 'Blaenau Gwent',
1396
+ 'X3' => 'Bridgend',
1397
+ 'X4' => 'Caerphilly',
1398
+ 'X5' => 'Cardiff',
1399
+ 'X6' => 'Ceredigion',
1400
+ 'X7' => 'Carmarthenshire',
1401
+ 'X8' => 'Conwy',
1402
+ 'X9' => 'Denbighshire',
1403
+ 'Y1' => 'Flintshire',
1404
+ 'Y2' => 'Gwynedd',
1405
+ 'Y3' => 'Merthyr Tydfil',
1406
+ 'Y4' => 'Monmouthshire',
1407
+ 'Y5' => 'Neath Port Talbot',
1408
+ 'Y6' => 'Newport',
1409
+ 'Y7' => 'Pembrokeshire',
1410
+ 'Y8' => 'Powys',
1411
+ 'Y9' => 'Rhondda Cynon Taff',
1412
+ 'Z1' => 'Swansea',
1413
+ 'Z2' => 'Torfaen',
1414
+ 'Z3' => 'Vale of Glamorgan',
1415
+ 'Z4' => 'Wrexham',
1416
+ 'Z6' => 'Central Bedfordshire',
1417
+ 'Z7' => 'Cheshire East',
1418
+ 'Z8' => 'Cheshire West and Chester',
1419
+ 'Z9' => 'Isles of Scilly',
1420
+ ),
1421
+ 'GD' =>
1422
+ array (
1423
+ '01' => 'Saint Andrew',
1424
+ '02' => 'Saint David',
1425
+ '03' => 'Saint George',
1426
+ '04' => 'Saint John',
1427
+ '05' => 'Saint Mark',
1428
+ '06' => 'Saint Patrick',
1429
+ ),
1430
+ 'GE' =>
1431
+ array (
1432
+ '01' => 'Abashis Raioni',
1433
+ '02' => 'Abkhazia',
1434
+ '03' => 'Adigenis Raioni',
1435
+ '04' => 'Ajaria',
1436
+ '05' => 'Akhalgoris Raioni',
1437
+ '06' => 'Akhalk\'alak\'is Raioni',
1438
+ '07' => 'Akhalts\'ikhis Raioni',
1439
+ '08' => 'Akhmetis Raioni',
1440
+ '09' => 'Ambrolauris Raioni',
1441
+ 10 => 'Aspindzis Raioni',
1442
+ 11 => 'Baghdat\'is Raioni',
1443
+ 12 => 'Bolnisis Raioni',
1444
+ 13 => 'Borjomis Raioni',
1445
+ 14 => 'Chiat\'ura',
1446
+ 15 => 'Ch\'khorotsqus Raioni',
1447
+ 16 => 'Ch\'okhatauris Raioni',
1448
+ 17 => 'Dedop\'listsqaros Raioni',
1449
+ 18 => 'Dmanisis Raioni',
1450
+ 19 => 'Dushet\'is Raioni',
1451
+ 20 => 'Gardabanis Raioni',
1452
+ 21 => 'Gori',
1453
+ 22 => 'Goris Raioni',
1454
+ 23 => 'Gurjaanis Raioni',
1455
+ 24 => 'Javis Raioni',
1456
+ 25 => 'K\'arelis Raioni',
1457
+ 26 => 'Kaspis Raioni',
1458
+ 27 => 'Kharagaulis Raioni',
1459
+ 28 => 'Khashuris Raioni',
1460
+ 29 => 'Khobis Raioni',
1461
+ 30 => 'Khonis Raioni',
1462
+ 31 => 'K\'ut\'aisi',
1463
+ 32 => 'Lagodekhis Raioni',
1464
+ 33 => 'Lanch\'khut\'is Raioni',
1465
+ 34 => 'Lentekhis Raioni',
1466
+ 35 => 'Marneulis Raioni',
1467
+ 36 => 'Martvilis Raioni',
1468
+ 37 => 'Mestiis Raioni',
1469
+ 38 => 'Mts\'khet\'is Raioni',
1470
+ 39 => 'Ninotsmindis Raioni',
1471
+ 40 => 'Onis Raioni',
1472
+ 41 => 'Ozurget\'is Raioni',
1473
+ 42 => 'P\'ot\'i',
1474
+ 43 => 'Qazbegis Raioni',
1475
+ 44 => 'Qvarlis Raioni',
1476
+ 45 => 'Rust\'avi',
1477
+ 46 => 'Sach\'kheris Raioni',
1478
+ 47 => 'Sagarejos Raioni',
1479
+ 48 => 'Samtrediis Raioni',
1480
+ 49 => 'Senakis Raioni',
1481
+ 50 => 'Sighnaghis Raioni',
1482
+ 51 => 'T\'bilisi',
1483
+ 52 => 'T\'elavis Raioni',
1484
+ 53 => 'T\'erjolis Raioni',
1485
+ 54 => 'T\'et\'ritsqaros Raioni',
1486
+ 55 => 'T\'ianet\'is Raioni',
1487
+ 56 => 'Tqibuli',
1488
+ 57 => 'Ts\'ageris Raioni',
1489
+ 58 => 'Tsalenjikhis Raioni',
1490
+ 59 => 'Tsalkis Raioni',
1491
+ 60 => 'Tsqaltubo',
1492
+ 61 => 'Vanis Raioni',
1493
+ 62 => 'Zestap\'onis Raioni',
1494
+ 63 => 'Zugdidi',
1495
+ 64 => 'Zugdidis Raioni',
1496
+ ),
1497
+ 'GH' =>
1498
+ array (
1499
+ '01' => 'Greater Accra',
1500
+ '02' => 'Ashanti',
1501
+ '03' => 'Brong-Ahafo',
1502
+ '04' => 'Central',
1503
+ '05' => 'Eastern',
1504
+ '06' => 'Northern',
1505
+ '08' => 'Volta',
1506
+ '09' => 'Western',
1507
+ 10 => 'Upper East',
1508
+ 11 => 'Upper West',
1509
+ ),
1510
+ 'GL' =>
1511
+ array (
1512
+ '01' => 'Nordgronland',
1513
+ '02' => 'Ostgronland',
1514
+ '03' => 'Vestgronland',
1515
+ ),
1516
+ 'GM' =>
1517
+ array (
1518
+ '01' => 'Banjul',
1519
+ '02' => 'Lower River',
1520
+ '03' => 'Central River',
1521
+ '04' => 'Upper River',
1522
+ '05' => 'Western',
1523
+ '07' => 'North Bank',
1524
+ ),
1525
+ 'GN' =>
1526
+ array (
1527
+ '01' => 'Beyla',
1528
+ '02' => 'Boffa',
1529
+ '03' => 'Boke',
1530
+ '04' => 'Conakry',
1531
+ '05' => 'Dabola',
1532
+ '06' => 'Dalaba',
1533
+ '07' => 'Dinguiraye',
1534
+ '09' => 'Faranah',
1535
+ 10 => 'Forecariah',
1536
+ 11 => 'Fria',
1537
+ 12 => 'Gaoual',
1538
+ 13 => 'Gueckedou',
1539
+ 15 => 'Kerouane',
1540
+ 16 => 'Kindia',
1541
+ 17 => 'Kissidougou',
1542
+ 18 => 'Koundara',
1543
+ 19 => 'Kouroussa',
1544
+ 21 => 'Macenta',
1545
+ 22 => 'Mali',
1546
+ 23 => 'Mamou',
1547
+ 25 => 'Pita',
1548
+ 27 => 'Telimele',
1549
+ 28 => 'Tougue',
1550
+ 29 => 'Yomou',
1551
+ 30 => 'Coyah',
1552
+ 31 => 'Dubreka',
1553
+ 32 => 'Kankan',
1554
+ 33 => 'Koubia',
1555
+ 34 => 'Labe',
1556
+ 35 => 'Lelouma',
1557
+ 36 => 'Lola',
1558
+ 37 => 'Mandiana',
1559
+ 38 => 'Nzerekore',
1560
+ 39 => 'Siguiri',
1561
+ ),
1562
+ 'GQ' =>
1563
+ array (
1564
+ '03' => 'Annobon',
1565
+ '04' => 'Bioko Norte',
1566
+ '05' => 'Bioko Sur',
1567
+ '06' => 'Centro Sur',
1568
+ '07' => 'Kie-Ntem',
1569
+ '08' => 'Litoral',
1570
+ '09' => 'Wele-Nzas',
1571
+ ),
1572
+ 'GR' =>
1573
+ array (
1574
+ '01' => 'Evros',
1575
+ '02' => 'Rodhopi',
1576
+ '03' => 'Xanthi',
1577
+ '04' => 'Drama',
1578
+ '05' => 'Serrai',
1579
+ '06' => 'Kilkis',
1580
+ '07' => 'Pella',
1581
+ '08' => 'Florina',
1582
+ '09' => 'Kastoria',
1583
+ 10 => 'Grevena',
1584
+ 11 => 'Kozani',
1585
+ 12 => 'Imathia',
1586
+ 13 => 'Thessaloniki',
1587
+ 14 => 'Kavala',
1588
+ 15 => 'Khalkidhiki',
1589
+ 16 => 'Pieria',
1590
+ 17 => 'Ioannina',
1591
+ 18 => 'Thesprotia',
1592
+ 19 => 'Preveza',
1593
+ 20 => 'Arta',
1594
+ 21 => 'Larisa',
1595
+ 22 => 'Trikala',
1596
+ 23 => 'Kardhitsa',
1597
+ 24 => 'Magnisia',
1598
+ 25 => 'Kerkira',
1599
+ 26 => 'Levkas',
1600
+ 27 => 'Kefallinia',
1601
+ 28 => 'Zakinthos',
1602
+ 29 => 'Fthiotis',
1603
+ 30 => 'Evritania',
1604
+ 31 => 'Aitolia kai Akarnania',
1605
+ 32 => 'Fokis',
1606
+ 33 => 'Voiotia',
1607
+ 34 => 'Evvoia',
1608
+ 35 => 'Attiki',
1609
+ 36 => 'Argolis',
1610
+ 37 => 'Korinthia',
1611
+ 38 => 'Akhaia',
1612
+ 39 => 'Ilia',
1613
+ 40 => 'Messinia',
1614
+ 41 => 'Arkadhia',
1615
+ 42 => 'Lakonia',
1616
+ 43 => 'Khania',
1617
+ 44 => 'Rethimni',
1618
+ 45 => 'Iraklion',
1619
+ 46 => 'Lasithi',
1620
+ 47 => 'Dhodhekanisos',
1621
+ 48 => 'Samos',
1622
+ 49 => 'Kikladhes',
1623
+ 50 => 'Khios',
1624
+ 51 => 'Lesvos',
1625
+ ),
1626
+ 'GT' =>
1627
+ array (
1628
+ '01' => 'Alta Verapaz',
1629
+ '02' => 'Baja Verapaz',
1630
+ '03' => 'Chimaltenango',
1631
+ '04' => 'Chiquimula',
1632
+ '05' => 'El Progreso',
1633
+ '06' => 'Escuintla',
1634
+ '07' => 'Guatemala',
1635
+ '08' => 'Huehuetenango',
1636
+ '09' => 'Izabal',
1637
+ 10 => 'Jalapa',
1638
+ 11 => 'Jutiapa',
1639
+ 12 => 'Peten',
1640
+ 13 => 'Quetzaltenango',
1641
+ 14 => 'Quiche',
1642
+ 15 => 'Retalhuleu',
1643
+ 16 => 'Sacatepequez',
1644
+ 17 => 'San Marcos',
1645
+ 18 => 'Santa Rosa',
1646
+ 19 => 'Solola',
1647
+ 20 => 'Suchitepequez',
1648
+ 21 => 'Totonicapan',
1649
+ 22 => 'Zacapa',
1650
+ ),
1651
+ 'GW' =>
1652
+ array (
1653
+ '01' => 'Bafata',
1654
+ '02' => 'Quinara',
1655
+ '04' => 'Oio',
1656
+ '05' => 'Bolama',
1657
+ '06' => 'Cacheu',
1658
+ '07' => 'Tombali',
1659
+ 10 => 'Gabu',
1660
+ 11 => 'Bissau',
1661
+ 12 => 'Biombo',
1662
+ ),
1663
+ 'GY' =>
1664
+ array (
1665
+ 10 => 'Barima-Waini',
1666
+ 11 => 'Cuyuni-Mazaruni',
1667
+ 12 => 'Demerara-Mahaica',
1668
+ 13 => 'East Berbice-Corentyne',
1669
+ 14 => 'Essequibo Islands-West Demerara',
1670
+ 15 => 'Mahaica-Berbice',
1671
+ 16 => 'Pomeroon-Supenaam',
1672
+ 17 => 'Potaro-Siparuni',
1673
+ 18 => 'Upper Demerara-Berbice',
1674
+ 19 => 'Upper Takutu-Upper Essequibo',
1675
+ ),
1676
+ 'HN' =>
1677
+ array (
1678
+ '01' => 'Atlantida',
1679
+ '02' => 'Choluteca',
1680
+ '03' => 'Colon',
1681
+ '04' => 'Comayagua',
1682
+ '05' => 'Copan',
1683
+ '06' => 'Cortes',
1684
+ '07' => 'El Paraiso',
1685
+ '08' => 'Francisco Morazan',
1686
+ '09' => 'Gracias a Dios',
1687
+ 10 => 'Intibuca',
1688
+ 11 => 'Islas de la Bahia',
1689
+ 12 => 'La Paz',
1690
+ 13 => 'Lempira',
1691
+ 14 => 'Ocotepeque',
1692
+ 15 => 'Olancho',
1693
+ 16 => 'Santa Barbara',
1694
+ 17 => 'Valle',
1695
+ 18 => 'Yoro',
1696
+ ),
1697
+ 'HR' =>
1698
+ array (
1699
+ '01' => 'Bjelovarsko-Bilogorska',
1700
+ '02' => 'Brodsko-Posavska',
1701
+ '03' => 'Dubrovacko-Neretvanska',
1702
+ '04' => 'Istarska',
1703
+ '05' => 'Karlovacka',
1704
+ '06' => 'Koprivnicko-Krizevacka',
1705
+ '07' => 'Krapinsko-Zagorska',
1706
+ '08' => 'Licko-Senjska',
1707
+ '09' => 'Medimurska',
1708
+ 10 => 'Osjecko-Baranjska',
1709
+ 11 => 'Pozesko-Slavonska',
1710
+ 12 => 'Primorsko-Goranska',
1711
+ 13 => 'Sibensko-Kninska',
1712
+ 14 => 'Sisacko-Moslavacka',
1713
+ 15 => 'Splitsko-Dalmatinska',
1714
+ 16 => 'Varazdinska',
1715
+ 17 => 'Viroviticko-Podravska',
1716
+ 18 => 'Vukovarsko-Srijemska',
1717
+ 19 => 'Zadarska',
1718
+ 20 => 'Zagrebacka',
1719
+ 21 => 'Grad Zagreb',
1720
+ ),
1721
+ 'HT' =>
1722
+ array (
1723
+ '03' => 'Nord-Ouest',
1724
+ '06' => 'Artibonite',
1725
+ '07' => 'Centre',
1726
+ '09' => 'Nord',
1727
+ 10 => 'Nord-Est',
1728
+ 11 => 'Ouest',
1729
+ 12 => 'Sud',
1730
+ 13 => 'Sud-Est',
1731
+ 14 => 'Grand\' Anse',
1732
+ 15 => 'Nippes',
1733
+ ),
1734
+ 'HU' =>
1735
+ array (
1736
+ '01' => 'Bacs-Kiskun',
1737
+ '02' => 'Baranya',
1738
+ '03' => 'Bekes',
1739
+ '04' => 'Borsod-Abauj-Zemplen',
1740
+ '05' => 'Budapest',
1741
+ '06' => 'Csongrad',
1742
+ '07' => 'Debrecen',
1743
+ '08' => 'Fejer',
1744
+ '09' => 'Gyor-Moson-Sopron',
1745
+ 10 => 'Hajdu-Bihar',
1746
+ 11 => 'Heves',
1747
+ 12 => 'Komarom-Esztergom',
1748
+ 13 => 'Miskolc',
1749
+ 14 => 'Nograd',
1750
+ 15 => 'Pecs',
1751
+ 16 => 'Pest',
1752
+ 17 => 'Somogy',
1753
+ 18 => 'Szabolcs-Szatmar-Bereg',
1754
+ 19 => 'Szeged',
1755
+ 20 => 'Jasz-Nagykun-Szolnok',
1756
+ 21 => 'Tolna',
1757
+ 22 => 'Vas',
1758
+ 39 => 'Veszprem',
1759
+ 24 => 'Zala',
1760
+ 25 => 'Gyor',
1761
+ 26 => 'Bekescsaba',
1762
+ 27 => 'Dunaujvaros',
1763
+ 28 => 'Eger',
1764
+ 29 => 'Hodmezovasarhely',
1765
+ 30 => 'Kaposvar',
1766
+ 31 => 'Kecskemet',
1767
+ 32 => 'Nagykanizsa',
1768
+ 33 => 'Nyiregyhaza',
1769
+ 34 => 'Sopron',
1770
+ 35 => 'Szekesfehervar',
1771
+ 36 => 'Szolnok',
1772
+ 37 => 'Szombathely',
1773
+ 38 => 'Tatabanya',
1774
+ 40 => 'Zalaegerszeg',
1775
+ 41 => 'Salgotarjan',
1776
+ 42 => 'Szekszard',
1777
+ 43 => 'Erd',
1778
+ ),
1779
+ 'ID' =>
1780
+ array (
1781
+ '01' => 'Aceh',
1782
+ '02' => 'Bali',
1783
+ '03' => 'Bengkulu',
1784
+ '04' => 'Jakarta Raya',
1785
+ '05' => 'Jambi',
1786
+ '07' => 'Jawa Tengah',
1787
+ '08' => 'Jawa Timur',
1788
+ 10 => 'Yogyakarta',
1789
+ 11 => 'Kalimantan Barat',
1790
+ 12 => 'Kalimantan Selatan',
1791
+ 13 => 'Kalimantan Tengah',
1792
+ 14 => 'Kalimantan Timur',
1793
+ 15 => 'Lampung',
1794
+ 17 => 'Nusa Tenggara Barat',
1795
+ 18 => 'Nusa Tenggara Timur',
1796
+ 21 => 'Sulawesi Tengah',
1797
+ 22 => 'Sulawesi Tenggara',
1798
+ 24 => 'Sumatera Barat',
1799
+ 26 => 'Sumatera Utara',
1800
+ 28 => 'Maluku',
1801
+ 29 => 'Maluku Utara',
1802
+ 30 => 'Jawa Barat',
1803
+ 31 => 'Sulawesi Utara',
1804
+ 32 => 'Sumatera Selatan',
1805
+ 33 => 'Banten',
1806
+ 34 => 'Gorontalo',
1807
+ 35 => 'Kepulauan Bangka Belitung',
1808
+ 36 => 'Papua',
1809
+ 37 => 'Riau',
1810
+ 38 => 'Sulawesi Selatan',
1811
+ 39 => 'Irian Jaya Barat',
1812
+ 40 => 'Kepulauan Riau',
1813
+ 41 => 'Sulawesi Barat',
1814
+ ),
1815
+ 'IE' =>
1816
+ array (
1817
+ '01' => 'Carlow',
1818
+ '02' => 'Cavan',
1819
+ '03' => 'Clare',
1820
+ '04' => 'Cork',
1821
+ '06' => 'Donegal',
1822
+ '07' => 'Dublin',
1823
+ 10 => 'Galway',
1824
+ 11 => 'Kerry',
1825
+ 12 => 'Kildare',
1826
+ 13 => 'Kilkenny',
1827
+ 14 => 'Leitrim',
1828
+ 15 => 'Laois',
1829
+ 16 => 'Limerick',
1830
+ 18 => 'Longford',
1831
+ 19 => 'Louth',
1832
+ 20 => 'Mayo',
1833
+ 21 => 'Meath',
1834
+ 22 => 'Monaghan',
1835
+ 23 => 'Offaly',
1836
+ 24 => 'Roscommon',
1837
+ 25 => 'Sligo',
1838
+ 26 => 'Tipperary',
1839
+ 27 => 'Waterford',
1840
+ 29 => 'Westmeath',
1841
+ 30 => 'Wexford',
1842
+ 31 => 'Wicklow',
1843
+ ),
1844
+ 'IL' =>
1845
+ array (
1846
+ '01' => 'HaDarom',
1847
+ '02' => 'HaMerkaz',
1848
+ '03' => 'HaZafon',
1849
+ '04' => 'Hefa',
1850
+ '05' => 'Tel Aviv',
1851
+ '06' => 'Yerushalayim',
1852
+ ),
1853
+ 'IN' =>
1854
+ array (
1855
+ '01' => 'Andaman and Nicobar Islands',
1856
+ '02' => 'Andhra Pradesh',
1857
+ '03' => 'Assam',
1858
+ '05' => 'Chandigarh',
1859
+ '06' => 'Dadra and Nagar Haveli',
1860
+ '07' => 'Delhi',
1861
+ '09' => 'Gujarat',
1862
+ 10 => 'Haryana',
1863
+ 11 => 'Himachal Pradesh',
1864
+ 12 => 'Jammu and Kashmir',
1865
+ 13 => 'Kerala',
1866
+ 14 => 'Lakshadweep',
1867
+ 16 => 'Maharashtra',
1868
+ 17 => 'Manipur',
1869
+ 18 => 'Meghalaya',
1870
+ 19 => 'Karnataka',
1871
+ 20 => 'Nagaland',
1872
+ 21 => 'Orissa',
1873
+ 22 => 'Puducherry',
1874
+ 23 => 'Punjab',
1875
+ 24 => 'Rajasthan',
1876
+ 25 => 'Tamil Nadu',
1877
+ 26 => 'Tripura',
1878
+ 28 => 'West Bengal',
1879
+ 29 => 'Sikkim',
1880
+ 30 => 'Arunachal Pradesh',
1881
+ 31 => 'Mizoram',
1882
+ 32 => 'Daman and Diu',
1883
+ 33 => 'Goa',
1884
+ 34 => 'Bihar',
1885
+ 35 => 'Madhya Pradesh',
1886
+ 36 => 'Uttar Pradesh',
1887
+ 37 => 'Chhattisgarh',
1888
+ 38 => 'Jharkhand',
1889
+ 39 => 'Uttarakhand',
1890
+ ),
1891
+ 'IQ' =>
1892
+ array (
1893
+ '01' => 'Al Anbar',
1894
+ '02' => 'Al Basrah',
1895
+ '03' => 'Al Muthanna',
1896
+ '04' => 'Al Qadisiyah',
1897
+ '05' => 'As Sulaymaniyah',
1898
+ '06' => 'Babil',
1899
+ '07' => 'Baghdad',
1900
+ '08' => 'Dahuk',
1901
+ '09' => 'Dhi Qar',
1902
+ 10 => 'Diyala',
1903
+ 11 => 'Arbil',
1904
+ 12 => 'Karbala\'',
1905
+ 13 => 'At Ta\'mim',
1906
+ 14 => 'Maysan',
1907
+ 15 => 'Ninawa',
1908
+ 16 => 'Wasit',
1909
+ 17 => 'An Najaf',
1910
+ 18 => 'Salah ad Din',
1911
+ ),
1912
+ 'IR' =>
1913
+ array (
1914
+ '01' => 'Azarbayjan-e Bakhtari',
1915
+ '03' => 'Chahar Mahall va Bakhtiari',
1916
+ '04' => 'Sistan va Baluchestan',
1917
+ '05' => 'Kohkiluyeh va Buyer Ahmadi',
1918
+ '07' => 'Fars',
1919
+ '08' => 'Gilan',
1920
+ '09' => 'Hamadan',
1921
+ 10 => 'Ilam',
1922
+ 11 => 'Hormozgan',
1923
+ 29 => 'Kerman',
1924
+ 13 => 'Bakhtaran',
1925
+ 15 => 'Khuzestan',
1926
+ 16 => 'Kordestan',
1927
+ 35 => 'Mazandaran',
1928
+ 18 => 'Semnan Province',
1929
+ 34 => 'Markazi',
1930
+ 36 => 'Zanjan',
1931
+ 22 => 'Bushehr',
1932
+ 23 => 'Lorestan',
1933
+ 25 => 'Semnan',
1934
+ 26 => 'Tehran',
1935
+ 28 => 'Esfahan',
1936
+ 30 => 'Khorasan',
1937
+ 40 => 'Yazd',
1938
+ 32 => 'Ardabil',
1939
+ 33 => 'East Azarbaijan',
1940
+ 37 => 'Golestan',
1941
+ 38 => 'Qazvin',
1942
+ 39 => 'Qom',
1943
+ 41 => 'Khorasan-e Janubi',
1944
+ 42 => 'Khorasan-e Razavi',
1945
+ 43 => 'Khorasan-e Shemali',
1946
+ 44 => 'Alborz',
1947
+ ),
1948
+ 'IS' =>
1949
+ array (
1950
+ '03' => 'Arnessysla',
1951
+ '05' => 'Austur-Hunavatnssysla',
1952
+ '06' => 'Austur-Skaftafellssysla',
1953
+ '07' => 'Borgarfjardarsysla',
1954
+ '09' => 'Eyjafjardarsysla',
1955
+ 10 => 'Gullbringusysla',
1956
+ 15 => 'Kjosarsysla',
1957
+ 17 => 'Myrasysla',
1958
+ 20 => 'Nordur-Mulasysla',
1959
+ 21 => 'Nordur-Tingeyjarsysla',
1960
+ 23 => 'Rangarvallasysla',
1961
+ 28 => 'Skagafjardarsysla',
1962
+ 29 => 'Snafellsnes- og Hnappadalssysla',
1963
+ 30 => 'Strandasysla',
1964
+ 31 => 'Sudur-Mulasysla',
1965
+ 32 => 'Sudur-Tingeyjarsysla',
1966
+ 34 => 'Vestur-Bardastrandarsysla',
1967
+ 35 => 'Vestur-Hunavatnssysla',
1968
+ 36 => 'Vestur-Isafjardarsysla',
1969
+ 37 => 'Vestur-Skaftafellssysla',
1970
+ 38 => 'Austurland',
1971
+ 39 => 'Hofuoborgarsvaoio',
1972
+ 40 => 'Norourland Eystra',
1973
+ 41 => 'Norourland Vestra',
1974
+ 42 => 'Suourland',
1975
+ 43 => 'Suournes',
1976
+ 44 => 'Vestfiroir',
1977
+ 45 => 'Vesturland',
1978
+ ),
1979
+ 'IT' =>
1980
+ array (
1981
+ '01' => 'Abruzzi',
1982
+ '02' => 'Basilicata',
1983
+ '03' => 'Calabria',
1984
+ '04' => 'Campania',
1985
+ '05' => 'Emilia-Romagna',
1986
+ '06' => 'Friuli-Venezia Giulia',
1987
+ '07' => 'Lazio',
1988
+ '08' => 'Liguria',
1989
+ '09' => 'Lombardia',
1990
+ 10 => 'Marche',
1991
+ 11 => 'Molise',
1992
+ 12 => 'Piemonte',
1993
+ 13 => 'Puglia',
1994
+ 14 => 'Sardegna',
1995
+ 15 => 'Sicilia',
1996
+ 16 => 'Toscana',
1997
+ 17 => 'Trentino-Alto Adige',
1998
+ 18 => 'Umbria',
1999
+ 19 => 'Valle d\'Aosta',
2000
+ 20 => 'Veneto',
2001
+ ),
2002
+ 'JM' =>
2003
+ array (
2004
+ '01' => 'Clarendon',
2005
+ '02' => 'Hanover',
2006
+ '04' => 'Manchester',
2007
+ '07' => 'Portland',
2008
+ '08' => 'Saint Andrew',
2009
+ '09' => 'Saint Ann',
2010
+ 10 => 'Saint Catherine',
2011
+ 11 => 'Saint Elizabeth',
2012
+ 12 => 'Saint James',
2013
+ 13 => 'Saint Mary',
2014
+ 14 => 'Saint Thomas',
2015
+ 15 => 'Trelawny',
2016
+ 16 => 'Westmoreland',
2017
+ 17 => 'Kingston',
2018
+ ),
2019
+ 'JO' =>
2020
+ array (
2021
+ '02' => 'Al Balqa\'',
2022
+ '09' => 'Al Karak',
2023
+ 12 => 'At Tafilah',
2024
+ 15 => 'Al Mafraq',
2025
+ 16 => 'Amman',
2026
+ 17 => 'Az Zaraqa',
2027
+ 18 => 'Irbid',
2028
+ 19 => 'Ma\'an',
2029
+ 20 => 'Ajlun',
2030
+ 21 => 'Al Aqabah',
2031
+ 22 => 'Jarash',
2032
+ 23 => 'Madaba',
2033
+ ),
2034
+ 'JP' =>
2035
+ array (
2036
+ '01' => 'Aichi',
2037
+ '02' => 'Akita',
2038
+ '03' => 'Aomori',
2039
+ '04' => 'Chiba',
2040
+ '05' => 'Ehime',
2041
+ '06' => 'Fukui',
2042
+ '07' => 'Fukuoka',
2043
+ '08' => 'Fukushima',
2044
+ '09' => 'Gifu',
2045
+ 10 => 'Gumma',
2046
+ 11 => 'Hiroshima',
2047
+ 12 => 'Hokkaido',
2048
+ 13 => 'Hyogo',
2049
+ 14 => 'Ibaraki',
2050
+ 15 => 'Ishikawa',
2051
+ 16 => 'Iwate',
2052
+ 17 => 'Kagawa',
2053
+ 18 => 'Kagoshima',
2054
+ 19 => 'Kanagawa',
2055
+ 20 => 'Kochi',
2056
+ 21 => 'Kumamoto',
2057
+ 22 => 'Kyoto',
2058
+ 23 => 'Mie',
2059
+ 24 => 'Miyagi',
2060
+ 25 => 'Miyazaki',
2061
+ 26 => 'Nagano',
2062
+ 27 => 'Nagasaki',
2063
+ 28 => 'Nara',
2064
+ 29 => 'Niigata',
2065
+ 30 => 'Oita',
2066
+ 31 => 'Okayama',
2067
+ 32 => 'Osaka',
2068
+ 33 => 'Saga',
2069
+ 34 => 'Saitama',
2070
+ 35 => 'Shiga',
2071
+ 36 => 'Shimane',
2072
+ 37 => 'Shizuoka',
2073
+ 38 => 'Tochigi',
2074
+ 39 => 'Tokushima',
2075
+ 40 => 'Tokyo',
2076
+ 41 => 'Tottori',
2077
+ 42 => 'Toyama',
2078
+ 43 => 'Wakayama',
2079
+ 44 => 'Yamagata',
2080
+ 45 => 'Yamaguchi',
2081
+ 46 => 'Yamanashi',
2082
+ 47 => 'Okinawa',
2083
+ ),
2084
+ 'KE' =>
2085
+ array (
2086
+ '01' => 'Central',
2087
+ '02' => 'Coast',
2088
+ '03' => 'Eastern',
2089
+ '05' => 'Nairobi Area',
2090
+ '06' => 'North-Eastern',
2091
+ '07' => 'Nyanza',
2092
+ '08' => 'Rift Valley',
2093
+ '09' => 'Western',
2094
+ ),
2095
+ 'KG' =>
2096
+ array (
2097
+ '01' => 'Bishkek',
2098
+ '02' => 'Chuy',
2099
+ '03' => 'Jalal-Abad',
2100
+ '04' => 'Naryn',
2101
+ '08' => 'Osh',
2102
+ '06' => 'Talas',
2103
+ '07' => 'Ysyk-Kol',
2104
+ '09' => 'Batken',
2105
+ ),
2106
+ 'KH' =>
2107
+ array (
2108
+ 29 => 'Batdambang',
2109
+ '02' => 'Kampong Cham',
2110
+ '03' => 'Kampong Chhnang',
2111
+ '04' => 'Kampong Speu',
2112
+ '05' => 'Kampong Thum',
2113
+ '06' => 'Kampot',
2114
+ '07' => 'Kandal',
2115
+ '08' => 'Koh Kong',
2116
+ '09' => 'Kracheh',
2117
+ 10 => 'Mondulkiri',
2118
+ 11 => 'Phnum Penh',
2119
+ 12 => 'Pursat',
2120
+ 13 => 'Preah Vihear',
2121
+ 14 => 'Prey Veng',
2122
+ 15 => 'Ratanakiri Kiri',
2123
+ 16 => 'Siem Reap',
2124
+ 17 => 'Stung Treng',
2125
+ 18 => 'Svay Rieng',
2126
+ 19 => 'Takeo',
2127
+ 25 => 'Banteay Meanchey',
2128
+ 30 => 'Pailin',
2129
+ ),
2130
+ 'KI' =>
2131
+ array (
2132
+ '01' => 'Gilbert Islands',
2133
+ '02' => 'Line Islands',
2134
+ '03' => 'Phoenix Islands',
2135
+ ),
2136
+ 'KM' =>
2137
+ array (
2138
+ '01' => 'Anjouan',
2139
+ '02' => 'Grande Comore',
2140
+ '03' => 'Moheli',
2141
+ ),
2142
+ 'KN' =>
2143
+ array (
2144
+ '01' => 'Christ Church Nichola Town',
2145
+ '02' => 'Saint Anne Sandy Point',
2146
+ '03' => 'Saint George Basseterre',
2147
+ '04' => 'Saint George Gingerland',
2148
+ '05' => 'Saint James Windward',
2149
+ '06' => 'Saint John Capisterre',
2150
+ '07' => 'Saint John Figtree',
2151
+ '08' => 'Saint Mary Cayon',
2152
+ '09' => 'Saint Paul Capisterre',
2153
+ 10 => 'Saint Paul Charlestown',
2154
+ 11 => 'Saint Peter Basseterre',
2155
+ 12 => 'Saint Thomas Lowland',
2156
+ 13 => 'Saint Thomas Middle Island',
2157
+ 15 => 'Trinity Palmetto Point',
2158
+ ),
2159
+ 'KP' =>
2160
+ array (
2161
+ '01' => 'Chagang-do',
2162
+ '03' => 'Hamgyong-namdo',
2163
+ '06' => 'Hwanghae-namdo',
2164
+ '07' => 'Hwanghae-bukto',
2165
+ '08' => 'Kaesong-si',
2166
+ '09' => 'Kangwon-do',
2167
+ 11 => 'P\'yongan-bukto',
2168
+ 12 => 'P\'yongyang-si',
2169
+ 13 => 'Yanggang-do',
2170
+ 14 => 'Namp\'o-si',
2171
+ 15 => 'P\'yongan-namdo',
2172
+ 17 => 'Hamgyong-bukto',
2173
+ 18 => 'Najin Sonbong-si',
2174
+ ),
2175
+ 'KR' =>
2176
+ array (
2177
+ '01' => 'Cheju-do',
2178
+ '03' => 'Cholla-bukto',
2179
+ '05' => 'Ch\'ungch\'ong-bukto',
2180
+ '06' => 'Kangwon-do',
2181
+ 10 => 'Pusan-jikhalsi',
2182
+ 11 => 'Seoul-t\'ukpyolsi',
2183
+ 12 => 'Inch\'on-jikhalsi',
2184
+ 13 => 'Kyonggi-do',
2185
+ 14 => 'Kyongsang-bukto',
2186
+ 15 => 'Taegu-jikhalsi',
2187
+ 16 => 'Cholla-namdo',
2188
+ 17 => 'Ch\'ungch\'ong-namdo',
2189
+ 18 => 'Kwangju-jikhalsi',
2190
+ 19 => 'Taejon-jikhalsi',
2191
+ 20 => 'Kyongsang-namdo',
2192
+ 21 => 'Ulsan-gwangyoksi',
2193
+ ),
2194
+ 'KW' =>
2195
+ array (
2196
+ '01' => 'Al Ahmadi',
2197
+ '02' => 'Al Kuwayt',
2198
+ '05' => 'Al Jahra',
2199
+ '07' => 'Al Farwaniyah',
2200
+ '08' => 'Hawalli',
2201
+ '09' => 'Mubarak al Kabir',
2202
+ ),
2203
+ 'KY' =>
2204
+ array (
2205
+ '01' => 'Creek',
2206
+ '02' => 'Eastern',
2207
+ '03' => 'Midland',
2208
+ '04' => 'South Town',
2209
+ '05' => 'Spot Bay',
2210
+ '06' => 'Stake Bay',
2211
+ '07' => 'West End',
2212
+ '08' => 'Western',
2213
+ ),
2214
+ 'KZ' =>
2215
+ array (
2216
+ '01' => 'Almaty',
2217
+ '02' => 'Almaty City',
2218
+ '03' => 'Aqmola',
2219
+ '04' => 'Aqtobe',
2220
+ '05' => 'Astana',
2221
+ '06' => 'Atyrau',
2222
+ '07' => 'West Kazakhstan',
2223
+ '08' => 'Bayqonyr',
2224
+ '09' => 'Mangghystau',
2225
+ 10 => 'South Kazakhstan',
2226
+ 11 => 'Pavlodar',
2227
+ 12 => 'Qaraghandy',
2228
+ 13 => 'Qostanay',
2229
+ 14 => 'Qyzylorda',
2230
+ 15 => 'East Kazakhstan',
2231
+ 16 => 'North Kazakhstan',
2232
+ 17 => 'Zhambyl',
2233
+ ),
2234
+ 'LA' =>
2235
+ array (
2236
+ '01' => 'Attapu',
2237
+ '02' => 'Champasak',
2238
+ '03' => 'Houaphan',
2239
+ '04' => 'Khammouan',
2240
+ '05' => 'Louang Namtha',
2241
+ '07' => 'Oudomxai',
2242
+ '08' => 'Phongsali',
2243
+ '09' => 'Saravan',
2244
+ 10 => 'Savannakhet',
2245
+ 11 => 'Vientiane',
2246
+ 13 => 'Xaignabouri',
2247
+ 14 => 'Xiangkhoang',
2248
+ 17 => 'Louangphrabang',
2249
+ ),
2250
+ 'LB' =>
2251
+ array (
2252
+ '08' => 'Beqaa',
2253
+ '02' => 'Al Janub',
2254
+ '09' => 'Liban-Nord',
2255
+ '04' => 'Beyrouth',
2256
+ '05' => 'Mont-Liban',
2257
+ '06' => 'Liban-Sud',
2258
+ '07' => 'Nabatiye',
2259
+ 10 => 'Aakk',
2260
+ 11 => 'Baalbek-Hermel',
2261
+ ),
2262
+ 'LC' =>
2263
+ array (
2264
+ '01' => 'Anse-la-Raye',
2265
+ '02' => 'Dauphin',
2266
+ '03' => 'Castries',
2267
+ '04' => 'Choiseul',
2268
+ '05' => 'Dennery',
2269
+ '06' => 'Gros-Islet',
2270
+ '07' => 'Laborie',
2271
+ '08' => 'Micoud',
2272
+ '09' => 'Soufriere',
2273
+ 10 => 'Vieux-Fort',
2274
+ 11 => 'Praslin',
2275
+ ),
2276
+ 'LI' =>
2277
+ array (
2278
+ '01' => 'Balzers',
2279
+ '02' => 'Eschen',
2280
+ '03' => 'Gamprin',
2281
+ '04' => 'Mauren',
2282
+ '05' => 'Planken',
2283
+ '06' => 'Ruggell',
2284
+ '07' => 'Schaan',
2285
+ '08' => 'Schellenberg',
2286
+ '09' => 'Triesen',
2287
+ 10 => 'Triesenberg',
2288
+ 11 => 'Vaduz',
2289
+ 21 => 'Gbarpolu',
2290
+ 22 => 'River Gee',
2291
+ ),
2292
+ 'LK' =>
2293
+ array (
2294
+ 29 => 'Central',
2295
+ 30 => 'North Central',
2296
+ 32 => 'North Western',
2297
+ 33 => 'Sabaragamuwa',
2298
+ 34 => 'Southern',
2299
+ 35 => 'Uva',
2300
+ 36 => 'Western',
2301
+ 37 => 'Eastern',
2302
+ 38 => 'Northern',
2303
+ ),
2304
+ 'LR' =>
2305
+ array (
2306
+ '01' => 'Bong',
2307
+ 12 => 'Grand Cape Mount',
2308
+ 20 => 'Lofa',
2309
+ 13 => 'Maryland',
2310
+ '07' => 'Monrovia',
2311
+ '09' => 'Nimba',
2312
+ 10 => 'Sino',
2313
+ 11 => 'Grand Bassa',
2314
+ 14 => 'Montserrado',
2315
+ 17 => 'Margibi',
2316
+ 18 => 'River Cess',
2317
+ 19 => 'Grand Gedeh',
2318
+ 21 => 'Gbarpolu',
2319
+ 22 => 'River Gee',
2320
+ ),
2321
+ 'LS' =>
2322
+ array (
2323
+ 10 => 'Berea',
2324
+ 11 => 'Butha-Buthe',
2325
+ 12 => 'Leribe',
2326
+ 13 => 'Mafeteng',
2327
+ 14 => 'Maseru',
2328
+ 15 => 'Mohales Hoek',
2329
+ 16 => 'Mokhotlong',
2330
+ 17 => 'Qachas Nek',
2331
+ 18 => 'Quthing',
2332
+ 19 => 'Thaba-Tseka',
2333
+ ),
2334
+ 'LT' =>
2335
+ array (
2336
+ 56 => 'Alytaus Apskritis',
2337
+ 57 => 'Kauno Apskritis',
2338
+ 58 => 'Klaipedos Apskritis',
2339
+ 59 => 'Marijampoles Apskritis',
2340
+ 60 => 'Panevezio Apskritis',
2341
+ 61 => 'Siauliu Apskritis',
2342
+ 62 => 'Taurages Apskritis',
2343
+ 63 => 'Telsiu Apskritis',
2344
+ 64 => 'Utenos Apskritis',
2345
+ 65 => 'Vilniaus Apskritis',
2346
+ ),
2347
+ 'LU' =>
2348
+ array (
2349
+ '01' => 'Diekirch',
2350
+ '02' => 'Grevenmacher',
2351
+ '03' => 'Luxembourg',
2352
+ ),
2353
+ 'LV' =>
2354
+ array (
2355
+ '01' => 'Aizkraukles',
2356
+ '02' => 'Aluksnes',
2357
+ '03' => 'Balvu',
2358
+ '04' => 'Bauskas',
2359
+ '05' => 'Cesu',
2360
+ '07' => 'Daugavpils',
2361
+ '08' => 'Dobeles',
2362
+ '09' => 'Gulbenes',
2363
+ 10 => 'Jekabpils',
2364
+ 11 => 'Jelgava',
2365
+ 12 => 'Jelgavas',
2366
+ 13 => 'Jurmala',
2367
+ 14 => 'Kraslavas',
2368
+ 15 => 'Kuldigas',
2369
+ 16 => 'Liepaja',
2370
+ 17 => 'Liepajas',
2371
+ 18 => 'Limbazu',
2372
+ 19 => 'Ludzas',
2373
+ 20 => 'Madonas',
2374
+ 21 => 'Ogres',
2375
+ 22 => 'Preilu',
2376
+ 23 => 'Rezekne',
2377
+ 24 => 'Rezeknes',
2378
+ 25 => 'Riga',
2379
+ 26 => 'Rigas',
2380
+ 27 => 'Saldus',
2381
+ 28 => 'Talsu',
2382
+ 29 => 'Tukuma',
2383
+ 30 => 'Valkas',
2384
+ 31 => 'Valmieras',
2385
+ 33 => 'Ventspils',
2386
+ ),
2387
+ 'LY' =>
2388
+ array (
2389
+ '03' => 'Al Aziziyah',
2390
+ '05' => 'Al Jufrah',
2391
+ '08' => 'Al Kufrah',
2392
+ 13 => 'Ash Shati\'',
2393
+ 30 => 'Murzuq',
2394
+ 34 => 'Sabha',
2395
+ 41 => 'Tarhunah',
2396
+ 42 => 'Tubruq',
2397
+ 45 => 'Zlitan',
2398
+ 47 => 'Ajdabiya',
2399
+ 48 => 'Al Fatih',
2400
+ 49 => 'Al Jabal al Akhdar',
2401
+ 50 => 'Al Khums',
2402
+ 51 => 'An Nuqat al Khams',
2403
+ 52 => 'Awbari',
2404
+ 53 => 'Az Zawiyah',
2405
+ 54 => 'Banghazi',
2406
+ 55 => 'Darnah',
2407
+ 56 => 'Ghadamis',
2408
+ 57 => 'Gharyan',
2409
+ 58 => 'Misratah',
2410
+ 59 => 'Sawfajjin',
2411
+ 60 => 'Surt',
2412
+ 61 => 'Tarabulus',
2413
+ 62 => 'Yafran',
2414
+ ),
2415
+ 'MA' =>
2416
+ array (
2417
+ 45 => 'Grand Casablanca',
2418
+ 46 => 'Fes-Boulemane',
2419
+ 47 => 'Marrakech-Tensift-Al Haouz',
2420
+ 48 => 'Meknes-Tafilalet',
2421
+ 49 => 'Rabat-Sale-Zemmour-Zaer',
2422
+ 50 => 'Chaouia-Ouardigha',
2423
+ 51 => 'Doukkala-Abda',
2424
+ 52 => 'Gharb-Chrarda-Beni Hssen',
2425
+ 53 => 'Guelmim-Es Smara',
2426
+ 54 => 'Oriental',
2427
+ 55 => 'Souss-Massa-Dr',
2428
+ 56 => 'Tadla-Azilal',
2429
+ 57 => 'Tanger-Tetouan',
2430
+ 58 => 'Taza-Al Hoceima-Taounate',
2431
+ 59 => 'La',
2432
+ ),
2433
+ 'MC' =>
2434
+ array (
2435
+ '01' => 'La Condamine',
2436
+ '02' => 'Monaco',
2437
+ '03' => 'Monte-Carlo',
2438
+ ),
2439
+ 'MD' =>
2440
+ array (
2441
+ 51 => 'Gagauzia',
2442
+ 57 => 'Chisinau',
2443
+ 58 => 'Stinga Nistrului',
2444
+ 59 => 'Anenii Noi',
2445
+ 60 => 'Balti',
2446
+ 61 => 'Basarabeasca',
2447
+ 62 => 'Bender',
2448
+ 63 => 'Briceni',
2449
+ 64 => 'Cahul',
2450
+ 65 => 'Cantemir',
2451
+ 66 => 'Calarasi',
2452
+ 67 => 'Causeni',
2453
+ 68 => 'Cimislia',
2454
+ 69 => 'Criuleni',
2455
+ 70 => 'Donduseni',
2456
+ 71 => 'Drochia',
2457
+ 72 => 'Dubasari',
2458
+ 73 => 'Edinet',
2459
+ 74 => 'Falesti',
2460
+ 75 => 'Floresti',
2461
+ 76 => 'Glodeni',
2462
+ 77 => 'Hincesti',
2463
+ 78 => 'Ialoveni',
2464
+ 79 => 'Leova',
2465
+ 80 => 'Nisporeni',
2466
+ 81 => 'Ocnita',
2467
+ 82 => 'Orhei',
2468
+ 83 => 'Rezina',
2469
+ 84 => 'Riscani',
2470
+ 85 => 'Singerei',
2471
+ 86 => 'Soldanesti',
2472
+ 87 => 'Soroca',
2473
+ 88 => 'Stefan-Voda',
2474
+ 89 => 'Straseni',
2475
+ 90 => 'Taraclia',
2476
+ 91 => 'Telenesti',
2477
+ 92 => 'Ungheni',
2478
+ ),
2479
+ 'MG' =>
2480
+ array (
2481
+ '01' => 'Antsiranana',
2482
+ '02' => 'Fianarantsoa',
2483
+ '03' => 'Mahajanga',
2484
+ '04' => 'Toamasina',
2485
+ '05' => 'Antananarivo',
2486
+ '06' => 'Toliara',
2487
+ ),
2488
+ 'MK' =>
2489
+ array (
2490
+ '01' => 'Aracinovo',
2491
+ '02' => 'Bac',
2492
+ '03' => 'Belcista',
2493
+ '04' => 'Berovo',
2494
+ '05' => 'Bistrica',
2495
+ '06' => 'Bitola',
2496
+ '07' => 'Blatec',
2497
+ '08' => 'Bogdanci',
2498
+ '09' => 'Bogomila',
2499
+ 10 => 'Bogovinje',
2500
+ 11 => 'Bosilovo',
2501
+ 12 => 'Brvenica',
2502
+ 13 => 'Cair',
2503
+ 14 => 'Capari',
2504
+ 15 => 'Caska',
2505
+ 16 => 'Cegrane',
2506
+ 17 => 'Centar',
2507
+ 18 => 'Centar Zupa',
2508
+ 19 => 'Cesinovo',
2509
+ 20 => 'Cucer-Sandevo',
2510
+ 21 => 'Debar',
2511
+ 22 => 'Delcevo',
2512
+ 23 => 'Delogozdi',
2513
+ 24 => 'Demir Hisar',
2514
+ 25 => 'Demir Kapija',
2515
+ 26 => 'Dobrusevo',
2516
+ 27 => 'Dolna Banjica',
2517
+ 28 => 'Dolneni',
2518
+ 29 => 'Dorce Petrov',
2519
+ 30 => 'Drugovo',
2520
+ 31 => 'Dzepciste',
2521
+ 32 => 'Gazi Baba',
2522
+ 33 => 'Gevgelija',
2523
+ 34 => 'Gostivar',
2524
+ 35 => 'Gradsko',
2525
+ 36 => 'Ilinden',
2526
+ 37 => 'Izvor',
2527
+ 38 => 'Jegunovce',
2528
+ 39 => 'Kamenjane',
2529
+ 40 => 'Karbinci',
2530
+ 41 => 'Karpos',
2531
+ 42 => 'Kavadarci',
2532
+ 43 => 'Kicevo',
2533
+ 44 => 'Kisela Voda',
2534
+ 45 => 'Klecevce',
2535
+ 46 => 'Kocani',
2536
+ 47 => 'Konce',
2537
+ 48 => 'Kondovo',
2538
+ 49 => 'Konopiste',
2539
+ 50 => 'Kosel',
2540
+ 51 => 'Kratovo',
2541
+ 52 => 'Kriva Palanka',
2542
+ 53 => 'Krivogastani',
2543
+ 54 => 'Krusevo',
2544
+ 55 => 'Kuklis',
2545
+ 56 => 'Kukurecani',
2546
+ 57 => 'Kumanovo',
2547
+ 58 => 'Labunista',
2548
+ 59 => 'Lipkovo',
2549
+ 60 => 'Lozovo',
2550
+ 61 => 'Lukovo',
2551
+ 62 => 'Makedonska Kamenica',
2552
+ 63 => 'Makedonski Brod',
2553
+ 64 => 'Mavrovi Anovi',
2554
+ 65 => 'Meseista',
2555
+ 66 => 'Miravci',
2556
+ 67 => 'Mogila',
2557
+ 68 => 'Murtino',
2558
+ 69 => 'Negotino',
2559
+ 70 => 'Negotino-Polosko',
2560
+ 71 => 'Novaci',
2561
+ 72 => 'Novo Selo',
2562
+ 73 => 'Oblesevo',
2563
+ 74 => 'Ohrid',
2564
+ 75 => 'Orasac',
2565
+ 76 => 'Orizari',
2566
+ 77 => 'Oslomej',
2567
+ 78 => 'Pehcevo',
2568
+ 79 => 'Petrovec',
2569
+ 80 => 'Plasnica',
2570
+ 81 => 'Podares',
2571
+ 82 => 'Prilep',
2572
+ 83 => 'Probistip',
2573
+ 84 => 'Radovis',
2574
+ 85 => 'Rankovce',
2575
+ 86 => 'Resen',
2576
+ 87 => 'Rosoman',
2577
+ 88 => 'Rostusa',
2578
+ 89 => 'Samokov',
2579
+ 90 => 'Saraj',
2580
+ 91 => 'Sipkovica',
2581
+ 92 => 'Sopiste',
2582
+ 93 => 'Sopotnica',
2583
+ 94 => 'Srbinovo',
2584
+ 95 => 'Staravina',
2585
+ 96 => 'Star Dojran',
2586
+ 97 => 'Staro Nagoricane',
2587
+ 98 => 'Stip',
2588
+ 99 => 'Struga',
2589
+ 'A1' => 'Strumica',
2590
+ 'A2' => 'Studenicani',
2591
+ 'A3' => 'Suto Orizari',
2592
+ 'A4' => 'Sveti Nikole',
2593
+ 'A5' => 'Tearce',
2594
+ 'A6' => 'Tetovo',
2595
+ 'A7' => 'Topolcani',
2596
+ 'A8' => 'Valandovo',
2597
+ 'A9' => 'Vasilevo',
2598
+ 'B1' => 'Veles',
2599
+ 'B2' => 'Velesta',
2600
+ 'B3' => 'Vevcani',
2601
+ 'B4' => 'Vinica',
2602
+ 'B5' => 'Vitoliste',
2603
+ 'B6' => 'Vranestica',
2604
+ 'B7' => 'Vrapciste',
2605
+ 'B8' => 'Vratnica',
2606
+ 'B9' => 'Vrutok',
2607
+ 'C1' => 'Zajas',
2608
+ 'C2' => 'Zelenikovo',
2609
+ 'C3' => 'Zelino',
2610
+ 'C4' => 'Zitose',
2611
+ 'C5' => 'Zletovo',
2612
+ 'C6' => 'Zrnovci',
2613
+ ),
2614
+ 'ML' =>
2615
+ array (
2616
+ '01' => 'Bamako',
2617
+ '03' => 'Kayes',
2618
+ '04' => 'Mopti',
2619
+ '05' => 'Segou',
2620
+ '06' => 'Sikasso',
2621
+ '07' => 'Koulikoro',
2622
+ '08' => 'Tombouctou',
2623
+ '09' => 'Gao',
2624
+ 10 => 'Kidal',
2625
+ ),
2626
+ 'MM' =>
2627
+ array (
2628
+ '01' => 'Rakhine State',
2629
+ '02' => 'Chin State',
2630
+ '03' => 'Irrawaddy',
2631
+ '04' => 'Kachin State',
2632
+ '05' => 'Karan State',
2633
+ '06' => 'Kayah State',
2634
+ '07' => 'Magwe',
2635
+ '08' => 'Mandalay',
2636
+ '09' => 'Pegu',
2637
+ 10 => 'Sagaing',
2638
+ 11 => 'Shan State',
2639
+ 12 => 'Tenasserim',
2640
+ 13 => 'Mon State',
2641
+ 14 => 'Rangoon',
2642
+ 17 => 'Yangon',
2643
+ ),
2644
+ 'MN' =>
2645
+ array (
2646
+ '01' => 'Arhangay',
2647
+ '02' => 'Bayanhongor',
2648
+ '03' => 'Bayan-Olgiy',
2649
+ '05' => 'Darhan',
2650
+ '06' => 'Dornod',
2651
+ '07' => 'Dornogovi',
2652
+ '08' => 'Dundgovi',
2653
+ '09' => 'Dzavhan',
2654
+ 10 => 'Govi-Altay',
2655
+ 11 => 'Hentiy',
2656
+ 12 => 'Hovd',
2657
+ 13 => 'Hovsgol',
2658
+ 14 => 'Omnogovi',
2659
+ 15 => 'Ovorhangay',
2660
+ 16 => 'Selenge',
2661
+ 17 => 'Suhbaatar',
2662
+ 18 => 'Tov',
2663
+ 19 => 'Uvs',
2664
+ 20 => 'Ulaanbaatar',
2665
+ 21 => 'Bulgan',
2666
+ 22 => 'Erdenet',
2667
+ 23 => 'Darhan-Uul',
2668
+ 24 => 'Govisumber',
2669
+ 25 => 'Orhon',
2670
+ ),
2671
+ 'MO' =>
2672
+ array (
2673
+ '01' => 'Ilhas',
2674
+ '02' => 'Macau',
2675
+ ),
2676
+ 'MR' =>
2677
+ array (
2678
+ '01' => 'Hodh Ech Chargui',
2679
+ '02' => 'Hodh El Gharbi',
2680
+ '03' => 'Assaba',
2681
+ '04' => 'Gorgol',
2682
+ '05' => 'Brakna',
2683
+ '06' => 'Trarza',
2684
+ '07' => 'Adrar',
2685
+ '08' => 'Dakhlet Nouadhibou',
2686
+ '09' => 'Tagant',
2687
+ 10 => 'Guidimaka',
2688
+ 11 => 'Tiris Zemmour',
2689
+ 12 => 'Inchiri',
2690
+ ),
2691
+ 'MS' =>
2692
+ array (
2693
+ '01' => 'Saint Anthony',
2694
+ '02' => 'Saint Georges',
2695
+ '03' => 'Saint Peter',
2696
+ ),
2697
+ 'MU' =>
2698
+ array (
2699
+ 12 => 'Black River',
2700
+ 13 => 'Flacq',
2701
+ 14 => 'Grand Port',
2702
+ 15 => 'Moka',
2703
+ 16 => 'Pamplemousses',
2704
+ 17 => 'Plaines Wilhems',
2705
+ 18 => 'Port Louis',
2706
+ 19 => 'Riviere du Rempart',
2707
+ 20 => 'Savanne',
2708
+ 21 => 'Agalega Islands',
2709
+ 22 => 'Cargados Carajos',
2710
+ 23 => 'Rodrigues',
2711
+ ),
2712
+ 'MV' =>
2713
+ array (
2714
+ '01' => 'Seenu',
2715
+ '05' => 'Laamu',
2716
+ 30 => 'Alifu',
2717
+ 31 => 'Baa',
2718
+ 32 => 'Dhaalu',
2719
+ 33 => 'Faafu',
2720
+ 34 => 'Gaafu Alifu',
2721
+ 35 => 'Gaafu Dhaalu',
2722
+ 36 => 'Haa Alifu',
2723
+ 37 => 'Haa Dhaalu',
2724
+ 38 => 'Kaafu',
2725
+ 39 => 'Lhaviyani',
2726
+ 40 => 'Maale',
2727
+ 41 => 'Meemu',
2728
+ 42 => 'Gnaviyani',
2729
+ 43 => 'Noonu',
2730
+ 44 => 'Raa',
2731
+ 45 => 'Shaviyani',
2732
+ 46 => 'Thaa',
2733
+ 47 => 'Vaavu',
2734
+ ),
2735
+ 'MW' =>
2736
+ array (
2737
+ '02' => 'Chikwawa',
2738
+ '03' => 'Chiradzulu',
2739
+ '04' => 'Chitipa',
2740
+ '05' => 'Thyolo',
2741
+ '06' => 'Dedza',
2742
+ '07' => 'Dowa',
2743
+ '08' => 'Karonga',
2744
+ '09' => 'Kasungu',
2745
+ 11 => 'Lilongwe',
2746
+ 12 => 'Mangochi',
2747
+ 13 => 'Mchinji',
2748
+ 15 => 'Mzimba',
2749
+ 16 => 'Ntcheu',
2750
+ 17 => 'Nkhata Bay',
2751
+ 18 => 'Nkhotakota',
2752
+ 19 => 'Nsanje',
2753
+ 20 => 'Ntchisi',
2754
+ 21 => 'Rumphi',
2755
+ 22 => 'Salima',
2756
+ 23 => 'Zomba',
2757
+ 24 => 'Blantyre',
2758
+ 25 => 'Mwanza',
2759
+ 26 => 'Balaka',
2760
+ 27 => 'Likoma',
2761
+ 28 => 'Machinga',
2762
+ 29 => 'Mulanje',
2763
+ 30 => 'Phalombe',
2764
+ ),
2765
+ 'MX' =>
2766
+ array (
2767
+ '01' => 'Aguascalientes',
2768
+ '02' => 'Baja California',
2769
+ '03' => 'Baja California Sur',
2770
+ '04' => 'Campeche',
2771
+ '05' => 'Chiapas',
2772
+ '06' => 'Chihuahua',
2773
+ '07' => 'Coahuila de Zaragoza',
2774
+ '08' => 'Colima',
2775
+ '09' => 'Distrito Federal',
2776
+ 10 => 'Durango',
2777
+ 11 => 'Guanajuato',
2778
+ 12 => 'Guerrero',
2779
+ 13 => 'Hidalgo',
2780
+ 14 => 'Jalisco',
2781
+ 15 => 'Mexico',
2782
+ 16 => 'Michoacan de Ocampo',
2783
+ 17 => 'Morelos',
2784
+ 18 => 'Nayarit',
2785
+ 19 => 'Nuevo Leon',
2786
+ 20 => 'Oaxaca',
2787
+ 21 => 'Puebla',
2788
+ 22 => 'Queretaro de Arteaga',
2789
+ 23 => 'Quintana Roo',
2790
+ 24 => 'San Luis Potosi',
2791
+ 25 => 'Sinaloa',
2792
+ 26 => 'Sonora',
2793
+ 27 => 'Tabasco',
2794
+ 28 => 'Tamaulipas',
2795
+ 29 => 'Tlaxcala',
2796
+ 30 => 'Veracruz-Llave',
2797
+ 31 => 'Yucatan',
2798
+ 32 => 'Zacatecas',
2799
+ ),
2800
+ 'MY' =>
2801
+ array (
2802
+ '01' => 'Johor',
2803
+ '02' => 'Kedah',
2804
+ '03' => 'Kelantan',
2805
+ '04' => 'Melaka',
2806
+ '05' => 'Negeri Sembilan',
2807
+ '06' => 'Pahang',
2808
+ '07' => 'Perak',
2809
+ '08' => 'Perlis',
2810
+ '09' => 'Pulau Pinang',
2811
+ 11 => 'Sarawak',
2812
+ 12 => 'Selangor',
2813
+ 13 => 'Terengganu',
2814
+ 14 => 'Kuala Lumpur',
2815
+ 15 => 'Labuan',
2816
+ 16 => 'Sabah',
2817
+ 17 => 'Putrajaya',
2818
+ ),
2819
+ 'MZ' =>
2820
+ array (
2821
+ '01' => 'Cabo Delgado',
2822
+ '02' => 'Gaza',
2823
+ '03' => 'Inhambane',
2824
+ 11 => 'Maputo',
2825
+ '05' => 'Sofala',
2826
+ '06' => 'Nampula',
2827
+ '07' => 'Niassa',
2828
+ '08' => 'Tete',
2829
+ '09' => 'Zambezia',
2830
+ 10 => 'Manica',
2831
+ ),
2832
+ 'NA' =>
2833
+ array (
2834
+ '01' => 'Bethanien',
2835
+ '02' => 'Caprivi Oos',
2836
+ '03' => 'Boesmanland',
2837
+ '04' => 'Gobabis',
2838
+ '05' => 'Grootfontein',
2839
+ '06' => 'Kaokoland',
2840
+ '07' => 'Karibib',
2841
+ '08' => 'Keetmanshoop',
2842
+ '09' => 'Luderitz',
2843
+ 10 => 'Maltahohe',
2844
+ 11 => 'Okahandja',
2845
+ 12 => 'Omaruru',
2846
+ 13 => 'Otjiwarongo',
2847
+ 14 => 'Outjo',
2848
+ 15 => 'Owambo',
2849
+ 16 => 'Rehoboth',
2850
+ 17 => 'Swakopmund',
2851
+ 18 => 'Tsumeb',
2852
+ 20 => 'Karasburg',
2853
+ 21 => 'Windhoek',
2854
+ 22 => 'Damaraland',
2855
+ 23 => 'Hereroland Oos',
2856
+ 24 => 'Hereroland Wes',
2857
+ 25 => 'Kavango',
2858
+ 26 => 'Mariental',
2859
+ 27 => 'Namaland',
2860
+ 28 => 'Caprivi',
2861
+ 29 => 'Erongo',
2862
+ 30 => 'Hardap',
2863
+ 31 => 'Karas',
2864
+ 32 => 'Kunene',
2865
+ 33 => 'Ohangwena',
2866
+ 34 => 'Okavango',
2867
+ 35 => 'Omaheke',
2868
+ 36 => 'Omusati',
2869
+ 37 => 'Oshana',
2870
+ 38 => 'Oshikoto',
2871
+ 39 => 'Otjozondjupa',
2872
+ ),
2873
+ 'NE' =>
2874
+ array (
2875
+ '01' => 'Agadez',
2876
+ '02' => 'Diffa',
2877
+ '03' => 'Dosso',
2878
+ '04' => 'Maradi',
2879
+ '08' => 'Niamey',
2880
+ '06' => 'Tahoua',
2881
+ '07' => 'Zinder',
2882
+ ),
2883
+ 'NG' =>
2884
+ array (
2885
+ '05' => 'Lagos',
2886
+ 11 => 'Federal Capital Territory',
2887
+ 16 => 'Ogun',
2888
+ 21 => 'Akwa Ibom',
2889
+ 22 => 'Cross River',
2890
+ 23 => 'Kaduna',
2891
+ 24 => 'Katsina',
2892
+ 25 => 'Anambra',
2893
+ 26 => 'Benue',
2894
+ 27 => 'Borno',
2895
+ 28 => 'Imo',
2896
+ 29 => 'Kano',
2897
+ 30 => 'Kwara',
2898
+ 31 => 'Niger',
2899
+ 32 => 'Oyo',
2900
+ 35 => 'Adamawa',
2901
+ 36 => 'Delta',
2902
+ 37 => 'Edo',
2903
+ 39 => 'Jigawa',
2904
+ 40 => 'Kebbi',
2905
+ 41 => 'Kogi',
2906
+ 42 => 'Osun',
2907
+ 43 => 'Taraba',
2908
+ 44 => 'Yobe',
2909
+ 45 => 'Abia',
2910
+ 46 => 'Bauchi',
2911
+ 47 => 'Enugu',
2912
+ 48 => 'Ondo',
2913
+ 49 => 'Plateau',
2914
+ 50 => 'Rivers',
2915
+ 51 => 'Sokoto',
2916
+ 52 => 'Bayelsa',
2917
+ 53 => 'Ebonyi',
2918
+ 54 => 'Ekiti',
2919
+ 55 => 'Gombe',
2920
+ 56 => 'Nassarawa',
2921
+ 57 => 'Zamfara',
2922
+ ),
2923
+ 'NI' =>
2924
+ array (
2925
+ '01' => 'Boaco',
2926
+ '02' => 'Carazo',
2927
+ '03' => 'Chinandega',
2928
+ '04' => 'Chontales',
2929
+ '05' => 'Esteli',
2930
+ '06' => 'Granada',
2931
+ '07' => 'Jinotega',
2932
+ '08' => 'Leon',
2933
+ '09' => 'Madriz',
2934
+ 10 => 'Managua',
2935
+ 11 => 'Masaya',
2936
+ 12 => 'Matagalpa',
2937
+ 13 => 'Nueva Segovia',
2938
+ 14 => 'Rio San Juan',
2939
+ 15 => 'Rivas',
2940
+ 16 => 'Zelaya',
2941
+ 17 => 'Autonoma Atlantico Norte',
2942
+ 18 => 'Region Autonoma Atlantico Sur',
2943
+ ),
2944
+ 'NL' =>
2945
+ array (
2946
+ '01' => 'Drenthe',
2947
+ '02' => 'Friesland',
2948
+ '03' => 'Gelderland',
2949
+ '04' => 'Groningen',
2950
+ '05' => 'Limburg',
2951
+ '06' => 'Noord-Brabant',
2952
+ '07' => 'Noord-Holland',
2953
+ '09' => 'Utrecht',
2954
+ 10 => 'Zeeland',
2955
+ 11 => 'Zuid-Holland',
2956
+ 15 => 'Overijssel',
2957
+ 16 => 'Flevoland',
2958
+ ),
2959
+ 'NO' =>
2960
+ array (
2961
+ '01' => 'Akershus',
2962
+ '02' => 'Aust-Agder',
2963
+ '04' => 'Buskerud',
2964
+ '05' => 'Finnmark',
2965
+ '06' => 'Hedmark',
2966
+ '07' => 'Hordaland',
2967
+ '08' => 'More og Romsdal',
2968
+ '09' => 'Nordland',
2969
+ 10 => 'Nord-Trondelag',
2970
+ 11 => 'Oppland',
2971
+ 12 => 'Oslo',
2972
+ 13 => 'Ostfold',
2973
+ 14 => 'Rogaland',
2974
+ 15 => 'Sogn og Fjordane',
2975
+ 16 => 'Sor-Trondelag',
2976
+ 17 => 'Telemark',
2977
+ 18 => 'Troms',
2978
+ 19 => 'Vest-Agder',
2979
+ 20 => 'Vestfold',
2980
+ ),
2981
+ 'NP' =>
2982
+ array (
2983
+ '01' => 'Bagmati',
2984
+ '02' => 'Bheri',
2985
+ '03' => 'Dhawalagiri',
2986
+ '04' => 'Gandaki',
2987
+ '05' => 'Janakpur',
2988
+ '06' => 'Karnali',
2989
+ '07' => 'Kosi',
2990
+ '08' => 'Lumbini',
2991
+ '09' => 'Mahakali',
2992
+ 10 => 'Mechi',
2993
+ 11 => 'Narayani',
2994
+ 12 => 'Rapti',
2995
+ 13 => 'Sagarmatha',
2996
+ 14 => 'Seti',
2997
+ ),
2998
+ 'NR' =>
2999
+ array (
3000
+ '01' => 'Aiwo',
3001
+ '02' => 'Anabar',
3002
+ '03' => 'Anetan',
3003
+ '04' => 'Anibare',
3004
+ '05' => 'Baiti',
3005
+ '06' => 'Boe',
3006
+ '07' => 'Buada',
3007
+ '08' => 'Denigomodu',
3008
+ '09' => 'Ewa',
3009
+ 10 => 'Ijuw',
3010
+ 11 => 'Meneng',
3011
+ 12 => 'Nibok',
3012
+ 13 => 'Uaboe',
3013
+ 14 => 'Yaren',
3014
+ ),
3015
+ 'NZ' =>
3016
+ array (
3017
+ 10 => 'Chatham Islands',
3018
+ 'E7' => 'Auckland',
3019
+ 'E8' => 'Bay of Plenty',
3020
+ 'E9' => 'Canterbury',
3021
+ 'F1' => 'Gisborne',
3022
+ 'F2' => 'Hawke\'s Bay',
3023
+ 'F3' => 'Manawatu-Wanganui',
3024
+ 'F4' => 'Marlborough',
3025
+ 'F5' => 'Nelson',
3026
+ 'F6' => 'Northland',
3027
+ 'F7' => 'Otago',
3028
+ 'F8' => 'Southland',
3029
+ 'F9' => 'Taranaki',
3030
+ 'G1' => 'Waikato',
3031
+ 'G2' => 'Wellington',
3032
+ 'G3' => 'West Coast',
3033
+ ),
3034
+ 'OM' =>
3035
+ array (
3036
+ '01' => 'Ad Dakhiliyah',
3037
+ '02' => 'Al Batinah',
3038
+ '03' => 'Al Wusta',
3039
+ '04' => 'Ash Sharqiyah',
3040
+ '05' => 'Az Zahirah',
3041
+ '06' => 'Masqat',
3042
+ '07' => 'Musandam',
3043
+ '08' => 'Zufar',
3044
+ ),
3045
+ 'PA' =>
3046
+ array (
3047
+ '01' => 'Bocas del Toro',
3048
+ '02' => 'Chiriqui',
3049
+ '03' => 'Cocle',
3050
+ '04' => 'Colon',
3051
+ '05' => 'Darien',
3052
+ '06' => 'Herrera',
3053
+ '07' => 'Los Santos',
3054
+ '08' => 'Panama',
3055
+ '09' => 'San Blas',
3056
+ 10 => 'Veraguas',
3057
+ ),
3058
+ 'PE' =>
3059
+ array (
3060
+ '01' => 'Amazonas',
3061
+ '02' => 'Ancash',
3062
+ '03' => 'Apurimac',
3063
+ '04' => 'Arequipa',
3064
+ '05' => 'Ayacucho',
3065
+ '06' => 'Cajamarca',
3066
+ '07' => 'Callao',
3067
+ '08' => 'Cusco',
3068
+ '09' => 'Huancavelica',
3069
+ 10 => 'Huanuco',
3070
+ 11 => 'Ica',
3071
+ 12 => 'Junin',
3072
+ 13 => 'La Libertad',
3073
+ 14 => 'Lambayeque',
3074
+ 15 => 'Lima',
3075
+ 16 => 'Loreto',
3076
+ 17 => 'Madre de Dios',
3077
+ 18 => 'Moquegua',
3078
+ 19 => 'Pasco',
3079
+ 20 => 'Piura',
3080
+ 21 => 'Puno',
3081
+ 22 => 'San Martin',
3082
+ 23 => 'Tacna',
3083
+ 24 => 'Tumbes',
3084
+ 25 => 'Ucayali',
3085
+ ),
3086
+ 'PG' =>
3087
+ array (
3088
+ '01' => 'Central',
3089
+ '02' => 'Gulf',
3090
+ '03' => 'Milne Bay',
3091
+ '04' => 'Northern',
3092
+ '05' => 'Southern Highlands',
3093
+ '06' => 'Western',
3094
+ '07' => 'North Solomons',
3095
+ '08' => 'Chimbu',
3096
+ '09' => 'Eastern Highlands',
3097
+ 10 => 'East New Britain',
3098
+ 11 => 'East Sepik',
3099
+ 12 => 'Madang',
3100
+ 13 => 'Manus',
3101
+ 14 => 'Morobe',
3102
+ 15 => 'New Ireland',
3103
+ 16 => 'Western Highlands',
3104
+ 17 => 'West New Britain',
3105
+ 18 => 'Sandaun',
3106
+ 19 => 'Enga',
3107
+ 20 => 'National Capital',
3108
+ ),
3109
+ 'PH' =>
3110
+ array (
3111
+ '01' => 'Abra',
3112
+ '02' => 'Agusan del Norte',
3113
+ '03' => 'Agusan del Sur',
3114
+ '04' => 'Aklan',
3115
+ '05' => 'Albay',
3116
+ '06' => 'Antique',
3117
+ '07' => 'Bataan',
3118
+ '08' => 'Batanes',
3119
+ '09' => 'Batangas',
3120
+ 10 => 'Benguet',
3121
+ 11 => 'Bohol',
3122
+ 12 => 'Bukidnon',
3123
+ 13 => 'Bulacan',
3124
+ 14 => 'Cagayan',
3125
+ 15 => 'Camarines Norte',
3126
+ 16 => 'Camarines Sur',
3127
+ 17 => 'Camiguin',
3128
+ 18 => 'Capiz',
3129
+ 19 => 'Catanduanes',
3130
+ 20 => 'Cavite',
3131
+ 21 => 'Cebu',
3132
+ 22 => 'Basilan',
3133
+ 23 => 'Eastern Samar',
3134
+ 24 => 'Davao',
3135
+ 25 => 'Davao del Sur',
3136
+ 26 => 'Davao Oriental',
3137
+ 27 => 'Ifugao',
3138
+ 28 => 'Ilocos Norte',
3139
+ 29 => 'Ilocos Sur',
3140
+ 30 => 'Iloilo',
3141
+ 31 => 'Isabela',
3142
+ 32 => 'Kalinga-Apayao',
3143
+ 33 => 'Laguna',
3144
+ 34 => 'Lanao del Norte',
3145
+ 35 => 'Lanao del Sur',
3146
+ 36 => 'La Union',
3147
+ 37 => 'Leyte',
3148
+ 38 => 'Marinduque',
3149
+ 39 => 'Masbate',
3150
+ 40 => 'Mindoro Occidental',
3151
+ 41 => 'Mindoro Oriental',
3152
+ 42 => 'Misamis Occidental',
3153
+ 43 => 'Misamis Oriental',
3154
+ 44 => 'Mountain',
3155
+ 'H3' => 'Negros Occidental',
3156
+ 46 => 'Negros Oriental',
3157
+ 47 => 'Nueva Ecija',
3158
+ 48 => 'Nueva Vizcaya',
3159
+ 49 => 'Palawan',
3160
+ 50 => 'Pampanga',
3161
+ 51 => 'Pangasinan',
3162
+ 53 => 'Rizal',
3163
+ 54 => 'Romblon',
3164
+ 55 => 'Samar',
3165
+ 56 => 'Maguindanao',
3166
+ 57 => 'North Cotabato',
3167
+ 58 => 'Sorsogon',
3168
+ 59 => 'Southern Leyte',
3169
+ 60 => 'Sulu',
3170
+ 'N3' => 'Surigao del Norte',
3171
+ 62 => 'Surigao del Sur',
3172
+ 63 => 'Tarlac',
3173
+ 'P1' => 'Zambales',
3174
+ 65 => 'Zamboanga del Norte',
3175
+ 66 => 'Zamboanga del Sur',
3176
+ 67 => 'Northern Samar',
3177
+ 68 => 'Quirino',
3178
+ 69 => 'Siquijor',
3179
+ 70 => 'South Cotabato',
3180
+ 71 => 'Sultan Kudarat',
3181
+ 72 => 'Tawitawi',
3182
+ 'A1' => 'Angeles',
3183
+ 'A2' => 'Bacolod',
3184
+ 'A3' => 'Bago',
3185
+ 'A4' => 'Baguio',
3186
+ 'A5' => 'Bais',
3187
+ 'A6' => 'Basilan City',
3188
+ 'A7' => 'Batangas City',
3189
+ 'A8' => 'Butuan',
3190
+ 'A9' => 'Cabanatuan',
3191
+ 'B1' => 'Cadiz',
3192
+ 'B2' => 'Cagayan de Oro',
3193
+ 'B3' => 'Calbayog',
3194
+ 'B4' => 'Caloocan',
3195
+ 'B5' => 'Canlaon',
3196
+ 'B6' => 'Cavite City',
3197
+ 'B7' => 'Cebu City',
3198
+ 'B8' => 'Cotabato',
3199
+ 'B9' => 'Dagupan',
3200
+ 'C1' => 'Danao',
3201
+ 'C2' => 'Dapitan',
3202
+ 'C3' => 'Davao City',
3203
+ 'C4' => 'Dipolog',
3204
+ 'C5' => 'Dumaguete',
3205
+ 'C6' => 'General Santos',
3206
+ 'C7' => 'Gingoog',
3207
+ 'C8' => 'Iligan',
3208
+ 'C9' => 'Iloilo City',
3209
+ 'D1' => 'Iriga',
3210
+ 'D2' => 'La Carlota',
3211
+ 'D3' => 'Laoag',
3212
+ 'D4' => 'Lapu-Lapu',
3213
+ 'D5' => 'Legaspi',
3214
+ 'D6' => 'Lipa',
3215
+ 'D7' => 'Lucena',
3216
+ 'D8' => 'Mandaue',
3217
+ 'D9' => 'Manila',
3218
+ 'E1' => 'Marawi',
3219
+ 'E2' => 'Naga',
3220
+ 'E3' => 'Olongapo',
3221
+ 'E4' => 'Ormoc',
3222
+ 'E5' => 'Oroquieta',
3223
+ 'E6' => 'Ozamis',
3224
+ 'E7' => 'Pagadian',
3225
+ 'E8' => 'Palayan',
3226
+ 'E9' => 'Pasay',
3227
+ 'F1' => 'Puerto Princesa',
3228
+ 'F2' => 'Quezon City',
3229
+ 'F3' => 'Roxas',
3230
+ 'F5' => 'San Carlos',
3231
+ 'F6' => 'San Jose',
3232
+ 'F7' => 'San Pablo',
3233
+ 'F8' => 'Silay',
3234
+ 'F9' => 'Surigao',
3235
+ 'G1' => 'Tacloban',
3236
+ 'G2' => 'Tagaytay',
3237
+ 'G3' => 'Tagbilaran',
3238
+ 'G4' => 'Tangub',
3239
+ 'G5' => 'Toledo',
3240
+ 'G6' => 'Trece Martires',
3241
+ 'P2' => 'Zamboanga',
3242
+ 'G8' => 'Aurora',
3243
+ 'H2' => 'Quezon',
3244
+ 'I6' => 'Compostela Valley',
3245
+ 'I7' => 'Davao del Norte',
3246
+ 'J4' => 'Himamaylan',
3247
+ 'J7' => 'Kalinga',
3248
+ 'K6' => 'Malaybalay',
3249
+ 'L9' => 'Passi',
3250
+ 'M5' => 'San Jose del Monte',
3251
+ 'M6' => 'San Juan',
3252
+ 'M8' => 'Santiago',
3253
+ 'M9' => 'Sarangani',
3254
+ 'N1' => 'Sipalay',
3255
+ ),
3256
+ 'PK' =>
3257
+ array (
3258
+ '01' => 'Federally Administered Tribal Areas',
3259
+ '02' => 'Balochistan',
3260
+ '03' => 'North-West Frontier',
3261
+ '04' => 'Punjab',
3262
+ '05' => 'Sindh',
3263
+ '06' => 'Azad Kashmir',
3264
+ '07' => 'Northern Areas',
3265
+ '08' => 'Islamabad',
3266
+ ),
3267
+ 'PL' =>
3268
+ array (
3269
+ 72 => 'Dolnoslaskie',
3270
+ 73 => 'Kujawsko-Pomorskie',
3271
+ 74 => 'Lodzkie',
3272
+ 75 => 'Lubelskie',
3273
+ 76 => 'Lubuskie',
3274
+ 77 => 'Malopolskie',
3275
+ 78 => 'Mazowieckie',
3276
+ 79 => 'Opolskie',
3277
+ 80 => 'Podkarpackie',
3278
+ 81 => 'Podlaskie',
3279
+ 82 => 'Pomorskie',
3280
+ 83 => 'Slaskie',
3281
+ 84 => 'Swietokrzyskie',
3282
+ 85 => 'Warminsko-Mazurskie',
3283
+ 86 => 'Wielkopolskie',
3284
+ 87 => 'Zachodniopomorskie',
3285
+ ),
3286
+ 'PS' =>
3287
+ array (
3288
+ 'GZ' => 'Gaza',
3289
+ 'WE' => 'West Bank',
3290
+ ),
3291
+ 'PT' =>
3292
+ array (
3293
+ '02' => 'Aveiro',
3294
+ '03' => 'Beja',
3295
+ '04' => 'Braga',
3296
+ '05' => 'Braganca',
3297
+ '06' => 'Castelo Branco',
3298
+ '07' => 'Coimbra',
3299
+ '08' => 'Evora',
3300
+ '09' => 'Faro',
3301
+ 10 => 'Madeira',
3302
+ 11 => 'Guarda',
3303
+ 13 => 'Leiria',
3304
+ 14 => 'Lisboa',
3305
+ 16 => 'Portalegre',
3306
+ 17 => 'Porto',
3307
+ 18 => 'Santarem',
3308
+ 19 => 'Setubal',
3309
+ 20 => 'Viana do Castelo',
3310
+ 21 => 'Vila Real',
3311
+ 22 => 'Viseu',
3312
+ 23 => 'Azores',
3313
+ ),
3314
+ 'PY' =>
3315
+ array (
3316
+ '01' => 'Alto Parana',
3317
+ '02' => 'Amambay',
3318
+ 24 => 'Boqueron',
3319
+ '04' => 'Caaguazu',
3320
+ '05' => 'Caazapa',
3321
+ '06' => 'Central',
3322
+ '07' => 'Concepcion',
3323
+ '08' => 'Cordillera',
3324
+ 10 => 'Guaira',
3325
+ 11 => 'Itapua',
3326
+ 12 => 'Misiones',
3327
+ 13 => 'Neembucu',
3328
+ 15 => 'Paraguari',
3329
+ 16 => 'Presidente Hayes',
3330
+ 17 => 'San Pedro',
3331
+ 19 => 'Canindeyu',
3332
+ 20 => 'Chaco',
3333
+ 21 => 'Nueva Asuncion',
3334
+ 23 => 'Alto Paraguay',
3335
+ ),
3336
+ 'QA' =>
3337
+ array (
3338
+ '01' => 'Ad Dawhah',
3339
+ '02' => 'Al Ghuwariyah',
3340
+ '03' => 'Al Jumaliyah',
3341
+ '04' => 'Al Khawr',
3342
+ '05' => 'Al Wakrah Municipality',
3343
+ '06' => 'Ar Rayyan',
3344
+ '08' => 'Madinat ach Shamal',
3345
+ '09' => 'Umm Salal',
3346
+ 10 => 'Al Wakrah',
3347
+ 11 => 'Jariyan al Batnah',
3348
+ 12 => 'Umm Sa\'id',
3349
+ ),
3350
+ 'RO' =>
3351
+ array (
3352
+ '01' => 'Alba',
3353
+ '02' => 'Arad',
3354
+ '03' => 'Arges',
3355
+ '04' => 'Bacau',
3356
+ '05' => 'Bihor',
3357
+ '06' => 'Bistrita-Nasaud',
3358
+ '07' => 'Botosani',
3359
+ '08' => 'Braila',
3360
+ '09' => 'Brasov',
3361
+ 10 => 'Bucuresti',
3362
+ 11 => 'Buzau',
3363
+ 12 => 'Caras-Severin',
3364
+ 13 => 'Cluj',
3365
+ 14 => 'Constanta',
3366
+ 15 => 'Covasna',
3367
+ 16 => 'Dambovita',
3368
+ 17 => 'Dolj',
3369
+ 18 => 'Galati',
3370
+ 19 => 'Gorj',
3371
+ 20 => 'Harghita',
3372
+ 21 => 'Hunedoara',
3373
+ 22 => 'Ialomita',
3374
+ 23 => 'Iasi',
3375
+ 25 => 'Maramures',
3376
+ 26 => 'Mehedinti',
3377
+ 27 => 'Mures',
3378
+ 28 => 'Neamt',
3379
+ 29 => 'Olt',
3380
+ 30 => 'Prahova',
3381
+ 31 => 'Salaj',
3382
+ 32 => 'Satu Mare',
3383
+ 33 => 'Sibiu',
3384
+ 34 => 'Suceava',
3385
+ 35 => 'Teleorman',
3386
+ 36 => 'Timis',
3387
+ 37 => 'Tulcea',
3388
+ 38 => 'Vaslui',
3389
+ 39 => 'Valcea',
3390
+ 40 => 'Vrancea',
3391
+ 41 => 'Calarasi',
3392
+ 42 => 'Giurgiu',
3393
+ 43 => 'Ilfov',
3394
+ ),
3395
+ 'RS' =>
3396
+ array (
3397
+ '01' => 'Kosovo',
3398
+ '02' => 'Vojvodina',
3399
+ ),
3400
+ 'RU' =>
3401
+ array (
3402
+ '01' => 'Adygeya',
3403
+ '02' => 'Aginsky Buryatsky AO',
3404
+ '03' => 'Gorno-Altay',
3405
+ '04' => 'Altaisky krai',
3406
+ '05' => 'Amur',
3407
+ '06' => 'Arkhangel\'sk',
3408
+ '07' => 'Astrakhan\'',
3409
+ '08' => 'Bashkortostan',
3410
+ '09' => 'Belgorod',
3411
+ 10 => 'Bryansk',
3412
+ 11 => 'Buryat',
3413
+ 12 => 'Chechnya',
3414
+ 13 => 'Chelyabinsk',
3415
+ 14 => 'Chita',
3416
+ 15 => 'Chukot',
3417
+ 16 => 'Chuvashia',
3418
+ 17 => 'Dagestan',
3419
+ 18 => 'Evenk',
3420
+ 19 => 'Ingush',
3421
+ 20 => 'Irkutsk',
3422
+ 21 => 'Ivanovo',
3423
+ 22 => 'Kabardin-Balkar',
3424
+ 23 => 'Kaliningrad',
3425
+ 24 => 'Kalmyk',
3426
+ 25 => 'Kaluga',
3427
+ 26 => 'Kamchatka',
3428
+ 27 => 'Karachay-Cherkess',
3429
+ 28 => 'Karelia',
3430
+ 29 => 'Kemerovo',
3431
+ 30 => 'Khabarovsk',
3432
+ 31 => 'Khakass',
3433
+ 32 => 'Khanty-Mansiy',
3434
+ 33 => 'Kirov',
3435
+ 34 => 'Komi',
3436
+ 36 => 'Koryak',
3437
+ 37 => 'Kostroma',
3438
+ 38 => 'Krasnodar',
3439
+ 39 => 'Krasnoyarsk',
3440
+ 40 => 'Kurgan',
3441
+ 41 => 'Kursk',
3442
+ 42 => 'Leningrad',
3443
+ 43 => 'Lipetsk',
3444
+ 44 => 'Magadan',
3445
+ 45 => 'Mariy-El',
3446
+ 46 => 'Mordovia',
3447
+ 47 => 'Moskva',
3448
+ 48 => 'Moscow City',
3449
+ 49 => 'Murmansk',
3450
+ 50 => 'Nenets',
3451
+ 51 => 'Nizhegorod',
3452
+ 52 => 'Novgorod',
3453
+ 53 => 'Novosibirsk',
3454
+ 54 => 'Omsk',
3455
+ 55 => 'Orenburg',
3456
+ 56 => 'Orel',
3457
+ 57 => 'Penza',
3458
+ 58 => 'Perm\'',
3459
+ 59 => 'Primor\'ye',
3460
+ 60 => 'Pskov',
3461
+ 61 => 'Rostov',
3462
+ 62 => 'Ryazan\'',
3463
+ 63 => 'Sakha',
3464
+ 64 => 'Sakhalin',
3465
+ 65 => 'Samara',
3466
+ 66 => 'Saint Petersburg City',
3467
+ 67 => 'Saratov',
3468
+ 68 => 'North Ossetia',
3469
+ 69 => 'Smolensk',
3470
+ 70 => 'Stavropol\'',
3471
+ 71 => 'Sverdlovsk',
3472
+ 72 => 'Tambovskaya oblast',
3473
+ 73 => 'Tatarstan',
3474
+ 74 => 'Taymyr',
3475
+ 75 => 'Tomsk',
3476
+ 76 => 'Tula',
3477
+ 77 => 'Tver\'',
3478
+ 78 => 'Tyumen\'',
3479
+ 79 => 'Tuva',
3480
+ 80 => 'Udmurt',
3481
+ 81 => 'Ul\'yanovsk',
3482
+ 83 => 'Vladimir',
3483
+ 84 => 'Volgograd',
3484
+ 85 => 'Vologda',
3485
+ 86 => 'Voronezh',
3486
+ 87 => 'Yamal-Nenets',
3487
+ 88 => 'Yaroslavl\'',
3488
+ 89 => 'Yevrey',
3489
+ 90 => 'Permskiy Kray',
3490
+ 91 => 'Krasnoyarskiy Kray',
3491
+ 92 => 'Kamchatskiy Kray',
3492
+ 93 => 'Zabaykal\'skiy Kray',
3493
+ ),
3494
+ 'RW' =>
3495
+ array (
3496
+ '01' => 'Butare',
3497
+ '06' => 'Gitarama',
3498
+ '07' => 'Kibungo',
3499
+ 12 => 'Kigali',
3500
+ 11 => 'Est',
3501
+ 13 => 'Nord',
3502
+ 14 => 'Ouest',
3503
+ 15 => 'Sud',
3504
+ ),
3505
+ 'SA' =>
3506
+ array (
3507
+ '02' => 'Al Bahah',
3508
+ '05' => 'Al Madinah',
3509
+ '06' => 'Ash Sharqiyah',
3510
+ '08' => 'Al Qasim',
3511
+ 10 => 'Ar Riyad',
3512
+ 11 => 'Asir Province',
3513
+ 13 => 'Ha\'il',
3514
+ 14 => 'Makkah',
3515
+ 15 => 'Al Hudud ash Shamaliyah',
3516
+ 16 => 'Najran',
3517
+ 17 => 'Jizan',
3518
+ 19 => 'Tabuk',
3519
+ 20 => 'Al Jawf',
3520
+ ),
3521
+ 'SB' =>
3522
+ array (
3523
+ '03' => 'Malaita',
3524
+ '06' => 'Guadalcanal',
3525
+ '07' => 'Isabel',
3526
+ '08' => 'Makira',
3527
+ '09' => 'Temotu',
3528
+ 10 => 'Central',
3529
+ 11 => 'Western',
3530
+ 12 => 'Choiseul',
3531
+ 13 => 'Rennell and Bellona',
3532
+ ),
3533
+ 'SC' =>
3534
+ array (
3535
+ '01' => 'Anse aux Pins',
3536
+ '02' => 'Anse Boileau',
3537
+ '03' => 'Anse Etoile',
3538
+ '04' => 'Anse Louis',
3539
+ '05' => 'Anse Royale',
3540
+ '06' => 'Baie Lazare',
3541
+ '07' => 'Baie Sainte Anne',
3542
+ '08' => 'Beau Vallon',
3543
+ '09' => 'Bel Air',
3544
+ 10 => 'Bel Ombre',
3545
+ 11 => 'Cascade',
3546
+ 12 => 'Glacis',
3547
+ 14 => 'Grand\' Anse',
3548
+ 15 => 'La Digue',
3549
+ 16 => 'La Riviere Anglaise',
3550
+ 17 => 'Mont Buxton',
3551
+ 18 => 'Mont Fleuri',
3552
+ 19 => 'Plaisance',
3553
+ 20 => 'Pointe La Rue',
3554
+ 21 => 'Port Glaud',
3555
+ 22 => 'Saint Louis',
3556
+ 23 => 'Takamaka',
3557
+ ),
3558
+ 'SD' =>
3559
+ array (
3560
+ 27 => 'Al Wusta',
3561
+ 28 => 'Al Istiwa\'iyah',
3562
+ 29 => 'Al Khartum',
3563
+ 30 => 'Ash Shamaliyah',
3564
+ 31 => 'Ash Sharqiyah',
3565
+ 32 => 'Bahr al Ghazal',
3566
+ 33 => 'Darfur',
3567
+ 34 => 'Kurdufan',
3568
+ 35 => 'Upper Nile',
3569
+ 40 => 'Al Wahadah State',
3570
+ 44 => 'Central Equatoria State',
3571
+ 49 => 'Southern Darfur',
3572
+ 50 => 'Southern Kordofan',
3573
+ 52 => 'Kassala',
3574
+ 55 => 'Northern Darfur',
3575
+ ),
3576
+ 'SE' =>
3577
+ array (
3578
+ '02' => 'Blekinge Lan',
3579
+ '03' => 'Gavleborgs Lan',
3580
+ '05' => 'Gotlands Lan',
3581
+ '06' => 'Hallands Lan',
3582
+ '07' => 'Jamtlands Lan',
3583
+ '08' => 'Jonkopings Lan',
3584
+ '09' => 'Kalmar Lan',
3585
+ 10 => 'Dalarnas Lan',
3586
+ 12 => 'Kronobergs Lan',
3587
+ 14 => 'Norrbottens Lan',
3588
+ 15 => 'Orebro Lan',
3589
+ 16 => 'Ostergotlands Lan',
3590
+ 18 => 'Sodermanlands Lan',
3591
+ 21 => 'Uppsala Lan',
3592
+ 22 => 'Varmlands Lan',
3593
+ 23 => 'Vasterbottens Lan',
3594
+ 24 => 'Vasternorrlands Lan',
3595
+ 25 => 'Vastmanlands Lan',
3596
+ 26 => 'Stockholms Lan',
3597
+ 27 => 'Skane Lan',
3598
+ 28 => 'Vastra Gotaland',
3599
+ ),
3600
+ 'SH' =>
3601
+ array (
3602
+ '01' => 'Ascension',
3603
+ '02' => 'Saint Helena',
3604
+ '03' => 'Tristan da Cunha',
3605
+ ),
3606
+ 'SI' =>
3607
+ array (
3608
+ '01' => 'Ajdovscina Commune',
3609
+ '02' => 'Beltinci Commune',
3610
+ '03' => 'Bled Commune',
3611
+ '04' => 'Bohinj Commune',
3612
+ '05' => 'Borovnica Commune',
3613
+ '06' => 'Bovec Commune',
3614
+ '07' => 'Brda Commune',
3615
+ '08' => 'Brezice Commune',
3616
+ '09' => 'Brezovica Commune',
3617
+ 11 => 'Celje Commune',
3618
+ 12 => 'Cerklje na Gorenjskem Commune',
3619
+ 13 => 'Cerknica Commune',
3620
+ 14 => 'Cerkno Commune',
3621
+ 15 => 'Crensovci Commune',
3622
+ 16 => 'Crna na Koroskem Commune',
3623
+ 17 => 'Crnomelj Commune',
3624
+ 19 => 'Divaca Commune',
3625
+ 20 => 'Dobrepolje Commune',
3626
+ 22 => 'Dol pri Ljubljani Commune',
3627
+ 24 => 'Dornava Commune',
3628
+ 25 => 'Dravograd Commune',
3629
+ 26 => 'Duplek Commune',
3630
+ 27 => 'Gorenja vas-Poljane Commune',
3631
+ 28 => 'Gorisnica Commune',
3632
+ 29 => 'Gornja Radgona Commune',
3633
+ 30 => 'Gornji Grad Commune',
3634
+ 31 => 'Gornji Petrovci Commune',
3635
+ 32 => 'Grosuplje Commune',
3636
+ 34 => 'Hrastnik Commune',
3637
+ 35 => 'Hrpelje-Kozina Commune',
3638
+ 36 => 'Idrija Commune',
3639
+ 37 => 'Ig Commune',
3640
+ 38 => 'Ilirska Bistrica Commune',
3641
+ 39 => 'Ivancna Gorica Commune',
3642
+ 40 => 'Izola-Isola Commune',
3643
+ 42 => 'Jursinci Commune',
3644
+ 44 => 'Kanal Commune',
3645
+ 45 => 'Kidricevo Commune',
3646
+ 46 => 'Kobarid Commune',
3647
+ 47 => 'Kobilje Commune',
3648
+ 49 => 'Komen Commune',
3649
+ 50 => 'Koper-Capodistria Urban Commune',
3650
+ 51 => 'Kozje Commune',
3651
+ 52 => 'Kranj Commune',
3652
+ 53 => 'Kranjska Gora Commune',
3653
+ 54 => 'Krsko Commune',
3654
+ 55 => 'Kungota Commune',
3655
+ 57 => 'Lasko Commune',
3656
+ 61 => 'Ljubljana Urban Commune',
3657
+ 62 => 'Ljubno Commune',
3658
+ 64 => 'Logatec Commune',
3659
+ 66 => 'Loski Potok Commune',
3660
+ 68 => 'Lukovica Commune',
3661
+ 71 => 'Medvode Commune',
3662
+ 72 => 'Menges Commune',
3663
+ 73 => 'Metlika Commune',
3664
+ 74 => 'Mezica Commune',
3665
+ 76 => 'Mislinja Commune',
3666
+ 77 => 'Moravce Commune',
3667
+ 78 => 'Moravske Toplice Commune',
3668
+ 79 => 'Mozirje Commune',
3669
+ 80 => 'Murska Sobota Urban Commune',
3670
+ 81 => 'Muta Commune',
3671
+ 82 => 'Naklo Commune',
3672
+ 83 => 'Nazarje Commune',
3673
+ 84 => 'Nova Gorica Urban Commune',
3674
+ 86 => 'Odranci Commune',
3675
+ 87 => 'Ormoz Commune',
3676
+ 88 => 'Osilnica Commune',
3677
+ 89 => 'Pesnica Commune',
3678
+ 91 => 'Pivka Commune',
3679
+ 92 => 'Podcetrtek Commune',
3680
+ 94 => 'Postojna Commune',
3681
+ 97 => 'Puconci Commune',
3682
+ 98 => 'Race-Fram Commune',
3683
+ 99 => 'Radece Commune',
3684
+ 'A1' => 'Radenci Commune',
3685
+ 'A2' => 'Radlje ob Dravi Commune',
3686
+ 'A3' => 'Radovljica Commune',
3687
+ 'A6' => 'Rogasovci Commune',
3688
+ 'A7' => 'Rogaska Slatina Commune',
3689
+ 'A8' => 'Rogatec Commune',
3690
+ 'B1' => 'Semic Commune',
3691
+ 'B2' => 'Sencur Commune',
3692
+ 'B3' => 'Sentilj Commune',
3693
+ 'B4' => 'Sentjernej Commune',
3694
+ 'B6' => 'Sevnica Commune',
3695
+ 'B7' => 'Sezana Commune',
3696
+ 'B8' => 'Skocjan Commune',
3697
+ 'B9' => 'Skofja Loka Commune',
3698
+ 'C1' => 'Skofljica Commune',
3699
+ 'C2' => 'Slovenj Gradec Urban Commune',
3700
+ 'C4' => 'Slovenske Konjice Commune',
3701
+ 'C5' => 'Smarje pri Jelsah Commune',
3702
+ 'C6' => 'Smartno ob Paki Commune',
3703
+ 'C7' => 'Sostanj Commune',
3704
+ 'C8' => 'Starse Commune',
3705
+ 'C9' => 'Store Commune',
3706
+ 'D1' => 'Sveti Jurij Commune',
3707
+ 'D2' => 'Tolmin Commune',
3708
+ 'D3' => 'Trbovlje Commune',
3709
+ 'D4' => 'Trebnje Commune',
3710
+ 'D5' => 'Trzic Commune',
3711
+ 'D6' => 'Turnisce Commune',
3712
+ 'D7' => 'Velenje Urban Commune',
3713
+ 'D8' => 'Velike Lasce Commune',
3714
+ 'E1' => 'Vipava Commune',
3715
+ 'E2' => 'Vitanje Commune',
3716
+ 'E3' => 'Vodice Commune',
3717
+ 'E5' => 'Vrhnika Commune',
3718
+ 'E6' => 'Vuzenica Commune',
3719
+ 'E7' => 'Zagorje ob Savi Commune',
3720
+ 'E9' => 'Zavrc Commune',
3721
+ 'F1' => 'Zelezniki Commune',
3722
+ 'F2' => 'Ziri Commune',
3723
+ 'F3' => 'Zrece Commune',
3724
+ 'F4' => 'Benedikt Commune',
3725
+ 'F5' => 'Bistrica ob Sotli Commune',
3726
+ 'F6' => 'Bloke Commune',
3727
+ 'F7' => 'Braslovce Commune',
3728
+ 'F8' => 'Cankova Commune',
3729
+ 'F9' => 'Cerkvenjak Commune',
3730
+ 'G1' => 'Destrnik Commune',
3731
+ 'G2' => 'Dobje Commune',
3732
+ 'G3' => 'Dobrna Commune',
3733
+ 'G4' => 'Dobrova-Horjul-Polhov Gradec Commune',
3734
+ 'G5' => 'Dobrovnik-Dobronak Commune',
3735
+ 'G6' => 'Dolenjske Toplice Commune',
3736
+ 'G7' => 'Domzale Commune',
3737
+ 'G8' => 'Grad Commune',
3738
+ 'G9' => 'Hajdina Commune',
3739
+ 'H1' => 'Hoce-Slivnica Commune',
3740
+ 'H2' => 'Hodos-Hodos Commune',
3741
+ 'H3' => 'Horjul Commune',
3742
+ 'H4' => 'Jesenice Commune',
3743
+ 'H5' => 'Jezersko Commune',
3744
+ 'H6' => 'Kamnik Commune',
3745
+ 'H7' => 'Kocevje Commune',
3746
+ 'H8' => 'Komenda Commune',
3747
+ 'H9' => 'Kostel Commune',
3748
+ 'I1' => 'Krizevci Commune',
3749
+ 'I2' => 'Kuzma Commune',
3750
+ 'I3' => 'Lenart Commune',
3751
+ 'I4' => 'Lendava-Lendva Commune',
3752
+ 'I5' => 'Litija Commune',
3753
+ 'I6' => 'Ljutomer Commune',
3754
+ 'I7' => 'Loska Dolina Commune',
3755
+ 'I8' => 'Lovrenc na Pohorju Commune',
3756
+ 'I9' => 'Luce Commune',
3757
+ 'J1' => 'Majsperk Commune',
3758
+ 'J2' => 'Maribor Commune',
3759
+ 'J3' => 'Markovci Commune',
3760
+ 'J4' => 'Miklavz na Dravskem polju Commune',
3761
+ 'J5' => 'Miren-Kostanjevica Commune',
3762
+ 'J6' => 'Mirna Pec Commune',
3763
+ 'J7' => 'Novo mesto Urban Commune',
3764
+ 'J8' => 'Oplotnica Commune',
3765
+ 'J9' => 'Piran-Pirano Commune',
3766
+ 'K1' => 'Podlehnik Commune',
3767
+ 'K2' => 'Podvelka Commune',
3768
+ 'K3' => 'Polzela Commune',
3769
+ 'K4' => 'Prebold Commune',
3770
+ 'K5' => 'Preddvor Commune',
3771
+ 'K6' => 'Prevalje Commune',
3772
+ 'K7' => 'Ptuj Urban Commune',
3773
+ 'K8' => 'Ravne na Koroskem Commune',
3774
+ 'K9' => 'Razkrizje Commune',
3775
+ 'L1' => 'Ribnica Commune',
3776
+ 'L2' => 'Ribnica na Pohorju Commune',
3777
+ 'L3' => 'Ruse Commune',
3778
+ 'L4' => 'Salovci Commune',
3779
+ 'L5' => 'Selnica ob Dravi Commune',
3780
+ 'L6' => 'Sempeter-Vrtojba Commune',
3781
+ 'L7' => 'Sentjur pri Celju Commune',
3782
+ 'L8' => 'Slovenska Bistrica Commune',
3783
+ 'L9' => 'Smartno pri Litiji Commune',
3784
+ 'M1' => 'Sodrazica Commune',
3785
+ 'M2' => 'Solcava Commune',
3786
+ 'M3' => 'Sveta Ana Commune',
3787
+ 'M4' => 'Sveti Andraz v Slovenskih goricah Commune',
3788
+ 'M5' => 'Tabor Commune',
3789
+ 'M6' => 'Tisina Commune',
3790
+ 'M7' => 'Trnovska vas Commune',
3791
+ 'M8' => 'Trzin Commune',
3792
+ 'M9' => 'Velika Polana Commune',
3793
+ 'N1' => 'Verzej Commune',
3794
+ 'N2' => 'Videm Commune',
3795
+ 'N3' => 'Vojnik Commune',
3796
+ 'N4' => 'Vransko Commune',
3797
+ 'N5' => 'Zalec Commune',
3798
+ 'N6' => 'Zetale Commune',
3799
+ 'N7' => 'Zirovnica Commune',
3800
+ 'N8' => 'Zuzemberk Commune',
3801
+ 'N9' => 'Apace Commune',
3802
+ 'O1' => 'Cirkulane Commune',
3803
+ ),
3804
+ 'SK' =>
3805
+ array (
3806
+ '01' => 'Banska Bystrica',
3807
+ '02' => 'Bratislava',
3808
+ '03' => 'Kosice',
3809
+ '04' => 'Nitra',
3810
+ '05' => 'Presov',
3811
+ '06' => 'Trencin',
3812
+ '07' => 'Trnava',
3813
+ '08' => 'Zilina',
3814
+ ),
3815
+ 'SL' =>
3816
+ array (
3817
+ '01' => 'Eastern',
3818
+ '02' => 'Northern',
3819
+ '03' => 'Southern',
3820
+ '04' => 'Western Area',
3821
+ ),
3822
+ 'SM' =>
3823
+ array (
3824
+ '01' => 'Acquaviva',
3825
+ '02' => 'Chiesanuova',
3826
+ '03' => 'Domagnano',
3827
+ '04' => 'Faetano',
3828
+ '05' => 'Fiorentino',
3829
+ '06' => 'Borgo Maggiore',
3830
+ '07' => 'San Marino',
3831
+ '08' => 'Monte Giardino',
3832
+ '09' => 'Serravalle',
3833
+ ),
3834
+ 'SN' =>
3835
+ array (
3836
+ '01' => 'Dakar',
3837
+ '03' => 'Diourbel',
3838
+ '05' => 'Tambacounda',
3839
+ '07' => 'Thies',
3840
+ '09' => 'Fatick',
3841
+ 10 => 'Kaolack',
3842
+ 11 => 'Kolda',
3843
+ 12 => 'Ziguinchor',
3844
+ 13 => 'Louga',
3845
+ 14 => 'Saint-Louis',
3846
+ 15 => 'Matam',
3847
+ ),
3848
+ 'SO' =>
3849
+ array (
3850
+ '01' => 'Bakool',
3851
+ '02' => 'Banaadir',
3852
+ '03' => 'Bari',
3853
+ '04' => 'Bay',
3854
+ '05' => 'Galguduud',
3855
+ '06' => 'Gedo',
3856
+ '07' => 'Hiiraan',
3857
+ '08' => 'Jubbada Dhexe',
3858
+ '09' => 'Jubbada Hoose',
3859
+ 10 => 'Mudug',
3860
+ 18 => 'Nugaal',
3861
+ 12 => 'Sanaag',
3862
+ 13 => 'Shabeellaha Dhexe',
3863
+ 14 => 'Shabeellaha Hoose',
3864
+ 20 => 'Woqooyi Galbeed',
3865
+ 19 => 'Togdheer',
3866
+ 21 => 'Awdal',
3867
+ 22 => 'Sool',
3868
+ ),
3869
+ 'SR' =>
3870
+ array (
3871
+ 10 => 'Brokopondo',
3872
+ 11 => 'Commewijne',
3873
+ 12 => 'Coronie',
3874
+ 13 => 'Marowijne',
3875
+ 14 => 'Nickerie',
3876
+ 15 => 'Para',
3877
+ 16 => 'Paramaribo',
3878
+ 17 => 'Saramacca',
3879
+ 18 => 'Sipaliwini',
3880
+ 19 => 'Wanica',
3881
+ ),
3882
+ 'SS' =>
3883
+ array (
3884
+ '01' => 'Central Equatoria',
3885
+ '02' => 'Eastern Equatoria',
3886
+ '03' => 'Jonglei',
3887
+ '04' => 'Lakes',
3888
+ '05' => 'Northern Bahr el Ghazal',
3889
+ '06' => 'Unity',
3890
+ '07' => 'Upper Nile',
3891
+ '08' => 'Warrap',
3892
+ '09' => 'Western Bahr el Ghazal',
3893
+ 10 => 'Western Equatoria',
3894
+ ),
3895
+ 'ST' =>
3896
+ array (
3897
+ '01' => 'Principe',
3898
+ '02' => 'Sao Tome',
3899
+ ),
3900
+ 'SV' =>
3901
+ array (
3902
+ '01' => 'Ahuachapan',
3903
+ '02' => 'Cabanas',
3904
+ '03' => 'Chalatenango',
3905
+ '04' => 'Cuscatlan',
3906
+ '05' => 'La Libertad',
3907
+ '06' => 'La Paz',
3908
+ '07' => 'La Union',
3909
+ '08' => 'Morazan',
3910
+ '09' => 'San Miguel',
3911
+ 10 => 'San Salvador',
3912
+ 11 => 'Santa Ana',
3913
+ 12 => 'San Vicente',
3914
+ 13 => 'Sonsonate',
3915
+ 14 => 'Usulutan',
3916
+ ),
3917
+ 'SY' =>
3918
+ array (
3919
+ '01' => 'Al Hasakah',
3920
+ '02' => 'Al Ladhiqiyah',
3921
+ '03' => 'Al Qunaytirah',
3922
+ '04' => 'Ar Raqqah',
3923
+ '05' => 'As Suwayda\'',
3924
+ '06' => 'Dar',
3925
+ '07' => 'Dayr az Zawr',
3926
+ '08' => 'Rif Dimashq',
3927
+ '09' => 'Halab',
3928
+ 10 => 'Hamah',
3929
+ 11 => 'Hims',
3930
+ 12 => 'Idlib',
3931
+ 13 => 'Dimashq',
3932
+ 14 => 'Tartus',
3933
+ ),
3934
+ 'SZ' =>
3935
+ array (
3936
+ '01' => 'Hhohho',
3937
+ '02' => 'Lubombo',
3938
+ '03' => 'Manzini',
3939
+ '04' => 'Shiselweni',
3940
+ '05' => 'Praslin',
3941
+ ),
3942
+ 'TD' =>
3943
+ array (
3944
+ '01' => 'Batha',
3945
+ '02' => 'Biltine',
3946
+ '03' => 'Borkou-Ennedi-Tibesti',
3947
+ '04' => 'Chari-Baguirmi',
3948
+ '05' => 'Guera',
3949
+ '06' => 'Kanem',
3950
+ '07' => 'Lac',
3951
+ '08' => 'Logone Occidental',
3952
+ '09' => 'Logone Oriental',
3953
+ 10 => 'Mayo-Kebbi',
3954
+ 11 => 'Moyen-Chari',
3955
+ 12 => 'Ouaddai',
3956
+ 13 => 'Salamat',
3957
+ 14 => 'Tandjile',
3958
+ ),
3959
+ 'TG' =>
3960
+ array (
3961
+ 22 => 'Centrale',
3962
+ 23 => 'Kara',
3963
+ 24 => 'Maritime',
3964
+ 25 => 'Plateaux',
3965
+ 26 => 'Savanes',
3966
+ ),
3967
+ 'TH' =>
3968
+ array (
3969
+ '01' => 'Mae Hong Son',
3970
+ '02' => 'Chiang Mai',
3971
+ '03' => 'Chiang Rai',
3972
+ '04' => 'Nan',
3973
+ '05' => 'Lamphun',
3974
+ '06' => 'Lampang',
3975
+ '07' => 'Phrae',
3976
+ '08' => 'Tak',
3977
+ '09' => 'Sukhothai',
3978
+ 10 => 'Uttaradit',
3979
+ 11 => 'Kamphaeng Phet',
3980
+ 12 => 'Phitsanulok',
3981
+ 13 => 'Phichit',
3982
+ 14 => 'Phetchabun',
3983
+ 15 => 'Uthai Thani',
3984
+ 16 => 'Nakhon Sawan',
3985
+ 17 => 'Nong Khai',
3986
+ 18 => 'Loei',
3987
+ 20 => 'Sakon Nakhon',
3988
+ 73 => 'Nakhon Phanom',
3989
+ 22 => 'Khon Kaen',
3990
+ 23 => 'Kalasin',
3991
+ 24 => 'Maha Sarakham',
3992
+ 25 => 'Roi Et',
3993
+ 26 => 'Chaiyaphum',
3994
+ 27 => 'Nakhon Ratchasima',
3995
+ 28 => 'Buriram',
3996
+ 29 => 'Surin',
3997
+ 30 => 'Sisaket',
3998
+ 31 => 'Narathiwat',
3999
+ 32 => 'Chai Nat',
4000
+ 33 => 'Sing Buri',
4001
+ 34 => 'Lop Buri',
4002
+ 35 => 'Ang Thong',
4003
+ 36 => 'Phra Nakhon Si Ayutthaya',
4004
+ 37 => 'Saraburi',
4005
+ 38 => 'Nonthaburi',
4006
+ 39 => 'Pathum Thani',
4007
+ 40 => 'Krung Thep',
4008
+ 41 => 'Phayao',
4009
+ 42 => 'Samut Prakan',
4010
+ 43 => 'Nakhon Nayok',
4011
+ 44 => 'Chachoengsao',
4012
+ 74 => 'Prachin Buri',
4013
+ 46 => 'Chon Buri',
4014
+ 47 => 'Rayong',
4015
+ 48 => 'Chanthaburi',
4016
+ 49 => 'Trat',
4017
+ 50 => 'Kanchanaburi',
4018
+ 51 => 'Suphan Buri',
4019
+ 52 => 'Ratchaburi',
4020
+ 53 => 'Nakhon Pathom',
4021
+ 54 => 'Samut Songkhram',
4022
+ 55 => 'Samut Sakhon',
4023
+ 56 => 'Phetchaburi',
4024
+ 57 => 'Prachuap Khiri Khan',
4025
+ 58 => 'Chumphon',
4026
+ 59 => 'Ranong',
4027
+ 60 => 'Surat Thani',
4028
+ 61 => 'Phangnga',
4029
+ 62 => 'Phuket',
4030
+ 63 => 'Krabi',
4031
+ 64 => 'Nakhon Si Thammarat',
4032
+ 65 => 'Trang',
4033
+ 66 => 'Phatthalung',
4034
+ 67 => 'Satun',
4035
+ 68 => 'Songkhla',
4036
+ 69 => 'Pattani',
4037
+ 70 => 'Yala',
4038
+ 75 => 'Ubon Ratchathani',
4039
+ 72 => 'Yasothon',
4040
+ 76 => 'Udon Thani',
4041
+ 77 => 'Amnat Charoen',
4042
+ 78 => 'Mukdahan',
4043
+ 79 => 'Nong Bua Lamphu',
4044
+ 80 => 'Sa Kaeo',
4045
+ 81 => 'Bueng Kan',
4046
+ ),
4047
+ 'TJ' =>
4048
+ array (
4049
+ '01' => 'Kuhistoni Badakhshon',
4050
+ '02' => 'Khatlon',
4051
+ '03' => 'Sughd',
4052
+ ),
4053
+ 'TL' =>
4054
+ array (
4055
+ '06' => 'Dili',
4056
+ ),
4057
+ 'TM' =>
4058
+ array (
4059
+ '01' => 'Ahal',
4060
+ '02' => 'Balkan',
4061
+ '03' => 'Dashoguz',
4062
+ '04' => 'Lebap',
4063
+ '05' => 'Mary',
4064
+ ),
4065
+ 'TN' =>
4066
+ array (
4067
+ '02' => 'Kasserine',
4068
+ '03' => 'Kairouan',
4069
+ '06' => 'Jendouba',
4070
+ 10 => 'Qafsah',
4071
+ 14 => 'El Kef',
4072
+ 15 => 'Al Mahdia',
4073
+ 16 => 'Al Munastir',
4074
+ 17 => 'Bajah',
4075
+ 18 => 'Bizerte',
4076
+ 19 => 'Nabeul',
4077
+ 22 => 'Siliana',
4078
+ 23 => 'Sousse',
4079
+ 27 => 'Ben Arous',
4080
+ 28 => 'Madanin',
4081
+ 29 => 'Gabes',
4082
+ 31 => 'Kebili',
4083
+ 32 => 'Sfax',
4084
+ 33 => 'Sidi Bou Zid',
4085
+ 34 => 'Tataouine',
4086
+ 35 => 'Tozeur',
4087
+ 36 => 'Tunis',
4088
+ 37 => 'Zaghouan',
4089
+ 38 => 'Aiana',
4090
+ 39 => 'Manouba',
4091
+ ),
4092
+ 'TO' =>
4093
+ array (
4094
+ '01' => 'Ha',
4095
+ '02' => 'Tongatapu',
4096
+ '03' => 'Vava',
4097
+ ),
4098
+ 'TR' =>
4099
+ array (
4100
+ '02' => 'Adiyaman',
4101
+ '03' => 'Afyonkarahisar',
4102
+ '04' => 'Agri',
4103
+ '05' => 'Amasya',
4104
+ '07' => 'Antalya',
4105
+ '08' => 'Artvin',
4106
+ '09' => 'Aydin',
4107
+ 10 => 'Balikesir',
4108
+ 11 => 'Bilecik',
4109
+ 12 => 'Bingol',
4110
+ 13 => 'Bitlis',
4111
+ 14 => 'Bolu',
4112
+ 15 => 'Burdur',
4113
+ 16 => 'Bursa',
4114
+ 17 => 'Canakkale',
4115
+ 19 => 'Corum',
4116
+ 20 => 'Denizli',
4117
+ 21 => 'Diyarbakir',
4118
+ 22 => 'Edirne',
4119
+ 23 => 'Elazig',
4120
+ 24 => 'Erzincan',
4121
+ 25 => 'Erzurum',
4122
+ 26 => 'Eskisehir',
4123
+ 28 => 'Giresun',
4124
+ 31 => 'Hatay',
4125
+ 32 => 'Mersin',
4126
+ 33 => 'Isparta',
4127
+ 34 => 'Istanbul',
4128
+ 35 => 'Izmir',
4129
+ 37 => 'Kastamonu',
4130
+ 38 => 'Kayseri',
4131
+ 39 => 'Kirklareli',
4132
+ 40 => 'Kirsehir',
4133
+ 41 => 'Kocaeli',
4134
+ 43 => 'Kutahya',
4135
+ 44 => 'Malatya',
4136
+ 45 => 'Manisa',
4137
+ 46 => 'Kahramanmaras',
4138
+ 48 => 'Mugla',
4139
+ 49 => 'Mus',
4140
+ 50 => 'Nevsehir',
4141
+ 52 => 'Ordu',
4142
+ 53 => 'Rize',
4143
+ 54 => 'Sakarya',
4144
+ 55 => 'Samsun',
4145
+ 57 => 'Sinop',
4146
+ 58 => 'Sivas',
4147
+ 59 => 'Tekirdag',
4148
+ 60 => 'Tokat',
4149
+ 61 => 'Trabzon',
4150
+ 62 => 'Tunceli',
4151
+ 63 => 'Sanliurfa',
4152
+ 64 => 'Usak',
4153
+ 65 => 'Van',
4154
+ 66 => 'Yozgat',
4155
+ 68 => 'Ankara',
4156
+ 69 => 'Gumushane',
4157
+ 70 => 'Hakkari',
4158
+ 71 => 'Konya',
4159
+ 72 => 'Mardin',
4160
+ 73 => 'Nigde',
4161
+ 74 => 'Siirt',
4162
+ 75 => 'Aksaray',
4163
+ 76 => 'Batman',
4164
+ 77 => 'Bayburt',
4165
+ 78 => 'Karaman',
4166
+ 79 => 'Kirikkale',
4167
+ 80 => 'Sirnak',
4168
+ 81 => 'Adana',
4169
+ 82 => 'Cankiri',
4170
+ 83 => 'Gaziantep',
4171
+ 84 => 'Kars',
4172
+ 85 => 'Zonguldak',
4173
+ 86 => 'Ardahan',
4174
+ 87 => 'Bartin',
4175
+ 88 => 'Igdir',
4176
+ 89 => 'Karabuk',
4177
+ 90 => 'Kilis',
4178
+ 91 => 'Osmaniye',
4179
+ 92 => 'Yalova',
4180
+ 93 => 'Duzce',
4181
+ ),
4182
+ 'TT' =>
4183
+ array (
4184
+ '01' => 'Arima',
4185
+ '02' => 'Caroni',
4186
+ '03' => 'Mayaro',
4187
+ '04' => 'Nariva',
4188
+ '05' => 'Port-of-Spain',
4189
+ '06' => 'Saint Andrew',
4190
+ '07' => 'Saint David',
4191
+ '08' => 'Saint George',
4192
+ '09' => 'Saint Patrick',
4193
+ 10 => 'San Fernando',
4194
+ 11 => 'Tobago',
4195
+ 12 => 'Victoria',
4196
+ ),
4197
+ 'TW' =>
4198
+ array (
4199
+ '01' => 'Fu-chien',
4200
+ '02' => 'Kao-hsiung',
4201
+ '03' => 'T\'ai-pei',
4202
+ '04' => 'T\'ai-wan',
4203
+ ),
4204
+ 'TZ' =>
4205
+ array (
4206
+ '02' => 'Pwani',
4207
+ '03' => 'Dodoma',
4208
+ '04' => 'Iringa',
4209
+ '05' => 'Kigoma',
4210
+ '06' => 'Kilimanjaro',
4211
+ '07' => 'Lindi',
4212
+ '08' => 'Mara',
4213
+ '09' => 'Mbeya',
4214
+ 10 => 'Morogoro',
4215
+ 11 => 'Mtwara',
4216
+ 12 => 'Mwanza',
4217
+ 13 => 'Pemba North',
4218
+ 14 => 'Ruvuma',
4219
+ 15 => 'Shinyanga',
4220
+ 16 => 'Singida',
4221
+ 17 => 'Tabora',
4222
+ 18 => 'Tanga',
4223
+ 19 => 'Kagera',
4224
+ 20 => 'Pemba South',
4225
+ 21 => 'Zanzibar Central',
4226
+ 22 => 'Zanzibar North',
4227
+ 23 => 'Dar es Salaam',
4228
+ 24 => 'Rukwa',
4229
+ 25 => 'Zanzibar Urban',
4230
+ 26 => 'Arusha',
4231
+ 27 => 'Manyara',
4232
+ ),
4233
+ 'UA' =>
4234
+ array (
4235
+ '01' => 'Cherkas\'ka Oblast\'',
4236
+ '02' => 'Chernihivs\'ka Oblast\'',
4237
+ '03' => 'Chernivets\'ka Oblast\'',
4238
+ '04' => 'Dnipropetrovs\'ka Oblast\'',
4239
+ '05' => 'Donets\'ka Oblast\'',
4240
+ '06' => 'Ivano-Frankivs\'ka Oblast\'',
4241
+ '07' => 'Kharkivs\'ka Oblast\'',
4242
+ '08' => 'Khersons\'ka Oblast\'',
4243
+ '09' => 'Khmel\'nyts\'ka Oblast\'',
4244
+ 10 => 'Kirovohrads\'ka Oblast\'',
4245
+ 11 => 'Krym',
4246
+ 12 => 'Kyyiv',
4247
+ 13 => 'Kyyivs\'ka Oblast\'',
4248
+ 14 => 'Luhans\'ka Oblast\'',
4249
+ 15 => 'L\'vivs\'ka Oblast\'',
4250
+ 16 => 'Mykolayivs\'ka Oblast\'',
4251
+ 17 => 'Odes\'ka Oblast\'',
4252
+ 18 => 'Poltavs\'ka Oblast\'',
4253
+ 19 => 'Rivnens\'ka Oblast\'',
4254
+ 20 => 'Sevastopol\'',
4255
+ 21 => 'Sums\'ka Oblast\'',
4256
+ 22 => 'Ternopil\'s\'ka Oblast\'',
4257
+ 23 => 'Vinnyts\'ka Oblast\'',
4258
+ 24 => 'Volyns\'ka Oblast\'',
4259
+ 25 => 'Zakarpats\'ka Oblast\'',
4260
+ 26 => 'Zaporiz\'ka Oblast\'',
4261
+ 27 => 'Zhytomyrs\'ka Oblast\'',
4262
+ ),
4263
+ 'UG' =>
4264
+ array (
4265
+ 26 => 'Apac',
4266
+ 28 => 'Bundibugyo',
4267
+ 29 => 'Bushenyi',
4268
+ 30 => 'Gulu',
4269
+ 31 => 'Hoima',
4270
+ 33 => 'Jinja',
4271
+ 36 => 'Kalangala',
4272
+ 37 => 'Kampala',
4273
+ 38 => 'Kamuli',
4274
+ 39 => 'Kapchorwa',
4275
+ 40 => 'Kasese',
4276
+ 41 => 'Kibale',
4277
+ 42 => 'Kiboga',
4278
+ 43 => 'Kisoro',
4279
+ 45 => 'Kotido',
4280
+ 46 => 'Kumi',
4281
+ 47 => 'Lira',
4282
+ 50 => 'Masindi',
4283
+ 52 => 'Mbarara',
4284
+ 56 => 'Mubende',
4285
+ 58 => 'Nebbi',
4286
+ 59 => 'Ntungamo',
4287
+ 60 => 'Pallisa',
4288
+ 61 => 'Rakai',
4289
+ 65 => 'Adjumani',
4290
+ 66 => 'Bugiri',
4291
+ 67 => 'Busia',
4292
+ 69 => 'Katakwi',
4293
+ 70 => 'Luwero',
4294
+ 71 => 'Masaka',
4295
+ 72 => 'Moyo',
4296
+ 73 => 'Nakasongola',
4297
+ 74 => 'Sembabule',
4298
+ 76 => 'Tororo',
4299
+ 77 => 'Arua',
4300
+ 78 => 'Iganga',
4301
+ 79 => 'Kabarole',
4302
+ 80 => 'Kaberamaido',
4303
+ 81 => 'Kamwenge',
4304
+ 82 => 'Kanungu',
4305
+ 83 => 'Kayunga',
4306
+ 84 => 'Kitgum',
4307
+ 85 => 'Kyenjojo',
4308
+ 86 => 'Mayuge',
4309
+ 87 => 'Mbale',
4310
+ 88 => 'Moroto',
4311
+ 89 => 'Mpigi',
4312
+ 90 => 'Mukono',
4313
+ 91 => 'Nakapiripirit',
4314
+ 92 => 'Pader',
4315
+ 93 => 'Rukungiri',
4316
+ 94 => 'Sironko',
4317
+ 95 => 'Soroti',
4318
+ 96 => 'Wakiso',
4319
+ 97 => 'Yumbe',
4320
+ ),
4321
+ 'US' =>
4322
+ array (
4323
+ 'AA' => 'Armed Forces Americas',
4324
+ 'AE' => 'Armed Forces Europe',
4325
+ 'AK' => 'Alaska',
4326
+ 'AL' => 'Alabama',
4327
+ 'AP' => 'Armed Forces Pacific',
4328
+ 'AR' => 'Arkansas',
4329
+ 'AS' => 'American Samoa',
4330
+ 'AZ' => 'Arizona',
4331
+ 'CA' => 'California',
4332
+ 'CO' => 'Colorado',
4333
+ 'CT' => 'Connecticut',
4334
+ 'DC' => 'District of Columbia',
4335
+ 'DE' => 'Delaware',
4336
+ 'FL' => 'Florida',
4337
+ 'FM' => 'Federated States of Micronesia',
4338
+ 'GA' => 'Georgia',
4339
+ 'GU' => 'Guam',
4340
+ 'HI' => 'Hawaii',
4341
+ 'IA' => 'Iowa',
4342
+ 'ID' => 'Idaho',
4343
+ 'IL' => 'Illinois',
4344
+ 'IN' => 'Indiana',
4345
+ 'KS' => 'Kansas',
4346
+ 'KY' => 'Kentucky',
4347
+ 'LA' => 'Louisiana',
4348
+ 'MA' => 'Massachusetts',
4349
+ 'MD' => 'Maryland',
4350
+ 'ME' => 'Maine',
4351
+ 'MH' => 'Marshall Islands',
4352
+ 'MI' => 'Michigan',
4353
+ 'MN' => 'Minnesota',
4354
+ 'MO' => 'Missouri',
4355
+ 'MP' => 'Northern Mariana Islands',
4356
+ 'MS' => 'Mississippi',
4357
+ 'MT' => 'Montana',
4358
+ 'NC' => 'North Carolina',
4359
+ 'ND' => 'North Dakota',
4360
+ 'NE' => 'Nebraska',
4361
+ 'NH' => 'New Hampshire',
4362
+ 'NJ' => 'New Jersey',
4363
+ 'NM' => 'New Mexico',
4364
+ 'NV' => 'Nevada',
4365
+ 'NY' => 'New York',
4366
+ 'OH' => 'Ohio',
4367
+ 'OK' => 'Oklahoma',
4368
+ 'OR' => 'Oregon',
4369
+ 'PA' => 'Pennsylvania',
4370
+ 'PW' => 'Palau',
4371
+ 'RI' => 'Rhode Island',
4372
+ 'SC' => 'South Carolina',
4373
+ 'SD' => 'South Dakota',
4374
+ 'TN' => 'Tennessee',
4375
+ 'TX' => 'Texas',
4376
+ 'UT' => 'Utah',
4377
+ 'VA' => 'Virginia',
4378
+ 'VI' => 'Virgin Islands',
4379
+ 'VT' => 'Vermont',
4380
+ 'WA' => 'Washington',
4381
+ 'WI' => 'Wisconsin',
4382
+ 'WV' => 'West Virginia',
4383
+ 'WY' => 'Wyoming',
4384
+ ),
4385
+ 'UY' =>
4386
+ array (
4387
+ '01' => 'Artigas',
4388
+ '02' => 'Canelones',
4389
+ '03' => 'Cerro Largo',
4390
+ '04' => 'Colonia',
4391
+ '05' => 'Durazno',
4392
+ '06' => 'Flores',
4393
+ '07' => 'Florida',
4394
+ '08' => 'Lavalleja',
4395
+ '09' => 'Maldonado',
4396
+ 10 => 'Montevideo',
4397
+ 11 => 'Paysandu',
4398
+ 12 => 'Rio Negro',
4399
+ 13 => 'Rivera',
4400
+ 14 => 'Rocha',
4401
+ 15 => 'Salto',
4402
+ 16 => 'San Jose',
4403
+ 17 => 'Soriano',
4404
+ 18 => 'Tacuarembo',
4405
+ 19 => 'Treinta y Tres',
4406
+ ),
4407
+ 'UZ' =>
4408
+ array (
4409
+ '01' => 'Andijon',
4410
+ '02' => 'Bukhoro',
4411
+ '03' => 'Farghona',
4412
+ '04' => 'Jizzakh',
4413
+ '05' => 'Khorazm',
4414
+ '06' => 'Namangan',
4415
+ '07' => 'Nawoiy',
4416
+ '08' => 'Qashqadaryo',
4417
+ '09' => 'Qoraqalpoghiston',
4418
+ 10 => 'Samarqand',
4419
+ 11 => 'Sirdaryo',
4420
+ 12 => 'Surkhondaryo',
4421
+ 14 => 'Toshkent',
4422
+ ),
4423
+ 'VC' =>
4424
+ array (
4425
+ '01' => 'Charlotte',
4426
+ '02' => 'Saint Andrew',
4427
+ '03' => 'Saint David',
4428
+ '04' => 'Saint George',
4429
+ '05' => 'Saint Patrick',
4430
+ '06' => 'Grenadines',
4431
+ ),
4432
+ 'VE' =>
4433
+ array (
4434
+ '01' => 'Amazonas',
4435
+ '02' => 'Anzoategui',
4436
+ '03' => 'Apure',
4437
+ '04' => 'Aragua',
4438
+ '05' => 'Barinas',
4439
+ '06' => 'Bolivar',
4440
+ '07' => 'Carabobo',
4441
+ '08' => 'Cojedes',
4442
+ '09' => 'Delta Amacuro',
4443
+ 11 => 'Falcon',
4444
+ 12 => 'Guarico',
4445
+ 13 => 'Lara',
4446
+ 14 => 'Merida',
4447
+ 15 => 'Miranda',
4448
+ 16 => 'Monagas',
4449
+ 17 => 'Nueva Esparta',
4450
+ 18 => 'Portuguesa',
4451
+ 19 => 'Sucre',
4452
+ 20 => 'Tachira',
4453
+ 21 => 'Trujillo',
4454
+ 22 => 'Yaracuy',
4455
+ 23 => 'Zulia',
4456
+ 24 => 'Dependencias Federales',
4457
+ 25 => 'Distrito Federal',
4458
+ 26 => 'Vargas',
4459
+ ),
4460
+ 'VN' =>
4461
+ array (
4462
+ '01' => 'An Giang',
4463
+ '03' => 'Ben Tre',
4464
+ '05' => 'Cao Bang',
4465
+ '09' => 'Dong Thap',
4466
+ 13 => 'Hai Phong',
4467
+ 20 => 'Ho Chi Minh',
4468
+ 21 => 'Kien Giang',
4469
+ 23 => 'Lam Dong',
4470
+ 24 => 'Long An',
4471
+ 30 => 'Quang Ninh',
4472
+ 32 => 'Son La',
4473
+ 33 => 'Tay Ninh',
4474
+ 34 => 'Thanh Hoa',
4475
+ 35 => 'Thai Binh',
4476
+ 37 => 'Tien Giang',
4477
+ 39 => 'Lang Son',
4478
+ 43 => 'Dong Nai',
4479
+ 44 => 'Ha Noi',
4480
+ 45 => 'Ba Ria-Vung Tau',
4481
+ 46 => 'Binh Dinh',
4482
+ 47 => 'Binh Thuan',
4483
+ 49 => 'Gia Lai',
4484
+ 50 => 'Ha Giang',
4485
+ 52 => 'Ha Tinh',
4486
+ 53 => 'Hoa Binh',
4487
+ 54 => 'Khanh Hoa',
4488
+ 55 => 'Kon Tum',
4489
+ 58 => 'Nghe An',
4490
+ 59 => 'Ninh Binh',
4491
+ 60 => 'Ninh Thuan',
4492
+ 61 => 'Phu Yen',
4493
+ 62 => 'Quang Binh',
4494
+ 63 => 'Quang Ngai',
4495
+ 64 => 'Quang Tri',
4496
+ 65 => 'Soc Trang',
4497
+ 66 => 'Thua Thien-Hue',
4498
+ 67 => 'Tra Vinh',
4499
+ 68 => 'Tuyen Quang',
4500
+ 69 => 'Vinh Long',
4501
+ 70 => 'Yen Bai',
4502
+ 71 => 'Bac Giang',
4503
+ 72 => 'Bac Kan',
4504
+ 73 => 'Bac Lieu',
4505
+ 74 => 'Bac Ninh',
4506
+ 75 => 'Binh Duong',
4507
+ 76 => 'Binh Phuoc',
4508
+ 77 => 'Ca Mau',
4509
+ 78 => 'Da Nang',
4510
+ 79 => 'Hai Duong',
4511
+ 80 => 'Ha Nam',
4512
+ 81 => 'Hung Yen',
4513
+ 82 => 'Nam Dinh',
4514
+ 83 => 'Phu Tho',
4515
+ 84 => 'Quang Nam',
4516
+ 85 => 'Thai Nguyen',
4517
+ 86 => 'Vinh Phuc',
4518
+ 87 => 'Can Tho',
4519
+ 88 => 'Dac Lak',
4520
+ 89 => 'Lai Chau',
4521
+ 90 => 'Lao Cai',
4522
+ 91 => 'Dak Nong',
4523
+ 92 => 'Dien Bien',
4524
+ 93 => 'Hau Giang',
4525
+ ),
4526
+ 'VU' =>
4527
+ array (
4528
+ '05' => 'Ambrym',
4529
+ '06' => 'Aoba',
4530
+ '07' => 'Torba',
4531
+ '08' => 'Efate',
4532
+ '09' => 'Epi',
4533
+ 10 => 'Malakula',
4534
+ 11 => 'Paama',
4535
+ 12 => 'Pentecote',
4536
+ 13 => 'Sanma',
4537
+ 14 => 'Shepherd',
4538
+ 15 => 'Tafea',
4539
+ 16 => 'Malampa',
4540
+ 17 => 'Penama',
4541
+ 18 => 'Shefa',
4542
+ ),
4543
+ 'WS' =>
4544
+ array (
4545
+ '02' => 'Aiga-i-le-Tai',
4546
+ '03' => 'Atua',
4547
+ '04' => 'Fa',
4548
+ '05' => 'Gaga',
4549
+ '06' => 'Va',
4550
+ '07' => 'Gagaifomauga',
4551
+ '08' => 'Palauli',
4552
+ '09' => 'Satupa',
4553
+ 10 => 'Tuamasaga',
4554
+ 11 => 'Vaisigano',
4555
+ ),
4556
+ 'YE' =>
4557
+ array (
4558
+ '01' => 'Abyan',
4559
+ '02' => 'Adan',
4560
+ '03' => 'Al Mahrah',
4561
+ '04' => 'Hadramawt',
4562
+ '05' => 'Shabwah',
4563
+ 24 => 'Lahij',
4564
+ 20 => 'Al Bayda\'',
4565
+ '08' => 'Al Hudaydah',
4566
+ 21 => 'Al Jawf',
4567
+ 10 => 'Al Mahwit',
4568
+ 11 => 'Dhamar',
4569
+ 22 => 'Hajjah',
4570
+ 23 => 'Ibb',
4571
+ 14 => 'Ma\'rib',
4572
+ 15 => 'Sa\'dah',
4573
+ 16 => 'San\'a\'',
4574
+ 25 => 'Taizz',
4575
+ 18 => 'Ad Dali',
4576
+ 19 => 'Amran',
4577
+ ),
4578
+ 'ZA' =>
4579
+ array (
4580
+ '01' => 'North-Western Province',
4581
+ '02' => 'KwaZulu-Natal',
4582
+ '03' => 'Free State',
4583
+ '05' => 'Eastern Cape',
4584
+ '06' => 'Gauteng',
4585
+ '07' => 'Mpumalanga',
4586
+ '08' => 'Northern Cape',
4587
+ '09' => 'Limpopo',
4588
+ 10 => 'North-West',
4589
+ 11 => 'Western Cape',
4590
+ ),
4591
+ 'ZM' =>
4592
+ array (
4593
+ '01' => 'Western',
4594
+ '02' => 'Central',
4595
+ '03' => 'Eastern',
4596
+ '04' => 'Luapula',
4597
+ '05' => 'Northern',
4598
+ '06' => 'North-Western',
4599
+ '07' => 'Southern',
4600
+ '08' => 'Copperbelt',
4601
+ '09' => 'Lusaka',
4602
+ ),
4603
+ 'ZW' =>
4604
+ array (
4605
+ '01' => 'Manicaland',
4606
+ '02' => 'Midlands',
4607
+ '03' => 'Mashonaland Central',
4608
+ '04' => 'Mashonaland East',
4609
+ '05' => 'Mashonaland West',
4610
+ '06' => 'Matabeleland North',
4611
+ '07' => 'Matabeleland South',
4612
+ '08' => 'Masvingo',
4613
+ '09' => 'Bulawayo',
4614
+ 10 => 'Harare',
4615
+ ),
4616
+ );
lib/GeoLock/timezone.php ADDED
@@ -0,0 +1,2249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * GeoLock extension
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * @category CP
13
+ * @package CP_GeoLock
14
+ * @author Commercepundit<magento@commercepundit.com>
15
+ */
16
+ function get_time_zone($country, $region)
17
+ {
18
+ switch ($country) {
19
+ case "US":
20
+ switch ($region) {
21
+ case "AL":
22
+ $timezone = "America/Chicago";
23
+ break;
24
+ case "AK":
25
+ $timezone = "America/Anchorage";
26
+ break;
27
+ case "AZ":
28
+ $timezone = "America/Phoenix";
29
+ break;
30
+ case "AR":
31
+ $timezone = "America/Chicago";
32
+ break;
33
+ case "CA":
34
+ $timezone = "America/Los_Angeles";
35
+ break;
36
+ case "CO":
37
+ $timezone = "America/Denver";
38
+ break;
39
+ case "CT":
40
+ $timezone = "America/New_York";
41
+ break;
42
+ case "DE":
43
+ $timezone = "America/New_York";
44
+ break;
45
+ case "DC":
46
+ $timezone = "America/New_York";
47
+ break;
48
+ case "FL":
49
+ $timezone = "America/New_York";
50
+ break;
51
+ case "GA":
52
+ $timezone = "America/New_York";
53
+ break;
54
+ case "HI":
55
+ $timezone = "Pacific/Honolulu";
56
+ break;
57
+ case "ID":
58
+ $timezone = "America/Denver";
59
+ break;
60
+ case "IL":
61
+ $timezone = "America/Chicago";
62
+ break;
63
+ case "IN":
64
+ $timezone = "America/Indiana/Indianapolis";
65
+ break;
66
+ case "IA":
67
+ $timezone = "America/Chicago";
68
+ break;
69
+ case "KS":
70
+ $timezone = "America/Chicago";
71
+ break;
72
+ case "KY":
73
+ $timezone = "America/New_York";
74
+ break;
75
+ case "LA":
76
+ $timezone = "America/Chicago";
77
+ break;
78
+ case "ME":
79
+ $timezone = "America/New_York";
80
+ break;
81
+ case "MD":
82
+ $timezone = "America/New_York";
83
+ break;
84
+ case "MA":
85
+ $timezone = "America/New_York";
86
+ break;
87
+ case "MI":
88
+ $timezone = "America/New_York";
89
+ break;
90
+ case "MN":
91
+ $timezone = "America/Chicago";
92
+ break;
93
+ case "MS":
94
+ $timezone = "America/Chicago";
95
+ break;
96
+ case "MO":
97
+ $timezone = "America/Chicago";
98
+ break;
99
+ case "MT":
100
+ $timezone = "America/Denver";
101
+ break;
102
+ case "NE":
103
+ $timezone = "America/Chicago";
104
+ break;
105
+ case "NV":
106
+ $timezone = "America/Los_Angeles";
107
+ break;
108
+ case "NH":
109
+ $timezone = "America/New_York";
110
+ break;
111
+ case "NJ":
112
+ $timezone = "America/New_York";
113
+ break;
114
+ case "NM":
115
+ $timezone = "America/Denver";
116
+ break;
117
+ case "NY":
118
+ $timezone = "America/New_York";
119
+ break;
120
+ case "NC":
121
+ $timezone = "America/New_York";
122
+ break;
123
+ case "ND":
124
+ $timezone = "America/Chicago";
125
+ break;
126
+ case "OH":
127
+ $timezone = "America/New_York";
128
+ break;
129
+ case "OK":
130
+ $timezone = "America/Chicago";
131
+ break;
132
+ case "OR":
133
+ $timezone = "America/Los_Angeles";
134
+ break;
135
+ case "PA":
136
+ $timezone = "America/New_York";
137
+ break;
138
+ case "RI":
139
+ $timezone = "America/New_York";
140
+ break;
141
+ case "SC":
142
+ $timezone = "America/New_York";
143
+ break;
144
+ case "SD":
145
+ $timezone = "America/Chicago";
146
+ break;
147
+ case "TN":
148
+ $timezone = "America/Chicago";
149
+ break;
150
+ case "TX":
151
+ $timezone = "America/Chicago";
152
+ break;
153
+ case "UT":
154
+ $timezone = "America/Denver";
155
+ break;
156
+ case "VT":
157
+ $timezone = "America/New_York";
158
+ break;
159
+ case "VA":
160
+ $timezone = "America/New_York";
161
+ break;
162
+ case "WA":
163
+ $timezone = "America/Los_Angeles";
164
+ break;
165
+ case "WV":
166
+ $timezone = "America/New_York";
167
+ break;
168
+ case "WI":
169
+ $timezone = "America/Chicago";
170
+ break;
171
+ case "WY":
172
+ $timezone = "America/Denver";
173
+ break;
174
+ }
175
+ break;
176
+ case "CA":
177
+ switch ($region) {
178
+ case "AB":
179
+ $timezone = "America/Edmonton";
180
+ break;
181
+ case "BC":
182
+ $timezone = "America/Vancouver";
183
+ break;
184
+ case "MB":
185
+ $timezone = "America/Winnipeg";
186
+ break;
187
+ case "NB":
188
+ $timezone = "America/Halifax";
189
+ break;
190
+ case "NL":
191
+ $timezone = "America/St_Johns";
192
+ break;
193
+ case "NT":
194
+ $timezone = "America/Yellowknife";
195
+ break;
196
+ case "NS":
197
+ $timezone = "America/Halifax";
198
+ break;
199
+ case "NU":
200
+ $timezone = "America/Rankin_Inlet";
201
+ break;
202
+ case "ON":
203
+ $timezone = "America/Toronto";
204
+ break;
205
+ case "PE":
206
+ $timezone = "America/Halifax";
207
+ break;
208
+ case "QC":
209
+ $timezone = "America/Montreal";
210
+ break;
211
+ case "SK":
212
+ $timezone = "America/Regina";
213
+ break;
214
+ case "YT":
215
+ $timezone = "America/Whitehorse";
216
+ break;
217
+ }
218
+ break;
219
+ case "AU":
220
+ switch ($region) {
221
+ case "01":
222
+ $timezone = "Australia/Sydney";
223
+ break;
224
+ case "02":
225
+ $timezone = "Australia/Sydney";
226
+ break;
227
+ case "03":
228
+ $timezone = "Australia/Darwin";
229
+ break;
230
+ case "04":
231
+ $timezone = "Australia/Brisbane";
232
+ break;
233
+ case "05":
234
+ $timezone = "Australia/Adelaide";
235
+ break;
236
+ case "06":
237
+ $timezone = "Australia/Hobart";
238
+ break;
239
+ case "07":
240
+ $timezone = "Australia/Melbourne";
241
+ break;
242
+ case "08":
243
+ $timezone = "Australia/Perth";
244
+ break;
245
+ }
246
+ break;
247
+ case "AS":
248
+ $timezone = "Pacific/Pago_Pago";
249
+ break;
250
+ case "CI":
251
+ $timezone = "Africa/Abidjan";
252
+ break;
253
+ case "GH":
254
+ $timezone = "Africa/Accra";
255
+ break;
256
+ case "DZ":
257
+ $timezone = "Africa/Algiers";
258
+ break;
259
+ case "ER":
260
+ $timezone = "Africa/Asmara";
261
+ break;
262
+ case "ML":
263
+ $timezone = "Africa/Bamako";
264
+ break;
265
+ case "CF":
266
+ $timezone = "Africa/Bangui";
267
+ break;
268
+ case "GM":
269
+ $timezone = "Africa/Banjul";
270
+ break;
271
+ case "GW":
272
+ $timezone = "Africa/Bissau";
273
+ break;
274
+ case "CG":
275
+ $timezone = "Africa/Brazzaville";
276
+ break;
277
+ case "BI":
278
+ $timezone = "Africa/Bujumbura";
279
+ break;
280
+ case "EG":
281
+ $timezone = "Africa/Cairo";
282
+ break;
283
+ case "MA":
284
+ $timezone = "Africa/Casablanca";
285
+ break;
286
+ case "GN":
287
+ $timezone = "Africa/Conakry";
288
+ break;
289
+ case "SN":
290
+ $timezone = "Africa/Dakar";
291
+ break;
292
+ case "DJ":
293
+ $timezone = "Africa/Djibouti";
294
+ break;
295
+ case "SL":
296
+ $timezone = "Africa/Freetown";
297
+ break;
298
+ case "BW":
299
+ $timezone = "Africa/Gaborone";
300
+ break;
301
+ case "ZW":
302
+ $timezone = "Africa/Harare";
303
+ break;
304
+ case "ZA":
305
+ $timezone = "Africa/Johannesburg";
306
+ break;
307
+ case "UG":
308
+ $timezone = "Africa/Kampala";
309
+ break;
310
+ case "SD":
311
+ $timezone = "Africa/Khartoum";
312
+ break;
313
+ case "SS":
314
+ $timezone = "Africa/Juba";
315
+ break;
316
+ case "RW":
317
+ $timezone = "Africa/Kigali";
318
+ break;
319
+ case "NG":
320
+ $timezone = "Africa/Lagos";
321
+ break;
322
+ case "GA":
323
+ $timezone = "Africa/Libreville";
324
+ break;
325
+ case "TG":
326
+ $timezone = "Africa/Lome";
327
+ break;
328
+ case "AO":
329
+ $timezone = "Africa/Luanda";
330
+ break;
331
+ case "ZM":
332
+ $timezone = "Africa/Lusaka";
333
+ break;
334
+ case "GQ":
335
+ $timezone = "Africa/Malabo";
336
+ break;
337
+ case "MZ":
338
+ $timezone = "Africa/Maputo";
339
+ break;
340
+ case "LS":
341
+ $timezone = "Africa/Maseru";
342
+ break;
343
+ case "SZ":
344
+ $timezone = "Africa/Mbabane";
345
+ break;
346
+ case "SO":
347
+ $timezone = "Africa/Mogadishu";
348
+ break;
349
+ case "LR":
350
+ $timezone = "Africa/Monrovia";
351
+ break;
352
+ case "KE":
353
+ $timezone = "Africa/Nairobi";
354
+ break;
355
+ case "TD":
356
+ $timezone = "Africa/Ndjamena";
357
+ break;
358
+ case "NE":
359
+ $timezone = "Africa/Niamey";
360
+ break;
361
+ case "MR":
362
+ $timezone = "Africa/Nouakchott";
363
+ break;
364
+ case "BF":
365
+ $timezone = "Africa/Ouagadougou";
366
+ break;
367
+ case "ST":
368
+ $timezone = "Africa/Sao_Tome";
369
+ break;
370
+ case "LY":
371
+ $timezone = "Africa/Tripoli";
372
+ break;
373
+ case "TN":
374
+ $timezone = "Africa/Tunis";
375
+ break;
376
+ case "AI":
377
+ $timezone = "America/Anguilla";
378
+ break;
379
+ case "AG":
380
+ $timezone = "America/Antigua";
381
+ break;
382
+ case "AW":
383
+ $timezone = "America/Aruba";
384
+ break;
385
+ case "BB":
386
+ $timezone = "America/Barbados";
387
+ break;
388
+ case "BZ":
389
+ $timezone = "America/Belize";
390
+ break;
391
+ case "CO":
392
+ $timezone = "America/Bogota";
393
+ break;
394
+ case "VE":
395
+ $timezone = "America/Caracas";
396
+ break;
397
+ case "KY":
398
+ $timezone = "America/Cayman";
399
+ break;
400
+ case "CR":
401
+ $timezone = "America/Costa_Rica";
402
+ break;
403
+ case "DM":
404
+ $timezone = "America/Dominica";
405
+ break;
406
+ case "SV":
407
+ $timezone = "America/El_Salvador";
408
+ break;
409
+ case "GD":
410
+ $timezone = "America/Grenada";
411
+ break;
412
+ case "FR":
413
+ $timezone = "Europe/Paris";
414
+ break;
415
+ case "GP":
416
+ $timezone = "America/Guadeloupe";
417
+ break;
418
+ case "GT":
419
+ $timezone = "America/Guatemala";
420
+ break;
421
+ case "GY":
422
+ $timezone = "America/Guyana";
423
+ break;
424
+ case "CU":
425
+ $timezone = "America/Havana";
426
+ break;
427
+ case "JM":
428
+ $timezone = "America/Jamaica";
429
+ break;
430
+ case "BO":
431
+ $timezone = "America/La_Paz";
432
+ break;
433
+ case "PE":
434
+ $timezone = "America/Lima";
435
+ break;
436
+ case "NI":
437
+ $timezone = "America/Managua";
438
+ break;
439
+ case "MQ":
440
+ $timezone = "America/Martinique";
441
+ break;
442
+ case "UY":
443
+ $timezone = "America/Montevideo";
444
+ break;
445
+ case "MS":
446
+ $timezone = "America/Montserrat";
447
+ break;
448
+ case "BS":
449
+ $timezone = "America/Nassau";
450
+ break;
451
+ case "PA":
452
+ $timezone = "America/Panama";
453
+ break;
454
+ case "SR":
455
+ $timezone = "America/Paramaribo";
456
+ break;
457
+ case "PR":
458
+ $timezone = "America/Puerto_Rico";
459
+ break;
460
+ case "KN":
461
+ $timezone = "America/St_Kitts";
462
+ break;
463
+ case "LC":
464
+ $timezone = "America/St_Lucia";
465
+ break;
466
+ case "VC":
467
+ $timezone = "America/St_Vincent";
468
+ break;
469
+ case "HN":
470
+ $timezone = "America/Tegucigalpa";
471
+ break;
472
+ case "YE":
473
+ $timezone = "Asia/Aden";
474
+ break;
475
+ case "JO":
476
+ $timezone = "Asia/Amman";
477
+ break;
478
+ case "TM":
479
+ $timezone = "Asia/Ashgabat";
480
+ break;
481
+ case "IQ":
482
+ $timezone = "Asia/Baghdad";
483
+ break;
484
+ case "BH":
485
+ $timezone = "Asia/Bahrain";
486
+ break;
487
+ case "AZ":
488
+ $timezone = "Asia/Baku";
489
+ break;
490
+ case "TH":
491
+ $timezone = "Asia/Bangkok";
492
+ break;
493
+ case "LB":
494
+ $timezone = "Asia/Beirut";
495
+ break;
496
+ case "KG":
497
+ $timezone = "Asia/Bishkek";
498
+ break;
499
+ case "BN":
500
+ $timezone = "Asia/Brunei";
501
+ break;
502
+ case "IN":
503
+ $timezone = "Asia/Kolkata";
504
+ break;
505
+ case "LK":
506
+ $timezone = "Asia/Colombo";
507
+ break;
508
+ case "BD":
509
+ $timezone = "Asia/Dhaka";
510
+ break;
511
+ case "AE":
512
+ $timezone = "Asia/Dubai";
513
+ break;
514
+ case "TJ":
515
+ $timezone = "Asia/Dushanbe";
516
+ break;
517
+ case "HK":
518
+ $timezone = "Asia/Hong_Kong";
519
+ break;
520
+ case "TR":
521
+ $timezone = "Asia/Istanbul";
522
+ break;
523
+ case "IL":
524
+ $timezone = "Asia/Jerusalem";
525
+ break;
526
+ case "AF":
527
+ $timezone = "Asia/Kabul";
528
+ break;
529
+ case "PK":
530
+ $timezone = "Asia/Karachi";
531
+ break;
532
+ case "NP":
533
+ $timezone = "Asia/Kathmandu";
534
+ break;
535
+ case "KW":
536
+ $timezone = "Asia/Kuwait";
537
+ break;
538
+ case "MO":
539
+ $timezone = "Asia/Macau";
540
+ break;
541
+ case "PH":
542
+ $timezone = "Asia/Manila";
543
+ break;
544
+ case "OM":
545
+ $timezone = "Asia/Muscat";
546
+ break;
547
+ case "CY":
548
+ $timezone = "Asia/Nicosia";
549
+ break;
550
+ case "KP":
551
+ $timezone = "Asia/Pyongyang";
552
+ break;
553
+ case "QA":
554
+ $timezone = "Asia/Qatar";
555
+ break;
556
+ case "MM":
557
+ $timezone = "Asia/Rangoon";
558
+ break;
559
+ case "SA":
560
+ $timezone = "Asia/Riyadh";
561
+ break;
562
+ case "KR":
563
+ $timezone = "Asia/Seoul";
564
+ break;
565
+ case "SG":
566
+ $timezone = "Asia/Singapore";
567
+ break;
568
+ case "TW":
569
+ $timezone = "Asia/Taipei";
570
+ break;
571
+ case "GE":
572
+ $timezone = "Asia/Tbilisi";
573
+ break;
574
+ case "BT":
575
+ $timezone = "Asia/Thimphu";
576
+ break;
577
+ case "JP":
578
+ $timezone = "Asia/Tokyo";
579
+ break;
580
+ case "LA":
581
+ $timezone = "Asia/Vientiane";
582
+ break;
583
+ case "AM":
584
+ $timezone = "Asia/Yerevan";
585
+ break;
586
+ case "BM":
587
+ $timezone = "Atlantic/Bermuda";
588
+ break;
589
+ case "CV":
590
+ $timezone = "Atlantic/Cape_Verde";
591
+ break;
592
+ case "FO":
593
+ $timezone = "Atlantic/Faroe";
594
+ break;
595
+ case "IS":
596
+ $timezone = "Atlantic/Reykjavik";
597
+ break;
598
+ case "GS":
599
+ $timezone = "Atlantic/South_Georgia";
600
+ break;
601
+ case "SH":
602
+ $timezone = "Atlantic/St_Helena";
603
+ break;
604
+ case "CL":
605
+ $timezone = "America/Santiago";
606
+ break;
607
+ case "NL":
608
+ $timezone = "Europe/Amsterdam";
609
+ break;
610
+ case "AD":
611
+ $timezone = "Europe/Andorra";
612
+ break;
613
+ case "GR":
614
+ $timezone = "Europe/Athens";
615
+ break;
616
+ case "YU":
617
+ $timezone = "Europe/Belgrade";
618
+ break;
619
+ case "DE":
620
+ $timezone = "Europe/Berlin";
621
+ break;
622
+ case "SK":
623
+ $timezone = "Europe/Bratislava";
624
+ break;
625
+ case "BE":
626
+ $timezone = "Europe/Brussels";
627
+ break;
628
+ case "RO":
629
+ $timezone = "Europe/Bucharest";
630
+ break;
631
+ case "HU":
632
+ $timezone = "Europe/Budapest";
633
+ break;
634
+ case "DK":
635
+ $timezone = "Europe/Copenhagen";
636
+ break;
637
+ case "IE":
638
+ $timezone = "Europe/Dublin";
639
+ break;
640
+ case "GI":
641
+ $timezone = "Europe/Gibraltar";
642
+ break;
643
+ case "FI":
644
+ $timezone = "Europe/Helsinki";
645
+ break;
646
+ case "SI":
647
+ $timezone = "Europe/Ljubljana";
648
+ break;
649
+ case "GB":
650
+ $timezone = "Europe/London";
651
+ break;
652
+ case "LU":
653
+ $timezone = "Europe/Luxembourg";
654
+ break;
655
+ case "MT":
656
+ $timezone = "Europe/Malta";
657
+ break;
658
+ case "BY":
659
+ $timezone = "Europe/Minsk";
660
+ break;
661
+ case "MC":
662
+ $timezone = "Europe/Monaco";
663
+ break;
664
+ case "NO":
665
+ $timezone = "Europe/Oslo";
666
+ break;
667
+ case "CZ":
668
+ $timezone = "Europe/Prague";
669
+ break;
670
+ case "LV":
671
+ $timezone = "Europe/Riga";
672
+ break;
673
+ case "IT":
674
+ $timezone = "Europe/Rome";
675
+ break;
676
+ case "SM":
677
+ $timezone = "Europe/San_Marino";
678
+ break;
679
+ case "BA":
680
+ $timezone = "Europe/Sarajevo";
681
+ break;
682
+ case "MK":
683
+ $timezone = "Europe/Skopje";
684
+ break;
685
+ case "BG":
686
+ $timezone = "Europe/Sofia";
687
+ break;
688
+ case "SE":
689
+ $timezone = "Europe/Stockholm";
690
+ break;
691
+ case "EE":
692
+ $timezone = "Europe/Tallinn";
693
+ break;
694
+ case "AL":
695
+ $timezone = "Europe/Tirane";
696
+ break;
697
+ case "LI":
698
+ $timezone = "Europe/Vaduz";
699
+ break;
700
+ case "VA":
701
+ $timezone = "Europe/Vatican";
702
+ break;
703
+ case "AT":
704
+ $timezone = "Europe/Vienna";
705
+ break;
706
+ case "LT":
707
+ $timezone = "Europe/Vilnius";
708
+ break;
709
+ case "PL":
710
+ $timezone = "Europe/Warsaw";
711
+ break;
712
+ case "HR":
713
+ $timezone = "Europe/Zagreb";
714
+ break;
715
+ case "IR":
716
+ $timezone = "Asia/Tehran";
717
+ break;
718
+ case "MG":
719
+ $timezone = "Indian/Antananarivo";
720
+ break;
721
+ case "CX":
722
+ $timezone = "Indian/Christmas";
723
+ break;
724
+ case "CC":
725
+ $timezone = "Indian/Cocos";
726
+ break;
727
+ case "KM":
728
+ $timezone = "Indian/Comoro";
729
+ break;
730
+ case "MV":
731
+ $timezone = "Indian/Maldives";
732
+ break;
733
+ case "MU":
734
+ $timezone = "Indian/Mauritius";
735
+ break;
736
+ case "YT":
737
+ $timezone = "Indian/Mayotte";
738
+ break;
739
+ case "RE":
740
+ $timezone = "Indian/Reunion";
741
+ break;
742
+ case "FJ":
743
+ $timezone = "Pacific/Fiji";
744
+ break;
745
+ case "TV":
746
+ $timezone = "Pacific/Funafuti";
747
+ break;
748
+ case "GU":
749
+ $timezone = "Pacific/Guam";
750
+ break;
751
+ case "NR":
752
+ $timezone = "Pacific/Nauru";
753
+ break;
754
+ case "NU":
755
+ $timezone = "Pacific/Niue";
756
+ break;
757
+ case "NF":
758
+ $timezone = "Pacific/Norfolk";
759
+ break;
760
+ case "PW":
761
+ $timezone = "Pacific/Palau";
762
+ break;
763
+ case "PN":
764
+ $timezone = "Pacific/Pitcairn";
765
+ break;
766
+ case "CK":
767
+ $timezone = "Pacific/Rarotonga";
768
+ break;
769
+ case "WS":
770
+ $timezone = "Pacific/Pago_Pago";
771
+ break;
772
+ case "KI":
773
+ $timezone = "Pacific/Tarawa";
774
+ break;
775
+ case "TO":
776
+ $timezone = "Pacific/Tongatapu";
777
+ break;
778
+ case "WF":
779
+ $timezone = "Pacific/Wallis";
780
+ break;
781
+ case "TZ":
782
+ $timezone = "Africa/Dar_es_Salaam";
783
+ break;
784
+ case "VN":
785
+ $timezone = "Asia/Phnom_Penh";
786
+ break;
787
+ case "KH":
788
+ $timezone = "Asia/Phnom_Penh";
789
+ break;
790
+ case "CM":
791
+ $timezone = "Africa/Lagos";
792
+ break;
793
+ case "DO":
794
+ $timezone = "America/Santo_Domingo";
795
+ break;
796
+ case "ET":
797
+ $timezone = "Africa/Addis_Ababa";
798
+ break;
799
+ case "FX":
800
+ $timezone = "Europe/Paris";
801
+ break;
802
+ case "HT":
803
+ $timezone = "America/Port-au-Prince";
804
+ break;
805
+ case "CH":
806
+ $timezone = "Europe/Zurich";
807
+ break;
808
+ case "AN":
809
+ $timezone = "America/Curacao";
810
+ break;
811
+ case "BJ":
812
+ $timezone = "Africa/Porto-Novo";
813
+ break;
814
+ case "EH":
815
+ $timezone = "Africa/El_Aaiun";
816
+ break;
817
+ case "FK":
818
+ $timezone = "Atlantic/Stanley";
819
+ break;
820
+ case "GF":
821
+ $timezone = "America/Cayenne";
822
+ break;
823
+ case "IO":
824
+ $timezone = "Indian/Chagos";
825
+ break;
826
+ case "MD":
827
+ $timezone = "Europe/Chisinau";
828
+ break;
829
+ case "MP":
830
+ $timezone = "Pacific/Saipan";
831
+ break;
832
+ case "MW":
833
+ $timezone = "Africa/Blantyre";
834
+ break;
835
+ case "NA":
836
+ $timezone = "Africa/Windhoek";
837
+ break;
838
+ case "NC":
839
+ $timezone = "Pacific/Noumea";
840
+ break;
841
+ case "PG":
842
+ $timezone = "Pacific/Port_Moresby";
843
+ break;
844
+ case "PM":
845
+ $timezone = "America/Miquelon";
846
+ break;
847
+ case "PS":
848
+ $timezone = "Asia/Gaza";
849
+ break;
850
+ case "PY":
851
+ $timezone = "America/Asuncion";
852
+ break;
853
+ case "SB":
854
+ $timezone = "Pacific/Guadalcanal";
855
+ break;
856
+ case "SC":
857
+ $timezone = "Indian/Mahe";
858
+ break;
859
+ case "SJ":
860
+ $timezone = "Arctic/Longyearbyen";
861
+ break;
862
+ case "SY":
863
+ $timezone = "Asia/Damascus";
864
+ break;
865
+ case "TC":
866
+ $timezone = "America/Grand_Turk";
867
+ break;
868
+ case "TF":
869
+ $timezone = "Indian/Kerguelen";
870
+ break;
871
+ case "TK":
872
+ $timezone = "Pacific/Fakaofo";
873
+ break;
874
+ case "TT":
875
+ $timezone = "America/Port_of_Spain";
876
+ break;
877
+ case "VG":
878
+ $timezone = "America/Tortola";
879
+ break;
880
+ case "VI":
881
+ $timezone = "America/St_Thomas";
882
+ break;
883
+ case "VU":
884
+ $timezone = "Pacific/Efate";
885
+ break;
886
+ case "RS":
887
+ $timezone = "Europe/Belgrade";
888
+ break;
889
+ case "ME":
890
+ $timezone = "Europe/Podgorica";
891
+ break;
892
+ case "AX":
893
+ $timezone = "Europe/Mariehamn";
894
+ break;
895
+ case "GG":
896
+ $timezone = "Europe/Guernsey";
897
+ break;
898
+ case "IM":
899
+ $timezone = "Europe/Isle_of_Man";
900
+ break;
901
+ case "JE":
902
+ $timezone = "Europe/Jersey";
903
+ break;
904
+ case "BL":
905
+ $timezone = "America/St_Barthelemy";
906
+ break;
907
+ case "MF":
908
+ $timezone = "America/Marigot";
909
+ break;
910
+ case "MH":
911
+ $timezone = "Pacific/Kwajalein";
912
+ break;
913
+ case "UM":
914
+ $timezone = "Pacific/Wake";
915
+ break;
916
+ case "AR":
917
+ switch ($region) {
918
+ case "01":
919
+ $timezone = "America/Argentina/Buenos_Aires";
920
+ break;
921
+ case "02":
922
+ $timezone = "America/Argentina/Catamarca";
923
+ break;
924
+ case "03":
925
+ $timezone = "America/Argentina/Tucuman";
926
+ break;
927
+ case "04":
928
+ $timezone = "America/Argentina/Rio_Gallegos";
929
+ break;
930
+ case "05":
931
+ $timezone = "America/Argentina/Cordoba";
932
+ break;
933
+ case "06":
934
+ $timezone = "America/Argentina/Tucuman";
935
+ break;
936
+ case "07":
937
+ $timezone = "America/Argentina/Buenos_Aires";
938
+ break;
939
+ case "08":
940
+ $timezone = "America/Argentina/Buenos_Aires";
941
+ break;
942
+ case "09":
943
+ $timezone = "America/Argentina/Tucuman";
944
+ break;
945
+ case "10":
946
+ $timezone = "America/Argentina/Jujuy";
947
+ break;
948
+ case "11":
949
+ $timezone = "America/Argentina/San_Luis";
950
+ break;
951
+ case "12":
952
+ $timezone = "America/Argentina/La_Rioja";
953
+ break;
954
+ case "13":
955
+ $timezone = "America/Argentina/Mendoza";
956
+ break;
957
+ case "14":
958
+ $timezone = "America/Argentina/Buenos_Aires";
959
+ break;
960
+ case "15":
961
+ $timezone = "America/Argentina/San_Luis";
962
+ break;
963
+ case "16":
964
+ $timezone = "America/Argentina/Buenos_Aires";
965
+ break;
966
+ case "17":
967
+ $timezone = "America/Argentina/Salta";
968
+ break;
969
+ case "18":
970
+ $timezone = "America/Argentina/San_Juan";
971
+ break;
972
+ case "19":
973
+ $timezone = "America/Argentina/San_Luis";
974
+ break;
975
+ case "20":
976
+ $timezone = "America/Argentina/Rio_Gallegos";
977
+ break;
978
+ case "21":
979
+ $timezone = "America/Argentina/Buenos_Aires";
980
+ break;
981
+ case "22":
982
+ $timezone = "America/Argentina/Catamarca";
983
+ break;
984
+ case "23":
985
+ $timezone = "America/Argentina/Ushuaia";
986
+ break;
987
+ case "24":
988
+ $timezone = "America/Argentina/Tucuman";
989
+ break;
990
+ }
991
+ break;
992
+ case "BR":
993
+ switch ($region) {
994
+ case "01":
995
+ $timezone = "America/Rio_Branco";
996
+ break;
997
+ case "02":
998
+ $timezone = "America/Maceio";
999
+ break;
1000
+ case "03":
1001
+ $timezone = "America/Sao_Paulo";
1002
+ break;
1003
+ case "04":
1004
+ $timezone = "America/Manaus";
1005
+ break;
1006
+ case "05":
1007
+ $timezone = "America/Bahia";
1008
+ break;
1009
+ case "06":
1010
+ $timezone = "America/Fortaleza";
1011
+ break;
1012
+ case "07":
1013
+ $timezone = "America/Sao_Paulo";
1014
+ break;
1015
+ case "08":
1016
+ $timezone = "America/Sao_Paulo";
1017
+ break;
1018
+ case "11":
1019
+ $timezone = "America/Campo_Grande";
1020
+ break;
1021
+ case "13":
1022
+ $timezone = "America/Belem";
1023
+ break;
1024
+ case "14":
1025
+ $timezone = "America/Cuiaba";
1026
+ break;
1027
+ case "15":
1028
+ $timezone = "America/Sao_Paulo";
1029
+ break;
1030
+ case "16":
1031
+ $timezone = "America/Belem";
1032
+ break;
1033
+ case "17":
1034
+ $timezone = "America/Recife";
1035
+ break;
1036
+ case "18":
1037
+ $timezone = "America/Sao_Paulo";
1038
+ break;
1039
+ case "20":
1040
+ $timezone = "America/Fortaleza";
1041
+ break;
1042
+ case "21":
1043
+ $timezone = "America/Sao_Paulo";
1044
+ break;
1045
+ case "22":
1046
+ $timezone = "America/Recife";
1047
+ break;
1048
+ case "23":
1049
+ $timezone = "America/Sao_Paulo";
1050
+ break;
1051
+ case "24":
1052
+ $timezone = "America/Porto_Velho";
1053
+ break;
1054
+ case "25":
1055
+ $timezone = "America/Boa_Vista";
1056
+ break;
1057
+ case "26":
1058
+ $timezone = "America/Sao_Paulo";
1059
+ break;
1060
+ case "27":
1061
+ $timezone = "America/Sao_Paulo";
1062
+ break;
1063
+ case "28":
1064
+ $timezone = "America/Maceio";
1065
+ break;
1066
+ case "29":
1067
+ $timezone = "America/Sao_Paulo";
1068
+ break;
1069
+ case "30":
1070
+ $timezone = "America/Recife";
1071
+ break;
1072
+ case "31":
1073
+ $timezone = "America/Araguaina";
1074
+ break;
1075
+ }
1076
+ break;
1077
+ case "CD":
1078
+ switch ($region) {
1079
+ case "01":
1080
+ $timezone = "Africa/Kinshasa";
1081
+ break;
1082
+ case "02":
1083
+ $timezone = "Africa/Kinshasa";
1084
+ break;
1085
+ case "03":
1086
+ $timezone = "Africa/Kinshasa";
1087
+ break;
1088
+ case "04":
1089
+ $timezone = "Africa/Lubumbashi";
1090
+ break;
1091
+ case "05":
1092
+ $timezone = "Africa/Lubumbashi";
1093
+ break;
1094
+ case "06":
1095
+ $timezone = "Africa/Kinshasa";
1096
+ break;
1097
+ case "07":
1098
+ $timezone = "Africa/Lubumbashi";
1099
+ break;
1100
+ case "08":
1101
+ $timezone = "Africa/Kinshasa";
1102
+ break;
1103
+ case "09":
1104
+ $timezone = "Africa/Lubumbashi";
1105
+ break;
1106
+ case "10":
1107
+ $timezone = "Africa/Lubumbashi";
1108
+ break;
1109
+ case "11":
1110
+ $timezone = "Africa/Lubumbashi";
1111
+ break;
1112
+ case "12":
1113
+ $timezone = "Africa/Lubumbashi";
1114
+ break;
1115
+ }
1116
+ break;
1117
+ case "CN":
1118
+ switch ($region) {
1119
+ case "01":
1120
+ $timezone = "Asia/Shanghai";
1121
+ break;
1122
+ case "02":
1123
+ $timezone = "Asia/Shanghai";
1124
+ break;
1125
+ case "03":
1126
+ $timezone = "Asia/Shanghai";
1127
+ break;
1128
+ case "04":
1129
+ $timezone = "Asia/Shanghai";
1130
+ break;
1131
+ case "05":
1132
+ $timezone = "Asia/Harbin";
1133
+ break;
1134
+ case "06":
1135
+ $timezone = "Asia/Chongqing";
1136
+ break;
1137
+ case "07":
1138
+ $timezone = "Asia/Shanghai";
1139
+ break;
1140
+ case "08":
1141
+ $timezone = "Asia/Harbin";
1142
+ break;
1143
+ case "09":
1144
+ $timezone = "Asia/Shanghai";
1145
+ break;
1146
+ case "10":
1147
+ $timezone = "Asia/Shanghai";
1148
+ break;
1149
+ case "11":
1150
+ $timezone = "Asia/Chongqing";
1151
+ break;
1152
+ case "12":
1153
+ $timezone = "Asia/Shanghai";
1154
+ break;
1155
+ case "13":
1156
+ $timezone = "Asia/Urumqi";
1157
+ break;
1158
+ case "14":
1159
+ $timezone = "Asia/Chongqing";
1160
+ break;
1161
+ case "15":
1162
+ $timezone = "Asia/Chongqing";
1163
+ break;
1164
+ case "16":
1165
+ $timezone = "Asia/Chongqing";
1166
+ break;
1167
+ case "18":
1168
+ $timezone = "Asia/Chongqing";
1169
+ break;
1170
+ case "19":
1171
+ $timezone = "Asia/Harbin";
1172
+ break;
1173
+ case "20":
1174
+ $timezone = "Asia/Harbin";
1175
+ break;
1176
+ case "21":
1177
+ $timezone = "Asia/Chongqing";
1178
+ break;
1179
+ case "22":
1180
+ $timezone = "Asia/Harbin";
1181
+ break;
1182
+ case "23":
1183
+ $timezone = "Asia/Shanghai";
1184
+ break;
1185
+ case "24":
1186
+ $timezone = "Asia/Chongqing";
1187
+ break;
1188
+ case "25":
1189
+ $timezone = "Asia/Shanghai";
1190
+ break;
1191
+ case "26":
1192
+ $timezone = "Asia/Chongqing";
1193
+ break;
1194
+ case "28":
1195
+ $timezone = "Asia/Shanghai";
1196
+ break;
1197
+ case "29":
1198
+ $timezone = "Asia/Chongqing";
1199
+ break;
1200
+ case "30":
1201
+ $timezone = "Asia/Chongqing";
1202
+ break;
1203
+ case "31":
1204
+ $timezone = "Asia/Chongqing";
1205
+ break;
1206
+ case "32":
1207
+ $timezone = "Asia/Chongqing";
1208
+ break;
1209
+ case "33":
1210
+ $timezone = "Asia/Chongqing";
1211
+ break;
1212
+ }
1213
+ break;
1214
+ case "EC":
1215
+ switch ($region) {
1216
+ case "01":
1217
+ $timezone = "Pacific/Galapagos";
1218
+ break;
1219
+ case "02":
1220
+ $timezone = "America/Guayaquil";
1221
+ break;
1222
+ case "03":
1223
+ $timezone = "America/Guayaquil";
1224
+ break;
1225
+ case "04":
1226
+ $timezone = "America/Guayaquil";
1227
+ break;
1228
+ case "05":
1229
+ $timezone = "America/Guayaquil";
1230
+ break;
1231
+ case "06":
1232
+ $timezone = "America/Guayaquil";
1233
+ break;
1234
+ case "07":
1235
+ $timezone = "America/Guayaquil";
1236
+ break;
1237
+ case "08":
1238
+ $timezone = "America/Guayaquil";
1239
+ break;
1240
+ case "09":
1241
+ $timezone = "America/Guayaquil";
1242
+ break;
1243
+ case "10":
1244
+ $timezone = "America/Guayaquil";
1245
+ break;
1246
+ case "11":
1247
+ $timezone = "America/Guayaquil";
1248
+ break;
1249
+ case "12":
1250
+ $timezone = "America/Guayaquil";
1251
+ break;
1252
+ case "13":
1253
+ $timezone = "America/Guayaquil";
1254
+ break;
1255
+ case "14":
1256
+ $timezone = "America/Guayaquil";
1257
+ break;
1258
+ case "15":
1259
+ $timezone = "America/Guayaquil";
1260
+ break;
1261
+ case "17":
1262
+ $timezone = "America/Guayaquil";
1263
+ break;
1264
+ case "18":
1265
+ $timezone = "America/Guayaquil";
1266
+ break;
1267
+ case "19":
1268
+ $timezone = "America/Guayaquil";
1269
+ break;
1270
+ case "20":
1271
+ $timezone = "America/Guayaquil";
1272
+ break;
1273
+ case "22":
1274
+ $timezone = "America/Guayaquil";
1275
+ break;
1276
+ case "24":
1277
+ $timezone = "America/Guayaquil";
1278
+ break;
1279
+ }
1280
+ break;
1281
+ case "ES":
1282
+ switch ($region) {
1283
+ case "07":
1284
+ $timezone = "Europe/Madrid";
1285
+ break;
1286
+ case "27":
1287
+ $timezone = "Europe/Madrid";
1288
+ break;
1289
+ case "29":
1290
+ $timezone = "Europe/Madrid";
1291
+ break;
1292
+ case "31":
1293
+ $timezone = "Europe/Madrid";
1294
+ break;
1295
+ case "32":
1296
+ $timezone = "Europe/Madrid";
1297
+ break;
1298
+ case "34":
1299
+ $timezone = "Europe/Madrid";
1300
+ break;
1301
+ case "39":
1302
+ $timezone = "Europe/Madrid";
1303
+ break;
1304
+ case "51":
1305
+ $timezone = "Africa/Ceuta";
1306
+ break;
1307
+ case "52":
1308
+ $timezone = "Europe/Madrid";
1309
+ break;
1310
+ case "53":
1311
+ $timezone = "Atlantic/Canary";
1312
+ break;
1313
+ case "54":
1314
+ $timezone = "Europe/Madrid";
1315
+ break;
1316
+ case "55":
1317
+ $timezone = "Europe/Madrid";
1318
+ break;
1319
+ case "56":
1320
+ $timezone = "Europe/Madrid";
1321
+ break;
1322
+ case "57":
1323
+ $timezone = "Europe/Madrid";
1324
+ break;
1325
+ case "58":
1326
+ $timezone = "Europe/Madrid";
1327
+ break;
1328
+ case "59":
1329
+ $timezone = "Europe/Madrid";
1330
+ break;
1331
+ case "60":
1332
+ $timezone = "Europe/Madrid";
1333
+ break;
1334
+ }
1335
+ break;
1336
+ case "GL":
1337
+ switch ($region) {
1338
+ case "01":
1339
+ $timezone = "America/Thule";
1340
+ break;
1341
+ case "02":
1342
+ $timezone = "America/Godthab";
1343
+ break;
1344
+ case "03":
1345
+ $timezone = "America/Godthab";
1346
+ break;
1347
+ }
1348
+ break;
1349
+ case "ID":
1350
+ switch ($region) {
1351
+ case "01":
1352
+ $timezone = "Asia/Pontianak";
1353
+ break;
1354
+ case "02":
1355
+ $timezone = "Asia/Makassar";
1356
+ break;
1357
+ case "03":
1358
+ $timezone = "Asia/Jakarta";
1359
+ break;
1360
+ case "04":
1361
+ $timezone = "Asia/Jakarta";
1362
+ break;
1363
+ case "05":
1364
+ $timezone = "Asia/Jakarta";
1365
+ break;
1366
+ case "06":
1367
+ $timezone = "Asia/Jakarta";
1368
+ break;
1369
+ case "07":
1370
+ $timezone = "Asia/Jakarta";
1371
+ break;
1372
+ case "08":
1373
+ $timezone = "Asia/Jakarta";
1374
+ break;
1375
+ case "09":
1376
+ $timezone = "Asia/Jayapura";
1377
+ break;
1378
+ case "10":
1379
+ $timezone = "Asia/Jakarta";
1380
+ break;
1381
+ case "11":
1382
+ $timezone = "Asia/Pontianak";
1383
+ break;
1384
+ case "12":
1385
+ $timezone = "Asia/Makassar";
1386
+ break;
1387
+ case "13":
1388
+ $timezone = "Asia/Makassar";
1389
+ break;
1390
+ case "14":
1391
+ $timezone = "Asia/Makassar";
1392
+ break;
1393
+ case "15":
1394
+ $timezone = "Asia/Jakarta";
1395
+ break;
1396
+ case "16":
1397
+ $timezone = "Asia/Makassar";
1398
+ break;
1399
+ case "17":
1400
+ $timezone = "Asia/Makassar";
1401
+ break;
1402
+ case "18":
1403
+ $timezone = "Asia/Makassar";
1404
+ break;
1405
+ case "19":
1406
+ $timezone = "Asia/Pontianak";
1407
+ break;
1408
+ case "20":
1409
+ $timezone = "Asia/Makassar";
1410
+ break;
1411
+ case "21":
1412
+ $timezone = "Asia/Makassar";
1413
+ break;
1414
+ case "22":
1415
+ $timezone = "Asia/Makassar";
1416
+ break;
1417
+ case "23":
1418
+ $timezone = "Asia/Makassar";
1419
+ break;
1420
+ case "24":
1421
+ $timezone = "Asia/Jakarta";
1422
+ break;
1423
+ case "25":
1424
+ $timezone = "Asia/Pontianak";
1425
+ break;
1426
+ case "26":
1427
+ $timezone = "Asia/Pontianak";
1428
+ break;
1429
+ case "28":
1430
+ $timezone = "Asia/Jayapura";
1431
+ break;
1432
+ case "29":
1433
+ $timezone = "Asia/Makassar";
1434
+ break;
1435
+ case "30":
1436
+ $timezone = "Asia/Jakarta";
1437
+ break;
1438
+ case "31":
1439
+ $timezone = "Asia/Makassar";
1440
+ break;
1441
+ case "32":
1442
+ $timezone = "Asia/Jakarta";
1443
+ break;
1444
+ case "33":
1445
+ $timezone = "Asia/Jakarta";
1446
+ break;
1447
+ case "34":
1448
+ $timezone = "Asia/Makassar";
1449
+ break;
1450
+ case "35":
1451
+ $timezone = "Asia/Pontianak";
1452
+ break;
1453
+ case "36":
1454
+ $timezone = "Asia/Jayapura";
1455
+ break;
1456
+ case "37":
1457
+ $timezone = "Asia/Pontianak";
1458
+ break;
1459
+ case "38":
1460
+ $timezone = "Asia/Makassar";
1461
+ break;
1462
+ case "39":
1463
+ $timezone = "Asia/Jayapura";
1464
+ break;
1465
+ case "40":
1466
+ $timezone = "Asia/Pontianak";
1467
+ break;
1468
+ case "41":
1469
+ $timezone = "Asia/Makassar";
1470
+ break;
1471
+ }
1472
+ break;
1473
+ case "KZ":
1474
+ switch ($region) {
1475
+ case "01":
1476
+ $timezone = "Asia/Almaty";
1477
+ break;
1478
+ case "02":
1479
+ $timezone = "Asia/Almaty";
1480
+ break;
1481
+ case "03":
1482
+ $timezone = "Asia/Qyzylorda";
1483
+ break;
1484
+ case "04":
1485
+ $timezone = "Asia/Aqtobe";
1486
+ break;
1487
+ case "05":
1488
+ $timezone = "Asia/Qyzylorda";
1489
+ break;
1490
+ case "06":
1491
+ $timezone = "Asia/Aqtau";
1492
+ break;
1493
+ case "07":
1494
+ $timezone = "Asia/Oral";
1495
+ break;
1496
+ case "08":
1497
+ $timezone = "Asia/Qyzylorda";
1498
+ break;
1499
+ case "09":
1500
+ $timezone = "Asia/Aqtau";
1501
+ break;
1502
+ case "10":
1503
+ $timezone = "Asia/Qyzylorda";
1504
+ break;
1505
+ case "11":
1506
+ $timezone = "Asia/Almaty";
1507
+ break;
1508
+ case "12":
1509
+ $timezone = "Asia/Qyzylorda";
1510
+ break;
1511
+ case "13":
1512
+ $timezone = "Asia/Aqtobe";
1513
+ break;
1514
+ case "14":
1515
+ $timezone = "Asia/Qyzylorda";
1516
+ break;
1517
+ case "15":
1518
+ $timezone = "Asia/Almaty";
1519
+ break;
1520
+ case "16":
1521
+ $timezone = "Asia/Aqtobe";
1522
+ break;
1523
+ case "17":
1524
+ $timezone = "Asia/Almaty";
1525
+ break;
1526
+ }
1527
+ break;
1528
+ case "MN":
1529
+ switch ($region) {
1530
+ case "06":
1531
+ $timezone = "Asia/Choibalsan";
1532
+ break;
1533
+ case "11":
1534
+ $timezone = "Asia/Ulaanbaatar";
1535
+ break;
1536
+ case "17":
1537
+ $timezone = "Asia/Choibalsan";
1538
+ break;
1539
+ case "19":
1540
+ $timezone = "Asia/Hovd";
1541
+ break;
1542
+ case "20":
1543
+ $timezone = "Asia/Ulaanbaatar";
1544
+ break;
1545
+ case "21":
1546
+ $timezone = "Asia/Ulaanbaatar";
1547
+ break;
1548
+ case "25":
1549
+ $timezone = "Asia/Ulaanbaatar";
1550
+ break;
1551
+ }
1552
+ break;
1553
+ case "MX":
1554
+ switch ($region) {
1555
+ case "01":
1556
+ $timezone = "America/Mexico_City";
1557
+ break;
1558
+ case "02":
1559
+ $timezone = "America/Tijuana";
1560
+ break;
1561
+ case "03":
1562
+ $timezone = "America/Hermosillo";
1563
+ break;
1564
+ case "04":
1565
+ $timezone = "America/Merida";
1566
+ break;
1567
+ case "05":
1568
+ $timezone = "America/Mexico_City";
1569
+ break;
1570
+ case "06":
1571
+ $timezone = "America/Chihuahua";
1572
+ break;
1573
+ case "07":
1574
+ $timezone = "America/Monterrey";
1575
+ break;
1576
+ case "08":
1577
+ $timezone = "America/Mexico_City";
1578
+ break;
1579
+ case "09":
1580
+ $timezone = "America/Mexico_City";
1581
+ break;
1582
+ case "10":
1583
+ $timezone = "America/Mazatlan";
1584
+ break;
1585
+ case "11":
1586
+ $timezone = "America/Mexico_City";
1587
+ break;
1588
+ case "12":
1589
+ $timezone = "America/Mexico_City";
1590
+ break;
1591
+ case "13":
1592
+ $timezone = "America/Mexico_City";
1593
+ break;
1594
+ case "14":
1595
+ $timezone = "America/Mazatlan";
1596
+ break;
1597
+ case "15":
1598
+ $timezone = "America/Chihuahua";
1599
+ break;
1600
+ case "16":
1601
+ $timezone = "America/Mexico_City";
1602
+ break;
1603
+ case "17":
1604
+ $timezone = "America/Mexico_City";
1605
+ break;
1606
+ case "18":
1607
+ $timezone = "America/Mazatlan";
1608
+ break;
1609
+ case "19":
1610
+ $timezone = "America/Monterrey";
1611
+ break;
1612
+ case "20":
1613
+ $timezone = "America/Mexico_City";
1614
+ break;
1615
+ case "21":
1616
+ $timezone = "America/Mexico_City";
1617
+ break;
1618
+ case "22":
1619
+ $timezone = "America/Mexico_City";
1620
+ break;
1621
+ case "23":
1622
+ $timezone = "America/Cancun";
1623
+ break;
1624
+ case "24":
1625
+ $timezone = "America/Mexico_City";
1626
+ break;
1627
+ case "25":
1628
+ $timezone = "America/Mazatlan";
1629
+ break;
1630
+ case "26":
1631
+ $timezone = "America/Hermosillo";
1632
+ break;
1633
+ case "27":
1634
+ $timezone = "America/Merida";
1635
+ break;
1636
+ case "28":
1637
+ $timezone = "America/Monterrey";
1638
+ break;
1639
+ case "29":
1640
+ $timezone = "America/Mexico_City";
1641
+ break;
1642
+ case "30":
1643
+ $timezone = "America/Mexico_City";
1644
+ break;
1645
+ case "31":
1646
+ $timezone = "America/Merida";
1647
+ break;
1648
+ case "32":
1649
+ $timezone = "America/Monterrey";
1650
+ break;
1651
+ }
1652
+ break;
1653
+ case "MY":
1654
+ switch ($region) {
1655
+ case "01":
1656
+ $timezone = "Asia/Kuala_Lumpur";
1657
+ break;
1658
+ case "02":
1659
+ $timezone = "Asia/Kuala_Lumpur";
1660
+ break;
1661
+ case "03":
1662
+ $timezone = "Asia/Kuala_Lumpur";
1663
+ break;
1664
+ case "04":
1665
+ $timezone = "Asia/Kuala_Lumpur";
1666
+ break;
1667
+ case "05":
1668
+ $timezone = "Asia/Kuala_Lumpur";
1669
+ break;
1670
+ case "06":
1671
+ $timezone = "Asia/Kuala_Lumpur";
1672
+ break;
1673
+ case "07":
1674
+ $timezone = "Asia/Kuala_Lumpur";
1675
+ break;
1676
+ case "08":
1677
+ $timezone = "Asia/Kuala_Lumpur";
1678
+ break;
1679
+ case "09":
1680
+ $timezone = "Asia/Kuala_Lumpur";
1681
+ break;
1682
+ case "11":
1683
+ $timezone = "Asia/Kuching";
1684
+ break;
1685
+ case "12":
1686
+ $timezone = "Asia/Kuala_Lumpur";
1687
+ break;
1688
+ case "13":
1689
+ $timezone = "Asia/Kuala_Lumpur";
1690
+ break;
1691
+ case "14":
1692
+ $timezone = "Asia/Kuala_Lumpur";
1693
+ break;
1694
+ case "15":
1695
+ $timezone = "Asia/Kuching";
1696
+ break;
1697
+ case "16":
1698
+ $timezone = "Asia/Kuching";
1699
+ break;
1700
+ }
1701
+ break;
1702
+ case "NZ":
1703
+ switch ($region) {
1704
+ case "85":
1705
+ $timezone = "Pacific/Auckland";
1706
+ break;
1707
+ case "E7":
1708
+ $timezone = "Pacific/Auckland";
1709
+ break;
1710
+ case "E8":
1711
+ $timezone = "Pacific/Auckland";
1712
+ break;
1713
+ case "E9":
1714
+ $timezone = "Pacific/Auckland";
1715
+ break;
1716
+ case "F1":
1717
+ $timezone = "Pacific/Auckland";
1718
+ break;
1719
+ case "F2":
1720
+ $timezone = "Pacific/Auckland";
1721
+ break;
1722
+ case "F3":
1723
+ $timezone = "Pacific/Auckland";
1724
+ break;
1725
+ case "F4":
1726
+ $timezone = "Pacific/Auckland";
1727
+ break;
1728
+ case "F5":
1729
+ $timezone = "Pacific/Auckland";
1730
+ break;
1731
+ case "F6":
1732
+ $timezone = "Pacific/Auckland";
1733
+ break;
1734
+ case "F7":
1735
+ $timezone = "Pacific/Chatham";
1736
+ break;
1737
+ case "F8":
1738
+ $timezone = "Pacific/Auckland";
1739
+ break;
1740
+ case "F9":
1741
+ $timezone = "Pacific/Auckland";
1742
+ break;
1743
+ case "G1":
1744
+ $timezone = "Pacific/Auckland";
1745
+ break;
1746
+ case "G2":
1747
+ $timezone = "Pacific/Auckland";
1748
+ break;
1749
+ case "G3":
1750
+ $timezone = "Pacific/Auckland";
1751
+ break;
1752
+ }
1753
+ break;
1754
+ case "PT":
1755
+ switch ($region) {
1756
+ case "02":
1757
+ $timezone = "Europe/Lisbon";
1758
+ break;
1759
+ case "03":
1760
+ $timezone = "Europe/Lisbon";
1761
+ break;
1762
+ case "04":
1763
+ $timezone = "Europe/Lisbon";
1764
+ break;
1765
+ case "05":
1766
+ $timezone = "Europe/Lisbon";
1767
+ break;
1768
+ case "06":
1769
+ $timezone = "Europe/Lisbon";
1770
+ break;
1771
+ case "07":
1772
+ $timezone = "Europe/Lisbon";
1773
+ break;
1774
+ case "08":
1775
+ $timezone = "Europe/Lisbon";
1776
+ break;
1777
+ case "09":
1778
+ $timezone = "Europe/Lisbon";
1779
+ break;
1780
+ case "10":
1781
+ $timezone = "Atlantic/Madeira";
1782
+ break;
1783
+ case "11":
1784
+ $timezone = "Europe/Lisbon";
1785
+ break;
1786
+ case "13":
1787
+ $timezone = "Europe/Lisbon";
1788
+ break;
1789
+ case "14":
1790
+ $timezone = "Europe/Lisbon";
1791
+ break;
1792
+ case "16":
1793
+ $timezone = "Europe/Lisbon";
1794
+ break;
1795
+ case "17":
1796
+ $timezone = "Europe/Lisbon";
1797
+ break;
1798
+ case "18":
1799
+ $timezone = "Europe/Lisbon";
1800
+ break;
1801
+ case "19":
1802
+ $timezone = "Europe/Lisbon";
1803
+ break;
1804
+ case "20":
1805
+ $timezone = "Europe/Lisbon";
1806
+ break;
1807
+ case "21":
1808
+ $timezone = "Europe/Lisbon";
1809
+ break;
1810
+ case "22":
1811
+ $timezone = "Europe/Lisbon";
1812
+ break;
1813
+ case "23":
1814
+ $timezone = "Atlantic/Azores";
1815
+ break;
1816
+ }
1817
+ break;
1818
+ case "RU":
1819
+ switch ($region) {
1820
+ case "01":
1821
+ $timezone = "Europe/Volgograd";
1822
+ break;
1823
+ case "02":
1824
+ $timezone = "Asia/Irkutsk";
1825
+ break;
1826
+ case "03":
1827
+ $timezone = "Asia/Novokuznetsk";
1828
+ break;
1829
+ case "04":
1830
+ $timezone = "Asia/Novosibirsk";
1831
+ break;
1832
+ case "05":
1833
+ $timezone = "Asia/Vladivostok";
1834
+ break;
1835
+ case "06":
1836
+ $timezone = "Europe/Moscow";
1837
+ break;
1838
+ case "07":
1839
+ $timezone = "Europe/Volgograd";
1840
+ break;
1841
+ case "08":
1842
+ $timezone = "Europe/Samara";
1843
+ break;
1844
+ case "09":
1845
+ $timezone = "Europe/Moscow";
1846
+ break;
1847
+ case "10":
1848
+ $timezone = "Europe/Moscow";
1849
+ break;
1850
+ case "11":
1851
+ $timezone = "Asia/Irkutsk";
1852
+ break;
1853
+ case "12":
1854
+ $timezone = "Europe/Volgograd";
1855
+ break;
1856
+ case "13":
1857
+ $timezone = "Asia/Yekaterinburg";
1858
+ break;
1859
+ case "14":
1860
+ $timezone = "Asia/Irkutsk";
1861
+ break;
1862
+ case "15":
1863
+ $timezone = "Asia/Anadyr";
1864
+ break;
1865
+ case "16":
1866
+ $timezone = "Europe/Samara";
1867
+ break;
1868
+ case "17":
1869
+ $timezone = "Europe/Volgograd";
1870
+ break;
1871
+ case "18":
1872
+ $timezone = "Asia/Krasnoyarsk";
1873
+ break;
1874
+ case "20":
1875
+ $timezone = "Asia/Irkutsk";
1876
+ break;
1877
+ case "21":
1878
+ $timezone = "Europe/Moscow";
1879
+ break;
1880
+ case "22":
1881
+ $timezone = "Europe/Volgograd";
1882
+ break;
1883
+ case "23":
1884
+ $timezone = "Europe/Kaliningrad";
1885
+ break;
1886
+ case "24":
1887
+ $timezone = "Europe/Volgograd";
1888
+ break;
1889
+ case "25":
1890
+ $timezone = "Europe/Moscow";
1891
+ break;
1892
+ case "26":
1893
+ $timezone = "Asia/Kamchatka";
1894
+ break;
1895
+ case "27":
1896
+ $timezone = "Europe/Volgograd";
1897
+ break;
1898
+ case "28":
1899
+ $timezone = "Europe/Moscow";
1900
+ break;
1901
+ case "29":
1902
+ $timezone = "Asia/Novokuznetsk";
1903
+ break;
1904
+ case "30":
1905
+ $timezone = "Asia/Vladivostok";
1906
+ break;
1907
+ case "31":
1908
+ $timezone = "Asia/Krasnoyarsk";
1909
+ break;
1910
+ case "32":
1911
+ $timezone = "Asia/Omsk";
1912
+ break;
1913
+ case "33":
1914
+ $timezone = "Asia/Yekaterinburg";
1915
+ break;
1916
+ case "34":
1917
+ $timezone = "Asia/Yekaterinburg";
1918
+ break;
1919
+ case "35":
1920
+ $timezone = "Asia/Yekaterinburg";
1921
+ break;
1922
+ case "36":
1923
+ $timezone = "Asia/Anadyr";
1924
+ break;
1925
+ case "37":
1926
+ $timezone = "Europe/Moscow";
1927
+ break;
1928
+ case "38":
1929
+ $timezone = "Europe/Volgograd";
1930
+ break;
1931
+ case "39":
1932
+ $timezone = "Asia/Krasnoyarsk";
1933
+ break;
1934
+ case "40":
1935
+ $timezone = "Asia/Yekaterinburg";
1936
+ break;
1937
+ case "41":
1938
+ $timezone = "Europe/Moscow";
1939
+ break;
1940
+ case "42":
1941
+ $timezone = "Europe/Moscow";
1942
+ break;
1943
+ case "43":
1944
+ $timezone = "Europe/Moscow";
1945
+ break;
1946
+ case "44":
1947
+ $timezone = "Asia/Magadan";
1948
+ break;
1949
+ case "45":
1950
+ $timezone = "Europe/Samara";
1951
+ break;
1952
+ case "46":
1953
+ $timezone = "Europe/Samara";
1954
+ break;
1955
+ case "47":
1956
+ $timezone = "Europe/Moscow";
1957
+ break;
1958
+ case "48":
1959
+ $timezone = "Europe/Moscow";
1960
+ break;
1961
+ case "49":
1962
+ $timezone = "Europe/Moscow";
1963
+ break;
1964
+ case "50":
1965
+ $timezone = "Asia/Yekaterinburg";
1966
+ break;
1967
+ case "51":
1968
+ $timezone = "Europe/Moscow";
1969
+ break;
1970
+ case "52":
1971
+ $timezone = "Europe/Moscow";
1972
+ break;
1973
+ case "53":
1974
+ $timezone = "Asia/Novosibirsk";
1975
+ break;
1976
+ case "54":
1977
+ $timezone = "Asia/Omsk";
1978
+ break;
1979
+ case "55":
1980
+ $timezone = "Europe/Samara";
1981
+ break;
1982
+ case "56":
1983
+ $timezone = "Europe/Moscow";
1984
+ break;
1985
+ case "57":
1986
+ $timezone = "Europe/Samara";
1987
+ break;
1988
+ case "58":
1989
+ $timezone = "Asia/Yekaterinburg";
1990
+ break;
1991
+ case "59":
1992
+ $timezone = "Asia/Vladivostok";
1993
+ break;
1994
+ case "60":
1995
+ $timezone = "Europe/Kaliningrad";
1996
+ break;
1997
+ case "61":
1998
+ $timezone = "Europe/Volgograd";
1999
+ break;
2000
+ case "62":
2001
+ $timezone = "Europe/Moscow";
2002
+ break;
2003
+ case "63":
2004
+ $timezone = "Asia/Yakutsk";
2005
+ break;
2006
+ case "64":
2007
+ $timezone = "Asia/Sakhalin";
2008
+ break;
2009
+ case "65":
2010
+ $timezone = "Europe/Samara";
2011
+ break;
2012
+ case "66":
2013
+ $timezone = "Europe/Moscow";
2014
+ break;
2015
+ case "67":
2016
+ $timezone = "Europe/Samara";
2017
+ break;
2018
+ case "68":
2019
+ $timezone = "Europe/Volgograd";
2020
+ break;
2021
+ case "69":
2022
+ $timezone = "Europe/Moscow";
2023
+ break;
2024
+ case "70":
2025
+ $timezone = "Europe/Volgograd";
2026
+ break;
2027
+ case "71":
2028
+ $timezone = "Asia/Yekaterinburg";
2029
+ break;
2030
+ case "72":
2031
+ $timezone = "Europe/Moscow";
2032
+ break;
2033
+ case "73":
2034
+ $timezone = "Europe/Samara";
2035
+ break;
2036
+ case "74":
2037
+ $timezone = "Asia/Krasnoyarsk";
2038
+ break;
2039
+ case "75":
2040
+ $timezone = "Asia/Novosibirsk";
2041
+ break;
2042
+ case "76":
2043
+ $timezone = "Europe/Moscow";
2044
+ break;
2045
+ case "77":
2046
+ $timezone = "Europe/Moscow";
2047
+ break;
2048
+ case "78":
2049
+ $timezone = "Asia/Yekaterinburg";
2050
+ break;
2051
+ case "79":
2052
+ $timezone = "Asia/Irkutsk";
2053
+ break;
2054
+ case "80":
2055
+ $timezone = "Asia/Yekaterinburg";
2056
+ break;
2057
+ case "81":
2058
+ $timezone = "Europe/Samara";
2059
+ break;
2060
+ case "82":
2061
+ $timezone = "Asia/Irkutsk";
2062
+ break;
2063
+ case "83":
2064
+ $timezone = "Europe/Moscow";
2065
+ break;
2066
+ case "84":
2067
+ $timezone = "Europe/Volgograd";
2068
+ break;
2069
+ case "85":
2070
+ $timezone = "Europe/Moscow";
2071
+ break;
2072
+ case "86":
2073
+ $timezone = "Europe/Moscow";
2074
+ break;
2075
+ case "87":
2076
+ $timezone = "Asia/Novosibirsk";
2077
+ break;
2078
+ case "88":
2079
+ $timezone = "Europe/Moscow";
2080
+ break;
2081
+ case "89":
2082
+ $timezone = "Asia/Vladivostok";
2083
+ break;
2084
+ case "90":
2085
+ $timezone = "Asia/Yekaterinburg";
2086
+ break;
2087
+ case "91":
2088
+ $timezone = "Asia/Krasnoyarsk";
2089
+ break;
2090
+ case "92":
2091
+ $timezone = "Asia/Anadyr";
2092
+ break;
2093
+ case "93":
2094
+ $timezone = "Asia/Irkutsk";
2095
+ break;
2096
+ }
2097
+ break;
2098
+ case "UA":
2099
+ switch ($region) {
2100
+ case "01":
2101
+ $timezone = "Europe/Kiev";
2102
+ break;
2103
+ case "02":
2104
+ $timezone = "Europe/Kiev";
2105
+ break;
2106
+ case "03":
2107
+ $timezone = "Europe/Uzhgorod";
2108
+ break;
2109
+ case "04":
2110
+ $timezone = "Europe/Zaporozhye";
2111
+ break;
2112
+ case "05":
2113
+ $timezone = "Europe/Zaporozhye";
2114
+ break;
2115
+ case "06":
2116
+ $timezone = "Europe/Uzhgorod";
2117
+ break;
2118
+ case "07":
2119
+ $timezone = "Europe/Zaporozhye";
2120
+ break;
2121
+ case "08":
2122
+ $timezone = "Europe/Simferopol";
2123
+ break;
2124
+ case "09":
2125
+ $timezone = "Europe/Kiev";
2126
+ break;
2127
+ case "10":
2128
+ $timezone = "Europe/Zaporozhye";
2129
+ break;
2130
+ case "11":
2131
+ $timezone = "Europe/Simferopol";
2132
+ break;
2133
+ case "12":
2134
+ $timezone = "Europe/Kiev";
2135
+ break;
2136
+ case "13":
2137
+ $timezone = "Europe/Kiev";
2138
+ break;
2139
+ case "14":
2140
+ $timezone = "Europe/Zaporozhye";
2141
+ break;
2142
+ case "15":
2143
+ $timezone = "Europe/Uzhgorod";
2144
+ break;
2145
+ case "16":
2146
+ $timezone = "Europe/Zaporozhye";
2147
+ break;
2148
+ case "17":
2149
+ $timezone = "Europe/Simferopol";
2150
+ break;
2151
+ case "18":
2152
+ $timezone = "Europe/Zaporozhye";
2153
+ break;
2154
+ case "19":
2155
+ $timezone = "Europe/Kiev";
2156
+ break;
2157
+ case "20":
2158
+ $timezone = "Europe/Simferopol";
2159
+ break;
2160
+ case "21":
2161
+ $timezone = "Europe/Kiev";
2162
+ break;
2163
+ case "22":
2164
+ $timezone = "Europe/Uzhgorod";
2165
+ break;
2166
+ case "23":
2167
+ $timezone = "Europe/Kiev";
2168
+ break;
2169
+ case "24":
2170
+ $timezone = "Europe/Uzhgorod";
2171
+ break;
2172
+ case "25":
2173
+ $timezone = "Europe/Uzhgorod";
2174
+ break;
2175
+ case "26":
2176
+ $timezone = "Europe/Zaporozhye";
2177
+ break;
2178
+ case "27":
2179
+ $timezone = "Europe/Kiev";
2180
+ break;
2181
+ }
2182
+ break;
2183
+ case "UZ":
2184
+ switch ($region) {
2185
+ case "01":
2186
+ $timezone = "Asia/Tashkent";
2187
+ break;
2188
+ case "02":
2189
+ $timezone = "Asia/Samarkand";
2190
+ break;
2191
+ case "03":
2192
+ $timezone = "Asia/Tashkent";
2193
+ break;
2194
+ case "05":
2195
+ $timezone = "Asia/Samarkand";
2196
+ break;
2197
+ case "06":
2198
+ $timezone = "Asia/Tashkent";
2199
+ break;
2200
+ case "07":
2201
+ $timezone = "Asia/Samarkand";
2202
+ break;
2203
+ case "08":
2204
+ $timezone = "Asia/Samarkand";
2205
+ break;
2206
+ case "09":
2207
+ $timezone = "Asia/Samarkand";
2208
+ break;
2209
+ case "10":
2210
+ $timezone = "Asia/Samarkand";
2211
+ break;
2212
+ case "12":
2213
+ $timezone = "Asia/Samarkand";
2214
+ break;
2215
+ case "13":
2216
+ $timezone = "Asia/Tashkent";
2217
+ break;
2218
+ case "14":
2219
+ $timezone = "Asia/Tashkent";
2220
+ break;
2221
+ }
2222
+ break;
2223
+ case "TL":
2224
+ $timezone = "Asia/Dili";
2225
+ break;
2226
+ case "PF":
2227
+ $timezone = "Pacific/Marquesas";
2228
+ break;
2229
+ case "SX":
2230
+ $timezone = "America/Curacao";
2231
+ break;
2232
+ case "BQ":
2233
+ $timezone = "America/Curacao";
2234
+ break;
2235
+ case "CW":
2236
+ $timezone = "America/Curacao";
2237
+ break;
2238
+ case "AQ":
2239
+ $timezone = "Antarctica/South_Pole";
2240
+ break;
2241
+ case "BV":
2242
+ $timezone = "Antarctica/Syowa";
2243
+ break;
2244
+ case "FM":
2245
+ $timezone = "Pacific/Pohnpei";
2246
+ break;
2247
+ }
2248
+ return $timezone;
2249
+ }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>CP_GeoLock</name>
4
- <version>0.0.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
@@ -10,9 +10,9 @@
10
  <description>Geo Block - Restrict users to access in some country.</description>
11
  <notes>Geo Block - Restrict users to access in some country.</notes>
12
  <authors><author><name>Commerce Pundit</name><user>CPExtensions</user><email>magento@commercepundit.com</email></author></authors>
13
- <date>2015-05-20</date>
14
- <time>20:26:19</time>
15
- <contents><target name="magecommunity"><dir name="CP"><dir name="GeoLock"><dir name="Helper"><file name="Data.php" hash="e1e68796ad97aea5a61ea98eba8a02f9"/></dir><dir name="Model"><file name="Observer.php" hash="1437ca118ec3ed351df555b1412a2b1b"/></dir><dir name="etc"><file name="adminhtml.xml" hash="fa52fb52e0e2a1f47de32a72ab68aa48"/><file name="config.xml" hash="741ad1ce3bdaf537a192c823043c8ab0"/><file name="system.xml" hash="eeaa1d68d3143ccc4bef83a7bc2f783e"/></dir><dir name="sql"><dir name="cp_geolock_setup"><file name="mysql4-install-0.0.1.php" hash="444d83c2d480a4a276c5a846075d783e"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="CP_GeoLock.xml" hash="02d55aa5c159a29bddd59f9a4581bd9e"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>CP_GeoLock</name>
4
+ <version>0.0.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
10
  <description>Geo Block - Restrict users to access in some country.</description>
11
  <notes>Geo Block - Restrict users to access in some country.</notes>
12
  <authors><author><name>Commerce Pundit</name><user>CPExtensions</user><email>magento@commercepundit.com</email></author></authors>
13
+ <date>2015-05-22</date>
14
+ <time>09:44:35</time>
15
+ <contents><target name="magecommunity"><dir name="CP"><dir name="GeoLock"><dir name="Helper"><file name="Data.php" hash="e1e68796ad97aea5a61ea98eba8a02f9"/></dir><dir name="Model"><file name="Observer.php" hash="1437ca118ec3ed351df555b1412a2b1b"/></dir><dir name="etc"><file name="adminhtml.xml" hash="fa52fb52e0e2a1f47de32a72ab68aa48"/><file name="config.xml" hash="741ad1ce3bdaf537a192c823043c8ab0"/><file name="system.xml" hash="eeaa1d68d3143ccc4bef83a7bc2f783e"/></dir><dir name="sql"><dir name="cp_geolock_setup"><file name="mysql4-install-0.0.1.php" hash="444d83c2d480a4a276c5a846075d783e"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="CP_GeoLock.xml" hash="02d55aa5c159a29bddd59f9a4581bd9e"/></dir></target><target name="magelib"><dir name="GeoLock"><file name="GeoIP.dat" hash="1f897b5825cf91799831862620911aff"/><file name="geoip.inc" hash="0b7a3c083051d629565e3e42eaaf78f8"/><file name="geoipcity.inc" hash="c5ac78777d5c430ed3236e466040a67f"/><file name="geoipregionvars.php" hash="2b5ad18ea77338f1494834188b73b582"/><file name="timezone.php" hash="ac77a16cb2f74ae235445ae7923d06ab"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>