File Coverage

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