File Coverage

blib/lib/Number/Phone/StubCountry/KZ.pm
Criterion Covered Total %
statement 20 20 100.0
branch 3 4 75.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 29 30 96.6


line stmt bran cond sub pod time code
1             # automatically generated file, don't edit
2              
3              
4              
5             # Copyright 2023 David Cantrell, derived from data from libphonenumber
6             # http://code.google.com/p/libphonenumber/
7             #
8             # Licensed under the Apache License, Version 2.0 (the "License");
9             # you may not use this file except in compliance with the License.
10             # You may obtain a copy of the License at
11             #
12             # http://www.apache.org/licenses/LICENSE-2.0
13             #
14             # Unless required by applicable law or agreed to in writing, software
15             # distributed under the License is distributed on an "AS IS" BASIS,
16             # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17             # See the License for the specific language governing permissions and
18             # limitations under the License.
19             package Number::Phone::StubCountry::KZ;
20 4     4   3232 use base qw(Number::Phone::StubCountry);
  4         15  
  4         526  
21              
22 4     4   39 use strict;
  4         19  
  4         111  
23 4     4   25 use warnings;
  4         13  
  4         125  
24 4     4   27 use utf8;
  4         13  
  4         31  
25             our $VERSION = 1.20230903131448;
26              
27             my $formatters = [];
28              
29             my $validators = {
30             'fixed_line' => '
31             (?:
32             33622|
33             7(?:
34             1(?:
35             0(?:
36             [23]\\d|
37             4[0-3]|
38             59|
39             63
40             )|
41             1(?:
42             [23]\\d|
43             4[0-79]|
44             59
45             )|
46             2(?:
47             [23]\\d|
48             59
49             )|
50             3(?:
51             2\\d|
52             3[0-79]|
53             4[0-35-9]|
54             59
55             )|
56             4(?:
57             [24]\\d|
58             3[013-9]|
59             5[1-9]|
60             97
61             )|
62             5(?:
63             2\\d|
64             3[1-9]|
65             4[0-7]|
66             59
67             )|
68             6(?:
69             [2-4]\\d|
70             5[19]|
71             61
72             )|
73             72\\d|
74             8(?:
75             [27]\\d|
76             3[1-46-9]|
77             4[0-5]|
78             59
79             )
80             )|
81             2(?:
82             1(?:
83             [23]\\d|
84             4[46-9]|
85             5[3469]
86             )|
87             2(?:
88             2\\d|
89             3[0679]|
90             46|
91             5[12679]
92             )|
93             3(?:
94             [2-4]\\d|
95             5[139]
96             )|
97             4(?:
98             2\\d|
99             3[1-35-9]|
100             59
101             )|
102             5(?:
103             [23]\\d|
104             4[0-8]|
105             59|
106             61
107             )|
108             6(?:
109             2\\d|
110             3[1-9]|
111             4[0-4]|
112             59
113             )|
114             7(?:
115             [2379]\\d|
116             40|
117             5[279]
118             )|
119             8(?:
120             [23]\\d|
121             4[0-3]|
122             59
123             )|
124             9(?:
125             2\\d|
126             3[124578]|
127             59
128             )
129             )
130             )
131             )\\d{5}
132             ',
133             'geographic' => '
134             (?:
135             33622|
136             7(?:
137             1(?:
138             0(?:
139             [23]\\d|
140             4[0-3]|
141             59|
142             63
143             )|
144             1(?:
145             [23]\\d|
146             4[0-79]|
147             59
148             )|
149             2(?:
150             [23]\\d|
151             59
152             )|
153             3(?:
154             2\\d|
155             3[0-79]|
156             4[0-35-9]|
157             59
158             )|
159             4(?:
160             [24]\\d|
161             3[013-9]|
162             5[1-9]|
163             97
164             )|
165             5(?:
166             2\\d|
167             3[1-9]|
168             4[0-7]|
169             59
170             )|
171             6(?:
172             [2-4]\\d|
173             5[19]|
174             61
175             )|
176             72\\d|
177             8(?:
178             [27]\\d|
179             3[1-46-9]|
180             4[0-5]|
181             59
182             )
183             )|
184             2(?:
185             1(?:
186             [23]\\d|
187             4[46-9]|
188             5[3469]
189             )|
190             2(?:
191             2\\d|
192             3[0679]|
193             46|
194             5[12679]
195             )|
196             3(?:
197             [2-4]\\d|
198             5[139]
199             )|
200             4(?:
201             2\\d|
202             3[1-35-9]|
203             59
204             )|
205             5(?:
206             [23]\\d|
207             4[0-8]|
208             59|
209             61
210             )|
211             6(?:
212             2\\d|
213             3[1-9]|
214             4[0-4]|
215             59
216             )|
217             7(?:
218             [2379]\\d|
219             40|
220             5[279]
221             )|
222             8(?:
223             [23]\\d|
224             4[0-3]|
225             59
226             )|
227             9(?:
228             2\\d|
229             3[124578]|
230             59
231             )
232             )
233             )
234             )\\d{5}
235             ',
236             'mobile' => '
237             7(?:
238             0[0-25-8]|
239             47|
240             6[0-4]|
241             7[15-8]|
242             85
243             )\\d{7}
244             ',
245             'pager' => '',
246             'personal_number' => '808\\d{7}',
247             'specialrate' => '(809\\d{7})',
248             'toll_free' => '
249             8(?:
250             00|
251             108\\d{3}
252             )\\d{7}
253             ',
254             'voip' => '751\\d{7}'
255             };
256             my %areanames = ();
257             $areanames{ru} = {"771333", "Мугалжарский\ р\-н",
258             "771643", "Атбасарский\ р\-н",
259             "7867", "Республика\ Северная\ Осетия\ \-\ Алания",
260             "7833", "Кировская\ обл\.",
261             "771532", "Аккайынский\ р\-н",
262             "772132", "Нуринский\ р\-н",
263             "771346", "Темирский\ р\-н",
264             "771636", "Щучинский\ р\-н",
265             "7416", "Амурская\ обл\.",
266             "772773", "Балхашский\ р\-н",
267             "7873", "Республика\ Ингушетия",
268             "77152", "Петропавловск",
269             "772757", "Акший",
270             "77212", "Караганда",
271             "771539", "Кызылжарский\ р\-н",
272             "7848", "Самарская\ обл\.",
273             "77273", "Алма\-Ата",
274             "771540", "Уалихановский\ р\-н",
275             "772433", "Аральский\ р\-н",
276             "771841", "Актогайский\ р\-н",
277             "772348", "Кокпектинский\ р\-н",
278             "7872", "Республика\ Дагестан",
279             "7495", "Московская\ обл\.",
280             "772638", "Шуский\ р\-н",
281             "772644", "Таласский\ р\-н",
282             "771037", "Актогайский\ р\-н",
283             "772842", "Кербулакский\ р\-н",
284             "772334", "Уланский\ р\-н",
285             "772345", "Жарминский\ р\-н",
286             "772537", "Сарыагаш",
287             "772635", "Жуалынский\ р\-н",
288             "772931", "Мангистауский\ р\-н",
289             "771137", "Чингирлауский\ р\-н",
290             "772830", "Алакольский\ р\-н",
291             "772531", "Аксукент",
292             "771445", "Алтынсаринский\ р\-н",
293             "771233", "Курмангазинский\ р\-н",
294             "771131", "Зеленовский\ р\-н",
295             "772937", "Каракиянский\ р\-н",
296             "77272983", "Каскелен",
297             "771651", "Целиноградский\ р\-н",
298             "7814", "Республика\ Карелия",
299             "771448", "Карасуский\ р\-н",
300             "771031", "Шетский\ р\-н",
301             "771434", "Денисовский\ р\-н",
302             "7499", "г\.\ Москва",
303             "7385", "Алтайский\ край",
304             "7427", "Чукотский\ АО",
305             "771339", "Айтекебийский\ р\-н",
306             "771649", "Жаксынский\ р\-н",
307             "7492", "Владимирская\ обл\.",
308             "77132", "Актобе\/Актюбинск",
309             "772432", "Шиелийский\ р\-н",
310             "771340", "Хобдинский\ р\-н",
311             "771456", "Качар",
312             "772772", "Капчагай",
313             "771630", "Боровое",
314             "772237", "Аязог",
315             "771533", "Айыртауский\ р\-н",
316             "772779", "Райымбекский\ р\-н",
317             "7346", "Ханты\ \-\ Мансийский\ \-\ Югра\ АО",
318             "7382", "Томская\ обл\.",
319             "7879", "Ставропольский\ край",
320             "771546", "Акжарский\ р\-н",
321             "771838", "Майский\ р\-он",
322             "772439", "Аральский\ р\-н",
323             "771844", "Иртышский\ р\-н",
324             "7835", "Чувашская\ Республика\ \-\ Чувашия",
325             "771332", "Уилский\ р\-н",
326             "77242", "Кызылорда",
327             "772146", "Каркаралинск",
328             "771642", "Егиндыкольский\ р\-н",
329             "7712302", "Тенгизшевройл",
330             "7847", "Республика\ Калмыкия",
331             "772256", "Алгабас",
332             "772331", "Глубоковский\ р\-н",
333             "771437", "Камыстинский\ р\-н",
334             "772641", "Таласский\ р\-н",
335             "7383", "Новосибирская\ обл\.",
336             "771232", "Атырауская\ область",
337             "772934", "Жанаозен",
338             "7486", "Орловская\ обл\.",
339             "7811", "Псковская\ обл\.",
340             "771239", "Макатский\ р\-н",
341             "772534", "Жетысай",
342             "7493", "Ивановская\ обл\.",
343             "77122", "Атырау",
344             "771134", "Сырымский\ р\-н",
345             "772836", "Ескельдинский\ р\-н",
346             "772548", "Шаян",
347             "771145", "Каратобинский\ р\-н",
348             "772337", "Серебрянск",
349             "772843", "Лепсы",
350             "772545", "Икан",
351             "771034", "Улытауский\ р\-н",
352             "771431", "Рудный",
353             "771330", "Хромтауский\ р\-н",
354             "771640", "Сандыктауский\ р\-н",
355             "7351", "Челябинская\ обл\.",
356             "771349", "Шалкарский\ р\-н",
357             "771453", "Аулиекольский\ р\-н",
358             "7482", "Тверская\ обл\.",
359             "771639", "Енбекшилдерский\ р\-н",
360             "77162", "Кокшетау",
361             "77279", "Алматы",
362             "772353", "Бородулихинский\ р\-н",
363             "7343", "Свердловская\ обл",
364             "7818", "Архангельская\ обл\.",
365             "7415", "Камчатский\ край",
366             "771536", "Тайыншинский\ р\-н",
367             "7421", "Хабаровский\ край",
368             "772770", "Жамбылский\ р\-н",
369             "771342", "Каргалинский\ р\-н",
370             "771834", "Успенский\ р\-н",
371             "771632", "Зерендинский\ р\-н",
372             "771845", "Павлодар",
373             "771543", "Есильский\ р\-н",
374             "772938", "Тупкараганский\ р\-н",
375             "7861", "Краснодарский\ край",
376             "7342", "Пермский\ край",
377             "7471", "Курская\ обл\.",
378             "772935", "Каракиянский\ р\-н",
379             "771447", "Карабалыкский\ р\-н",
380             "772341", "Катон\-Карагайский\ р\-н",
381             "7301", "Республика\ Бурятия",
382             "772631", "Турара\ Рыскулова\ р\-н",
383             "771135", "Жанибекский\ р\-н",
384             "77106", "Сатпаев",
385             "771230", "Атырауская\ область",
386             "771038", "Сыры\-Шаган",
387             "772637", "Байзакский\ р\-н",
388             "7855", "Республика\ Татарстан",
389             "77213", "Темиртау",
390             "772833", "Алакольский\ р\-н",
391             "772535", "Шардара",
392             "771441", "Карабалыкский\ р\-н",
393             "772347", "Жарминский\ р\-н",
394             "771035", "Улытауский\ р\-н",
395             "772544", "Шаульдер",
396             "771138", "Казталовский\ р\-н",
397             "7483", "Брянская\ обл\.",
398             "7496", "г\.\ Москва",
399             "77272", "Алма\-Ата",
400             "772538", "имени\ Турара\ Рыскулова",
401             "771144", "Казталовский\ р\-н",
402             "7844", "Волгоградская\ обл\.",
403             "7836", "Республика\ Марий\ Эл",
404             "771542", "Уалихановский\ р\-н",
405             "77185", "Шалдай",
406             "7413", "Магаданская\ обл\.",
407             "771336", "Хромтауский\ р\-н",
408             "7345", "Тюменская\ обл\.",
409             "771646", "Буландинский\ р\-н",
410             "771837", "Аксуский\ р\-н",
411             "771459", "Костанайская\ область",
412             "771343", "Иргизский\ р\-н",
413             "771633", "Ерейментауский\ р\-н",
414             "772776", "Енбекшиказахский\ р\-н",
415             "771452", "Карасуский\ р\-н",
416             "77274", "Карасайский\ р\-н",
417             "771831", "Железинский\ р\-н",
418             "772149", "Осакаровский\ р\-н",
419             "7349", "Ямало\-Ненецкий\ АО",
420             "7817", "Вологодская\ обл\.",
421             "772436", "Сырдарьинский\ р\-н",
422             "7424", "Сахалинская\ обл\.",
423             "772154", "Бухар\-Жырауский\ р\-н",
424             "772547", "Ленгер",
425             "772335", "Зыряновск",
426             "7712303", "Тензиз",
427             "771147", "Акжаикский\ р\-н",
428             "772338", "Уланский\ р\-н",
429             "7485", "Ярославская\ обл\.",
430             "772634", "Жанатас",
431             "7474", "Липецкая\ обл\.",
432             "772344", "Тарбагатайский\ р\-н",
433             "772832", "Аксуский\ р\-н",
434             "7395", "Иркутская\ обл\.",
435             "771438", "Амангельдинский\ р\-н",
436             "772839", "Саркандский\ р\-н",
437             "7841", "Пензенская\ обл\.",
438             "771236", "Махамбетский\ р\-н",
439             "771444", "Узункольский\ р\-н",
440             "771041", "Актау\,\ Жезказган",
441             "77282", "Талдыкорган",
442             "772252", "Абайский\ р\-н",
443             "772541", "Мырзакент",
444             "736", "Республика\ Крым",
445             "771435", "Житикаринский\ р\-н",
446             "772840", "Кербулакский\ р\-н",
447             "771141", "Жангалинский\ р\-н",
448             "77245", "Кызылординская\ область",
449             "772777", "Райымбекский\ р\-н",
450             "7347", "Республика\ Башкортостан",
451             "7846", "Самарская\ обл\.",
452             "77149", "Костанай",
453             "771455", "Костанайский\ р\-н",
454             "7494", "Костромская\ обл\.",
455             "771641", "Астраханский\ р\-н",
456             "771458", "Костанайская\ область",
457             "771331", "Мартукский\ р\-н",
458             "772437", "Кармакшинский\ р\-н",
459             "7820", "Вологодская\ обл\.",
460             "771337", "Алгинский\ р\-н",
461             "772431", "Жалагашский\ р\-н",
462             "771843", "Майский\ р\-н",
463             "771545", "Жамбылский\ р\-н",
464             "771647", "Есильский\ р\-н",
465             "7384", "Кемеровская\ обл\.",
466             "772148", "Осакаровский\ р\-н",
467             "772771", "Карасайский\ р\-н",
468             "772239", "Урджарский\ р\-н",
469             "7821", "Республика\ Коми",
470             "77135", "Актюбинская\ область",
471             "771534", "Шал\ Акына\ р\-н",
472             "77222", "Семипалатинск",
473             "771836", "Щербактинский\ р\-н",
474             "7815", "Мурманская\ обл\.",
475             "772340", "Зайсанский\ р\-н",
476             "771237", "Жылыойский\ р\-н",
477             "7487", "Тульская\ обл\.",
478             "77125", "Атырауская\ область",
479             "772339", "Курчумский\ р\-н",
480             "7871", "Республика\ Чеченская",
481             "77232", "Усть\-Каменогорск",
482             "772546", "Шолаккорган",
483             "772838", "Коксуский\ р\-н",
484             "7831", "Нижегородская\ обл\.",
485             "771439", "Джангильдинский\ р\-н",
486             "7717", "Астана",
487             "772642", "Мойынкумский\ р\-н",
488             "771033", "Шетский\ р\-н",
489             "772332", "Шемонаихинский\ р\-н",
490             "77142", "Костанай",
491             "771146", "Акжаикский\ р\-н",
492             "771440", "Амангельдинский\ р\-н",
493             "772533", "Туркестан",
494             "772835", "Текели",
495             "771133", "Бурлинский\ р\-н",
496             "771231", "Исатайский\ р\-н",
497             "771635", "Жаксынский\ р\-н",
498             "771345", "Байганинский\ р\-н",
499             "771537", "Тимирязевский\ р\-н",
500             "772137", "Сарань",
501             "772759", "Алматинская\ область",
502             "771638", "Аккольский\ р\-н",
503             "771348", "Шалкарский\ р\-н",
504             "7813", "Ленинградская\ обл\.",
505             "771842", "Майский\ р\-он",
506             "7491", "Рязанская\ обл\.",
507             "771334", "Мугалжарский\ р\-н",
508             "771644", "Аршалынский\ р\-н",
509             "7381", "Омская\ обл\.",
510             "7866", "Республика\ Кабардино\-Балкарская",
511             "771531", "Магжана\ Жумабаева\ р\-н",
512             "772774", "Талгарский\ р\-н",
513             "772752", "Илийский\ р\-н",
514             "772131", "Абайский\ р\-н",
515             "772532", "Абая",
516             "77292", "Актау",
517             "772636", "Кордай",
518             "7426", "Еврейская\ автономная\ обл\.",
519             "771132", "Теректинский\ р\-н",
520             "772346", "Тарбагатайский\ р\-н",
521             "733", "Байконыр",
522             "772156", "Шахтинск",
523             "772643", "Шуский\ р\-н",
524             "772333", "Кокпектинский\ р\-н",
525             "771032", "Каражал",
526             "771039", "Приозерск",
527             "771140", "Бокейординский\ р\-н",
528             "77102", "Жезказган",
529             "772540", "Арыс",
530             "77224", "Эмельтау",
531             "771433", "Лисаковск",
532             "772841", "Аксуский\ р\-н",
533             "7834", "Республика\ Мордовия",
534             "771139", "Таскалинский\ р\-н",
535             "7812", "г\.\ Санкт\-Петербург",
536             "771040", "Жайрем\ \(ГОК\)",
537             "740", "Калининградская\ обл\.",
538             "77252", "Шымкент",
539             "771446", "Узункольский\ р\-н",
540             "77112", "Уральск",
541             "771234", "Индерский\ р\-н",
542             "772539", "Казыгурт",
543             "772932", "Бейнеуский\ р\-н",
544             "7877", "Республика\ Адыгея",
545             "7481", "Смоленская\ обл\.",
546             "771648", "Жаркаинский\ р\-н",
547             "7816", "Новгородская\ обл\.",
548             "771451", "Сарыкольский\ р\-н",
549             "771832", "Иртышский\ р\-н",
550             "771645", "Степногорск",
551             "771547", "Жамбылский\ р\-н",
552             "771335", "Шалкарский\ р\-н",
553             "772147", "Каркаралинский\ р\-н",
554             "7352", "Курганская\ обл\.",
555             "772435", "Жанакорганский\ р\-н",
556             "771541", "Мамлютский\ р\-н",
557             "771840", "Баянаульский\ р\-н",
558             "772778", "Уйгурский\ р\-н",
559             "7390", "Республика\ Хакасия",
560             "7863", "Ростовская\ обл\.",
561             "772438", "Казалинский\ р\-н",
562             "771457", "Джангильдинский\ р\-н",
563             "772351", "Бородулихинский\ р\-н",
564             "7845", "Саратовская\ обл\.",
565             "771839", "Лебяжинский\ р\-н",
566             "772236", "Бескарагайский\ р\-н",
567             "77182", "Павлодар",
568             "7391", "Красноярский\ край",
569             "7473", "Воронежская\ обл\.",
570             "772775", "Енбекшиказахский\ р\-н",
571             "77272956", "Талгар",
572             "772633", "Жамбылский\ р\-н",
573             "7302", "Забайкальский\ край",
574             "772837", "Алакольский\ р\-н",
575             "771042", "Акой",
576             "772343", "Курчумский\ р\-н",
577             "7862", "Краснодарский\ край",
578             "772542", "Асыката",
579             "772153", "Абайский\ р\-н",
580             "7341", "Республика\ Удмуртская",
581             "772251", "Курчатов",
582             "7423", "Приморский\ край",
583             "772336", "Риддер",
584             "771142", "Акжаикский\ р\-н",
585             "7498", "Московская\ обл\.",
586             "7472", "Белгородская\ обл\.",
587             "7388", "Республика\ Алтай",
588             "772257", "Шульбинск",
589             "771149", "Акжаикский\ р\-н",
590             "771030", "Жана\-Аркинский\ р\-н",
591             "771238", "Кзылкогинский\ р\-н",
592             "771436", "Тарановский\ р\-н",
593             "771235", "Макатский\ р\-н",
594             "771130", "Зеленовский\ р\-н",
595             "771443", "Мендыкаринский\ р\-н",
596             "772831", "Панфиловский\ р\-н",
597             "772530", "Темирлановка",
598             "7353", "Оренбургская\ обл\.",
599             "771454", "Наурзумский\ р\-н",
600             "771631", "Шортандинский\ р\-н",
601             "771341", "Хобдинский\ р\-н",
602             "7475", "Тамбовская\ обл\.",
603             "7878", "Республика\ Карачаево\-Черкесская",
604             "7484", "Калужская\ обл\.",
605             "7843", "Республика\ Татарстан",
606             "7865", "Ставропольский\ край",
607             "7869", "г\.\ Севастополь",
608             "772725", "Отеген\-Батыр",
609             "77187", "Экибастуз",
610             "771544", "Жамбылский\ р\-н",
611             "772138", "Бухар\-Жырауский\ р\-н",
612             "7394", "Республика\ Тыва",
613             "771538", "Кызылжарский\ р\-н",
614             "772144", "Нуринский\ р\-н",
615             "7851", "Астраханская\ обл\.",
616             "772230", "Урджарский\ р\-н",
617             "771535", "Габита\ Мусрепова\ р\-н",
618             "771833", "Качирский\ р\-н",
619             "771347", "Айтекебийский\ р\-н",
620             "771637", "Коргалжынский\ р\-н",
621             "772639", "Сарысуский\ р\-н",
622             "771442", "Федоровский\ р\-н",
623             "77262", "Тараз",
624             "772640", "Мойынкумский\ р\-н",
625             "772330", "Зыряновский\ р\-н",
626             "772159", "Карагандинская\ область",
627             "772543", "Аксумбе",
628             "771430", "Аркалык",
629             "771036", "Балхаш",
630             "771143", "Теректинский\ р\-н",
631             "771449", "Тарановский\ р\-н",
632             "77145834", "Красногорск",
633             "772536", "Кентау",
634             "772632", "Меркенский\ р\-н",
635             "7842", "Ульяновская\ обл\.",
636             "7411", "Республика\ Саха\ \/Якутия\/",
637             "771136", "Акжаикский\ р\-н",
638             "772342", "Катон\-Карагайский\ р\-н",
639             "772834", "Каратальский\ р\-н",
640             "771043", "Жайрем\ \(поселок\)",};
641             $areanames{en} = {"772631", "Kulan",
642             "7301", "Republic\ of\ Buryatia",
643             "772341", "Ulken\ Naryn",
644             "771447", "Karabalyksky\ District",
645             "772935", "Zhetybai",
646             "7471", "Kursk",
647             "7342", "Perm",
648             "7861", "Krasnodar\ Territory",
649             "772938", "Fort\ Shevchenko",
650             "7844", "Volgograd",
651             "771144", "Kaztalovka",
652             "772538", "Turara\ Ryskulova",
653             "77272", "Almaty",
654             "7496", "Moscow",
655             "7483", "Bryansk",
656             "771138", "Zhalpaktal",
657             "771035", "Ulytau",
658             "772544", "Shaulder",
659             "772347", "Kalbatau",
660             "772535", "Shardara",
661             "772833", "Usharal",
662             "771441", "Karabalyk",
663             "77213", "Aktau\/Temirtau",
664             "7855", "Naberezhnye\ Chelny",
665             "772637", "Sarykemer",
666             "771038", "Shashubai",
667             "771230", "Atyrau\ Region",
668             "771135", "Zhanibek",
669             "77106", "Satpaev",
670             "77279", "Almaty",
671             "77162", "Kokshetau\/Krasni\ Yar",
672             "771639", "Stepnyak",
673             "7482", "Tver",
674             "771453", "Auliekol",
675             "771349", "Shalkarsky\ District",
676             "7351", "Chelyabinsk",
677             "771640", "Balkashino",
678             "771330", "Khromtau\ District",
679             "771845", "Pavlodar\ Area",
680             "771543", "Yavlenka",
681             "771632", "Zerenda",
682             "771834", "Uspenka",
683             "771342", "Badamsha",
684             "772770", "Uzynagash",
685             "7421", "Khabarovsk\ Territory",
686             "7818", "Arkhangelsk",
687             "7415", "Kamchatka\ Region",
688             "771536", "Taiynsha",
689             "7343", "Ekaterinburg",
690             "772353", "Novaya\ Shulba",
691             "772832", "Zhansugurov",
692             "772344", "Akzhar",
693             "7474", "Lipetsk",
694             "772634", "Zhanatas",
695             "7485", "Yaroslavl",
696             "772338", "Bozanbai\/Molodezhnyi",
697             "771147", "Akzhaiksky\ District",
698             "7712303", "Tengizs",
699             "772335", "Zyryanovsk",
700             "772547", "Lenger",
701             "772154", "Botakara",
702             "771141", "Zhangala",
703             "772840", "Saryozek",
704             "736", "Simferopol",
705             "772541", "Myrzakent",
706             "771435", "Zhitikara",
707             "772252", "Karaul",
708             "77282", "Taldykorgan",
709             "771041", "Aktau\,\ Zhezkazgan",
710             "771444", "Uzunkol",
711             "771236", "Makhambet",
712             "7841", "Penza",
713             "772839", "Sarkand",
714             "7395", "Irkutsk",
715             "771438", "Amangeldy",
716             "771633", "Ereimentau",
717             "771343", "Irgiz",
718             "771459", "Kostanai\ Region",
719             "771837", "Aksu",
720             "771646", "Makinsk",
721             "7345", "Tyumen",
722             "771336", "Khromtau",
723             "7413", "Magadan",
724             "77185", "Shaldai",
725             "771542", "Kishkenekol",
726             "7836", "Republic\ of\ Marij\ El",
727             "7424", "Sakhalin\ Region",
728             "772436", "Terenozek",
729             "7817", "Vologda",
730             "7349", "Yamalo\-Nenets\ Autonomous\ District",
731             "772149", "Osakarovka",
732             "771831", "Zhelezinka",
733             "77274", "Karassaisky\ District",
734             "771452", "Karasu",
735             "772776", "Shelek",
736             "771137", "Chingirlau",
737             "772931", "Shetpe",
738             "772635", "Bauyrzhan\ Mamyshuly",
739             "772537", "Saryagash",
740             "772345", "Shar",
741             "772334", "Tavricheskoye",
742             "772842", "Kogaly",
743             "771037", "Aktogai",
744             "772644", "Karatau",
745             "772638", "Tole\ bi",
746             "7495", "Moscow",
747             "7872", "Republic\ of\ Daghestan",
748             "772348", "Kokpekty",
749             "7385", "Altai\ Territory",
750             "7427", "Chukotka\ Autonomous\ District",
751             "7499", "Moscow",
752             "771434", "Denisovka",
753             "771031", "Aksu\-Ayuly",
754             "771448", "Oktyabrskoye",
755             "7814", "Republic\ of\ Karelia",
756             "771651", "Kabanbai\ Batyr",
757             "77272983", "Kaskelen",
758             "772937", "Kuryk",
759             "771131", "Darinskoye",
760             "771233", "Ganyushkino",
761             "771445", "Ubaganskoye",
762             "772531", "Aksukent",
763             "772830", "Alakolsky\ District",
764             "7416", "Amur\ Region",
765             "771636", "Shuchinsk",
766             "771346", "Shubarkuduk",
767             "772132", "Nurinsky\ District",
768             "7833", "Kirov",
769             "771532", "Smirnovo",
770             "7867", "Republic\ of\ North\ Ossetia",
771             "771643", "Atbasar",
772             "771333", "Kandyagash",
773             "771841", "Aktogai",
774             "772433", "Aralsk",
775             "771540", "Kishkenekol",
776             "77273", "Almaty",
777             "7848", "Tolyatti",
778             "771539", "Beskol",
779             "77212", "Karaganda",
780             "772757", "Akshi",
781             "772773", "Bakanas",
782             "7873", "Ingushi\ Republic",
783             "77152", "Petropavlovsk",
784             "772934", "Zhanaozen",
785             "771232", "Atyrau\ Region",
786             "7383", "Novosibirsk",
787             "772641", "Akkol",
788             "771437", "Kamysty",
789             "772331", "Glubokoye",
790             "772256", "Kainar",
791             "772843", "Lepsy",
792             "772545", "Ikan",
793             "771431", "Rudny",
794             "771034", "Zhezdy",
795             "772337", "Serebryansk",
796             "771145", "Karatobe\ District",
797             "772548", "Shayan",
798             "772836", "Karabulak",
799             "77122", "Atyrau",
800             "771134", "Zhympity",
801             "772534", "Zhetysai",
802             "771239", "Makat",
803             "7811", "Pskov",
804             "7486", "Orel",
805             "772237", "Ayagoz",
806             "771630", "Burabay",
807             "772772", "Kapchagai",
808             "771456", "Kachar",
809             "771340", "Khobdinsky\ District",
810             "772432", "Shiyeli",
811             "77132", "Aktobe\/Kargalinskoye",
812             "7492", "Vladimir",
813             "771649", "Zhaksynsky\ District",
814             "771339", "Komsomolskoye",
815             "7847", "Republic\ of\ Kalmykia",
816             "7712302", "Tengizshevroil",
817             "771642", "Egendykol",
818             "772146", "Karkaralinsk",
819             "77242", "Kyzylorda",
820             "7835", "Chuvashi\ Republic",
821             "771332", "Uil",
822             "771844", "Irtyshsky\ District",
823             "772439", "Aralsky\ District",
824             "771838", "Koktobe",
825             "771546", "Talshik",
826             "7879", "Mineranye\ Vody",
827             "7382", "Tomsk",
828             "7346", "Surgut",
829             "772779", "Narynkol",
830             "771533", "Saumalkol",
831             "7472", "Belgorod",
832             "771142", "Taipak",
833             "7498", "Moscow",
834             "772336", "Ridder",
835             "7423", "Primorie\ territory",
836             "772251", "Kurchatov",
837             "7341", "Udmurtian\ Republic",
838             "772153", "Topar",
839             "772542", "Asykata",
840             "7862", "Sochi",
841             "772343", "Terekty",
842             "772837", "Kabanbai",
843             "771042", "Zharyk",
844             "7302", "Chita",
845             "772633", "Asa",
846             "77272956", "Talgar",
847             "7353", "Orenburg",
848             "772530", "Temirlanovka",
849             "771443", "Borovskoi",
850             "772831", "Zharkent",
851             "771130", "Peremetnoye",
852             "771235", "Dossor",
853             "771436", "Taranovskoye",
854             "771238", "Miyaly",
855             "771149", "Zelenovsky\ District",
856             "771030", "Atasu",
857             "772257", "Shulbinsk",
858             "7388", "Republic\ of\ Altai",
859             "7352", "Kurgan",
860             "772147", "Egindybulak",
861             "771335", "Shalkar",
862             "771547", "Zhambylsky\ District",
863             "771645", "Stepnogorsk",
864             "771832", "Irtyshsk",
865             "771451", "Sarykol",
866             "7816", "Veliky\ Novgorod",
867             "771648", "Derzhavinsk",
868             "7481", "Smolensk",
869             "7877", "Republic\ of\ Adygeya",
870             "7391", "Krasnoyarsk\ Territory",
871             "77182", "Pavlodar",
872             "7473", "Voronezh",
873             "772775", "Esik",
874             "772236", "Beskaragai",
875             "771839", "Akku",
876             "7845", "Saratov",
877             "772351", "Borodulikha",
878             "771457", "Dzhangildinsky\ District",
879             "7863", "Rostov",
880             "772438", "Aiteke\ bi",
881             "7390", "Republic\ of\ Khakassia",
882             "772778", "Chundzha",
883             "771840", "Bayanaul",
884             "771541", "Mamlutka",
885             "772435", "Zhanakorgan",
886             "772159", "Karaganda\ Region",
887             "772330", "Zyryanovsky\ District",
888             "772640", "Moiynkumsky\ District",
889             "77262", "Taraz",
890             "771442", "Fyodorovka",
891             "772639", "Saudakent",
892             "771043", "Zhairem",
893             "772834", "Ushtobe",
894             "772342", "Katon\-Karagai",
895             "7842", "Ulyanovsk",
896             "771136", "Chapayev",
897             "7411", "Republic\ of\ Sakha",
898             "772632", "Merke",
899             "772536", "Kentau",
900             "771449", "Taranovskoye",
901             "77145834", "Krasnogorsk",
902             "771143", "Akzhaik",
903             "771036", "Balkhash",
904             "771430", "Arkalyk",
905             "772543", "Aqsumbe",
906             "7865", "Stavropol\ territory",
907             "7843", "Republic\ of\ Tatarstan",
908             "7484", "Kaluga",
909             "7475", "Tambov",
910             "7878", "Karachayevo\-Cherkessian\ Republic",
911             "771341", "Khobda",
912             "771631", "Shortandy",
913             "771454", "Karamendy",
914             "771637", "Korgalzhyn",
915             "771347", "Aitekebisky\ District",
916             "771833", "Terenkol",
917             "771535", "Novoishimski",
918             "772230", "Urdzhar",
919             "7851", "Astrakhan",
920             "772144", "Kiyevka",
921             "771538", "Beskol",
922             "7394", "Republic\ of\ Tuva",
923             "772138", "Gabidena\ Mustafina",
924             "771544", "Presnovka",
925             "772725", "Otegen\ Batyra",
926             "77187", "Ekibastuz",
927             "7869", "Sevastopol",
928             "77232", "Ust\-Kamenogorsk",
929             "7871", "Chechen\ Republic",
930             "77125", "Atyrau\ Region",
931             "772339", "Kurchum",
932             "7487", "Tula",
933             "771237", "Kulsary",
934             "772340", "Zaisan",
935             "771231", "Akkystau",
936             "771133", "Aksai",
937             "772533", "Turkestan",
938             "772835", "Tekeli",
939             "771440", "Amangeldy",
940             "771146", "Akzhaiksky\ District",
941             "77142", "Kostanai",
942             "772332", "Shemonaikha",
943             "771033", "Agadyr",
944             "772642", "Moiynkum",
945             "7717", "Astana",
946             "771439", "Torgai",
947             "7831", "Nizhni\ Novgorod",
948             "772838", "Balpyk\ bi",
949             "772546", "Sholakkorgan",
950             "772437", "Zhosaly",
951             "771331", "Martuk",
952             "771458", "Kostanai\ Region",
953             "771641", "Astrakhanka",
954             "7494", "Kostroma",
955             "771455", "Zatobolsk",
956             "77149", "Kostanai",
957             "7846", "Samara",
958             "7347", "Republic\ of\ Bashkortostan",
959             "77245", "Kyzylorda\ Region",
960             "772777", "Kegen",
961             "7815", "Murmansk",
962             "771836", "Sharbakty",
963             "77222", "Semey",
964             "771534", "Sergeyevka",
965             "7821", "Komi\ Republic",
966             "772239", "Makanchi",
967             "77135", "Aktobe\ Region",
968             "772771", "Kaskelen",
969             "772148", "Molodezhnoye",
970             "7384", "Kemerovo",
971             "771647", "Esil",
972             "771545", "Zhambylsky\ District",
973             "772431", "Zhalagash",
974             "771843", "Maisky\ District",
975             "771337", "Alga",
976             "7820", "Cherepovets",
977             "771032", "Karazhal",
978             "772333", "Samarskoye",
979             "772643", "Shu",
980             "772156", "Shakhtinsk",
981             "733", "Baikonur",
982             "772346", "Aksuat",
983             "771132", "Fyodorovka",
984             "772636", "Kordai",
985             "7426", "Jewish\ Autonomous\ Region",
986             "77292", "Aktau",
987             "772532", "Abai",
988             "772932", "Beineu",
989             "772539", "Kazygurt",
990             "77112", "Uralsk",
991             "771234", "Indernborski",
992             "771446", "Uzunkolsky\ District",
993             "77252", "Shymkent",
994             "7812", "St\ Petersburg",
995             "7834", "Republic\ of\ Mordovia",
996             "771040", "Zhairem\ \(GOK\)",
997             "771139", "Taskala",
998             "740", "Kaliningrad",
999             "772841", "Kapal",
1000             "771433", "Lisakovsk",
1001             "77224", "Barshatas",
1002             "772540", "Arys",
1003             "77102", "Zhezkazgan",
1004             "771140", "Saikhin",
1005             "771039", "Priozersk",
1006             "771644", "Arshaly",
1007             "771334", "Emba",
1008             "771842", "Koktobe",
1009             "7491", "Ryazan",
1010             "7813", "Leningrad\ region",
1011             "771348", "Shalkarsky\ District",
1012             "771638", "Akkol",
1013             "772759", "Almaty\ Region",
1014             "772137", "Saran",
1015             "771537", "Timiryazevo",
1016             "771345", "Karauylkeldy",
1017             "771635", "Zhaksy",
1018             "772131", "Abai",
1019             "772752", "Otegen\ Batyra",
1020             "772774", "Talgar",
1021             "771531", "Bulayevo",
1022             "7866", "Kabardino\-Balkarian\ Republic",
1023             "7381", "Omsk",};
1024              
1025             sub new {
1026 20     20 1 65 my $class = shift;
1027 20         42 my $number = shift;
1028 20         133 $number =~ s/(^\+7|\D)//g;
1029 20         153 my $self = bless({ country_code => '7', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1030 20 100       145 return $self if ($self->is_valid());
1031 4         26 $number =~ s/^(?:8)//;
1032 4         51 $self = bless({ country_code => '7', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
1033 4 50       32 return $self->is_valid() ? $self : undef;
1034             }
1035             1;