{"version":3,"file":"libphonenumber-max.js","sources":["../metadata.full.json.js","../es6/ParseError.js","../es6/constants.js","../es6/util.js","../es6/tools/semver-compare.js","../es6/metadata.js","../es6/extension.js","../es6/isViablePhoneNumber.js","../es6/parseDigits.js","../es6/parseIncompletePhoneNumber.js","../es6/getNumberType_.js","../es6/isPossibleNumber_.js","../es6/IDD.js","../es6/RFC3966.js","../es6/validate_.js","../es6/format_.js","../es6/PhoneNumber.js","../es6/parse_.js","../es6/parsePhoneNumber_.js","../es6/parsePhoneNumber.js","../es6/parsePhoneNumberFromString_.js","../es6/parsePhoneNumberFromString.js","../es6/findNumbers/LRUCache.js","../es6/findNumbers/RegExpCache.js","../es6/findNumbers/util.js","../es6/findNumbers/utf-8.js","../es6/findNumbers/Leniency.js","../es6/findNumbers/parsePreCandidate.js","../es6/findNumbers/isValidPreCandidate.js","../es6/findNumbers/isValidCandidate.js","../es6/PhoneNumberMatcher.js","../es6/findNumbers_.js","../es6/findNumbers.js","../es6/searchNumbers.js","../es6/findPhoneNumbersInText.js","../es6/searchPhoneNumbersInText.js","../es6/AsYouType.js","../es6/getCountries.js","../es6/getExampleNumber.js","../es6/formatIncompletePhoneNumber.js","../max/index.js"],"sourcesContent":["// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":\"1.7.46\",\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6],0,0,0,0,0,0,0,[[\"6[2-467]\\\\d{3}\",[5]],[\"4\\\\d{4}\",[5]],0,0,0,0,[\"(?:0[1-9]|[1589]\\\\d)\\\\d{4}\",[6]]]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[[\"[78]\\\\d{5}\",[6]],[\"690\\\\d{6}|[356]\\\\d{5}\",[6,9]],[\"180[02]\\\\d{4}\",[8]],[\"[19]\\\\d{5}\",[6]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"[2-4679][2-8]\\\\d{6}\",[8]],[\"5[024-68]\\\\d{7}\",[9]],[\"400\\\\d{6}|800\\\\d{2,9}\"],[\"900[02]\\\\d{5}\",[9]],0,0,[\"600[25]\\\\d{5}\",[9]],0,0,[\"700[05]\\\\d{5}\",[9]]]],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\\\d{6}\"],[\"7\\\\d{8}\"]]],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([457]\\\\d{6})$\",\"268$1\",0,\"268\",[[\"268(?:4(?:6[0-38]|84)|56[0-2])\\\\d{4}\"],[\"268(?:464|7(?:1[3-9]|2\\\\d|3[246]|64|[78][0-689]))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,[\"26840[69]\\\\d{4}\"],[\"26848[01]\\\\d{4}\"]]],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2457]\\\\d{6})$\",\"264$1\",0,\"264\",[[\"2644(?:6[12]|9[78])\\\\d{4}\"],[\"264(?:235|476|5(?:3[6-9]|8[1-4])|7(?:29|72))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:[2358](?:[16-9]\\\\d[2-9]|[2-5][2-9]\\\\d)|4(?:[2-57-9][2-9]|6\\\\d)\\\\d)\\\\d{4}\",[8]],[\"6(?:[78][2-9]|9\\\\d)\\\\d{6}\",[9]],[\"800\\\\d{4}\",[7]],[\"900[1-9]\\\\d\\\\d\",[6]],[\"700[2-9]\\\\d{4}\",[8]],0,0,0,0,[\"808[1-9]\\\\d\\\\d\",[6]]]],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:(?:1[0-25]|47)\\\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\\\d{5}\"],[\"(?:33|4[1349]|55|77|88|9[13-9])\\\\d{6}\"],[\"800\\\\d{5}\"],[\"90[016]\\\\d{5}\"],0,0,0,0,[\"60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\\\d|90)\\\\d{4}\"],[\"80[1-4]\\\\d{5}\"]]],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]],0,0,0,0,0,0,[[\"2\\\\d(?:[0134][25-9]|[25-9]\\\\d)\\\\d{5}\"],[\"9[1-49]\\\\d{7}\"]]],\"AR\":[\"54\",\"00\",\"11\\\\d{8}|(?:[2368]|9\\\\d)\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\",0,0,[[\"(?:2954|3(?:777|865))[2-8]\\\\d{5}|3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|(?:(?:11[1-8]|670)\\\\d|2(?:2(?:1[2-6]|3[3-6])|(?:3[06]|49)4|6(?:04|1[2-7]|4[4-6])|9(?:[17][4-6]|9[3-6]))|3(?:(?:36|64)4|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|8(?:1[2-6]|[58][3-6]|7[24-6])))\\\\d{6}|(?:2(?:284|657|9(?:20|66))|3(?:4(?:8[27]|92)|755|878))[2-7]\\\\d{5}|(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|8[03]))[45]\\\\d{6}|(?:2(?:2(?:2[59]|44|52)|3(?:26|4[24])|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|(?:2(?:(?:26|62)2|3(?:02|2[03])|477|9(?:42|83))|3(?:4(?:[47]6|62|89)|5(?:41|64)|873))[2-6]\\\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:329|4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])|888))[3-6]\\\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|[24]5|5[25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\",[10]],[\"9(?:2954|3(?:777|865))[2-8]\\\\d{5}|93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\\\d{5}|(?:675\\\\d|9(?:11[1-8]\\\\d|2(?:2(?:1[2-6]|3[3-6])|(?:3[06]|49)4|6(?:04|1[2-7]|4[4-6])|9(?:[17][4-6]|9[3-6]))|3(?:(?:36|64)4|4(?:1[2-7]|[235][4-6]|84)|5(?:1[2-8]|[38][4-6])|8(?:1[2-6]|[58][3-6]|7[24-6]))))\\\\d{6}|9(?:2(?:284|657|9(?:20|66))|3(?:4(?:8[27]|92)|755|878))[2-7]\\\\d{5}|9(?:2(?:[28]0|37|6[36]|9[48])|3(?:62|7[069]|8[03]))[45]\\\\d{6}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|4[24])|473|9(?:[07]2|2[26]|34|46))|3327)[45]\\\\d{5}|9(?:2(?:(?:26|62)2|3(?:02|2[03])|477|9(?:42|83))|3(?:4(?:[47]6|62|89)|5(?:41|64)|873))[2-6]\\\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|475|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\\\d{5}|9(?:2(?:2(?:57|81)|3(?:24|46|92)|9(?:01|23|64))|3(?:329|4(?:42|71)|5(?:25|37|4[347]|71)|7(?:18|5[17])|888))[3-6]\\\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|[24]5|5[25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[03-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[145]|4[13]|5[468]|7[2-5]|8[26])|8(?:2[5-7]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\\\d{5}\"],[\"800\\\\d{7}\",[10]],[\"60[04579]\\\\d{7}\",[10]],0,0,[\"810\\\\d{7}\",[10]]]],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([267]\\\\d{6})$\",\"684$1\",0,\"684\",[[\"6846(?:22|33|44|55|77|88|9[19])\\\\d{4}\"],[\"684(?:2(?:5[2468]|72)|7(?:3[13]|70))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"1(?:11\\\\d|[2-9]\\\\d{3,11})|(?:316|463|(?:51|66|73)2)\\\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-8]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\\\d{4,10}\"],[\"6(?:5[0-3579]|6[013-9]|[7-9]\\\\d)\\\\d{4,10}\",[7,8,9,10,11,12,13]],[\"800\\\\d{6,10}\",[9,10,11,12,13]],[\"9(?:0[01]|3[019])\\\\d{6,10}\",[9,10,11,12,13]],0,0,0,0,[\"5(?:0[1-9]|17|[79]\\\\d)\\\\d{2,10}|7[28]0\\\\d{6,10}\",[5,6,7,8,9,10,11,12,13]],[\"8(?:10|2[018])\\\\d{6,10}|828\\\\d{5}\",[8,9,10,11,12,13]]]],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7,8}|8[0-24-9]\\\\d{7})|(?:[2-478]\\\\d\\\\d|550)\\\\d{6}|1\\\\d{4,7}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|[45]\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"0|(183[12])\",0,0,0,[[\"(?:[237]\\\\d{5}|8(?:51(?:0(?:0[03-9]|[1247]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-6])|1(?:1[69]|[23]\\\\d|4[0-4]))|(?:[6-8]\\\\d{3}|9(?:[02-9]\\\\d\\\\d|1(?:[0-57-9]\\\\d|6[0135-9])))\\\\d))\\\\d{3}\",[9]],[\"483[0-3]\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"16\\\\d{3,7}\",[5,6,7,8,9]],[\"(?:14(?:5(?:1[0458]|[23][458])|71\\\\d)|550\\\\d\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]],0,0,0,0,0,0,[[\"5(?:2\\\\d|8[1-9])\\\\d{4}\"],[\"(?:290|5[69]\\\\d|6(?:[03]0|22|4[0-2]|[69]\\\\d)|7(?:[34]\\\\d|7[07])|9(?:6[45]|9[4-8]))\\\\d{4}\"],[\"800\\\\d{4}\"],[\"900\\\\d{4}\"],0,0,0,0,[\"(?:28\\\\d|501)\\\\d{4}\"]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",[[\"18[1-8]\\\\d{3,6}\",[6,7,8,9]],[\"(?:4[0-8]|50)\\\\d{4,8}\",[6,7,8,9,10]],[\"800\\\\d{4,6}\",[7,8,9]],[\"[67]00\\\\d{5,6}\",[8,9]],0,0,[\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\"]],\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365|46\",\"1[28]|2|365(?:[0-46-9]|5[0-35-9])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"365(?:[0-46-9]\\\\d|5[0-35-9])\\\\d{4}|(?:(?:1[28]|46)\\\\d|2(?:[045]2|1[24]|2[2-4]|33|6[23]))\\\\d{6}\"],[\"(?:36554|99[2-9]\\\\d\\\\d)\\\\d{4}|(?:[16]0|4[04]|5[015]|60|7[07])\\\\d{7}\"],[\"88\\\\d{7}\"],[\"900200\\\\d{3}\"]]],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\\\d{5}\",[8]],[\"6040[0-4]\\\\d{4}|6(?:03|[1-356]|44|7\\\\d)\\\\d{6}\"],[\"8[08]\\\\d{6}\",[8]],[\"9[0246]\\\\d{6}\",[8]],0,0,[\"70(?:3[0146]|[56]0)\\\\d{4}\",[8]],0,0,[\"8[12]\\\\d{6}\",[8]]]],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"246$1\",0,\"246\",[[\"246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\\\d|3[2-9])|5(?:20|[34]\\\\d|54|7[1-3])|6(?:2\\\\d|38)|7[35]7|9(?:1[89]|63))\\\\d{4}\"],[\"246(?:2(?:[356]\\\\d|4[0-57-9]|8[0-79])|45\\\\d|69[5-7]|8(?:[2-5]\\\\d|83))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"(?:246976|900[2-9]\\\\d\\\\d)\\\\d{4}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,[\"246(?:292|367|4(?:1[7-9]|3[01]|44|67)|7(?:36|53))\\\\d{4}\"],0,[\"24631\\\\d{5}\"]]],\"BD\":[\"880\",\"00\",\"[13469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-7]\\\\d{8}|[2-9]\\\\d{7}|[3-689]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-7]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:3(?:03[56]|224)|4(?:22[25]|653))\\\\d{3,4}|(?:4(?:31\\\\d\\\\d|[46]23)|5(?:222|32[37]))\\\\d{3}(?:\\\\d{2})?|(?:3(?:42[47]|529|823)|4(?:027|525|658)|(?:56|73)2|6257|9[35]1)\\\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[01367]|7[15]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|8(?:4[12]|[5-7]2)|9(?:[024]2|81))\\\\d{4}|(?:2[45]\\\\d\\\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\\\d|[257]1|332|4(?:2[246]|5[25])|6(?:25|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[569]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\\\d|[3-589]1|6[12]|72[24])|8(?:0|217|3[12]|[5-7]1)|9[24]1)\\\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\\\d{5}|[59]1\\\\d{5}\"],[\"(?:1[13-9]\\\\d|644)\\\\d{7}|(?:3[78]|44|66)[02-9]\\\\d{7}\",[10]],[\"80[03]\\\\d{7}\",[10]],0,0,0,0,0,[\"96(?:0[469]|1[0-47]|3[389]|6[69]|7[78])\\\\d{6}\",[10]]]],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"80[2-8]\\\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\\\d{6}\",[8]],[\"4[5-9]\\\\d{7}\",[9]],[\"800[1-9]\\\\d{4}\",[8]],[\"(?:70(?:2[0-57]|3[0457]|44|69|7[0579])|90(?:0[0-35-8]|1[36]|2[0-3568]|3[0135689]|4[2-68]|5[1-68]|6[0-378]|7[23568]|9[34679]))\\\\d{4}\",[8]],0,0,[\"78(?:0[57]|1[0458]|2[25]|3[15-8]|48|[56]0|7[078])\\\\d{4}\",[8]],0,0,[\"7879\\\\d{4}\",[8]]]],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]],0,0,0,0,0,0,[[\"2(?:0(?:49|5[23]|6[56]|9[016-9])|4(?:4[569]|5[4-6]|6[56]|7[0179])|5(?:[34]\\\\d|50|6[5-7]))\\\\d{4}\"],[\"(?:0[127]|5[1-8]|[67]\\\\d)\\\\d{6}\"]]],\"BG\":[\"359\",\"00\",\"[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"2\\\\d{5,7}|(?:43[1-6]|70[1-9])\\\\d{4,5}|(?:[36]\\\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\\\d{5,6}\",[6,7,8]],[\"43[07-9]\\\\d{5}|(?:48|8[7-9]\\\\d|9(?:8\\\\d|9[69]))\\\\d{6}\",[8,9]],[\"800\\\\d{5}\",[8]],[\"90\\\\d{6}\",[8]],0,0,0,0,0,[\"700\\\\d{5}\",[8]]]],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[047]\"]]],0,0,0,0,0,0,[[\"(?:1(?:3[1356]|6[0156]|7\\\\d)\\\\d|6(?:1[16]\\\\d|500|6(?:0\\\\d|3[12]|44|7[7-9]|88)|9[69][69])|7(?:1(?:11|78)|7\\\\d\\\\d))\\\\d{4}\"],[\"(?:3(?:[1-79]\\\\d|8[0-47-9])\\\\d|6(?:3(?:00|33|6[16])|6(?:3[03-9]|[69]\\\\d|7[0-6])))\\\\d{4}\"],[\"80\\\\d{6}\"],[\"(?:87|9[014578])\\\\d{6}\"],0,0,0,0,0,[\"84\\\\d{6}\"]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]],0,0,0,0,0,0,[[\"22\\\\d{6}\"],[\"(?:29|31|6[1289]|7[125-9])\\\\d{6}\"]]],\"BJ\":[\"229\",\"00\",\"(?:[2689]\\\\d|51)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[25689]\"]]],0,0,0,0,0,0,[[\"2(?:02|1[037]|2[45]|3[68])\\\\d{5}\"],[\"(?:51|6\\\\d|9[013-9])\\\\d{6}\"],0,0,0,0,[\"81\\\\d{6}\"],0,[\"857[58]\\\\d{4}\"]]],\"BL\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-8]\\\\d{6})$\",\"441$1\",0,\"441\",[[\"441(?:2(?:02|23|[3479]\\\\d|61)|[46]\\\\d\\\\d|5(?:4\\\\d|60|89)|824)\\\\d{4}\"],[\"441(?:[37]\\\\d|5[0-39])\\\\d{5}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]],0,0,0,0,0,0,[[\"22[0-7]\\\\d{4}|(?:2[013-9]|[34]\\\\d|5[0-25-9])\\\\d{5}\"],[\"(?:22[89]|[78]\\\\d\\\\d)\\\\d{4}\"],0,0,0,0,0,0,[\"5[34]\\\\d{5}\"]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\",0,0,0,[[\"(?:2(?:2\\\\d\\\\d|5(?:11|[258]\\\\d|9[67])|6(?:12|2\\\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\\\d\\\\d|4(?:6\\\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\\\d\\\\d|6(?:11|[24689]\\\\d|72)))\\\\d{4}\",[8]],[\"[67]\\\\d{7}\",[8]],[\"8001[07]\\\\d{4}\",[9]]]],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\",[[\"(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\\\d)\\\\d{3}\"],[\"(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\\\d|9[056])\\\\d)\\\\d{3}\"]]],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-24679]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"0(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\",0,0,[[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\\\d{7}\",[10]],[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\\\d)\\\\d{7}\",[10,11]],[\"800\\\\d{6,7}\",[9,10]],[\"300\\\\d{6}|[59]00\\\\d{6,7}\",[9,10]],0,0,0,0,0,[\"300\\\\d{7}|[34]00\\\\d{5}|4(?:02|37)0\\\\d{4}\",[8,10]]]],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-8]\\\\d{6})$\",\"242$1\",0,\"242\",[[\"242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-4]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\\\d{4}\"],[\"242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\\\d|[89]9))\\\\d{4}\"],[\"242300\\\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,[\"242225[0-46-9]\\\\d{3}\"]]],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]],0,0,0,0,0,0,[[\"(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\\\d{5}\",[7]],[\"(?:1[67]|77)\\\\d{6}\",[8]]]],\"BW\":[\"267\",\"00\",\"90\\\\d{5}|(?:[2-6]|7\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-6]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]]],0,0,0,0,0,0,[[\"(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\\\d|7[013])|4(?:6[03]|7[1267]|9[0-5])|5(?:3[0389]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[067]))\\\\d{4}\",[7]],[\"77200\\\\d{3}|7(?:[1-6]\\\\d|7[014-9])\\\\d{5}\",[8]],0,[\"90\\\\d{5}\",[7]],0,0,0,0,[\"79(?:1(?:[01]\\\\d|20)|2[0-2]\\\\d)\\\\d{3}\",[8]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,[[\"(?:1(?:5(?:1[1-5]|[24]\\\\d|6[2-4]|9[1-7])|6(?:[235]\\\\d|4[1-7])|7\\\\d\\\\d)|2(?:1(?:[246]\\\\d|3[0-35-9]|5[1-9])|2(?:[235]\\\\d|4[0-8])|3(?:[26]\\\\d|3[02-79]|4[024-7]|5[03-7])))\\\\d{5}\",[9]],[\"(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\\\d)\\\\d{6}\",[9]],[\"800\\\\d{3,7}|8(?:0[13]|20\\\\d)\\\\d{7}\"],[\"(?:810|902)\\\\d{7}\",[10]],0,0,0,0,[\"249\\\\d{6}\",[9]]],\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]],0,0,0,0,0,0,[[\"(?:236|732)\\\\d{4}|[2-578][02]\\\\d{5}\",[7]],[\"6[0-35-7]\\\\d{5}\",[7]],[\"0800\\\\d{7}\",[11]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}\",[10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\\\d{6}\"],0,0,0,[\"600[2-9]\\\\d{6}\"]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|(?:[148]\\\\d\\\\d|550)\\\\d{6}|1\\\\d{5,7}\",[6,7,8,9,10],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60)|118)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"483[0-3]\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"(?:14(?:5(?:1[0458]|[23][458])|71\\\\d)|550\\\\d\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"12\\\\d{7}|[1-6]\\\\d{6}\"],[\"88\\\\d{5}|(?:8[0-2459]|9[017-9])\\\\d{7}\"]]],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]],0,0,0,0,0,0,[[\"2[12]\\\\d{6}\"],[\"7[0257]\\\\d{6}\"],0,[\"8776\\\\d{4}\"]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"801\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]],0,0,0,0,0,0,[[\"222[1-589]\\\\d{5}\"],[\"0[14-6]\\\\d{7}\"],0,[\"80(?:0\\\\d\\\\d|11[0-4])\\\\d{4}\"]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\\\d{7}\"],[\"7[35-9]\\\\d{7}\"],[\"800\\\\d{6}\"],[\"90[016]\\\\d{6}\"],[\"878\\\\d{6}\"],0,[\"5[18]\\\\d{7}\"],[\"74[0248]\\\\d{6}\"],0,[\"84[0248]\\\\d{6}\"]]],\"CI\":[\"225\",\"00\",\"[02-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[02-9]\"]]],0,0,0,0,0,0,[[\"(?:2(?:0[023]|1[02357]|[23][045]|4[03-5])|3(?:0[06]|1[069]|[2-4][07]|5[09]|6[08]))\\\\d{5}\"],[\"(?:2[0-3]80|97[0-3]\\\\d)\\\\d{4}|(?:0[1-9]|[457]\\\\d|6[014-9]|8[4-9]|95)\\\\d{6}\"]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]],0,0,0,0,0,0,[[\"(?:2\\\\d|3[13-7]|4[1-5])\\\\d{3}\"],[\"[578]\\\\d{4}\"]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[0-57]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"21\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[23]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]],0,0,0,0,0,0,[[\"(?:2(?:1962|3(?:2\\\\d\\\\d|3(?:00|23)))|80[1-9]\\\\d\\\\d)\\\\d{4}|(?:22|3[2-5]|[47][1-35]|5[1-3578]|6[13-57]|8[1-9]|9[2-9])\\\\d{7}\",[9]],[\"\",[9]],[\"(?:123|8)00\\\\d{6}\",[9,11]],0,0,0,0,0,[\"44\\\\d{7}\",[9]],[\"600\\\\d{7,8}\",[10,11]]]],\"CM\":[\"237\",\"00\",\"(?:[26]\\\\d\\\\d|88)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]\"]]],0,0,0,0,0,0,[[\"2(?:22|33)\\\\d{6}\",[9]],[\"(?:24[23]|6[5-9]\\\\d)\\\\d{6}\",[9]],[\"88\\\\d{6}\",[8]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79|9[0235-7])\\\\d\\\\d00\",\"1[1279]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-68]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"(?:10|2[0-57-9])(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"0|(1(?:[12]\\\\d|79|9[0235-7])\\\\d\\\\d)\",0,0,0,[[\"(?:10(?:[02-79]\\\\d\\\\d|[18](?:0[1-9]|[1-9]\\\\d))|21(?:[18](?:0[1-9]|[1-9]\\\\d)|[2-79]\\\\d\\\\d))\\\\d{5}|(?:43[35]|754)\\\\d{7,8}|8(?:078\\\\d{7}|51\\\\d{7,8})|(?:10|(?:2|85)1|43[35]|754)(?:100\\\\d\\\\d|95\\\\d{3,4})|(?:2[02-57-9]|3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\\\d{7}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{3})?|[1-9]\\\\d{5})|[1-9]\\\\d{6})|9(?:[0-46-9]\\\\d{6}|5\\\\d{3}(?:\\\\d(?:\\\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\\\d|7[02-68]|9[1-68])|4(?:1[02-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:[02-8]\\\\d{6}|1(?:0(?:0\\\\d\\\\d(?:\\\\d{2})?|[1-9]\\\\d{4})|[1-9]\\\\d{5})|9(?:[0-46-9]\\\\d{5}|5\\\\d{3,5}))\",[7,8,9,10,11]],[\"1740[0-5]\\\\d{6}|1(?:[38]\\\\d|4[57]|5[0-35-9]|6[25-7]|7[0-35-8]|9[189])\\\\d{8}\",[11]],[\"(?:(?:10|21)8|8)00\\\\d{7}\",[10,12]],[\"16[08]\\\\d{5}\",[8]],0,0,0,0,0,[\"400\\\\d{7}|950\\\\d{7,8}|(?:10|2[0-57-9]|3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))96\\\\d{3,4}\",[7,8,9,10,11]]],\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:1\\\\d|3)\\\\d{9}|[124-8]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[14][2-9]|[25-8]\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\",0,0,0,[[\"[124-8][2-9]\\\\d{6}\",[8]],[\"3333(?:0(?:0\\\\d|1[0-5])|[4-9]\\\\d\\\\d)\\\\d{3}|33(?:00|3[0-24-9])\\\\d{6}|3(?:0[0-5]|1\\\\d|2[0-3]|5[01]|70)\\\\d{7}\",[10]],[\"1800\\\\d{7}\",[11]],[\"19(?:0[01]|4[78])\\\\d{7}\",[11]]]],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\",0,0,0,[[\"210[7-9]\\\\d{4}|2(?:[024-7]\\\\d|1[1-9])\\\\d{5}\",[8]],[\"(?:3005\\\\d|6500[01])\\\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\\\d{6}\",[8]],[\"800\\\\d{7}\",[10]],[\"90[059]\\\\d{7}\",[10]],0,0,0,0,[\"(?:210[0-6]|4\\\\d{3}|5100)\\\\d{4}\",[8]]]],\"CU\":[\"53\",\"119\",\"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:3[23]|48)\\\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\\\d)\\\\d{6}|(?:2[1-4]|4[1257]|7\\\\d)\\\\d{5,6}\"],[\"5\\\\d{7}\",[8]],[\"800\\\\d{7}\",[10]],0,0,0,0,0,0,[\"807\\\\d{7}\",[10]]]],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]],0,0,0,0,0,0,[[\"2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\\\d|7[1-3]|8[1-5])\\\\d{4}\"],[\"(?:[34][36]|5[1-389]|9\\\\d)\\\\d{5}\"],[\"800\\\\d{4}\"]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\",[[\"9(?:4(?:3[0-5]|4[14]|6\\\\d)|50\\\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\\\d|7[01]|8[57-9]))\\\\d{4}\"],[\"953[01]\\\\d{4}|9(?:5[12467]|6[5-9])\\\\d{5}\"],0,0,0,0,0,[\"955\\\\d{5}\",[8]],0,[\"60[0-2]\\\\d{4}\",[7]]]],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|(?:[148]\\\\d\\\\d|550)\\\\d{6}|1\\\\d{5,7}\",[6,7,8,9,10],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59)|117)|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"483[0-3]\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-2457-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"(?:14(?:5(?:1[0458]|[23][458])|71\\\\d)|550\\\\d\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]],0,0,0,0,0,0,[[\"2[2-6]\\\\d{6}\"],[\"9[4-79]\\\\d{6}\"],[\"800\\\\d{5}\"],[\"90[09]\\\\d{5}\"],[\"700\\\\d{5}\"],0,[\"(?:50|77)\\\\d{6}\"],0,0,[\"80[1-9]\\\\d{5}\"]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,[[\"(?:2\\\\d|3[1257-9]|4[16-9]|5[13-9])\\\\d{7}\"],[\"(?:60[1-8]|7(?:0[2-5]|[2379]\\\\d))\\\\d{6}\"],[\"800\\\\d{6}\"],[\"9(?:0[05689]|76)\\\\d{6}\"],[\"70[01]\\\\d{6}\"],0,[\"9(?:5\\\\d|7[2-4])\\\\d{6}\"],0,[\"9[17]0\\\\d{6}\"],[\"8[134]\\\\d{7}\"]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[05]\\\\d{10}|[46][1-8]\\\\d{4,9})|49(?:[0-25]\\\\d|3[1-689]|7[1-7])\\\\d{4,8}|49(?:[0-2579]\\\\d|[34][1-9]|6[0-8])\\\\d{3}|49\\\\d{3,4}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[0568]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:32|49[4-6]\\\\d)\\\\d{9}|49[0-7]\\\\d{3,9}|(?:[34]0|[68]9)\\\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\\\d|[589][0-7]|6[0-8]|7[0-467]))\\\\d{3,12}\",[5,6,7,8,9,10,11,12,13,14,15]],[\"15[0-25-9]\\\\d{8}|1(?:6[023]|7\\\\d)\\\\d{7,8}\",[10,11]],[\"800\\\\d{7,12}\",[10,11,12,13,14,15]],[\"(?:137[7-9]|900(?:[135]|9\\\\d))\\\\d{6}\",[10,11]],[\"700\\\\d{8}\",[11]],0,[\"18(?:1\\\\d{5,11}|[2-9]\\\\d{8})\",[8,9,10,11,12,13,14]],[\"16(?:4\\\\d{1,10}|[89]\\\\d{1,11})\",[4,5,6,7,8,9,10,11,12,13,14]],0,[\"180\\\\d{5,11}|13(?:7[1-6]\\\\d\\\\d|8)\\\\d{4}\",[7,8,9,10,11,12,13,14]]]],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]],0,0,0,0,0,0,[[\"2(?:1[2-5]|7[45])\\\\d{5}\"],[\"77\\\\d{6}\"]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]],0,0,0,0,0,0,[[\"(?:[2-7]\\\\d|8[126-9]|9[1-46-9])\\\\d{6}\"],[\"\"],[\"80\\\\d{6}\"],[\"90\\\\d{6}\"]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"767$1\",0,\"767\",[[\"767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4]|70[1-3])\\\\d{4}\"],[\"767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-7])\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8[024]9\",[[\"8(?:[04]9[2-9]\\\\d\\\\d|29(?:2(?:[0-59]\\\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\\\d|4[7-9])|[45]\\\\d\\\\d|6(?:[0-27-9]\\\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\\\d{4}\"],[\"8[024]9[2-9]\\\\d{6}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"9619\\\\d{5}|(?:1\\\\d|2[013-79]|3[0-8]|4[0135689])\\\\d{6}\"],[\"(?:5(?:4[0-29]|5\\\\d|6[01])|6(?:[569]\\\\d|7[0-6])|7[7-9]\\\\d)\\\\d{6}\",[9]],[\"800\\\\d{6}\",[9]],[\"80[3-689]1\\\\d{5}\",[9]],0,0,0,0,[\"98[23]\\\\d{6}\",[9]],[\"80[12]1\\\\d{5}\",[9]]]],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[[\"[2-7][2-7]\\\\d{6}\",[8]],[\"964[0-2]\\\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\\\d)\\\\d{6}\",[9]],[\"1800\\\\d{7}|1[78]00\\\\d{6}\",[10,11]],0,0,0,0,0,[\"[2-7]890\\\\d{4}\",[8]]]],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[[\"(?:3[23589]|4[3-8]|6\\\\d|7[1-9]|88)\\\\d{5}\",[7]],[\"5(?:[0-35-9]\\\\d{6}|4(?:[0-57-9]\\\\d{5}|6(?:[0-24-9]\\\\d{4}|3(?:[0-35-9]\\\\d{3}|4000))))|8(?:1(?:0(?:000|[3-9]\\\\d\\\\d)|(?:1(?:0[236]|1\\\\d)|(?:23|[3-79]\\\\d)\\\\d)\\\\d)|2(?:0(?:000|(?:19|[24-7]\\\\d)\\\\d)|(?:(?:[124-6]\\\\d|3[5-9]|8[2-4])\\\\d|7(?:[679]\\\\d|8[13-9]))\\\\d)|[349]\\\\d{4})\\\\d\\\\d|5(?:(?:[02]\\\\d|5[0-478])\\\\d|1(?:[0-8]\\\\d|95)|6(?:4[0-4]|5[1-589]))\\\\d{3}\",[7,8]],[\"800(?:(?:0\\\\d\\\\d|1)\\\\d|[2-9])\\\\d{3}\"],[\"(?:40\\\\d\\\\d|900)\\\\d{4}\",[7,8]],[\"70[0-2]\\\\d{5}\",[8]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[189]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"13[23]\\\\d{6}|(?:15|57)\\\\d{6,7}|(?:2[2-4]|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\\\d{7}\",[8,9]],[\"1[0-25]\\\\d{8}\",[10]],[\"800\\\\d{7}\",[10]],[\"900\\\\d{7}\",[10]]]],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\",[[\"528[89]\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0[016-8]|6[1267]|7[0-27]))\\\\d{6}\"],[\"80\\\\d{7}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"592(?:4[0-2]|93)\\\\d{4}\"]]],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1[12568]|[24]0|55|6[146])|8\\\\d\\\\d)\\\\d{4}\"],[\"(?:17[1-3]|7\\\\d\\\\d)\\\\d{4}\"]]],\"ES\":[\"34\",\"00\",\"(?:51|[6-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]],0,0,0,0,0,0,[[\"96906(?:0[0-8]|1[1-9]|[2-9]\\\\d)\\\\d\\\\d|9(?:69(?:0[0-57-9]|[1-9]\\\\d)|73(?:[0-8]\\\\d|9[1-9]))\\\\d{4}|(?:8(?:[1356]\\\\d|[28][0-8]|[47][1-9])|9(?:[135]\\\\d|[268][0-8]|4[1-9]|7[124-9]))\\\\d{6}\"],[\"9(?:6906(?:09|10)|7390\\\\d\\\\d)\\\\d\\\\d|(?:6\\\\d|7[1-48])\\\\d{7}\"],[\"[89]00\\\\d{6}\"],[\"80[367]\\\\d{6}\"],[\"70\\\\d{7}\"],0,[\"51\\\\d{7}\"],0,0,[\"90[12]\\\\d{6}\"]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-59]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-59]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"116671\\\\d{3}|(?:11(?:1(?:1[124]|2[2-57]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8])|5(?:1[578]|44|5[0-4])|6(?:1[78]|2[69]|39|4[5-7]|5[1-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\\\d)))\\\\d{4}\"],[\"9\\\\d{8}\"]]],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[12]00|[368]|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[1245]|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",[[\"(?:1[3-79][1-8]|[235689][1-8]\\\\d)\\\\d{2,6}\",[5,6,7,8,9]],[\"(?:4[0-8]|50)\\\\d{4,8}\",[6,7,8,9,10]],[\"800\\\\d{4,6}\",[7,8,9]],[\"[67]00\\\\d{5,6}\",[8,9]],0,0,[\"20\\\\d{4,8}|60[12]\\\\d{5,6}|7(?:099\\\\d{4,5}|5[03-9]\\\\d{3,7})|20[2-59]\\\\d\\\\d|(?:606|7(?:0[78]|1|3\\\\d))\\\\d{7}|(?:10|29|3[09]|70[1-5]\\\\d)\\\\d{4,8}\"]],\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,[[\"603\\\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\\\d{5}\",[7]],[\"(?:[279]\\\\d|45|5[01568]|8[034679])\\\\d{5}\",[7]],[\"0800\\\\d{7}\",[11]]],\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5],0,0,0,0,0,0,0,[[\"[2-47]\\\\d{4}\"],[\"[56]\\\\d{4}\"]]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]],0,0,0,0,0,0,[[\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\\\d)\\\\d)\\\\d{3}\"],[\"31(?:00[67]|208|309)\\\\d\\\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\\\d)\\\\d)\\\\d{3}\"]]],\"FO\":[\"298\",\"00\",\"(?:[2-8]\\\\d|90)\\\\d{4}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\",0,0,0,[[\"(?:20|[34]\\\\d|8[19])\\\\d{4}\"],[\"(?:[27][1-9]|5\\\\d)\\\\d{4}\"],[\"80[257-9]\\\\d{3}\"],[\"90(?:[13-5][15-7]|2[125-7]|9\\\\d)\\\\d\\\\d\"],0,0,0,0,[\"(?:6[0-36]|88)\\\\d{4}\"]]],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:[1-35]\\\\d|4[1-9])\\\\d{7}\"],[\"700\\\\d{6}|(?:6\\\\d|7[3-9])\\\\d{7}\"],[\"80[0-5]\\\\d{6}\"],[\"836(?:0[0-36-9]|[1-9]\\\\d)\\\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\\\d|8[0-35-9])\\\\d{6}\"],0,0,[\"80[6-9]\\\\d{6}\"],0,[\"9\\\\d{8}\"],[\"8(?:1[01]|2[0156]|84)\\\\d{6}\"]]],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]]],0,0,\"0(11\\\\d{6}|6[256]\\\\d{6}|7[47]\\\\d{6})\",\"$1\",0,0,[[\"[01]1\\\\d{6}\",[8]],[\"(?:0[2-7]|6[256]|7[47])\\\\d{6}|[2-7]\\\\d{6}\"]]],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:(?:1(?:3[0-58]|4[0-5]|5[0-26-9]|6[0-4]|[78][0-49])|3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d\\\\d|2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d\\\\d|1(?:[0-7]\\\\d\\\\d|80[04589])))|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"473$1\",0,\"473\",[[\"473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-49]|5[5-79]|73|90)|63[68]|7(?:58|84)|800|938)\\\\d{4}\"],[\"473(?:4(?:0[2-79]|1[04-9]|2[0-5]|58)|5(?:2[01]|3[3-8])|901)\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:3(?:[256]\\\\d|4[124-9]|7[0-4])|4(?:1\\\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\\\d{6}\"],[\"5(?:0555[5-9]|757(?:7[7-9]|8[01]))\\\\d{3}|5(?:000\\\\d|(?:52|75)00|8(?:58[89]|888))\\\\d{4}|5(?:0050|1111|2222|3333)[0-4]\\\\d{3}|(?:5(?:[14]4|5[0157-9]|68|7[0147-9]|9[1-35-9])|790)\\\\d{6}\"],[\"800\\\\d{6}\"],0,0,0,0,0,[\"706\\\\d{6}\"]]],\"GF\":[\"594\",\"00\",\"(?:[56]94|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"594(?:[023]\\\\d|1[01]|4[03-9]|5[6-9]|6[0-3]|80|9[014])\\\\d{4}\"],[\"694(?:[0-249]\\\\d|3[0-48])\\\\d{4}\"],0,0,0,0,0,0,[\"976\\\\d{6}\"]]],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"0|([25-9]\\\\d{5})$\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"3(?:[167]2[0-6]|22[0-5]|32[0-3]|4(?:2[013-9]|3[01])|52[0-7]|82[0-2])\\\\d{5}|3(?:[0-8]8|9[28])0\\\\d{5}|3(?:0[237]|[1-9]7)\\\\d{6}\",[9]],[\"(?:2[0346-8]\\\\d|5(?:[0457]\\\\d|6[01]|9[1-6]))\\\\d{6}\",[9]],[\"800\\\\d{5}\",[8]]]],\"GI\":[\"350\",\"00\",\"[256]\\\\d{7}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]],0,0,0,0,0,0,[[\"21(?:6[24-7]\\\\d|90[0-2])\\\\d{3}|2(?:00|2[25])\\\\d{5}\"],[\"(?:5[146-8]\\\\d|6(?:06|29))\\\\d{5}\"]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-689]\"]]],0,0,0,0,0,0,[[\"(?:19|3[1-7]|6[14689]|8[14-79]|9\\\\d)\\\\d{4}\"],[\"[245]\\\\d{5}\"],[\"80\\\\d{4}\"],0,0,0,0,0,[\"3[89]\\\\d{4}\"]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],0,0,0,0,0,0,[[\"(?:4(?:[23]\\\\d\\\\d|4(?:1[024679]|[6-9]\\\\d))|5(?:5(?:3\\\\d|4[0-7])|6[67]\\\\d|7(?:1[04]|2[035]|3[58]|48))|8\\\\d{3})\\\\d{3}\"],[\"(?:[23679]\\\\d|5[0-389])\\\\d{5}\"]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]],0,0,0,0,0,0,[[\"3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\\\d\\\\d)\\\\d{4}\",[8]],[\"6[02356]\\\\d{7}\",[9]],0,0,0,0,0,0,[\"722\\\\d{6}\",[9]]]],\"GP\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]],0,0,0,0,0,0,[[\"33[0-24-9]\\\\d[46]\\\\d{4}|3(?:33|5\\\\d)\\\\d[7-9]\\\\d{4}\"],[\"(?:222|55[015])\\\\d{6}\"],[\"80\\\\d[1-9]\\\\d{5}\"],[\"90\\\\d[1-9]\\\\d{5}\"]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|(?:[2689]\\\\d|70)\\\\d{8}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]]],0,0,0,0,0,0,[[\"2(?:1\\\\d\\\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\\\d|2[1-5]|[34][1-4]|9[1-57]))\\\\d{6}\"],[\"68[57-9]\\\\d{7}|(?:69|94)\\\\d{8}\"],[\"800\\\\d{7}\"],[\"90[19]\\\\d{7}\"],[\"70\\\\d{8}\"],0,[\"5005000\\\\d{3}\"],0,0,[\"8(?:0[16]|12|25)\\\\d{7}\"]]],\"GT\":[\"502\",\"00\",\"(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[[\"[267][2-9]\\\\d{6}\",[8]],[\"[3-5]\\\\d{7}\",[8]],[\"18[01]\\\\d{8}\",[11]],[\"19\\\\d{9}\",[11]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-9]\\\\d{6})$\",\"671$1\",0,\"671\",[[\"671(?:3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[0236-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[48])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\\\d{4}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]],0,0,0,0,0,0,[[\"443\\\\d{6}\",[9]],[\"9(?:5\\\\d|6[569]|77)\\\\d{6}\",[9]],0,0,0,0,0,0,[\"40\\\\d{5}\",[7]]]],\"GY\":[\"592\",\"001\",\"(?:862\\\\d|9008)\\\\d{3}|(?:[2-46]\\\\d|77)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46-9]\"]]],0,0,0,0,0,0,[[\"(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\\\d|7[0-24-79])|3(?:2[25-9]|3\\\\d)|4(?:4[0-24]|5[56])|77[1-57])\\\\d{4}\"],[\"6\\\\d{6}\"],[\"(?:289|862)\\\\d{4}\"],[\"9008\\\\d{3}\"]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4}(?:\\\\d(?:\\\\d(?:\\\\d{4})?)?)?|(?:[235-79]\\\\d|46)\\\\d{6}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,[[\"(?:384[0-24]|58(?:0[1-8]|1[2-9]))\\\\d{4}|(?:2(?:[13-8]\\\\d|2[013-9]|9[0-24-9])|3(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69]|89))\\\\d{5}\",[8]],[\"(?:46(?:0[0-6]|1[0-2]|4[0-57-9])|5730|(?:626|848)[01]|707[1-5]|929[03-9])\\\\d{4}|(?:5(?:[1-59][0-46-9]|6[0-4689]|7[0-2469])|6(?:0[1-9]|[13-59]\\\\d|[268][0-57-9]|7[0-79])|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\\\d))\\\\d{5}\",[8]],[\"800\\\\d{6}\",[9]],[\"900(?:[0-24-9]\\\\d{7}|3\\\\d{1,4})\",[5,6,7,8,11]],[\"8(?:1[0-4679]\\\\d|2(?:[0-36]\\\\d|7[0-4])|3(?:[034]\\\\d|2[09]|70))\\\\d{4}\",[8]],0,[\"30(?:0[1-9]|[15-7]\\\\d|2[047]|89)\\\\d{4}\",[8]],[\"7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[136])|2(?:[02389]\\\\d|1[18]|7[27-9])|3(?:[0-38]\\\\d|7[0-369]|9[2357-9])|47\\\\d|5(?:[178]\\\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\\\d)|7(?:[27]\\\\d|8[7-9])|8(?:[23689]\\\\d|7[1-9])|9(?:[025]\\\\d|6[0-246-8]|7[0-36-9]|8[238]))\\\\d{4}\",[8]]],\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]],0,0,0,0,0,0,[[\"2(?:2(?:0[019]|1[1-36]|[23]\\\\d|4[04-6]|5[57]|6[24]|7[0135689]|8[01346-9]|9[0-2])|4(?:07|2[3-59]|3[13-689]|4[0-68]|5[1-35])|5(?:0[78]|16|4[03-5]|5\\\\d|6[014-6]|74|80)|6(?:[056]\\\\d|17|2[07]|3[04]|4[0-378]|[78][0-8]|9[01])|7(?:6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\\\d{4}\",[8]],[\"[37-9]\\\\d{7}\",[8]],[\"8002\\\\d{7}\",[11]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-5]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"1\\\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\\\d{6,7}\",[8,9]],[\"9(?:751\\\\d{5}|8\\\\d{6,7})|9(?:0[1-9]|[1259]\\\\d|7[0679])\\\\d{6}\",[8,9]],[\"80[01]\\\\d{4,6}\",[7,8,9]],[\"6[01459]\\\\d{6}|6[01]\\\\d{4,5}\",[6,7,8]],[\"7[45]\\\\d{6}\",[8]],0,[\"62\\\\d{6,7}|72\\\\d{6}\",[8,9]]]],\"HT\":[\"509\",\"00\",\"[2-489]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-489]\"]]],0,0,0,0,0,0,[[\"2(?:2\\\\d|5[1-5]|81|9[149])\\\\d{5}\"],[\"[34]\\\\d{7}\"],[\"8\\\\d{7}\"],0,0,0,0,0,[\"9(?:[67][0-4]|8[0-3589]|9\\\\d)\\\\d{5}\"]]],\"HU\":[\"36\",\"00\",\"[2357]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57-9]\"],\"06 $1\"]],\"06\",0,0,0,0,0,[[\"(?:1\\\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\\\d{6}\",[8]],[\"(?:[257]0|3[01])\\\\d{7}\",[9]],[\"[48]0\\\\d{6}\",[8]],[\"9[01]\\\\d{6}\",[8]],0,0,[\"38\\\\d{7}\",[9]],0,[\"21\\\\d{7}\",[9]]]],\"ID\":[\"62\",\"00[189]\",\"(?:(?:007803|8\\\\d{4})\\\\d|[1-36])\\\\d{6}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"2[124]\\\\d{7,8}|619\\\\d{8}|2(?:1(?:14|500)|2\\\\d{3})\\\\d{3}|61\\\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\\\d{5,8}\",[7,8,9,10,11]],[\"8[1-35-9]\\\\d{7,10}\",[9,10,11,12]],[\"007803\\\\d{7}|(?:177\\\\d|800)\\\\d{5,7}\",[8,9,10,11,13]],[\"809\\\\d{7}\",[10]],0,0,[\"(?:1500|8071\\\\d{3})\\\\d{3}\",[7,10]],0,0,[\"804\\\\d{7}\",[10]]]],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1\\\\d|21)\\\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\\\d|7)|5(?:0[45]|1\\\\d|8)|6(?:1\\\\d|[237-9])|9(?:1\\\\d|[35-9]))\\\\d{5}|(?:23|4(?:[1-469]|8\\\\d)|5[23679]|6[4-6]|7[14]|9[04])\\\\d{7}\"],[\"8(?:22|[35-9]\\\\d)\\\\d{6}\",[9]],[\"1800\\\\d{6}\",[10]],[\"15(?:1[2-8]|[2-8]0|9[089])\\\\d{6}\",[10]],[\"700\\\\d{6}\",[9]],0,[\"818\\\\d{6}\",[9]],0,[\"76\\\\d{7}\",[9]],[\"18[59]0\\\\d{6}\",[10]]]],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\",0,0,0,0,0,[[\"153\\\\d{8,9}|29[1-9]\\\\d{5}|(?:2[0-8]|[3489]\\\\d)\\\\d{6}\",[8,11,12]],[\"5(?:(?:[02368]\\\\d|[19][2-9]|4[1-9])\\\\d|5(?:01|1[79]|2[2-7]|3[23]|44|5[05689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\\\d{5}\",[9]],[\"1(?:255|80[019]\\\\d{3})\\\\d{3}\",[7,10]],[\"1212\\\\d{4}|1(?:200|9(?:0[01]|19))\\\\d{6}\",[8,10]],0,0,[\"1599\\\\d{6}\",[10]],0,[\"78(?:33|55|77|81)\\\\d{5}|7(?:18|2[23]|3[237]|47|6[58]|7\\\\d|82|9[235-9])\\\\d{6}\",[9]],[\"1700\\\\d{6}\",[10]]]],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([5-8]\\\\d{5})$\",\"1624$1\",0,\"74576|(?:16|7[56])24\",[[\"1624[5-8]\\\\d{5}\"],[\"76245[06]\\\\d{4}|7(?:4576|[59]24\\\\d|624[0-4689])\\\\d{5}\"],[\"808162\\\\d{4}\"],[\"8(?:440[49]06|72299\\\\d)\\\\d{3}|(?:8(?:45|70)|90[0167])624\\\\d{4}\"],[\"70\\\\d{8}\"],0,[\"3440[49]06\\\\d{3}|(?:3(?:08162|3\\\\d{4}|45624|7(?:0624|2299))|55\\\\d{4})\\\\d{4}\"],0,[\"56\\\\d{8}\"]]],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\",0,0,0,0,0,[[\"2717(?:[2-7]\\\\d|95)\\\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\\\d|4(?:20[24]|72[2-8])|552[1-7])\\\\d{6}|(?:11|33|4[04]|80)[2-7]\\\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\\\d)\\\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\\\d[2-7]\\\\d{5}\",[10]],[\"(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\\\d|7[02-8])\\\\d{5}|(?:6(?:[09]\\\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\\\d\\\\d)\\\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\\\d|7(?:[235689]\\\\d|4[0189]))|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]|881))[0189]\\\\d{5}\",[10]],[\"000800\\\\d{7}|1(?:600\\\\d{6}|80(?:0\\\\d{4,9}|3\\\\d{9}))\"],[\"186[12]\\\\d{9}\",[13]],0,0,[\"140\\\\d{7}\",[10]],0,0,[\"1860\\\\d{7}\",[11]]]],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]],0,0,0,0,0,0,[[\"37\\\\d{5}\"],[\"38\\\\d{5}\"]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"1\\\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\\\d{6,7}\",[8,9]],[\"7[3-9]\\\\d{8}\",[10]]]],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\\\d{7}|[16]\\\\d{3}(?:\\\\d{4})?|[289]\\\\d{3}(?:\\\\d(?:\\\\d{3})?)?)|94(?:000[09]|2(?:121|[2689]0\\\\d)|30[0-2]\\\\d|4(?:111|40\\\\d))\\\\d{4}\",[6,7,10]],[\"9(?:(?:0(?:[1-35]\\\\d|44)|(?:[13]\\\\d|2[0-2])\\\\d)\\\\d|9(?:(?:[0-2]\\\\d|44)\\\\d|5[15]0|8(?:1\\\\d|88)|9(?:0[013]|1[0134]|21|77|9[6-9])))\\\\d{5}\",[10]],0,0,0,0,[\"96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])\",[4,5]],0,[\"993\\\\d{7}\",[10]]]],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-245]|5[0-68]|6\\\\d|8[0-36-8])|5(?:05|[156]\\\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\\\d{4}\",[7]],[\"(?:38[589]\\\\d\\\\d|6(?:1[1-8]|2[0-6]|3[027-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\\\d)|7(?:5[057]|[6-9]\\\\d)|8(?:2[0-59]|[3-69]\\\\d|8[28]))\\\\d{4}\"],[\"80[08]\\\\d{4}\",[7]],[\"90(?:0\\\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\\\d{3}\",[7]],0,0,[\"809\\\\d{4}\",[7]],0,[\"49[0-24-79]\\\\d{4}\",[7]]],\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[245])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1[4679]|[38]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d\\\\d|89(?:2|4[5-9]\\\\d))\\\\d{3}|89[45][0-4]\\\\d\\\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([0-24-8]\\\\d{5})$\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:0[0-2]|2[356]|34|4[0134]|5[49]|6[0-369]|77|81|9[39])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\",[[\"(?:658(?:2(?:[0-8]\\\\d|9[0-46-9])|[3-9]\\\\d\\\\d)|876(?:5(?:02|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[0237-9]|[23]\\\\d|40|5[06]|6[2-589]|7[05]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\\\d|9[2-468])))\\\\d{4}\"],[\"(?:658295|876(?:(?:2[14-9]|[348]\\\\d)\\\\d|5(?:0[13-9]|17|[2-57-9]\\\\d|6[0-24-9])|7(?:0[07]|7\\\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"JO\":[\"962\",\"00\",\"900\\\\d{5}|(?:(?:[268]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\\\d|4[0-3]|[57][023]|6[03])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:[029]0|7[08]))\\\\d{4}\",[8]],[\"7(?:55[0-49]|(?:7[025-9]|8[0-25-9]|9\\\\d)\\\\d)\\\\d{5}\",[9]],[\"80\\\\d{6}\",[8]],[\"900\\\\d{5}\",[8]],[\"70\\\\d{7}\",[9]],0,[\"8(?:10|8\\\\d)\\\\d{5}\",[8]],[\"74(?:66|77)\\\\d{5}\",[9]],0,[\"85\\\\d{6}\",[8]]]],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[78]|96)|477|51[24]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[78]|96[2457-9])|477|51[24]|636[2-57-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[279]|49|6[0-24-689]|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|6(?:[0-24]|5[0-3589]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[0468][01]|[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|2[01]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|6(?:[0-24]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3[3-8]|5[2-9])\",\"[14]|[29][2-9]|5[3-9]|7[2-4679]|8(?:[246-9]|3(?:[3-6][2-9]|7|8[2-5])|5[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[2579]|80\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\\\d|4(?:[2-578]\\\\d|6[02-8]|9[2-59])|5(?:[2-589]\\\\d|6[1-9]|7[2-8])|7(?:[25-9]\\\\d|3[4-9]|4[02-9])|8(?:[2679]\\\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\\\d|[679][1-9]))\\\\d{6}\",[9]],[\"[7-9]0[1-9]\\\\d{7}\",[10]],[\"00(?:(?:37|66)\\\\d{6,13}|(?:777(?:[01]|(?:5|8\\\\d)\\\\d)|882[1245]\\\\d\\\\d)\\\\d\\\\d)|(?:120|800\\\\d)\\\\d{6}\"],[\"990\\\\d{6}\",[9]],[\"60\\\\d{7}\",[9]],0,[\"570\\\\d{6}\",[9]],[\"20\\\\d{8}\",[10]],[\"50[1-9]\\\\d{7}\",[10]]]],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:4[245]|5[2-79]|6[01457-9])\\\\d{5,7}|(?:4[136]|5[08]|62)\\\\d{7}|(?:[24]0|51|66)\\\\d{6,7}\",[7,8,9]],[\"(?:1(?:0[0-2]|1[01])|7\\\\d\\\\d)\\\\d{6}\",[9]],[\"800[24-8]\\\\d{5,6}\",[9,10]],[\"900[02-9]\\\\d{5}\",[9]]]],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"312(?:5[0-79]\\\\d|9(?:[0-689]\\\\d|7[0-24-9]))\\\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\\\d)|5(?:22|3[4-7]|59|6\\\\d)|6(?:22|5[35-7]|6\\\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\\\d)|9(?:22|4[1-8]|6\\\\d))|6(?:09|12|2[2-4])\\\\d)\\\\d{5}\",[9]],[\"(?:312(?:58\\\\d|973)|8801\\\\d\\\\d)\\\\d{3}|(?:2(?:0[0-35]|2\\\\d)|5[0-24-7]\\\\d|7(?:[07]\\\\d|55)|99[05-9])\\\\d{6}\",[9]],[\"800\\\\d{6,7}\"]]],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[[\"23(?:4(?:[2-4]|[56]\\\\d)|[568]\\\\d\\\\d)\\\\d{4}|23[236-9]\\\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\\\d)\\\\d{5}|6\\\\d{5,6})\",[8,9]],[\"(?:(?:1[28]|3[18]|9[67])\\\\d|6[016-9]|7(?:[07-9]|[16]\\\\d)|8(?:[013-79]|8\\\\d))\\\\d{6}|(?:1\\\\d|9[0-57-9])\\\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\\\d{5}\",[8,9]],[\"1800(?:1\\\\d|2[019])\\\\d{4}\",[10]],[\"1900(?:1\\\\d|2[09])\\\\d{4}\",[10]]]],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\",0,0,0,0,0,[[\"(?:[24]\\\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\\\d\\\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\\\d{3}\"],[\"(?:63\\\\d{3}|73(?:0[0-5]\\\\d|140))\\\\d{3}|[67]200[01]\\\\d{3}\",[8]],0,0,0,0,0,0,[\"30(?:0[01]\\\\d\\\\d|12(?:11|20))\\\\d\\\\d\",[8]]]],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]],0,0,0,0,0,0,[[\"7[4-7]\\\\d{5}\"],[\"[34]\\\\d{6}\"],0,[\"8\\\\d{6}\"]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"869$1\",0,\"869\",[[\"869(?:2(?:29|36)|302|4(?:6[015-9]|70))\\\\d{4}\"],[\"869(?:5(?:5[6-8]|6[5-7])|66\\\\d|76[02-7])\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|2)\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2\\\\d|85)\\\\d{6}\",[8]],[\"19[1-3]\\\\d{7}\",[10]]]],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\",0,0,0,[[\"(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\\\d{2,3}\",[5,6,8,9,10]],[\"1(?:05(?:[0-8]\\\\d|9[0-5])|22[13]\\\\d)\\\\d{4,5}|1(?:0[1-46-9]|[16-9]\\\\d|2[013-9])\\\\d{6,7}\",[9,10]],[\"00(?:308\\\\d{6,7}|798\\\\d{7,9})|(?:00368|80)\\\\d{7}\",[9,11,12,13,14]],[\"60[2-9]\\\\d{6}\",[9]],[\"50\\\\d{8,9}\",[10,11]],0,[\"1(?:5(?:22|44|66|77|88|99)|6(?:[07]0|44|6[16]|88)|8(?:00|33|55|77|99))\\\\d{4}\",[8]],[\"15\\\\d{7,8}\",[9,10]],[\"70\\\\d{8}\",[10]]]],\"KW\":[\"965\",\"00\",\"(?:18|[2569]\\\\d\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[25]\"]]],0,0,0,0,0,0,[[\"2(?:[23]\\\\d\\\\d|4(?:[1-35-9]\\\\d|44)|5(?:0[034]|[2-46]\\\\d|5[1-3]|7[1-7]))\\\\d{4}\",[8]],[\"(?:5(?:2(?:22|5[25])|88[58])|6(?:222|444|70[013-9]|888|93[039])|9(?:11[01]|333|500))\\\\d{4}|(?:5(?:[05]\\\\d|1[0-7]|6[56])|6(?:0[034679]|5[015-9]|6\\\\d|7[67]|9[069])|9(?:0[09]|22|[4679]\\\\d|55|8[057-9]))\\\\d{5}\",[8]],[\"18\\\\d{5}\",[7]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"345$1\",0,\"345\",[[\"345(?:2(?:22|44)|444|6(?:23|38|40)|7(?:4[35-79]|6[6-9]|77)|8(?:00|1[45]|25|[48]8)|9(?:14|4[035-9]))\\\\d{4}\"],[\"345(?:32[1-9]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|9(?:1[67]|2[2-9]|3[689]))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"(?:345976|900[2-9]\\\\d\\\\d)\\\\d{4}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,[\"345849\\\\d{4}\"]]],\"KZ\":[\"7\",\"810\",\"33622\\\\d{5}|(?:7\\\\d|80)\\\\d{8}\",[10],0,\"8\",0,0,0,0,\"33|7\",[[\"(?:33622|7(?:1(?:0(?:[23]\\\\d|4[0-3]|59|63)|1(?:[23]\\\\d|4[0-79]|59)|2(?:[23]\\\\d|59)|3(?:2\\\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\\\d|3[013-9]|5[1-9])|5(?:2\\\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\\\d|5[19]|61)|72\\\\d|8(?:[27]\\\\d|3[1-46-9]|4[0-5]))|2(?:1(?:[23]\\\\d|4[46-9]|5[3469])|2(?:2\\\\d|3[0679]|46|5[12679])|3(?:[2-4]\\\\d|5[139])|4(?:2\\\\d|3[1-35-9]|59)|5(?:[23]\\\\d|4[0-246-8]|59|61)|6(?:2\\\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\\\d|40|5[279])|8(?:[23]\\\\d|4[0-3]|59)|9(?:2\\\\d|3[124578]|59))))\\\\d{5}\"],[\"7(?:0[0-25-8]|47|6[02-4]|7[15-8]|85)\\\\d{7}\"],[\"800\\\\d{7}\"],[\"809\\\\d{7}\"],[\"808\\\\d{7}\"],0,0,0,[\"751\\\\d{7}\"]],\"8~10\"],\"LA\":[\"856\",\"00\",\"(?:2\\\\d|3)\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2[13]|[35-7][14]|41|8[1468])\\\\d{6}\",[8]],[\"20(?:[29]\\\\d|5[24-689]|7[6-8])\\\\d{6}\",[10]],0,0,0,0,[\"30\\\\d{7}\",[9]]]],\"LB\":[\"961\",\"00\",\"[7-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"]]],\"0\",0,0,0,0,0,[[\"(?:(?:[14-69]\\\\d|8[02-9])\\\\d|7(?:[2-57]\\\\d|62|8[0-7]|9[04-9]))\\\\d{4}\",[7]],[\"793(?:[01]\\\\d|2[0-4])\\\\d{3}|(?:(?:3|81)\\\\d|7(?:[01]\\\\d|6[013-9]|8[89]|9[12]))\\\\d{5}\"],0,[\"9[01]\\\\d{6}\",[8]],0,0,0,0,0,[\"80\\\\d{6}\",[8]]]],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"758$1\",0,\"758\",[[\"758(?:4(?:30|5\\\\d|6[2-9]|8[0-2])|57[0-2]|638)\\\\d{4}\"],[\"758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\\\d|3[01]))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"LI\":[\"423\",\"00\",\"90\\\\d{5}|(?:[2378]|6\\\\d\\\\d)\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[237-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"0|(1001)\",0,0,0,[[\"(?:2(?:01|1[27]|22|3\\\\d|6[02-578]|96)|3(?:33|40|7[0135-7]|8[048]|9[0269]))\\\\d{4}\",[7]],[\"(?:6(?:4(?:89|9\\\\d)|5[0-3]\\\\d|6(?:0[0-7]|10|2[06-9]|39))\\\\d|7(?:[37-9]\\\\d|42|56))\\\\d{4}\"],[\"80(?:02[28]|9\\\\d\\\\d)\\\\d\\\\d\",[7]],[\"90(?:02[258]|1(?:23|3[14])|66[136])\\\\d\\\\d\",[7]],0,0,[\"870(?:28|87)\\\\d\\\\d\",[7]]]],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:12[2-9]|602|8[12]\\\\d|9(?:1\\\\d|22|9[245]))\\\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\\\d{6}\"],[\"7[0-25-8]\\\\d{7}\"],0,0,0,0,[\"1973\\\\d{5}\"]]],\"LR\":[\"231\",\"00\",\"(?:2|33|5\\\\d|77|88)\\\\d{7}|[45]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2\\\\d{3}|33333)\\\\d{4}\",[8,9]],[\"(?:(?:330|555|(?:77|88)\\\\d)\\\\d|4[67])\\\\d{5}|5\\\\d{6}\",[7,9]],0,[\"332(?:02|[34]\\\\d)\\\\d{4}\",[9]]]],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]],0,0,0,0,0,0,[[\"2\\\\d{7}\"],[\"[56]\\\\d{7}\"],[\"800[256]\\\\d{4}\"]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"8 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(8-$1)\",1]],\"8\",0,\"[08]\",0,0,0,[[\"(?:3[1478]|4[124-6]|52)\\\\d{6}\"],[\"6\\\\d{7}\"],[\"80[02]\\\\d{5}\"],[\"9(?:0[0239]|10)\\\\d{5}\"],[\"70[05]\\\\d{5}\"],0,[\"70[67]\\\\d{5}\"],0,[\"[89]01\\\\d{5}\"],[\"808\\\\d{5}\"]]],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\",0,0,0,[[\"(?:35[013-9]|80[2-9]|90[89])\\\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\\\d|8[13-9]|9[2-579])\\\\d{2,9}\"],[\"6(?:[269][18]|5[158]|7[189]|81)\\\\d{6}\",[9]],[\"800\\\\d{5}\",[8]],[\"90[015]\\\\d{5}\",[8]],0,0,0,0,[\"20(?:1\\\\d{5}|[2-689]\\\\d{1,7})\",[4,5,6,7,8,9,10]],[\"801\\\\d{5}\",[8]]]],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]],0,0,0,0,0,0,[[\"6\\\\d{7}\"],[\"2\\\\d{7}\"],[\"80\\\\d{6}\"],[\"90\\\\d{6}\"],0,0,0,0,0,[\"81\\\\d{6}\"]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2(?:0[56]|[1-6]\\\\d|7[124579]|8[124])|3(?:1\\\\d|2[2356])|4(?:[17]\\\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\\\d|5[2-57]|8[1-5])|7(?:[13]\\\\d|2[13-79])|8(?:[124]\\\\d|5[124]|84))\\\\d{6}\"],[\"9[1-6]\\\\d{7}\"]]],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"5(?:29|38)\",\"5(?:29|38)[89]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-489]|3[5-9]|9)|892\",\"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:29(?:[189]0|29)|38[89]0)\\\\d{4}|5(?:2(?:[015-7]\\\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0[016-8]|6[1267]|7[0-27]))\\\\d{6}\"],[\"80\\\\d{7}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"592(?:4[0-2]|93)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"870\\\\d{5}|(?:[349]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[39]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:870|9[2-47-9]\\\\d)\\\\d{5}\",[8]],[\"4(?:4\\\\d|5[1-9])\\\\d{5}|(?:3|6\\\\d)\\\\d{7}\"],[\"90\\\\d{6}\",[8]]]],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:(?:2[1-9]|3[1-79])\\\\d|5(?:33|5[257]))\\\\d{5}\"],[\"562\\\\d{5}|(?:6\\\\d|7[16-9])\\\\d{6}\"],[\"800\\\\d{5}\"],[\"90[056]\\\\d{5}\"],0,0,[\"803\\\\d{5}\"],0,[\"3[08]\\\\d{6}\"],[\"808\\\\d{5}\"]]],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\\\d{5}\",[8]],[\"6(?:[07-9]\\\\d|3[024]|6[0-25])\\\\d{5}\",[8]],[\"80(?:[0-2578]|9\\\\d)\\\\d{5}\"],[\"9(?:4[1568]|5[178])\\\\d{5}\",[8]],0,0,[\"77[1-9]\\\\d{5}\",[8]],0,[\"78[1-49]\\\\d{5}\",[8]]]],\"MF\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"0|([24-9]\\\\d{6})$\",\"20$1\",0,0,[[\"2072[29]\\\\d{4}|20(?:2\\\\d|4[47]|5[3467]|6[279]|7[35]|8[268]|9[245])\\\\d{5}\"],[\"3[2-49]\\\\d{7}\"],0,0,0,0,0,0,[\"22\\\\d{7}\"]]],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\",0,0,0,0,0,[[\"(?:247|528|625)\\\\d{4}\"],[\"(?:(?:23|54)5|329|45[56])\\\\d{4}\"],0,0,0,0,0,0,[\"635\\\\d{4}\"]]],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2(?:[23]\\\\d|5[0-24578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\\\d{5}\"],[\"7(?:(?:[0-25-8]\\\\d|3[2-4]|9[23])\\\\d|4(?:21|60))\\\\d{4}\"],[\"800\\\\d{5}\"],[\"5[02-9]\\\\d{6}\"],0,0,0,0,0,[\"8(?:0[1-9]|[1-9]\\\\d)\\\\d{5}\"]]],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]],0,0,0,0,0,0,[[\"2(?:07[0-8]|12[67])\\\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-39]))\\\\d{5}\"],[\"2(?:079|17\\\\d)\\\\d{4}|(?:5[01]|[679]\\\\d|8[239])\\\\d{6}\"],[\"80\\\\d{6}\"]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:(?:2\\\\d|3[56]|[89][0-6])\\\\d|4(?:2[2-469]|39|46|6[25]|7[0-3]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\\\d|2[246]|39|46|62|7[0-3]|83)|51\\\\d\\\\d)|4(?:2(?:2\\\\d\\\\d|48[0-3])|3(?:20\\\\d|4(?:70|83)|56)|420\\\\d|5470)|6(?:0(?:[23]|88\\\\d)|(?:124|[56]2\\\\d)\\\\d|247[23]|3(?:20\\\\d|470)|4(?:2[04]\\\\d|47[23])|7(?:(?:3\\\\d|8[01459])\\\\d|4(?:39|60|7[013]))))\\\\d{4}|5(?:2(?:2\\\\d{5,6}|47[023]\\\\d{4})|(?:347[23]|4(?:2(?:1|86)|470)|522\\\\d|6(?:20\\\\d|483)|7(?:20\\\\d|48[0-2])|8(?:20\\\\d|47[02])|9(?:20\\\\d|47[01]))\\\\d{4})|7(?:(?:0470|4(?:25\\\\d|470)|5(?:202|470|96\\\\d))\\\\d{4}|1(?:20\\\\d{4,5}|4(?:70|83)\\\\d{4}))|8(?:1(?:2\\\\d{5,6}|4(?:10|7[01]\\\\d)\\\\d{3})|2(?:2\\\\d{5,6}|(?:320|490\\\\d)\\\\d{3})|(?:3(?:2\\\\d\\\\d|470)|4[24-7]|5(?:2\\\\d|4[1-9]|51)\\\\d|6[23])\\\\d{4})|(?:1[2-6]\\\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|[35]2\\\\d))\\\\d{4}|25\\\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\\\d{4}\",[6,7,8,9]],[\"(?:17[01]|9(?:2(?:[0-4]|[56]\\\\d\\\\d)|(?:3(?:[0-36]|4\\\\d)|(?:6[6-9]|8[89]|9[5-8])\\\\d|7(?:3|[5-9]\\\\d))\\\\d|4(?:(?:[0245]\\\\d|[1379])\\\\d|88)|5[0-6])\\\\d)\\\\d{4}|9[69]1\\\\d{6}|9(?:[68]\\\\d|9[089])\\\\d{5}\",[7,8,9,10]],[\"80080(?:[01][1-9]|2\\\\d)\\\\d{3}\",[10]],0,0,0,0,0,[\"1333\\\\d{4}|[12]468\\\\d{4}\",[8]]]],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[57-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"[12](?:3[2-8]|4[2-68]|5[1-4689])\\\\d{6,7}|(?:11(?:3\\\\d|4[568])|(?:(?:21|5[0568])\\\\d|70[0-5])\\\\d)\\\\d{4}|[12]2(?:[1-3]\\\\d{5,6}|7\\\\d{6})\"],[\"(?:8(?:[05689]\\\\d|3[01])|9(?:[014-9]\\\\d|20|3[0-4]))\\\\d{5}\",[8]],0,0,0,0,0,0,[\"7(?:100|5(?:0[0579]|1[015]|[389]5|[57][57])|(?:6[0167]|7\\\\d|8[01])\\\\d)\\\\d{4}\",[8]]]],\"MO\":[\"853\",\"00\",\"(?:28|[68]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]],0,0,0,0,0,0,[[\"(?:28[2-9]|8(?:11|[2-57-9]\\\\d))\\\\d{5}\"],[\"6(?:[235]\\\\d\\\\d|6(?:0[0-5]|[1-9]\\\\d)|8(?:[02][5-9]|[146-8]\\\\d|[35][0-4]))\\\\d{4}\"]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"670$1\",0,\"670\",[[\"670(?:2(?:3[3-7]|56|8[5-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\\\d{4}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"MQ\":[\"596\",\"00\",\"69\\\\d{7}|(?:59|97)6\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"596(?:0[0-7]|10|2[7-9]|3[05-9]|4[0-46-8]|[5-7]\\\\d|8[09]|9[4-8])\\\\d{4}\"],[\"69(?:6(?:[0-47-9]\\\\d|5[0-6]|6[0-4])|727)\\\\d{4}\"],0,0,0,0,0,0,[\"976(?:6[1-9]|7[0-367])\\\\d{4}\"]]],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]],0,0,0,0,0,0,[[\"(?:25[08]|35\\\\d|45[1-7])\\\\d{5}\"],[\"[2-4][0-46-9]\\\\d{6}\"],[\"800\\\\d{5}\"]]],\"MS\":[\"1\",\"011\",\"66449\\\\d{5}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|(4\\\\d{6})$\",\"664$1\",0,\"664\",[[\"664491\\\\d{4}\"],[\"66449[2-6]\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]],0,0,0,0,0,0,[[\"2(?:0(?:[19]\\\\d|3[1-4]|6[059])|[1-357]\\\\d\\\\d)\\\\d{4}\"],[\"(?:7(?:210|[79]\\\\d\\\\d)|9(?:[29]\\\\d\\\\d|69[67]|8(?:1[1-3]|89|97)))\\\\d{4}\"],[\"800[3467]\\\\d{4}\"],[\"5(?:0(?:0(?:37|43)|(?:6\\\\d|70|9[0168])\\\\d)|[12]\\\\d0[1-5])\\\\d{3}\"],0,0,[\"501\\\\d{5}\"],[\"7117\\\\d{4}\"],[\"3550\\\\d{4}\"]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[2-468]|5\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"5\"]]],0,0,0,0,0,0,[[\"(?:2(?:[0346-8]\\\\d|1[0-7])|4(?:[013568]\\\\d|2[4-7])|54(?:[34]\\\\d|71)|6\\\\d\\\\d|8(?:14|3[129]))\\\\d{4}\"],[\"5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\\\d{4}|5(?:2[589]|4[3489]|7\\\\d|8[0-689]|9[0-8])\\\\d{5}\",[8]],[\"80[0-2]\\\\d{4}\",[7]],[\"30\\\\d{5}\",[7]],0,0,0,0,[\"3(?:20|9\\\\d)\\\\d{4}\",[7]]],\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[3467]|9[13-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,[[\"(?:3(?:0[0-3]|3[0-59])|6(?:[57][02468]|6[024-68]|8[024689]))\\\\d{4}\",[7]],[\"46[46]\\\\d{4}|(?:7[2-9]|9[13-9])\\\\d{5}\",[7]],[\"800\\\\d{7}\",[10]],[\"900\\\\d{7}\",[10]],0,0,[\"4[05]0\\\\d{4}\",[7]]],\"00\"],\"MW\":[\"265\",\"00\",\"1\\\\d{6}(?:\\\\d{2})?|(?:[23]1|77|88|99)\\\\d{7}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1[2-9]|21\\\\d\\\\d)\\\\d{5}\"],[\"111\\\\d{6}|(?:31|77|88|99)\\\\d{7}\",[9]]]],\"MX\":[\"52\",\"0[09]\",\"(?:1(?:[01467]\\\\d|[2359][1-9]|8[1-79])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,[[\"(?:2(?:0[01]|2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\\\d{7}\",[10]],[\"(?:1(?:2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))|2(?:2[1-9]|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[24-7][1-9]|3[1-8]|8[1-35-9]|9[2-689])|5(?:[56]\\\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-3689]|6[1-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1-467][1-9]|5[13-9]|8[1-69]|9[17])|8(?:1\\\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[1-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69][1-9]|7[12]|8[1-8]))\\\\d{7}\"],[\"8(?:00|88)\\\\d{7}\",[10]],[\"900\\\\d{7}\",[10]],[\"500\\\\d{7}\",[10]],0,0,0,0,[\"300\\\\d{7}\",[10]]],\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[37][2-9]|8[1-9])|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1[36-8]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\\\d|9[0-57])\\\\d|4(?:2[0-689]|[3-79]\\\\d|8[1-35689])|5(?:2[0-589]|[3468]\\\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\\\d|[3489][0-8]))\\\\d{5}\",[8,9]],[\"1(?:4400|8(?:47|8[27])[0-4])\\\\d{4}|1(?:0(?:[23568]\\\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\\\d\\\\d|6(?:0[5-9]|[1-9]\\\\d)|7(?:0[3-9]|1[01]))|(?:[2379][2-9]|4[235-9]|(?:59|6)\\\\d)\\\\d|8(?:1[23]|[236]\\\\d|4[06]|5[7-9]|7[016-9]|8[01]|9[0-8]))\\\\d{5}\",[9,10]],[\"1[378]00\\\\d{6}\",[10]],[\"1600\\\\d{6}\",[10]],0,0,0,0,[\"154(?:6(?:0\\\\d|1[0-3])|8(?:[25]1|4[0189]|7[0-4679]))\\\\d{4}\",[10]]]],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-7]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]],0,0,0,0,0,0,[[\"2(?:[1346]\\\\d|5[0-2]|[78][12]|93)\\\\d{5}\",[8]],[\"8[2-7]\\\\d{7}\",[9]],[\"800\\\\d{6}\",[9]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"6(?:1(?:[02-4]\\\\d\\\\d|17)|2(?:17|54\\\\d|69|70)|3(?:17|2[0237]\\\\d|34|6[289]|7[01]|81)|4(?:17|(?:27|41|5[25])\\\\d|69|7[01])|5(?:17|2[236-8]\\\\d|69|7[01])|6(?:17|26\\\\d|38|42|69|7[01])|7(?:17|(?:2[2-4]|30)\\\\d|6[89]|7[01]))\\\\d{4}|6(?:1(?:2[2-7]|3[01378]|4[0-4]|69|7[014])|25[0-46-8]|32\\\\d|4(?:2[0-27]|4[016]|5[0-357])|52[02-9]|62[56]|7(?:2[2-69]|3[013]))\\\\d{4}\"],[\"(?:60|8[1245])\\\\d{7}\",[9]],[\"80\\\\d{7}\",[9]],[\"8701\\\\d{5}\",[9]],0,0,0,0,[\"8(?:3\\\\d\\\\d|86)\\\\d{5}\"]]],\"NC\":[\"687\",\"00\",\"[2-57-9]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[2-57-9]\"]]],0,0,0,0,0,0,[[\"(?:2[03-9]|3[0-5]|4[1-7]|88)\\\\d{4}\"],[\"(?:5[0-4]|[79]\\\\d|8[0-79])\\\\d{4}\"],0,[\"36\\\\d{4}\"]]],\"NE\":[\"227\",\"00\",\"[0289]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]\"]]],0,0,0,0,0,0,[[\"2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\\\d{4}\"],[\"(?:23|8[014589]|9\\\\d)\\\\d{6}\"],[\"08\\\\d{6}\"],[\"09\\\\d{6}\"]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\",0,0,[[\"(?:1(?:06|17|28|39)|3[0-2]\\\\d)\\\\d{3}\"],[\"(?:14|3[58])\\\\d{4}\"]]],\"NG\":[\"234\",\"009\",\"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-7]|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:(?:[1-356]\\\\d|4[02-8]|7[0-79]|8[2-9])\\\\d|9(?:0[3-9]|[1-9]\\\\d))\\\\d{5}|(?:[12]\\\\d|4[147]|5[14579]|6[1578]|7[0-3578])\\\\d{5}\",[7,8]],[\"(?:707[0-3]|8(?:01|19)[01])\\\\d{6}|(?:70[1-689]|8(?:0[2-9]|1[0-8])|90[1-9])\\\\d{7}\",[10]],[\"800\\\\d{7,11}\",[10,11,12,13,14]],0,0,0,[\"700\\\\d{7,11}\",[10,11,12,13,14]]]],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]],0,0,0,0,0,0,[[\"2\\\\d{7}\"],[\"(?:5(?:5[0-7]|[78]\\\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\\\d)\\\\d)\\\\d{5}\"],[\"1800\\\\d{4}\"]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|[89]\\\\d{6,9}|1\\\\d{4,5}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-57-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:[035]\\\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\\\d\\\\d)\\\\d{6}\",[9]],[\"6[1-58]\\\\d{7}\",[9]],[\"800\\\\d{4,7}\",[7,8,9,10]],[\"90[069]\\\\d{4,7}\",[7,8,9,10]],0,0,[\"140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\\\d{6})\\\\d\",[5,6,9]],[\"66\\\\d{7}\",[9]],[\"(?:85|91)\\\\d{7}\",[9]]]],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[489]|5[89]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-7]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\",[[\"(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\\\d{6}\",[8]],[\"(?:4[015-8]|5[89]|9\\\\d)\\\\d{6}\",[8]],[\"80[01]\\\\d{5}\",[8]],[\"82[09]\\\\d{5}\",[8]],[\"880\\\\d{5}\",[8]],0,[\"(?:0[2-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\"],0,[\"85[0-5]\\\\d{5}\",[8]],[\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\",[8]]]],\"NP\":[\"977\",\"00\",\"9\\\\d{9}|[1-9]\\\\d{7}\",[8,10],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"[1-8]|9(?:[1-579]|6[2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\",0,0,0,0,0,[[\"1[0-6]\\\\d{6}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-79])[2-6]\\\\d{5}\",[8]],[\"9(?:6[0-3]|7[245]|8[0-24-68])\\\\d{7}\",[10]]]],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]],0,0,0,0,0,0,[[\"444\\\\d{4}\"],[\"(?:55[3-9]|666|8\\\\d\\\\d)\\\\d{4}\"]]],\"NU\":[\"683\",\"00\",\"(?:[47]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,[[\"[47]\\\\d{3}\",[4]],[\"888[4-9]\\\\d{3}\",[7]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"2\\\\d{7,9}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|(?:508|[79]\\\\d)\\\\d{6,7}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"83\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[59]|80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7|86\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"24099\\\\d{3}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\\\d{6}\",[8]],[\"2[0-28]\\\\d{8}|2[0-27-9]\\\\d{7}|21\\\\d{6}\",[8,9,10]],[\"508\\\\d{6,7}|80\\\\d{6,8}\",[8,9,10]],[\"90\\\\d{6,7}\",[8,9]],[\"70\\\\d{7}\",[9]],0,[\"83\\\\d{3,8}\"],[\"[28]6\\\\d{6,7}\",[8,9]]],\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|8007\\\\d{4,5}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]],0,0,0,0,0,0,[[\"2[2-6]\\\\d{6}\",[8]],[\"(?:1505|90[1-9]\\\\d)\\\\d{4}|(?:7[1289]|9[1-9])\\\\d{6}\",[8]],[\"500\\\\d{4}|8007\\\\d{4,5}\"],[\"900\\\\d{5}\",[8]]]],\"PA\":[\"507\",\"00\",\"(?:[1-57-9]|6\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"6\"]]],0,0,0,0,0,0,[[\"(?:1(?:0\\\\d|1[479]|2[37]|3[0137]|4[17]|5[05]|6[58]|7[0167]|8[258]|9[139])|2(?:[0235-79]\\\\d|1[0-7]|4[013-9]|8[026-9])|3(?:[089]\\\\d|1[014-7]|2[0-5]|33|4[0-79]|55|6[068]|7[03-8])|4(?:00|3[0-579]|4\\\\d|7[0-57-9])|5(?:[01]\\\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[056]|7[0-24-9]|8[6-9]|90)|8(?:09|2[89]|3\\\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\\\d))\\\\d{4}\",[7]],[\"(?:1[16]1|21[89]|6(?:[02-9]\\\\d|1[0-6])\\\\d|8(?:1[01]|7[23]))\\\\d{4}\"],[\"800\\\\d{4}\",[7]],[\"(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\\\d{4}\",[7]]]],\"PE\":[\"51\",\"19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,[[\"19(?:[02-68]\\\\d|1[035-9]|7[0-689]|9[1-9])\\\\d{4}|(?:1[0-8]|4[1-4]|5[1-46]|6[1-7]|7[2-46]|8[2-4])\\\\d{6}\",[8]],[\"9\\\\d{8}\",[9]],[\"800\\\\d{5}\",[8]],[\"805\\\\d{5}\",[8]],[\"80[24]\\\\d{5}\",[8]],0,0,0,0,[\"801\\\\d{5}\",[8]]],0,\" Anexo \"],\"PF\":[\"689\",\"00\",\"[48]\\\\d{7}|4\\\\d{5}\",[6,8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[48]\"]]],0,0,0,0,0,0,[[\"4(?:0[4-689]|9[4-68])\\\\d{5}\",[8]],[\"8[7-9]\\\\d{6}\",[8]],0,0,0,0,[\"44\\\\d{4}\",[6]],0,[\"499\\\\d{5}\",[8]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,[[\"(?:64[1-9]|7730|85[02-46-9])\\\\d{4}|(?:3[0-2]|4[257]|5[34]|77[0-24]|9[78])\\\\d{5}\"],[\"77(?:3[1-9]|[5-9]\\\\d)\\\\d{4}|(?:7[0-689]|81)\\\\d{6}\",[8]],[\"180\\\\d{4}\",[7]],0,0,0,0,[\"27[01]\\\\d{4}\",[7]],[\"2(?:0[0-47]|7[568])\\\\d{4}\",[7]]],\"00\"],\"PH\":[\"63\",\"00\",\"1800\\\\d{7,9}|(?:2|[89]\\\\d{4})\\\\d{5}|[2-8]\\\\d{8}|[28]\\\\d{7}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\",0,0,0,0,0,[[\"(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\\\d{3}|88(?:22\\\\d\\\\d|42))\\\\d{4}|2\\\\d{5}(?:\\\\d{2})?|8[2-8]\\\\d{7}\",[6,8,9,10]],[\"(?:81[37]|9(?:0[5-9]|1[0-24-9]|2[0-35-9]|[35]\\\\d|4[235-9]|6[0-25-8]|7[1-9]|8[19]|9[4-9]))\\\\d{7}\",[10]],[\"1800\\\\d{7,9}\",[11,12,13]]]],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[[\"(?:(?:21|42)[2-9]|58[126])\\\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\\\d{5,6}\",[9,10]],[\"3(?:[014]\\\\d|2[0-5]|3[0-7]|55|64)\\\\d{7}\",[10]],[\"800\\\\d{5}\",[8]],[\"900\\\\d{5}\",[8]],[\"122\\\\d{6}\",[9]],0,[\"(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\\\d{6}\",[11,12]]]],\"PL\":[\"48\",\"00\",\"[1-57-9]\\\\d{6}(?:\\\\d{2})?|6\\\\d{5,8}\",[6,7,8,9],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"39|45|5[0137]|6[0469]|7[02389]|8[08]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-8]|9[145]\"]]],0,0,0,0,0,0,[[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\\\d{6}|1(?:[0-8]\\\\d{5}|9\\\\d{3}(?:\\\\d{2})?))\",[7,9]],[\"(?:45|5[0137]|6[069]|7[2389]|88)\\\\d{7}\",[9]],[\"800\\\\d{6}\",[9]],[\"70[01346-8]\\\\d{6}\",[9]],0,0,[\"804\\\\d{6}\",[9]],[\"64\\\\d{4,7}\"],[\"39\\\\d{7}\",[9]],[\"801\\\\d{6}\",[9]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:4[1-3]|50)\\\\d{4}\"],[\"(?:4[02-4]|5[05])\\\\d{4}\"]]],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\",[[\"(?:787|939)[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[[\"(?:22[2-47-9]|42[45]|82[01458]|92[369])\\\\d{5}\",[8]],[\"5[69]\\\\d{7}\",[9]],[\"1800\\\\d{6}\",[10]],0,0,0,0,0,0,[\"1700\\\\d{6}\",[10]]]],\"PT\":[\"351\",\"00\",\"(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"]]],0,0,0,0,0,0,[[\"2(?:[12]\\\\d|[35][1-689]|4[1-59]|6[1-35689]|7[1-9]|8[1-69]|9[1256])\\\\d{6}\"],[\"6[356]9230\\\\d{3}|(?:6[036]93|9(?:[1-36]\\\\d\\\\d|480))\\\\d{5}\"],[\"80[02]\\\\d{6}\"],[\"(?:6(?:0[178]|4[68])\\\\d|76(?:0[1-57]|1[2-47]|2[237]))\\\\d{5}\"],[\"884[0-4689]\\\\d{5}\"],0,[\"70(?:7\\\\d|8[17])\\\\d{5}\"],0,[\"30\\\\d{7}\"],[\"80(?:8\\\\d|9[1579])\\\\d{5}\"]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]],0,0,0,0,0,0,[[\"(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\\\d{4}\"],[\"(?:45[0-5]|6[2-4689]0|77\\\\d|88[0-4])\\\\d{4}\"]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|(?:[2-46-9]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\\\d|6[1-578]|75|8[0-8])|858)\\\\d{5,6}\",[7,8,9]],[\"9(?:51|6[129]|[78][1-6]|9[1-5])\\\\d{6}\",[9]],0,0,0,0,[\"[2-9]0\\\\d{4,7}\"],0,[\"8700[0-4]\\\\d{4}\",[9]]]],\"QA\":[\"974\",\"00\",\"[2-7]\\\\d{7}|(?:2\\\\d\\\\d|800)\\\\d{4}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[126]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]]],0,0,0,0,0,0,[[\"4[04]\\\\d{6}\",[8]],[\"(?:28|[35-7]\\\\d)\\\\d{6}\",[8]],[\"800\\\\d{4}\",[7]],0,0,0,0,[\"2(?:[12]\\\\d|61)\\\\d{4}\",[7]]]],\"RE\":[\"262\",\"00\",\"9769\\\\d{5}|(?:26|[68]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,\"26[23]|69|[89]\",[[\"26(?:2\\\\d\\\\d|30[01])\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:0[0-46]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[05]|6[0-26]|7[0-27]|8[0-8]|9[0-479]))|9769\\\\d)\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,0,[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[237]\\\\d|[89]0)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[237-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"[23][13-6]\\\\d{7}|(?:2(?:19\\\\d|[3-6]\\\\d9)|31\\\\d\\\\d)\\\\d\\\\d\"],[\"7[01]20\\\\d{5}|7(?:0[013-9]|1[01]|[2-7]\\\\d|8[03-8]|9[09])\\\\d{6}\",[9]],[\"800\\\\d{6}\",[9]],[\"90[0136]\\\\d{6}\",[9]],0,0,[\"(?:37\\\\d|80[578])\\\\d{6}\",[9]],0,0,[\"801\\\\d{6}\",[9]]],0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:11[1-9]\\\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\\\d))\\\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\\\d{4,9}\",[7,8,9,10,11,12]],[\"6(?:[0-689]|7\\\\d)\\\\d{6,7}\",[8,9,10]],[\"800\\\\d{3,9}\"],[\"(?:78\\\\d|90[0169])\\\\d{3,7}\",[6,7,8,9,10]],0,0,[\"7[06]\\\\d{4,10}\"]]],\"RU\":[\"7\",\"810\",\"[347-9]\\\\d{9}\",[10],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[3489]\"],\"8 ($1)\",1]],\"8\",0,0,0,0,\"3[04-689]|[489]\",[[\"(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15]|6[1-35-79]|7[1-37-9]))\\\\d{7}\"],[\"9\\\\d{9}\"],[\"80[04]\\\\d{7}\"],[\"80[39]\\\\d{7}\"],[\"808\\\\d{7}\"]],\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]]],\"0\",0,0,0,0,0,[[\"(?:06|2[23568]\\\\d)\\\\d{6}\"],[\"7[238]\\\\d{7}\",[9]],[\"800\\\\d{6}\",[9]],[\"900\\\\d{6}\",[9]]]],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,0,0,0,0,[[\"1(?:1\\\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\\\d{6}\",[9]],[\"5(?:[013-689]\\\\d|7[0-36-8])\\\\d{6}\",[9]],[\"800\\\\d{7}\",[10]],[\"925\\\\d{6}\",[9]],0,0,[\"811\\\\d{7}\",[10]],0,0,[\"920\\\\d{6}\",[9]]]],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]],0,0,0,0,0,0,[[\"(?:1[4-79]|[23]\\\\d|4[0-2]|5[03]|6[0-37])\\\\d{3}\",[5]],[\"48\\\\d{3}|(?:(?:7[1-9]|8[4-9])\\\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\\\d{4}\"],[\"1[38]\\\\d{3}\",[5]],0,0,0,0,0,[\"5[12]\\\\d{3}\",[5]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"8000\\\\d{3}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,[[\"4[2-46]\\\\d{5}\"],[\"2[5-8]\\\\d{5}\"],[\"8000\\\\d{3}\"],0,0,0,0,0,[\"971\\\\d{4}|(?:64|95)\\\\d{5}\"]],\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"1(?:5\\\\d|8[35-7])\\\\d{6}\"],[\"(?:1[0-2]|9[0-3569])\\\\d{7}\"]]],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\",0,0,0,0,0,[[\"(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\\\d)\\\\d|90[1-9])\\\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\\\d{5,6}\",[7,8,9]],[\"7[02369]\\\\d{7}\",[9]],[\"20\\\\d{4,7}\",[6,7,8,9]],[\"649\\\\d{6}|9(?:00|39|44)[1-8]\\\\d{3,6}\",[7,8,9,10]],[\"75[1-8]\\\\d{6}\",[9]],0,[\"10[1-8]\\\\d{6}\",[9]],[\"74[02-9]\\\\d{6}\",[9]],0,[\"77[0-7]\\\\d{6}\",[9]]]],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8[1-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[[\"662[0-24-9]\\\\d{4}|6(?:[1-578]\\\\d|6[013-57-9]|9[0-35-9])\\\\d{5}\",[8]],[\"(?:8(?:[1-8]\\\\d\\\\d|9(?:[014]\\\\d|2[1-9]|3[0-489]))|9[0-8]\\\\d\\\\d)\\\\d{4}\",[8]],[\"(?:18|8)00\\\\d{7}\",[10,11]],[\"1900\\\\d{7}\",[11]],0,0,[\"7000\\\\d{7}\",[11]],0,[\"(?:3[12]\\\\d\\\\d|666[46])\\\\d{4}\",[8]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\",[[\"2(?:[0-57-9]\\\\d|6[4-9])\\\\d\\\\d\"],[\"[56]\\\\d{4}\",[5]],0,0,0,0,0,0,[\"262\\\\d\\\\d\",[5]]]],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[[\"(?:[1-357][2-8]|4[24-8])\\\\d{6}\",[8]],[\"65(?:1\\\\d|55|[67]0)\\\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\\\d{6}\",[8]],[\"80\\\\d{4,6}\",[6,7,8]],[\"89[1-3]\\\\d{2,5}|90\\\\d{4,6}\"],0,0,0,0,[\"(?:59\\\\d\\\\d|8(?:1(?:[67]\\\\d|8[01389])|2(?:0\\\\d|2[0378]|8[0-2489])|3[389]\\\\d))\\\\d{4}\",[8]]],\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[4589]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\",[[\"79\\\\d{6}\",[8]],[\"(?:4[015-8]|5[89]|9\\\\d)\\\\d{6}\",[8]],[\"80[01]\\\\d{5}\",[8]],[\"82[09]\\\\d{5}\",[8]],[\"880\\\\d{5}\",[8]],0,[\"(?:0[2-9]|81(?:0(?:0[7-9]|1\\\\d)|5\\\\d\\\\d))\\\\d{3}\"],0,[\"85[0-5]\\\\d{5}\",[8]],[\"810(?:0[0-6]|[2-8]\\\\d)\\\\d{3}\",[8]]]],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2(?:16|[2-9]\\\\d{3})|(?:(?:[3-5][1-8]\\\\d|819)\\\\d|601[1-5])\\\\d)\\\\d{4}|(?:2|[3-5][1-8])1[67]\\\\d{3}|[3-5][1-8]16\\\\d\\\\d\"],[\"909[1-9]\\\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\\\d)\\\\d{6}\",[9]],[\"800\\\\d{6}\",[9]],[\"9(?:00|[78]\\\\d)\\\\d{6}\",[9]],0,0,[\"96\\\\d{7}\",[9]],[\"9090\\\\d{3}\",[7]],[\"6(?:02|5[0-4]|9[0-6])\\\\d{6}\",[9]],[\"8[5-9]\\\\d{7}\",[9]]]],\"SL\":[\"232\",\"00\",\"(?:[2378]\\\\d|66|99)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,[[\"22[2-4][2-9]\\\\d{4}\"],[\"(?:25|3[013-5]|66|7[5-9]|8[08]|99)\\\\d{6}\"]]],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\",0,0,[[\"0549(?:8[0157-9]|9\\\\d)\\\\d{4}\",[10]],[\"6[16]\\\\d{6}\",[8]],0,[\"7[178]\\\\d{6}\",[8]],0,0,0,0,[\"5[158]\\\\d{6}\",[8]]]],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d{4}|93330)\\\\d{4}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]],0,0,0,0,0,0,[[\"3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\\\d{5}\"],[\"7(?:[06-8]\\\\d|21|90)\\\\d{6}\"],[\"800\\\\d{6}\"],[\"88[4689]\\\\d{6}\"],0,0,0,0,[\"93330\\\\d{4}|3(?:392|9[01]\\\\d)\\\\d{5}\"],[\"81[02468]\\\\d{6}\"]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"24|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3478]|64|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[1-35-9]|9[2-9]\"]]],\"0\",0,0,0,0,0,[[\"(?:1\\\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\\\d{5}|(?:[134]\\\\d|8[125])\\\\d{4}\",[6,7]],[\"28\\\\d{5}|(?:6[1-9]|79)\\\\d{6,7}|(?:15|24|(?:3[59]|4[89]|8[08])\\\\d|60|7[1-8]|9(?:0\\\\d|[2-9]))\\\\d{6}\",[7,8,9]]]],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]],0,0,0,0,0,0,[[\"(?:2[1-3]|3[0-7]|(?:4|68)\\\\d|5[2-58])\\\\d{4}\"],[\"(?:7[124-7]|8[125-9])\\\\d{5}\",[7]],0,0,0,0,0,0,[\"56\\\\d{4}\",[6]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"18\\\\d{7}\"],[\"(?:12|9[1257])\\\\d{7}\"]]],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]],0,0,0,0,0,0,[[\"22\\\\d{5}\"],[\"900[5-9]\\\\d{3}|9(?:0[1-9]|[89]\\\\d)\\\\d{4}\"]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,[[\"2[1-6]\\\\d{6}\",[8]],[\"[67]\\\\d{7}\",[8]],[\"800\\\\d{4}(?:\\\\d{4})?\",[7,11]],[\"900\\\\d{4}(?:\\\\d{4})?\",[7,11]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|(5\\\\d{6})$\",\"721$1\",0,\"721\",[[\"7215(?:4[2-8]|8[239]|9[056])\\\\d{4}\"],[\"7215(?:1[02]|2\\\\d|5[034679]|8[014-8])\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\",0,0,0,0,0,[[\"[12]1\\\\d{6,7}|(?:1(?:[2356]|4\\\\d)|2[235]|3(?:[13]\\\\d|4)|4[13]|5[1-3])\\\\d{6}\"],[\"9(?:22|[3-589]\\\\d|6[024-9])\\\\d{6}\",[9]]]],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]],0,0,0,0,0,0,[[\"[23][2-5]\\\\d{6}\",[8]],[\"7[6-9]\\\\d{6}\",[8]],[\"0800\\\\d{4}\",[8]],[\"900\\\\d{6}\",[9]],0,0,0,0,[\"70\\\\d{6}\",[8]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\",[[\"8\\\\d{3}\"]]],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-479]\\\\d{6})$\",\"649$1\",0,\"649\",[[\"649(?:712|9(?:4\\\\d|50))\\\\d{4}\"],[\"649(?:2(?:3[129]|4[1-7])|3(?:3[1-389]|4[1-8])|4[34][1-3])\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"64971[01]\\\\d{4}\"]]],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,[[\"22(?:[37-9]0|5[0-5]|6[89])\\\\d{4}\"],[\"(?:6[023568]|77|9\\\\d)\\\\d{6}\"]],\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]],0,0,0,0,0,0,[[\"2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\\\d{5}\"],[\"(?:7[09]|9[0-36-9])\\\\d{6}\"]]],\"TH\":[\"66\",\"00[1-9]\",\"1\\\\d{8,9}|(?:[2-57]|[689]\\\\d)\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"14|[3-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\",0,0,0,0,0,[[\"(?:2\\\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\\\d{6}\",[8]],[\"(?:14|6[1-6]|[89]\\\\d)\\\\d{7}\",[9]],[\"1800\\\\d{6}\",[10]],[\"1900\\\\d{6}\",[10]],0,0,0,0,[\"6[08]\\\\d{7}\",[9]]]],\"TJ\":[\"992\",\"810\",\"(?:00|11|[3-579]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"],0,1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[34]7|91[78]\"],0,1],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0457-9]|11\"],0,1]],\"8\",0,0,0,0,0,[[\"(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\\\d{6}\"],[\"41[18]\\\\d{6}|(?:00|11|5[05]|7[07]|88|9\\\\d)\\\\d{7}\"]],\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7],0,0,0,0,0,0,0,[[\"(?:2[2-4]|[34]\\\\d)\\\\d{2,5}\"],[\"7[2-4]\\\\d{2,5}\"]]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[[\"(?:2[1-5]|3[1-9]|4[1-4])\\\\d{5}\",[7]],[\"7[2-8]\\\\d{6}\",[8]],[\"80\\\\d{5}\",[7]],[\"90\\\\d{5}\",[7]],[\"70\\\\d{5}\",[7]]]],\"TM\":[\"993\",\"810\",\"[1-6]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"6\"],\"8 $1\"]],\"8\",0,0,0,0,0,[[\"(?:1(?:2\\\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\\\d{5}\"],[\"6\\\\d{7}\"]],\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]],0,0,0,0,0,0,[[\"81200\\\\d{3}|(?:3[0-2]|7\\\\d)\\\\d{6}\"],[\"3(?:001|[12]40)\\\\d{4}|(?:(?:[259]\\\\d|4[0-6])\\\\d|3(?:1[1-35]|6[0-4]|91))\\\\d{5}\"],[\"8010\\\\d{4}\"],[\"88\\\\d{6}\"],0,0,0,0,0,[\"8[12]10\\\\d{4}\"]]],\"TO\":[\"676\",\"00\",\"(?:0800|[5-8]\\\\d{3})\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-8]\"]]],0,0,0,0,0,0,[[\"(?:2\\\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\\\d{3}\",[5]],[\"6(?:3[02]|8[5-9])\\\\d{4}|(?:6[09]|7\\\\d|8[46-9])\\\\d{5}\",[7]],[\"0800\\\\d{3}\",[7]],[\"55[04]\\\\d{4}\",[7]]]],\"TR\":[\"90\",\"00\",\"(?:4|8\\\\d{5})\\\\d{6}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[0589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|616)\",\"5(?:[0-59]|6161)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\",0,0,0,0,0,[[\"(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\\\d{7}\",[10]],[\"56161\\\\d{5}|5(?:0[15-7]|1[06]|24|[34]\\\\d|5[1-59]|9[46])\\\\d{7}\",[10]],[\"800\\\\d{7}(?:\\\\d{2})?\",[10,12]],[\"(?:8[89]8|900)\\\\d{7}\",[10]],[\"592(?:21[12]|461)\\\\d{4}\",[10]],0,[\"(?:444|850\\\\d{3})\\\\d{4}\",[7,10]],[\"512\\\\d{7}\",[10]]]],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-46-8]\\\\d{6})$\",\"868$1\",0,\"868\",[[\"868(?:2(?:01|1[89]|[23]\\\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\\\d|7[0-79])|82[124])\\\\d{4}\"],[\"868(?:2(?:6[346-9]|[7-9]\\\\d)|[37](?:0[1-9]|1[02-9]|[2-9]\\\\d)|4[6-9]\\\\d|6(?:20|78|8\\\\d))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[[\"2[02-9]\\\\d{3}\",[5]],[\"(?:7[01]\\\\d|90)\\\\d{4}\",[6,7]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2[2-8]\\\\d|370|55[01]|7[1-9])\\\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\\\d)|1[023]\\\\d)\\\\d{4,5}|(?:[239]\\\\d\\\\d|4(?:0[56]|12|49))\\\\d{5})|6(?:[01]\\\\d{7}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|8(?:(?:2(?:3\\\\d|4[0-269]|[578]0|66)|36[24-9]|90\\\\d\\\\d)\\\\d{4}|4(?:0[56]|12|24|4[09])\\\\d{4,5})|(?:2(?:2(?:0\\\\d\\\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\\\d|1[0-4])|(?:4\\\\d|5[0-49]|6[0-29]|7[0-5])\\\\d)\\\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\\\d\\\\d|4(?:2(?:[089]\\\\d|7[1-9])|(?:3[0-4]|[78]\\\\d|9[01])\\\\d))\\\\d)\\\\d{3}\",[8,9]],[\"(?:40001[0-2]|9[0-8]\\\\d{4})\\\\d{3}\",[9]],[\"80[0-79]\\\\d{6}|800\\\\d{5}\",[8,9]],[\"20(?:[013-9]\\\\d\\\\d|2)\\\\d{4}\",[7,9]],[\"99\\\\d{7}\",[9]],0,[\"50[0-46-9]\\\\d{6}\",[9]],0,[\"7010(?:[0-2679]\\\\d|3[0-7]|8[0-5])\\\\d{5}|70\\\\d{8}\",[10,11]]],0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[26-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"2[2-8]\\\\d{7}\"],[\"(?:6[2-9]|7[13-9])\\\\d{7}\"],[\"80[08]\\\\d{6}\"],[\"90\\\\d{7}\"],0,0,0,0,[\"41\\\\d{7}\"],[\"8(?:40|6[01])\\\\d{6}\"]]],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\",\"4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\\\d{7}\",[9]],[\"(?:50|6[36-8]|7[1-3]|9[1-9])\\\\d{7}\",[9]],[\"800[1-8]\\\\d{5,6}\"],[\"900[239]\\\\d{5,6}\"],0,0,0,0,[\"89[1-579]\\\\d{6}\",[9]]],\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"20(?:(?:(?:24|81)0|30[67])\\\\d|6(?:00[0-2]|30[0-4]))\\\\d{3}|(?:20(?:[0147]\\\\d|2[5-9]|32|5[0-4]|6[15-9])|[34]\\\\d{3})\\\\d{5}\"],[\"7260\\\\d{5}|7(?:[0157-9]\\\\d|20|36|4[0-4])\\\\d{6}\"],[\"800[1-3]\\\\d{5}\"],[\"90[1-3]\\\\d{6}\"]]],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[0135]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-28]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,[\"710[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"(?:[249]\\\\d\\\\d|80)\\\\d{5}|9\\\\d{6}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[24]\"]]],\"0\",0,0,0,0,0,[[\"(?:2\\\\d|4[2-7])\\\\d{6}\",[8]],[\"9[1-9]\\\\d{6}\",[8]],[\"80[05]\\\\d{4}\",[7]],[\"90[0-8]\\\\d{4}\",[7]]],\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"[679]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[679]\"],\"8 $1\"]],\"8\",0,0,0,0,0,[[\"78(?:1(?:13|2[02]|50)|2(?:10|2[139]|98)|77[01])\\\\d{4}|(?:6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|6\\\\d\\\\d|7(?:[23]\\\\d|7[69])|9(?:22|4[1-8]|6[135]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|1[12]\\\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|6(?:22|3[12457]|4[13-8])|9(?:22|5[1-9])))\\\\d{5}\"],[\"(?:6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\\\d|61[23]|7(?:[01][017]|4\\\\d|55|9[5-9]))|2(?:(?:11|7\\\\d)\\\\d|2(?:[12]1|9[01379])|5(?:[126]\\\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\\\d)\\\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\\\d|4(?:56|83)|7(?:[07]\\\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\\\d|[39][07])|9(?:0\\\\d|7[079]))|9(?:2(?:1[1267]|3[01]|5\\\\d|7[0-4])|(?:5[67]|7\\\\d)\\\\d|6(?:2[0-26]|8\\\\d)))|7(?:0\\\\d{3}|1(?:13[01]|6(?:0[47]|1[67]|66)|71[3-69]|98\\\\d)|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\\\d|7(?:0\\\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\\\d|5(?:0[0-4]|5[579]|9\\\\d)|7(?:[0-3579]\\\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\\\d|9[5-9])|7(?:0\\\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\\\d))|5(?:112|2(?:0\\\\d|2[29]|[49]4)|3[1568]\\\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\\\d|8[78]|9[079]))|6(?:2(?:2[1245]|4[2-4])|39\\\\d|41[179]|5(?:[349]\\\\d|5[0-2])|7(?:0[017]|[13]\\\\d|22|44|55|67|88))|9(?:22[128]|3(?:2[0-4]|7\\\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\\\d|60|7[2579]|87|9[07])))|9[0-57-9]\\\\d{3})\\\\d{4}\"]],\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\",[[\"06698\\\\d{1,6}\"],[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d\\\\d|89(?:2|4[5-9]\\\\d))\\\\d{3}|89[45][0-4]\\\\d\\\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"784$1\",0,\"784\",[[\"784(?:266|3(?:6[6-9]|7\\\\d|8[0-24-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\\\d{4}\"],[\"784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4]))\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2(?:12|3[457-9]|[467]\\\\d|[58][1-9]|9[1-6])|[4-6]00)\\\\d{7}\"],[\"4(?:1[24-8]|2[46])\\\\d{7}\"],[\"800\\\\d{7}\"],[\"90[01]\\\\d{7}\"],0,0,[\"501\\\\d{7}\"]]],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-578]\\\\d{6})$\",\"284$1\",0,\"284\",[[\"284496[0-5]\\\\d{3}|284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\\\d{4}\"],[\"284496[6-9]\\\\d{3}|284(?:3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|99)|54[0-57])\\\\d{4}\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"340$1\",0,\"340\",[[\"340(?:2(?:0[12]|2[06-8]|4[49]|77)|3(?:32|44)|4(?:22|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|27|7\\\\d)|884|998)\\\\d{4}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[69]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\",0,0,0,0,0,[[\"2(?:0[3-9]|1[0-689]|2[0-25-9]|3[2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|8[2-79]|9[0-4679])\\\\d{7}\",[10]],[\"(?:52[238]|8(?:79|9[689])|99[013-9])\\\\d{6}|(?:3\\\\d|5[689]|7[06-9]|8[1-68]|9[0-8])\\\\d{7}\",[9]],[\"1800\\\\d{4,6}|12(?:03|28)\\\\d{4}\",[8,9,10]],[\"1900\\\\d{4,6}\",[8,9,10]],0,0,[\"(?:[17]99|80\\\\d)\\\\d{4}|69\\\\d{5,6}\",[7,8]],0,[\"672\\\\d{6}\",[9]]]],\"VU\":[\"678\",\"00\",\"(?:[23]\\\\d|[48]8)\\\\d{3}|(?:[57]\\\\d|90)\\\\d{5}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[579]\"]]],0,0,0,0,0,0,[[\"(?:38[0-8]|48[4-9])\\\\d\\\\d|(?:2[02-9]|3[4-7]|88)\\\\d{3}\",[5]],[\"(?:5\\\\d|7[013-7])\\\\d{5}\",[7]],0,0,0,0,[\"(?:3[03]|900\\\\d)\\\\d{3}\"],0,[\"90[1-9]\\\\d{4}\",[7]]]],\"WF\":[\"681\",\"00\",\"(?:[45]0|68|72|8\\\\d)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[4-8]\"]]],0,0,0,0,0,0,[[\"(?:50|68|72)\\\\d{4}\"],[\"(?:50|68|72|8[23])\\\\d{4}\"]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]],0,0,0,0,0,0,[[\"6[1-9]\\\\d{3}|(?:[2-5]|60)\\\\d{4}\",[5,6]],[\"(?:7[235-7]|8(?:[3-7]|9\\\\d{3}))\\\\d{5}\",[7,10]],[\"800\\\\d{3}\",[6]]]],\"XK\":[\"383\",\"00\",\"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[23]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:2[89]|39)0\\\\d{6}|[23][89]\\\\d{6}\"],[\"4[3-9]\\\\d{6}\",[8]],[\"800\\\\d{5}\",[8]],[\"900\\\\d{5}\",[8]]]],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7[24-68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"17\\\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-68])\\\\d{5}\",[7,8]],[\"7[0137]\\\\d{7}\",[9]]]],\"YT\":[\"262\",\"00\",\"80\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,\"269|63\",[[\"269(?:0[67]|5[0-2]|6\\\\d|[78]0)\\\\d{4}\"],[\"639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|[45]0|9[04-79])\\\\d{4}\"],[\"80\\\\d{7}\"]]],\"ZA\":[\"27\",\"00\",\"[1-9]\\\\d{8}|8\\\\d{4,7}\",[5,6,7,8,9],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1[0-8]|2[1-378]|3[1-69]|4\\\\d|5[1346-8])\\\\d{7}\",[9]],[\"(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\\\d{3}|8[1-4]\\\\d{3,7}|(?:2[27]|47|54)4950\\\\d{3}|(?:1(?:049[2-4]|9[12]\\\\d\\\\d)|(?:6\\\\d|7[0-46-9])\\\\d{3}|8(?:5\\\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\\\d{3}|(?:12|[2-5]1)492\\\\d{4}\"],[\"80\\\\d{7}\",[9]],[\"(?:86[2-9]|9[0-2]\\\\d)\\\\d{6}\",[9]],0,0,[\"861\\\\d{6}\",[9]],0,[\"87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\\\d)\\\\d{5}\",[9]],[\"860\\\\d{6}\",[9]]]],\"ZM\":[\"260\",\"00\",\"(?:63|80)0\\\\d{6}|(?:21|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"21[1-8]\\\\d{6}\"],[\"(?:7[679]|9[5-8])\\\\d{7}\"],[\"800\\\\d{6}\"],0,0,0,0,0,[\"630\\\\d{6}\"]]],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:(?:3\\\\d|9)\\\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\\\d\\\\d|[56](?:[14]\\\\d\\\\d|20)|7(?:[089]|2[03]|[35]\\\\d\\\\d))\\\\d|4(?:2\\\\d\\\\d|8))\\\\d|1(?:2|[39]\\\\d{4}))|3(?:(?:123|(?:29\\\\d|92)\\\\d)\\\\d\\\\d|7(?:[19]|[56]\\\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\\\d{3}|83)|5(?:25\\\\d\\\\d|[78])|[689]\\\\d)|6(?:(?:[16-8]21|28|52[013])\\\\d\\\\d|[39])|8(?:[1349]28|523)\\\\d\\\\d)\\\\d{3}|(?:4\\\\d\\\\d|9[2-9])\\\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\\\d|7[1-7])\\\\d|2(?:[278]\\\\d|92)|58(?:2\\\\d|3))|3(?:[26]|9\\\\d{3})|5(?:4\\\\d|5)\\\\d\\\\d)\\\\d|6(?:(?:(?:[0-246]|[78]\\\\d)\\\\d|37)\\\\d|5[2-8]))\\\\d\\\\d|(?:2(?:[569]\\\\d|8[2-57-9])|3(?:[013-59]\\\\d|8[37])|6[89]8)\\\\d{3}\"],[\"7(?:[17]\\\\d|[38][1-9])\\\\d{6}\",[9]],[\"80(?:[01]\\\\d|20|8[0-8])\\\\d{3}\",[7]],0,0,0,0,0,[\"86(?:1[12]|22|30|44|55|77|8[368])\\\\d{6}\",[10]]]]},\"nonGeographic\":{\"800\":[\"800\",0,\"\\\\d{8}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\"]],0,0,0,0,0,0,[0,0,[\"\\\\d{8}\"]]],\"808\":[\"808\",0,\"\\\\d{8}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\"]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"\\\\d{8}\"]]],\"870\":[\"870\",0,\"[35-7]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]\\\\d|7[6-8])\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"[67]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[67]\"]]],0,0,0,0,0,0,[0,[\"[67]\\\\d{8}\"]]],\"882\":[\"882\",0,\"1\\\\d{6,11}|3\\\\d{6}(?:\\\\d{2,5})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34[57]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[13]\"]]],0,0,0,0,0,0,[0,[\"3(?:37\\\\d\\\\d|42)\\\\d{4}|3(?:2|47|7\\\\d{3})\\\\d{7}\",[7,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|3(?:45|9\\\\d{3})\\\\d{7}\"]]],\"883\":[\"883\",0,\"51\\\\d{7}(?:\\\\d{3})?\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"510\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"51[013]0\\\\d{8}|5100\\\\d{5}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"\\\\d{9}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,[\"\\\\d{9}\"]]]}}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// https://stackoverflow.com/a/46971044/970769\nvar ParseError = function ParseError(code) {\n _classCallCheck(this, ParseError);\n\n this.name = this.constructor.name;\n this.message = code;\n this.stack = new Error(code).stack;\n};\n\nexport { ParseError as default };\nParseError.prototype = Object.create(Error.prototype);\nParseError.prototype.constructor = ParseError;\n//# sourceMappingURL=ParseError.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\n\nexport function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = b, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var element = _ref;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b)\n // {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=util.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport compare from './tools/semver-compare'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\n/**\r\n * See: https://github.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata =\n/*#__PURE__*/\nfunction () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n this.selectNumberingPlan(null, callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan =\n/*#__PURE__*/\nfunction () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n }\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n }\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format =\n/*#__PURE__*/\nfunction () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()); // Previously, `FIRST_GROUP_ONLY_PREFIX_PATTERN` check was instead done via:\n // // Check that national prefix formatting rule is not a \"dummy\" one.\n // this.nationalPrefixFormattingRule() !== '$1' &&\n // // Check that national prefix formatting rule actually has national prefix digit(s).\n // // Filters out cases like \"($1)\".\n // // Is used in place of `libphonenumber`'s `FIRST_GROUP_ONLY_PREFIX_PATTERN_` regexp.\n // /\\d/.test(this.nationalPrefixFormattingRule().replace('$1', ''))\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type =\n/*#__PURE__*/\nfunction () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!is_object(metadata) || !is_object(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar type_of = function type_of(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\n\nfunction setVersion(metadata) {\n this.v1 = !metadata.version;\n this.v2 = metadata.version !== undefined && compare(metadata.version, V3) === -1;\n this.v3 = metadata.version !== undefined && compare(metadata.version, V4) === -1;\n this.v4 = metadata.version !== undefined; // && compare(metadata.version, V5) === -1\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import { VALID_DIGITS } from './constants'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext='; // Pattern to capture digits used in an extension.\n// Places a maximum length of '7' for an extension.\n\nvar CAPTURING_EXTN_DIGITS = '([' + VALID_DIGITS + ']{1,7})';\n/**\r\n * Regexp of all possible ways to write extensions, for use when parsing. This\r\n * will be run as a case-insensitive regexp match. Wide character versions are\r\n * also provided after each ASCII version. There are three regular expressions\r\n * here. The first covers RFC 3966 format, where the extension is added using\r\n * ';ext='. The second more generic one starts with optional white space and\r\n * ends with an optional full stop (.), followed by zero or more spaces/tabs\r\n * /commas and then the numbers themselves. The other one covers the special\r\n * case of American numbers where the extension is written with a hash at the\r\n * end, such as '- 503#'. Note that the only capturing groups should be around\r\n * the digits that you want to capture as part of the extension, or else parsing\r\n * will fail! We allow two options for representing the accented o - the\r\n * character itself, and one in the unicode decomposed form with the combining\r\n * acute accent.\r\n */\n\nfunction create_extension_pattern(purpose) {\n // One-character symbols that can be used to indicate an extension.\n var single_extension_characters = \"x\\uFF58#\\uFF03~\\uFF5E\";\n\n switch (purpose) {\n // For parsing, we are slightly more lenient in our interpretation than for matching. Here we\n // allow \"comma\" and \"semicolon\" as possible extension indicators. When matching, these are\n case 'parsing':\n single_extension_characters = ',;' + single_extension_characters;\n }\n\n return RFC3966_EXTN_PREFIX + CAPTURING_EXTN_DIGITS + '|' + \"[ \\xA0\\\\t,]*\" + \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\" + // \"доб.\"\n \"\\u0434\\u043E\\u0431|\" + '[' + single_extension_characters + \"]|int|anexo|\\uFF49\\uFF4E\\uFF54)\" + \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\" + CAPTURING_EXTN_DIGITS + '#?|' + '[- ]+([' + VALID_DIGITS + ']{1,5})#';\n}\n/**\r\n * Regexp of all possible ways to write extensions, for use when parsing. This\r\n * will be run as a case-insensitive regexp match. Wide character versions are\r\n * also provided after each ASCII version. There are three regular expressions\r\n * here. The first covers RFC 3966 format, where the extension is added using\r\n * ';ext='. The second more generic one starts with optional white space and\r\n * ends with an optional full stop (.), followed by zero or more spaces/tabs\r\n * /commas and then the numbers themselves. The other one covers the special\r\n * case of American numbers where the extension is written with a hash at the\r\n * end, such as '- 503#'. Note that the only capturing groups should be around\r\n * the digits that you want to capture as part of the extension, or else parsing\r\n * will fail! We allow two options for representing the accented o - the\r\n * character itself, and one in the unicode decomposed form with the combining\r\n * acute accent.\r\n */\n\n\nexport var EXTN_PATTERNS_FOR_PARSING = create_extension_pattern('parsing');\nexport var EXTN_PATTERNS_FOR_MATCHING = create_extension_pattern('matching'); // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + EXTN_PATTERNS_FOR_PARSING + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var number_without_extension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i] != null && matches[i].length > 0) {\n return {\n number: number_without_extension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extension.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants';\nimport { EXTN_PATTERNS_FOR_PARSING } from './extension'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nvar VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + EXTN_PATTERNS_FOR_PARSING + ')?' + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","import { parseDigit } from './parseDigits';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * `input-format` `parse()` function.\r\n * https://github.com/catamphetamine/input-format\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string} value - The value parsed so far.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, value) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (value) {\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","import Metadata from './metadata';\nimport { matchesEntirely, mergeArrays } from './util';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (is_of_type(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // v1 metadata.\n // Legacy.\n // Deprecated.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (is_of_type(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _i = 0, _NON_FIXED_LINE_PHONE = NON_FIXED_LINE_PHONE_TYPES; _i < _NON_FIXED_LINE_PHONE.length; _i++) {\n var _type = _NON_FIXED_LINE_PHONE[_i];\n\n if (is_of_type(nationalNumber, _type, metadata)) {\n return _type;\n }\n }\n}\nexport function is_of_type(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n} // Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths)\n // {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // }\n // else\n // {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=getNumberType_.js.map","import Metadata from './metadata';\nimport { checkNumberLengthForType } from './getNumberType_';\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.chooseCountryByCountryCallingCode(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.chooseCountryByCountryCallingCode(input.countryCallingCode);\n }\n }\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, undefined, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, isInternational, metadata) {\n switch (checkNumberLengthForType(nationalNumber, undefined, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossibleNumber_.js.map","import Metadata from './metadata';\nimport { VALID_DIGITS } from './constants';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport function getIDDPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (SINGLE_IDD_PREFIX.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n\n return countryMetadata.defaultIDDPrefix();\n}\nexport function stripIDDPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // Some kind of a weird edge case.\n // No explanation from Google given.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n /* istanbul ignore next */\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=IDD.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = text.split(';'), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var part = _ref;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref2) {\n var number = _ref2.number,\n ext = _ref2.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","import Metadata from './metadata';\nimport { matchesEntirely } from './util';\nimport getNumberType from './getNumberType_';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // This is just to support `isValidNumber({})`\n // for cases when `parseNumber()` returns `{}`.\n\n if (!input.country) {\n return false;\n }\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var national_number = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(national_number, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=validate_.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_PUNCTUATION } from './constants';\nimport { matchesEntirely } from './util';\nimport Metadata from './metadata';\nimport { getIDDPrefix } from './IDD';\nimport { formatRFC3966 } from './RFC3966';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n } // Formats a phone number\n //\n // Example use cases:\n //\n // ```js\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL')\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\n // formatNumber('+78005553535', 'NATIONAL')\n // formatNumber('+78005553535', 'NATIONAL', metadata)\n // ```\n //\n\n};\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread({}, DEFAULT_OPTIONS, options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.chooseCountryByCountryCallingCode(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var IDDPrefix = getIDDPrefix(options.fromCountry, undefined, metadata.metadata);\n\n if (!IDDPrefix) {\n return;\n }\n\n if (options.humanReadable) {\n var formattedForSameCountryCallingCode = countryCallingCode && formatIDDSameCountryCallingCodeNumber(nationalNumber, metadata.countryCallingCode(), options.fromCountry, metadata, options);\n\n if (formattedForSameCountryCallingCode) {\n number = formattedForSameCountryCallingCode;\n } else {\n number = \"\".concat(IDDPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, 'INTERNATIONAL', metadata, options));\n }\n\n return addExtension(number, input.ext, metadata, options.formatExtension);\n }\n\n return \"\".concat(IDDPrefix).concat(countryCallingCode).concat(nationalNumber);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n} // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use \\d, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport function formatNationalNumberUsingFormat(number, format, useInternationalSeparator, useNationalPrefixFormattingRule, metadata) {\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalSeparator ? format.internationalFormat() : useNationalPrefixFormattingRule && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalSeparator) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n\nfunction formatNationalNumber(number, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, formatAs === 'INTERNATIONAL', format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options.nationalPrefix === false ? false : true, metadata);\n}\n\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = availableFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var format = _ref;\n\n // Validate leading digits\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n} // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\n\nexport function applyInternationalSeparatorStyle(local) {\n return local.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDDSameCountryCallingCodeNumber(number, toCountryCallingCode, fromCountry, toCountryMetadata, options) {\n var fromCountryMetadata = new Metadata(toCountryMetadata.metadata);\n fromCountryMetadata.country(fromCountry); // If calling within the same country calling code.\n\n if (toCountryCallingCode === fromCountryMetadata.countryCallingCode()) {\n // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n if (toCountryCallingCode === '1') {\n return toCountryCallingCode + ' ' + formatNationalNumber(number, 'NATIONAL', toCountryMetadata, options);\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formatNationalNumber(number, 'NATIONAL', toCountryMetadata, options);\n }\n}\n//# sourceMappingURL=format_.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport Metadata from './metadata';\nimport isPossibleNumber from './isPossibleNumber_';\nimport isValidNumber from './validate_';\nimport isValidNumberForRegion from './isValidNumberForRegion_';\nimport getNumberType from './getNumberType_';\nimport formatNumber from './format_';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber =\n/*#__PURE__*/\nfunction () {\n function PhoneNumber(countryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n var _metadata = new Metadata(metadata); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n\n if (isCountryCode(countryCallingCode)) {\n this.country = countryCallingCode;\n\n _metadata.country(countryCallingCode);\n\n countryCallingCode = _metadata.countryCallingCode();\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\n this.country = '001';\n }\n }\n }\n\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata;\n }\n\n _createClass(PhoneNumber, [{\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.metadata);\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // // Is just an alias for `this.isValid() && this.country === country`.\n // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\n // isValidForRegion(country) {\n // \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread({}, options, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n//# sourceMappingURL=PhoneNumber.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN, MAX_LENGTH_COUNTRY_CODE } from './constants';\nimport { matchesEntirely } from './util';\nimport ParseError from './ParseError';\nimport Metadata from './metadata';\nimport isViablePhoneNumber from './isViablePhoneNumber';\nimport { extractExtension } from './extension';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\nimport getCountryCallingCode from './getCountryCallingCode';\nimport getNumberType, { checkNumberLengthForType } from './getNumberType_';\nimport { isPossibleNumber } from './isPossibleNumber_';\nimport { stripIDDPrefix } from './IDD';\nimport { parseRFC3966 } from './RFC3966';\nimport PhoneNumber from './PhoneNumber'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // `options`:\n// {\n// country:\n// {\n// restrict - (a two-letter country code)\n// the phone number must be in this country\n//\n// default - (a two-letter country code)\n// default country to use for phone number parsing and validation\n// (if no country code could be derived from the phone number)\n// }\n// }\n//\n// Returns `{ country, number }`\n//\n// Example use cases:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, countryCallingCode !== undefined, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} throwOnError — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nexport function extractFormattedPhoneNumber(text, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport function stripNationalPrefixAndCarrierCode(number, metadata) {\n if (number && metadata.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // If a \"capturing group\" didn't match\n // then its element in `prefixMatch[]` array will be `undefined`.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n\n if (metadata.nationalPrefixTransformRule() && capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // Carrier code is the last captured group,\n // but only when there's more than one captured group.\n\n if (capturedGroupsCount > 1 && prefixMatch[capturedGroupsCount]) {\n carrierCode = prefixMatch[1];\n }\n } // If it's a simple-enough case then just\n // strip the national prefix from the number.\n else {\n // National prefix is the whole substring matched by\n // the `national_prefix_for_parsing` regexp.\n var nationalPrefix = prefixMatch[0];\n nationalNumber = number.slice(nationalPrefix.length); // Carrier code is the last captured group.\n\n if (capturedGroupsCount > 0) {\n carrierCode = prefixMatch[1];\n }\n } // We require that the national (significant) number remaining after\n // stripping the national prefix and carrier code be long enough\n // to be a possible length for the region. Otherwise, we don't do\n // the stripping, since the original number could be a valid number.\n // For example, in some countries (Russia, Belarus) the same digit\n // could be both a national prefix and a leading digit of a valid\n // national phone number, like `8` is the national prefix for Russia\n // and `800 555 35 35` is a valid national (significant) number.\n\n\n if (matchesEntirely(number, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {// Don't strip national prefix or carrier code.\n } else {\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n }\n }\n }\n\n return {\n nationalNumber: number\n };\n}\nexport function findCountryCode(callingCode, nationalPhoneNumber, metadata) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n } // Is always non-empty, because `callingCode` is always valid\n\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return _findCountryCode(possibleCountries, nationalPhoneNumber, metadata.metadata);\n} // Changes `metadata` `country`.\n\nfunction _findCountryCode(possibleCountries, nationalPhoneNumber, metadata) {\n metadata = new Metadata(metadata);\n\n for (var _iterator = possibleCountries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var country = _ref;\n metadata.country(country); // Leading digits check would be the simplest one\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n return country;\n }\n }\n}\n/**\r\n * @param {string} text - Input.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2) {\n // Parse RFC 3966 phone number URI.\n if (text && text.indexOf('tel:') === 0) {\n return parseRFC3966(text);\n }\n\n var number = extractFormattedPhoneNumber(text, v2); // If the phone number is not viable, then abort.\n\n if (!number || !isViablePhoneNumber(number)) {\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.chooseCountryByCountryCallingCode(countryCallingCode);\n } // If `formattedPhoneNumber` is in \"national\" format\n // then `number` is defined and `countryCallingCode` isn't.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCode: countryCallingCode\n };\n }\n\n var _stripNationalPrefixA = stripNationalPrefixAndCarrierCodeFromCompleteNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _stripNationalPrefixA.nationalNumber,\n carrierCode = _stripNationalPrefixA.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = findCountryCode(countryCallingCode, nationalNumber, metadata);\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\n\nexport function stripNationalPrefixAndCarrierCodeFromCompleteNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _stripNationalPrefixA2 = stripNationalPrefixAndCarrierCode(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _stripNationalPrefixA2.nationalNumber,\n carrierCode = _stripNationalPrefixA2.carrierCode; // If a national prefix has been extracted, check to see\n // if the resultant number isn't too short.\n\n\n if (nationalNumber.length !== number.length + (carrierCode ? carrierCode.length : 0)) {\n // If not using legacy generated metadata (before version `1.0.18`)\n // then it has \"possible lengths\", so use those to validate the number length.\n if (metadata.possibleLengths()) {\n // \"We require that the NSN remaining after stripping the national prefix and\n // carrier code be long enough to be a possible length for the region.\n // Otherwise, we don't do the stripping, since the original number could be\n // a valid short number.\"\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n switch (checkNumberLengthForType(nationalNumber, undefined, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n } // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIDDPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin2.countryCallingCode,\n shorterNumber = _extractCountryCallin2.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(undefined, _countryCallingCode);\n return {\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n}\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _stripNationalPrefixA3 = stripNationalPrefixAndCarrierCode(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _stripNationalPrefixA3.nationalNumber;\n\n var _stripNationalPrefixA4 = stripNationalPrefixAndCarrierCode(number, metadata),\n nationalNumber = _stripNationalPrefixA4.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLengthForType(nationalNumber, undefined, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=parse_.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parseNumber from './parse_';\nexport default function parsePhoneNumber(text, options, metadata) {\n return parseNumber(text, _objectSpread({}, options, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport parsePhoneNumber_ from './parsePhoneNumber_';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\nexport function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n} // Otherwise istanbul would show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar isObject = function isObject(_) {\n return _typeof(_) === 'object';\n};\n//# sourceMappingURL=parsePhoneNumber.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumber from './parsePhoneNumber_';\nimport ParseError from './ParseError';\nimport { isSupportedCountry } from './metadata';\nexport default function parsePhoneNumberFromString(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread({}, options, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumber(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumberFromString_.js.map","import { normalizeArguments } from './parsePhoneNumber';\nimport parsePhoneNumberFromString_ from './parsePhoneNumberFromString_';\nexport default function parsePhoneNumberFromString() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumberFromString_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumberFromString.js.map","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// https://medium.com/dsinjs/implementing-lru-cache-in-javascript-94ba6755cda9\nvar Node = function Node(key, value) {\n var next = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var prev = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, Node);\n\n this.key = key;\n this.value = value;\n this.next = next;\n this.prev = prev;\n};\n\nvar LRUCache =\n/*#__PURE__*/\nfunction () {\n //set default limit of 10 if limit is not passed.\n function LRUCache() {\n var limit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n\n _classCallCheck(this, LRUCache);\n\n this.size = 0;\n this.limit = limit;\n this.head = null;\n this.tail = null;\n this.cache = {};\n } // Write Node to head of LinkedList\n // update cache with Node key and Node reference\n\n\n _createClass(LRUCache, [{\n key: \"put\",\n value: function put(key, value) {\n this.ensureLimit();\n\n if (!this.head) {\n this.head = this.tail = new Node(key, value);\n } else {\n var node = new Node(key, value, this.head);\n this.head.prev = node;\n this.head = node;\n } //Update the cache map\n\n\n this.cache[key] = this.head;\n this.size++;\n } // Read from cache map and make that node as new Head of LinkedList\n\n }, {\n key: \"get\",\n value: function get(key) {\n if (this.cache[key]) {\n var value = this.cache[key].value; // node removed from it's position and cache\n\n this.remove(key); // write node again to the head of LinkedList to make it most recently used\n\n this.put(key, value);\n return value;\n }\n\n console.log(\"Item not available in cache for key \".concat(key));\n }\n }, {\n key: \"ensureLimit\",\n value: function ensureLimit() {\n if (this.size === this.limit) {\n this.remove(this.tail.key);\n }\n }\n }, {\n key: \"remove\",\n value: function remove(key) {\n var node = this.cache[key];\n\n if (node.prev !== null) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n\n if (node.next !== null) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n\n delete this.cache[key];\n this.size--;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = null;\n this.tail = null;\n this.size = 0;\n this.cache = {};\n } // // Invokes the callback function with every node of the chain and the index of the node.\n // forEach(fn) {\n // let node = this.head;\n // let counter = 0;\n // while (node) {\n // fn(node, counter);\n // node = node.next;\n // counter++;\n // }\n // }\n // // To iterate over LRU with a 'for...of' loop\n // *[Symbol.iterator]() {\n // let node = this.head;\n // while (node) {\n // yield node;\n // node = node.next;\n // }\n // }\n\n }]);\n\n return LRUCache;\n}();\n\nexport { LRUCache as default };\n//# sourceMappingURL=LRUCache.js.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport LRUCache from './LRUCache'; // A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n// countries being used for the same doc with ~10 patterns for each country. Some pages will have\n// a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n// that use-case won't have a lot of benefit.\n\nvar RegExpCache =\n/*#__PURE__*/\nfunction () {\n function RegExpCache(size) {\n _classCallCheck(this, RegExpCache);\n\n this.cache = new LRUCache(size);\n }\n\n _createClass(RegExpCache, [{\n key: \"getPatternForRegExp\",\n value: function getPatternForRegExp(pattern) {\n var regExp = this.cache.get(pattern);\n\n if (!regExp) {\n regExp = new RegExp('^' + pattern);\n this.cache.put(pattern, regExp);\n }\n\n return regExp;\n }\n }]);\n\n return RegExpCache;\n}();\n\nexport { RegExpCache as default };\n//# sourceMappingURL=RegExpCache.js.map","/** Returns a regular expression quantifier with an upper and lower limit. */\nexport function limit(lower, upper) {\n if (lower < 0 || upper <= 0 || upper < lower) {\n throw new TypeError();\n }\n\n return \"{\".concat(lower, \",\").concat(upper, \"}\");\n}\n/**\r\n * Trims away any characters after the first match of {@code pattern} in {@code candidate},\r\n * returning the trimmed version.\r\n */\n\nexport function trimAfterFirstMatch(regexp, string) {\n var index = string.search(regexp);\n\n if (index >= 0) {\n return string.slice(0, index);\n }\n\n return string;\n}\nexport function startsWith(string, substring) {\n return string.indexOf(substring) === 0;\n}\nexport function endsWith(string, substring) {\n return string.indexOf(substring, string.length - substring.length) === string.length - substring.length;\n}\n//# sourceMappingURL=util.js.map","// Javascript doesn't support UTF-8 regular expressions.\n// So mimicking them here.\n// Copy-pasted from `PhoneNumberMatcher.js`.\n\n/**\r\n * \"\\p{Z}\" is any kind of whitespace or invisible separator (\"Separator\").\r\n * http://www.regular-expressions.info/unicode.html\r\n * \"\\P{Z}\" is the reverse of \"\\p{Z}\".\r\n * \"\\p{N}\" is any kind of numeric character in any script (\"Number\").\r\n * \"\\p{Nd}\" is a digit zero through nine in any script except \"ideographic scripts\" (\"Decimal_Digit_Number\").\r\n * \"\\p{Sc}\" is a currency symbol (\"Currency_Symbol\").\r\n * \"\\p{L}\" is any kind of letter from any language (\"Letter\").\r\n * \"\\p{Mn}\" is \"non-spacing mark\".\r\n *\r\n * Javascript doesn't support Unicode Regular Expressions\r\n * so substituting it with this explicit set of characters.\r\n *\r\n * https://stackoverflow.com/questions/13210194/javascript-regex-equivalent-of-a-za-z-using-pl\r\n * https://github.com/danielberndt/babel-plugin-utf-8-regex/blob/master/src/transformer.js\r\n */\nvar _pZ = \" \\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\";\nexport var pZ = \"[\".concat(_pZ, \"]\");\nexport var PZ = \"[^\".concat(_pZ, \"]\");\nexport var _pN = \"0-9\\xB2\\xB3\\xB9\\xBC-\\xBE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\"; // const pN = `[${_pN}]`\n\nvar _pNd = \"0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\";\nexport var pNd = \"[\".concat(_pNd, \"]\");\nexport var _pL = \"A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\";\nvar pL = \"[\".concat(_pL, \"]\");\nvar pL_regexp = new RegExp(pL);\nvar _pSc = \"$\\xA2-\\xA5\\u058F\\u060B\\u09F2\\u09F3\\u09FB\\u0AF1\\u0BF9\\u0E3F\\u17DB\\u20A0-\\u20B9\\uA838\\uFDFC\\uFE69\\uFF04\\uFFE0\\uFFE1\\uFFE5\\uFFE6\";\nvar pSc = \"[\".concat(_pSc, \"]\");\nvar pSc_regexp = new RegExp(pSc);\nvar _pMn = \"\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08E4-\\u08FE\\u0900-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2\\u09E3\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0CBC\\u0CBF\\u0CC6\\u0CCC\\u0CCD\\u0CE2\\u0CE3\\u0D41-\\u0D44\\u0D4D\\u0D62\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1DC0-\\u1DE6\\u1DFC-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA8C4\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE26\";\nvar pMn = \"[\".concat(_pMn, \"]\");\nvar pMn_regexp = new RegExp(pMn);\nvar _InBasic_Latin = \"\\0-\\x7F\";\nvar _InLatin_1_Supplement = \"\\x80-\\xFF\";\nvar _InLatin_Extended_A = \"\\u0100-\\u017F\";\nvar _InLatin_Extended_Additional = \"\\u1E00-\\u1EFF\";\nvar _InLatin_Extended_B = \"\\u0180-\\u024F\";\nvar _InCombining_Diacritical_Marks = \"\\u0300-\\u036F\";\nvar latinLetterRegexp = new RegExp('[' + _InBasic_Latin + _InLatin_1_Supplement + _InLatin_Extended_A + _InLatin_Extended_Additional + _InLatin_Extended_B + _InCombining_Diacritical_Marks + ']');\n/**\r\n * Helper method to determine if a character is a Latin-script letter or not.\r\n * For our purposes, combining marks should also return true since we assume\r\n * they have been added to a preceding Latin character.\r\n */\n\nexport function isLatinLetter(letter) {\n // Combining marks are a subset of non-spacing-mark.\n if (!pL_regexp.test(letter) && !pMn_regexp.test(letter)) {\n return false;\n }\n\n return latinLetterRegexp.test(letter);\n}\nexport function isInvalidPunctuationSymbol(character) {\n return character === '%' || pSc_regexp.test(character);\n}\n//# sourceMappingURL=utf-8.js.map","import isValidNumber from '../validate_';\nimport parseDigits from '../parseDigits';\nimport { startsWith, endsWith } from './util';\n/**\r\n * Leniency when finding potential phone numbers in text segments\r\n * The levels here are ordered in increasing strictness.\r\n */\n\nexport default {\n /**\r\n * Phone numbers accepted are \"possible\", but not necessarily \"valid\".\r\n */\n POSSIBLE: function POSSIBLE(number, candidate, metadata) {\n return true;\n },\n\n /**\r\n * Phone numbers accepted are \"possible\" and \"valid\".\r\n * Numbers written in national format must have their national-prefix\r\n * present if it is usually written for a number of this type.\r\n */\n VALID: function VALID(number, candidate, metadata) {\n if (!isValidNumber(number, undefined, metadata) || !containsOnlyValidXChars(number, candidate.toString(), metadata)) {\n return false;\n } // Skipped for simplicity.\n // return isNationalPrefixPresentIfRequired(number, metadata)\n\n\n return true;\n },\n\n /**\r\n * Phone numbers accepted are \"valid\" and\r\n * are grouped in a possible way for this locale. For example, a US number written as\r\n * \"65 02 53 00 00\" and \"650253 0000\" are not accepted at this leniency level, whereas\r\n * \"650 253 0000\", \"650 2530000\" or \"6502530000\" are.\r\n * Numbers with more than one '/' symbol in the national significant number\r\n * are also dropped at this level.\r\n *\r\n * Warning: This level might result in lower coverage especially for regions outside of\r\n * country code \"+1\". If you are not sure about which level to use,\r\n * email the discussion group libphonenumber-discuss@googlegroups.com.\r\n */\n STRICT_GROUPING: function STRICT_GROUPING(number, candidate, metadata, regExpCache) {\n var candidateString = candidate.toString();\n\n if (!isValidNumber(number, undefined, metadata) || !containsOnlyValidXChars(number, candidateString, metadata) || containsMoreThanOneSlashInNationalNumber(number, candidateString) || !isNationalPrefixPresentIfRequired(number, metadata)) {\n return false;\n }\n\n return checkNumberGroupingIsValid(number, candidate, metadata, allNumberGroupsRemainGrouped, regExpCache);\n },\n\n /**\r\n * Phone numbers accepted are {@linkplain PhoneNumberUtil#isValidNumber(PhoneNumber) valid} and\r\n * are grouped in the same way that we would have formatted it, or as a single block. For\r\n * example, a US number written as \"650 2530000\" is not accepted at this leniency level, whereas\r\n * \"650 253 0000\" or \"6502530000\" are.\r\n * Numbers with more than one '/' symbol are also dropped at this level.\r\n *

\r\n * Warning: This level might result in lower coverage especially for regions outside of country\r\n * code \"+1\". If you are not sure about which level to use, email the discussion group\r\n * libphonenumber-discuss@googlegroups.com.\r\n */\n EXACT_GROUPING: function EXACT_GROUPING(number, candidate, metadata, regExpCache) {\n var candidateString = candidate.toString();\n\n if (!isValidNumber(number, undefined, metadata) || !containsOnlyValidXChars(number, candidateString, metadata) || containsMoreThanOneSlashInNationalNumber(number, candidateString) || !isNationalPrefixPresentIfRequired(number, metadata)) {\n return false;\n }\n\n return checkNumberGroupingIsValid(number, candidate, metadata, allNumberGroupsAreExactlyPresent, regExpCache);\n }\n};\n\nfunction containsOnlyValidXChars(number, candidate, metadata) {\n // The characters 'x' and 'X' can be (1) a carrier code, in which case they always precede the\n // national significant number or (2) an extension sign, in which case they always precede the\n // extension number. We assume a carrier code is more than 1 digit, so the first case has to\n // have more than 1 consecutive 'x' or 'X', whereas the second case can only have exactly 1 'x'\n // or 'X'. We ignore the character if it appears as the last character of the string.\n for (var index = 0; index < candidate.length - 1; index++) {\n var charAtIndex = candidate.charAt(index);\n\n if (charAtIndex === 'x' || charAtIndex === 'X') {\n var charAtNextIndex = candidate.charAt(index + 1);\n\n if (charAtNextIndex === 'x' || charAtNextIndex === 'X') {\n // This is the carrier code case, in which the 'X's always precede the national\n // significant number.\n index++;\n\n if (util.isNumberMatch(number, candidate.substring(index)) != MatchType.NSN_MATCH) {\n return false;\n } // This is the extension sign case, in which the 'x' or 'X' should always precede the\n // extension number.\n\n } else if (parseDigits(candidate.substring(index)) !== number.ext) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nfunction isNationalPrefixPresentIfRequired(number, _metadata) {\n // First, check how we deduced the country code. If it was written in international format, then\n // the national prefix is not required.\n if (number.getCountryCodeSource() != 'FROM_DEFAULT_COUNTRY') {\n return true;\n }\n\n var phoneNumberRegion = util.getRegionCodeForCountryCode(number.getCountryCode());\n var metadata = util.getMetadataForRegion(phoneNumberRegion);\n\n if (metadata == null) {\n return true;\n } // Check if a national prefix should be present when formatting this number.\n\n\n var nationalNumber = util.getNationalSignificantNumber(number);\n var formatRule = util.chooseFormattingPatternForNumber(metadata.numberFormats(), nationalNumber); // To do this, we check that a national prefix formatting rule was present\n // and that it wasn't just the first-group symbol ($1) with punctuation.\n\n if (formatRule && formatRule.getNationalPrefixFormattingRule().length > 0) {\n if (formatRule.getNationalPrefixOptionalWhenFormatting()) {\n // The national-prefix is optional in these cases, so we don't need to check if it was\n // present.\n return true;\n }\n\n if (PhoneNumberUtil.formattingRuleHasFirstGroupOnly(formatRule.getNationalPrefixFormattingRule())) {\n // National Prefix not needed for this number.\n return true;\n } // Normalize the remainder.\n\n\n var rawInputCopy = PhoneNumberUtil.normalizeDigitsOnly(number.getRawInput()); // Check if we found a national prefix and/or carrier code at the start of the raw input, and\n // return the result.\n\n return util.maybeStripNationalPrefixAndCarrierCode(rawInputCopy, metadata, null);\n }\n\n return true;\n}\n\nexport function containsMoreThanOneSlashInNationalNumber(number, candidate) {\n var firstSlashInBodyIndex = candidate.indexOf('/');\n\n if (firstSlashInBodyIndex < 0) {\n // No slashes, this is okay.\n return false;\n } // Now look for a second one.\n\n\n var secondSlashInBodyIndex = candidate.indexOf('/', firstSlashInBodyIndex + 1);\n\n if (secondSlashInBodyIndex < 0) {\n // Only one slash, this is okay.\n return false;\n } // If the first slash is after the country calling code, this is permitted.\n\n\n var candidateHasCountryCode = number.getCountryCodeSource() === CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN || number.getCountryCodeSource() === CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN;\n\n if (candidateHasCountryCode && PhoneNumberUtil.normalizeDigitsOnly(candidate.substring(0, firstSlashInBodyIndex)) === String(number.getCountryCode())) {\n // Any more slashes and this is illegal.\n return candidate.slice(secondSlashInBodyIndex + 1).indexOf('/') >= 0;\n }\n\n return true;\n}\n\nfunction checkNumberGroupingIsValid(number, candidate, metadata, checkGroups, regExpCache) {\n var normalizedCandidate = normalizeDigits(candidate, true\n /* keep non-digits */\n );\n var formattedNumberGroups = getNationalNumberGroups(metadata, number, null);\n\n if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n return true;\n } // If this didn't pass, see if there are any alternate formats that match, and try them instead.\n\n\n var alternateFormats = MetadataManager.getAlternateFormatsForCountry(number.getCountryCode());\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n\n if (alternateFormats) {\n for (var _iterator = alternateFormats.numberFormats(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var alternateFormat = _ref;\n\n if (alternateFormat.leadingDigitsPatterns().length > 0) {\n // There is only one leading digits pattern for alternate formats.\n var leadingDigitsRegExp = regExpCache.getPatternForRegExp('^' + alternateFormat.leadingDigitsPatterns()[0]);\n\n if (!leadingDigitsRegExp.test(nationalSignificantNumber)) {\n // Leading digits don't match; try another one.\n continue;\n }\n }\n\n formattedNumberGroups = getNationalNumberGroups(metadata, number, alternateFormat);\n\n if (checkGroups(metadata, number, normalizedCandidate, formattedNumberGroups)) {\n return true;\n }\n }\n }\n\n return false;\n}\n/**\r\n * Helper method to get the national-number part of a number, formatted without any national\r\n * prefix, and return it as a set of digit blocks that would be formatted together following\r\n * standard formatting rules.\r\n */\n\n\nfunction getNationalNumberGroups(metadata, number, formattingPattern) {\n if (formattingPattern) {\n // We format the NSN only, and split that according to the separator.\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n return util.formatNsnUsingPattern(nationalSignificantNumber, formattingPattern, 'RFC3966', metadata).split('-');\n } // This will be in the format +CC-DG1-DG2-DGX;ext=EXT where DG1..DGX represents groups of digits.\n\n\n var rfc3966Format = formatNumber(number, 'RFC3966', metadata); // We remove the extension part from the formatted string before splitting it into different\n // groups.\n\n var endIndex = rfc3966Format.indexOf(';');\n\n if (endIndex < 0) {\n endIndex = rfc3966Format.length;\n } // The country-code will have a '-' following it.\n\n\n var startIndex = rfc3966Format.indexOf('-') + 1;\n return rfc3966Format.slice(startIndex, endIndex).split('-');\n}\n\nfunction allNumberGroupsAreExactlyPresent(metadata, number, normalizedCandidate, formattedNumberGroups) {\n var candidateGroups = normalizedCandidate.split(NON_DIGITS_PATTERN); // Set this to the last group, skipping it if the number has an extension.\n\n var candidateNumberGroupIndex = number.hasExtension() ? candidateGroups.length - 2 : candidateGroups.length - 1; // First we check if the national significant number is formatted as a block.\n // We use contains and not equals, since the national significant number may be present with\n // a prefix such as a national number prefix, or the country code itself.\n\n if (candidateGroups.length == 1 || candidateGroups[candidateNumberGroupIndex].contains(util.getNationalSignificantNumber(number))) {\n return true;\n } // Starting from the end, go through in reverse, excluding the first group, and check the\n // candidate and number groups are the same.\n\n\n var formattedNumberGroupIndex = formattedNumberGroups.length - 1;\n\n while (formattedNumberGroupIndex > 0 && candidateNumberGroupIndex >= 0) {\n if (candidateGroups[candidateNumberGroupIndex] !== formattedNumberGroups[formattedNumberGroupIndex]) {\n return false;\n }\n\n formattedNumberGroupIndex--;\n candidateNumberGroupIndex--;\n } // Now check the first group. There may be a national prefix at the start, so we only check\n // that the candidate group ends with the formatted number group.\n\n\n return candidateNumberGroupIndex >= 0 && endsWith(candidateGroups[candidateNumberGroupIndex], formattedNumberGroups[0]);\n}\n\nfunction allNumberGroupsRemainGrouped(metadata, number, normalizedCandidate, formattedNumberGroups) {\n var fromIndex = 0;\n\n if (number.getCountryCodeSource() !== CountryCodeSource.FROM_DEFAULT_COUNTRY) {\n // First skip the country code if the normalized candidate contained it.\n var countryCode = String(number.getCountryCode());\n fromIndex = normalizedCandidate.indexOf(countryCode) + countryCode.length();\n } // Check each group of consecutive digits are not broken into separate groupings in the\n // {@code normalizedCandidate} string.\n\n\n for (var i = 0; i < formattedNumberGroups.length; i++) {\n // Fails if the substring of {@code normalizedCandidate} starting from {@code fromIndex}\n // doesn't contain the consecutive digits in formattedNumberGroups[i].\n fromIndex = normalizedCandidate.indexOf(formattedNumberGroups[i], fromIndex);\n\n if (fromIndex < 0) {\n return false;\n } // Moves {@code fromIndex} forward.\n\n\n fromIndex += formattedNumberGroups[i].length();\n\n if (i == 0 && fromIndex < normalizedCandidate.length()) {\n // We are at the position right after the NDC. We get the region used for formatting\n // information based on the country code in the phone number, rather than the number itself,\n // as we do not need to distinguish between different countries with the same country\n // calling code and this is faster.\n var region = util.getRegionCodeForCountryCode(number.getCountryCode());\n\n if (util.getNddPrefixForRegion(region, true) != null && Character.isDigit(normalizedCandidate.charAt(fromIndex))) {\n // This means there is no formatting symbol after the NDC. In this case, we only\n // accept the number if there is no formatting symbol at all in the number, except\n // for extensions. This is only important for countries with national prefixes.\n var nationalSignificantNumber = util.getNationalSignificantNumber(number);\n return startsWith(normalizedCandidate.slice(fromIndex - formattedNumberGroups[i].length), nationalSignificantNumber);\n }\n }\n } // The check here makes sure that we haven't mistakenly already used the extension to\n // match the last group of the subscriber number. Note the extension cannot have\n // formatting in-between digits.\n\n\n return normalizedCandidate.slice(fromIndex).contains(number.getExtension());\n}\n//# sourceMappingURL=Leniency.js.map","import { trimAfterFirstMatch } from './util'; // Regular expression of characters typically used to start a second phone number for the purposes\n// of parsing. This allows us to strip off parts of the number that are actually the start of\n// another number, such as for: (530) 583-6985 x302/x2303 -> the second extension here makes this\n// actually two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove the second\n// extension so that the first number is parsed correctly.\n//\n// Matches a slash (\\ or /) followed by a space followed by an `x`.\n//\n\nvar SECOND_NUMBER_START_PATTERN = /[\\\\/] *x/;\nexport default function parsePreCandidate(candidate) {\n // Check for extra numbers at the end.\n // TODO: This is the place to start when trying to support extraction of multiple phone number\n // from split notations (+41 79 123 45 67 / 68).\n return trimAfterFirstMatch(SECOND_NUMBER_START_PATTERN, candidate);\n}\n//# sourceMappingURL=parsePreCandidate.js.map","// Matches strings that look like dates using \"/\" as a separator.\n// Examples: 3/10/2011, 31/10/96 or 08/31/95.\nvar SLASH_SEPARATED_DATES = /(?:(?:[0-3]?\\d\\/[01]?\\d)|(?:[01]?\\d\\/[0-3]?\\d))\\/(?:[12]\\d)?\\d{2}/; // Matches timestamps.\n// Examples: \"2012-01-02 08:00\".\n// Note that the reg-ex does not include the\n// trailing \":\\d\\d\" -- that is covered by TIME_STAMPS_SUFFIX.\n\nvar TIME_STAMPS = /[12]\\d{3}[-/]?[01]\\d[-/]?[0-3]\\d +[0-2]\\d$/;\nvar TIME_STAMPS_SUFFIX_LEADING = /^:[0-5]\\d/;\nexport default function isValidPreCandidate(candidate, offset, text) {\n // Skip a match that is more likely to be a date.\n if (SLASH_SEPARATED_DATES.test(candidate)) {\n return false;\n } // Skip potential time-stamps.\n\n\n if (TIME_STAMPS.test(candidate)) {\n var followingText = text.slice(offset + candidate.length);\n\n if (TIME_STAMPS_SUFFIX_LEADING.test(followingText)) {\n return false;\n }\n }\n\n return true;\n}\n//# sourceMappingURL=isValidPreCandidate.js.map","// Copy-pasted from `PhoneNumberMatcher.js`.\nimport { PLUS_CHARS } from '../constants';\nimport { limit } from './util';\nimport { isLatinLetter, isInvalidPunctuationSymbol } from './utf-8';\nvar OPENING_PARENS = \"(\\\\[\\uFF08\\uFF3B\";\nvar CLOSING_PARENS = \")\\\\]\\uFF09\\uFF3D\";\nvar NON_PARENS = \"[^\".concat(OPENING_PARENS).concat(CLOSING_PARENS, \"]\");\nexport var LEAD_CLASS = \"[\".concat(OPENING_PARENS).concat(PLUS_CHARS, \"]\"); // Punctuation that may be at the start of a phone number - brackets and plus signs.\n\nvar LEAD_CLASS_LEADING = new RegExp('^' + LEAD_CLASS); // Limit on the number of pairs of brackets in a phone number.\n\nvar BRACKET_PAIR_LIMIT = limit(0, 3);\n/**\r\n * Pattern to check that brackets match. Opening brackets should be closed within a phone number.\r\n * This also checks that there is something inside the brackets. Having no brackets at all is also\r\n * fine.\r\n *\r\n * An opening bracket at the beginning may not be closed, but subsequent ones should be. It's\r\n * also possible that the leading bracket was dropped, so we shouldn't be surprised if we see a\r\n * closing bracket first. We limit the sets of brackets in a phone number to four.\r\n */\n\nvar MATCHING_BRACKETS_ENTIRE = new RegExp('^' + \"(?:[\" + OPENING_PARENS + \"])?\" + \"(?:\" + NON_PARENS + \"+\" + \"[\" + CLOSING_PARENS + \"])?\" + NON_PARENS + \"+\" + \"(?:[\" + OPENING_PARENS + \"]\" + NON_PARENS + \"+[\" + CLOSING_PARENS + \"])\" + BRACKET_PAIR_LIMIT + NON_PARENS + \"*\" + '$');\n/**\r\n * Matches strings that look like publication pages. Example:\r\n *

Computing Complete Answers to Queries in the Presence of Limited Access Patterns.\r\n * Chen Li. VLDB J. 12(3): 211-227 (2003).
\r\n *\r\n * The string \"211-227 (2003)\" is not a telephone number.\r\n */\n\nvar PUB_PAGES = /\\d{1,5}-+\\d{1,5}\\s{0,4}\\(\\d{1,4}/;\nexport default function isValidCandidate(candidate, offset, text, leniency) {\n // Check the candidate doesn't contain any formatting\n // which would indicate that it really isn't a phone number.\n if (!MATCHING_BRACKETS_ENTIRE.test(candidate) || PUB_PAGES.test(candidate)) {\n return;\n } // If leniency is set to VALID or stricter, we also want to skip numbers that are surrounded\n // by Latin alphabetic characters, to skip cases like abc8005001234 or 8005001234def.\n\n\n if (leniency !== 'POSSIBLE') {\n // If the candidate is not at the start of the text,\n // and does not start with phone-number punctuation,\n // check the previous character.\n if (offset > 0 && !LEAD_CLASS_LEADING.test(candidate)) {\n var previousChar = text[offset - 1]; // We return null if it is a latin letter or an invalid punctuation symbol.\n\n if (isInvalidPunctuationSymbol(previousChar) || isLatinLetter(previousChar)) {\n return false;\n }\n }\n\n var lastCharIndex = offset + candidate.length;\n\n if (lastCharIndex < text.length) {\n var nextChar = text[lastCharIndex];\n\n if (isInvalidPunctuationSymbol(nextChar) || isLatinLetter(nextChar)) {\n return false;\n }\n }\n }\n\n return true;\n}\n//# sourceMappingURL=isValidCandidate.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\r\n * A port of Google's `PhoneNumberMatcher.java`.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java\r\n * Date: 08.03.2018.\r\n */\nimport PhoneNumber from './PhoneNumber';\nimport { MAX_LENGTH_FOR_NSN, MAX_LENGTH_COUNTRY_CODE, VALID_PUNCTUATION } from './constants';\nimport { EXTN_PATTERNS_FOR_MATCHING } from './extension';\nimport RegExpCache from './findNumbers/RegExpCache';\nimport { limit, trimAfterFirstMatch } from './findNumbers/util';\nimport { _pL, _pN, pZ, PZ, pNd } from './findNumbers/utf-8';\nimport Leniency from './findNumbers/Leniency';\nimport parsePreCandidate from './findNumbers/parsePreCandidate';\nimport isValidPreCandidate from './findNumbers/isValidPreCandidate';\nimport isValidCandidate, { LEAD_CLASS } from './findNumbers/isValidCandidate';\nimport { isSupportedCountry } from './metadata';\nimport parseNumber from './parse_';\n/**\r\n * Patterns used to extract phone numbers from a larger phone-number-like pattern. These are\r\n * ordered according to specificity. For example, white-space is last since that is frequently\r\n * used in numbers, not just to separate two numbers. We have separate patterns since we don't\r\n * want to break up the phone-number-like text on more than one different kind of symbol at one\r\n * time, although symbols of the same type (e.g. space) can be safely grouped together.\r\n *\r\n * Note that if there is a match, we will always check any text found up to the first match as\r\n * well.\r\n */\n\nvar INNER_MATCHES = [// Breaks on the slash - e.g. \"651-234-2345/332-445-1234\"\n'\\\\/+(.*)/', // Note that the bracket here is inside the capturing group, since we consider it part of the\n// phone number. Will match a pattern like \"(650) 223 3345 (754) 223 3321\".\n'(\\\\([^(]*)', // Breaks on a hyphen - e.g. \"12345 - 332-445-1234 is my number.\"\n// We require a space on either side of the hyphen for it to be considered a separator.\n\"(?:\".concat(pZ, \"-|-\").concat(pZ, \")\").concat(pZ, \"*(.+)\"), // Various types of wide hyphens. Note we have decided not to enforce a space here, since it's\n// possible that it's supposed to be used to break two numbers without spaces, and we haven't\n// seen many instances of it used within a number.\n\"[\\u2012-\\u2015\\uFF0D]\".concat(pZ, \"*(.+)\"), // Breaks on a full stop - e.g. \"12345. 332-445-1234 is my number.\"\n\"\\\\.+\".concat(pZ, \"*([^.]+)\"), // Breaks on space - e.g. \"3324451234 8002341234\"\n\"\".concat(pZ, \"+(\").concat(PZ, \"+)\")]; // Limit on the number of leading (plus) characters.\n\nvar leadLimit = limit(0, 2); // Limit on the number of consecutive punctuation characters.\n\nvar punctuationLimit = limit(0, 4);\n/* The maximum number of digits allowed in a digit-separated block. As we allow all digits in a\r\n * single block, set high enough to accommodate the entire national number and the international\r\n * country code. */\n\nvar digitBlockLimit = MAX_LENGTH_FOR_NSN + MAX_LENGTH_COUNTRY_CODE; // Limit on the number of blocks separated by punctuation.\n// Uses digitBlockLimit since some formats use spaces to separate each digit.\n\nvar blockLimit = limit(0, digitBlockLimit);\n/* A punctuation sequence allowing white space. */\n\nvar punctuation = \"[\".concat(VALID_PUNCTUATION, \"]\") + punctuationLimit; // A digits block without punctuation.\n\nvar digitSequence = pNd + limit(1, digitBlockLimit);\n/**\r\n * Phone number pattern allowing optional punctuation.\r\n * The phone number pattern used by `find()`, similar to\r\n * VALID_PHONE_NUMBER, but with the following differences:\r\n *
    \r\n *
  • All captures are limited in order to place an upper bound to the text matched by the\r\n * pattern.\r\n *
      \r\n *
    • Leading punctuation / plus signs are limited.\r\n *
    • Consecutive occurrences of punctuation are limited.\r\n *
    • Number of digits is limited.\r\n *
    \r\n *
  • No whitespace is allowed at the start or end.\r\n *
  • No alpha digits (vanity numbers such as 1-800-SIX-FLAGS) are currently supported.\r\n *
\r\n */\n\nvar PATTERN = '(?:' + LEAD_CLASS + punctuation + ')' + leadLimit + digitSequence + '(?:' + punctuation + digitSequence + ')' + blockLimit + '(?:' + EXTN_PATTERNS_FOR_MATCHING + ')?'; // Regular expression of trailing characters that we want to remove.\n// We remove all characters that are not alpha or numerical characters.\n// The hash character is retained here, as it may signify\n// the previous block was an extension.\n//\n// // Don't know what does '&&' mean here.\n// const UNWANTED_END_CHAR_PATTERN = new RegExp(`[[\\\\P{N}&&\\\\P{L}]&&[^#]]+$`)\n//\n\nvar UNWANTED_END_CHAR_PATTERN = new RegExp(\"[^\".concat(_pN).concat(_pL, \"#]+$\"));\nvar NON_DIGITS_PATTERN = /(\\D+)/;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n/**\r\n * A stateful class that finds and extracts telephone numbers from {@linkplain CharSequence text}.\r\n * Instances can be created using the {@linkplain PhoneNumberUtil#findNumbers factory methods} in\r\n * {@link PhoneNumberUtil}.\r\n *\r\n *

Vanity numbers (phone numbers using alphabetic digits such as 1-800-SIX-FLAGS are\r\n * not found.\r\n *\r\n *

This class is not thread-safe.\r\n */\n\nvar PhoneNumberMatcher =\n/*#__PURE__*/\nfunction () {\n /** The iteration tristate. */\n\n /** The next index to start searching at. Undefined in {@link State#DONE}. */\n // A cache for frequently used country-specific regular expressions. Set to 32 to cover ~2-3\n // countries being used for the same doc with ~10 patterns for each country. Some pages will have\n // a lot more countries in use, but typically fewer numbers for each so expanding the cache for\n // that use-case won't have a lot of benefit.\n\n /**\r\n * Creates a new instance. See the factory methods in {@link PhoneNumberUtil} on how to obtain a\r\n * new instance.\r\n *\r\n * @param util the phone number util to use\r\n * @param text the character sequence that we will search, null for no text\r\n * @param country the country to assume for phone numbers not written in international format\r\n * (with a leading plus, or with the international dialing prefix of the specified region).\r\n * May be null or \"ZZ\" if only numbers with a leading plus should be\r\n * considered.\r\n * @param leniency the leniency to use when evaluating candidate phone numbers\r\n * @param maxTries the maximum number of invalid numbers to try before giving up on the text.\r\n * This is to cover degenerate cases where the text has a lot of false positives in it. Must\r\n * be {@code >= 0}.\r\n */\n function PhoneNumberMatcher() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var metadata = arguments.length > 2 ? arguments[2] : undefined;\n\n _classCallCheck(this, PhoneNumberMatcher);\n\n _defineProperty(this, \"state\", 'NOT_READY');\n\n _defineProperty(this, \"searchIndex\", 0);\n\n _defineProperty(this, \"regExpCache\", new RegExpCache(32));\n\n options = _objectSpread({}, options, {\n defaultCallingCode: options.defaultCallingCode,\n defaultCountry: options.defaultCountry && isSupportedCountry(options.defaultCountry, metadata) ? options.defaultCountry : undefined,\n leniency: options.leniency || options.extended ? 'POSSIBLE' : 'VALID',\n maxTries: options.maxTries || MAX_SAFE_INTEGER\n });\n\n if (!options.leniency) {\n throw new TypeError('`Leniency` not supplied');\n }\n\n if (options.maxTries < 0) {\n throw new TypeError('`maxTries` not supplied');\n }\n\n this.text = text;\n this.options = options;\n this.metadata = metadata;\n /** The degree of validation requested. */\n\n this.leniency = Leniency[options.leniency];\n\n if (!this.leniency) {\n throw new TypeError(\"Unknown leniency: \".concat(options.leniency, \".\"));\n }\n /** The maximum number of retries after matching an invalid number. */\n\n\n this.maxTries = options.maxTries;\n this.PATTERN = new RegExp(PATTERN, 'ig');\n }\n /**\r\n * Attempts to find the next subsequence in the searched sequence on or after {@code searchIndex}\r\n * that represents a phone number. Returns the next match, null if none was found.\r\n *\r\n * @param index the search index to start searching at\r\n * @return the phone number match found, null if none can be found\r\n */\n\n\n _createClass(PhoneNumberMatcher, [{\n key: \"find\",\n value: function find() // (index)\n {\n // // Reset the regular expression.\n // this.PATTERN.lastIndex = index\n var matches;\n\n while (this.maxTries > 0 && (matches = this.PATTERN.exec(this.text)) !== null) {\n var candidate = matches[0];\n var offset = matches.index;\n candidate = parsePreCandidate(candidate);\n\n if (isValidPreCandidate(candidate, offset, this.text)) {\n var match = // Try to come up with a valid match given the entire candidate.\n this.parseAndVerify(candidate, offset, this.text) // If that failed, try to find an \"inner match\" -\n // there might be a phone number within this candidate.\n || this.extractInnerMatch(candidate, offset, this.text);\n\n if (match) {\n if (this.options.v2) {\n var phoneNumber = new PhoneNumber(match.country || match.countryCallingCode, match.phone, this.metadata);\n\n if (match.ext) {\n phoneNumber.ext = match.ext;\n }\n\n return {\n startsAt: match.startsAt,\n endsAt: match.endsAt,\n number: phoneNumber\n };\n }\n\n return match;\n }\n }\n\n this.maxTries--;\n }\n }\n /**\r\n * Attempts to extract a match from `candidate`\r\n * if the whole candidate does not qualify as a match.\r\n */\n\n }, {\n key: \"extractInnerMatch\",\n value: function extractInnerMatch(candidate, offset, text) {\n for (var _i = 0, _INNER_MATCHES = INNER_MATCHES; _i < _INNER_MATCHES.length; _i++) {\n var innerMatchPattern = _INNER_MATCHES[_i];\n var isFirstMatch = true;\n var matches = void 0;\n var possibleInnerMatch = new RegExp(innerMatchPattern, 'g');\n\n while ((matches = possibleInnerMatch.exec(candidate)) !== null && this.maxTries > 0) {\n if (isFirstMatch) {\n // We should handle any group before this one too.\n var _group = trimAfterFirstMatch(UNWANTED_END_CHAR_PATTERN, candidate.slice(0, matches.index));\n\n var _match = this.parseAndVerify(_group, offset, text);\n\n if (_match) {\n return _match;\n }\n\n this.maxTries--;\n isFirstMatch = false;\n }\n\n var group = trimAfterFirstMatch(UNWANTED_END_CHAR_PATTERN, matches[1]); // Java code does `groupMatcher.start(1)` here,\n // but there's no way in javascript to get a group match start index,\n // therefore using the overall match start index `matches.index`.\n\n var match = this.parseAndVerify(group, offset + matches.index, text);\n\n if (match) {\n return match;\n }\n\n this.maxTries--;\n }\n }\n }\n /**\r\n * Parses a phone number from the `candidate` using `parseNumber` and\r\n * verifies it matches the requested `leniency`. If parsing and verification succeed,\r\n * a corresponding `PhoneNumberMatch` is returned, otherwise this method returns `null`.\r\n *\r\n * @param candidate the candidate match\r\n * @param offset the offset of {@code candidate} within {@link #text}\r\n * @return the parsed and validated phone number match, or null\r\n */\n\n }, {\n key: \"parseAndVerify\",\n value: function parseAndVerify(candidate, offset, text) {\n if (!isValidCandidate(candidate, offset, text, this.options.leniency)) {\n return;\n }\n\n var number = parseNumber(candidate, {\n extended: true,\n defaultCountry: this.options.defaultCountry,\n defaultCallingCode: this.options.defaultCallingCode\n }, this.metadata);\n\n if (!number.possible) {\n return;\n }\n\n if (this.leniency(number, candidate, this.metadata, this.regExpCache)) {\n // // We used parseAndKeepRawInput to create this number,\n // // but for now we don't return the extra values parsed.\n // // TODO: stop clearing all values here and switch all users over\n // // to using rawInput() rather than the rawString() of PhoneNumberMatch.\n // number.clearCountryCodeSource()\n // number.clearRawInput()\n // number.clearPreferredDomesticCarrierCode()\n var result = {\n startsAt: offset,\n endsAt: offset + candidate.length,\n phone: number.phone\n };\n\n if (number.country && number.country !== '001') {\n result.country = number.country;\n } else {\n result.countryCallingCode = number.countryCallingCode;\n }\n\n if (number.ext) {\n result.ext = number.ext;\n }\n\n return result;\n }\n }\n }, {\n key: \"hasNext\",\n value: function hasNext() {\n if (this.state === 'NOT_READY') {\n this.lastMatch = this.find(); // (this.searchIndex)\n\n if (this.lastMatch) {\n // this.searchIndex = this.lastMatch.endsAt\n this.state = 'READY';\n } else {\n this.state = 'DONE';\n }\n }\n\n return this.state === 'READY';\n }\n }, {\n key: \"next\",\n value: function next() {\n // Check the state and find the next match as a side-effect if necessary.\n if (!this.hasNext()) {\n throw new Error('No next element');\n } // Don't retain that memory any longer than necessary.\n\n\n var result = this.lastMatch;\n this.lastMatch = null;\n this.state = 'NOT_READY';\n return result;\n }\n }]);\n\n return PhoneNumberMatcher;\n}();\n\nexport { PhoneNumberMatcher as default };\n//# sourceMappingURL=PhoneNumberMatcher.js.map","import PhoneNumberMatcher from './PhoneNumberMatcher';\nexport default function findNumbers(text, options, metadata) {\n var matcher = new PhoneNumberMatcher(text, options, metadata);\n var results = [];\n\n while (matcher.hasNext()) {\n results.push(matcher.next());\n }\n\n return results;\n}\n//# sourceMappingURL=findNumbers_.js.map","import _findNumbers from './findNumbers_';\nimport { normalizeArguments } from './parsePhoneNumber';\nexport default function findNumbers() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return _findNumbers(text, options, metadata);\n}\n//# sourceMappingURL=findNumbers.js.map","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { normalizeArguments } from './parsePhoneNumber';\nimport PhoneNumberMatcher from './PhoneNumberMatcher';\n/**\r\n * @return ES6 `for ... of` iterator.\r\n */\n\nexport default function searchNumbers() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n var matcher = new PhoneNumberMatcher(text, options, metadata);\n return _defineProperty({}, Symbol.iterator, function () {\n return {\n next: function next() {\n if (matcher.hasNext()) {\n return {\n done: false,\n value: matcher.next()\n };\n }\n\n return {\n done: true\n };\n }\n };\n });\n}\n//# sourceMappingURL=searchNumbers.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport findNumbers from './findNumbers';\nexport default function findPhoneNumbersInText(text, defaultCountry, options, metadata) {\n var args = getArguments(defaultCountry, options, metadata);\n return findNumbers(text, args.options, args.metadata);\n}\nexport function getArguments(defaultCountry, options, metadata) {\n if (metadata) {\n if (defaultCountry) {\n options = _objectSpread({}, options, {\n defaultCountry: defaultCountry\n });\n }\n } else {\n if (options) {\n metadata = options;\n\n if (defaultCountry) {\n if (is_object(defaultCountry)) {\n options = defaultCountry;\n } else {\n options = {\n defaultCountry: defaultCountry\n };\n }\n } else {\n options = undefined;\n }\n } else {\n metadata = defaultCountry;\n options = undefined;\n }\n }\n\n return {\n options: _objectSpread({}, options, {\n v2: true\n }),\n metadata: metadata\n };\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof(_) === 'object';\n};\n//# sourceMappingURL=findPhoneNumbersInText.js.map","import searchNumbers from './searchNumbers';\nimport { getArguments } from './findPhoneNumbersInText';\nexport default function searchPhoneNumbersInText(text, defaultCountry, options, metadata) {\n var args = getArguments(defaultCountry, options, metadata);\n return searchNumbers(text, args.options, args.metadata);\n}\n//# sourceMappingURL=searchPhoneNumbersInText.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is an enhanced port of Google Android `libphonenumber`'s\n// `asyoutypeformatter.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/blob/8d21a365061de2ba0675c878a710a7b24f74d2ae/javascript/i18n/phonenumbers/asyoutypeformatter.js\n//\n// Simplified: does not differentiate between \"local-only\" numbers\n// and \"internationally dialable\" numbers.\n// For example, doesn't include changes like this:\n// https://github.com/googlei18n/libphonenumber/commit/865da605da12b01053c4f053310bac7c5fbb7935\nimport Metadata from './metadata';\nimport PhoneNumber from './PhoneNumber';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants';\nimport { matchesEntirely } from './util';\nimport { extractCountryCallingCode as _extractCountryCallingCode, findCountryCode, stripNationalPrefixAndCarrierCode, stripNationalPrefixAndCarrierCodeFromCompleteNumber, extractCountryCallingCodeFromInternationalNumberWithoutPlusSign } from './parse_';\nimport { FIRST_GROUP_PATTERN, formatNationalNumberUsingFormat, applyInternationalSeparatorStyle } from './format_';\nimport { stripIDDPrefix } from './IDD';\nimport { checkNumberLengthForType } from './getNumberType_';\nimport parseDigits from './parseDigits'; // Used in phone number format template creation.\n// Could be any digit, I guess.\n\nvar DUMMY_DIGIT = '9'; // I don't know why is it exactly `15`\n\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15; // Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\n\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH); // The digits that have not been entered yet will be represented by a \\u2008,\n// the punctuation space.\n\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\n\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER); // A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\n\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/; // Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\n\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true; // A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\n\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n}; // Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\n\n\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n}; // A pattern that is used to determine if a `format` is eligible\n// to be used by the \"as you type formatter\".\n// It is eligible when the `format` contains groups of the dollar sign\n// followed by a single digit, separated by valid phone number punctuation.\n// This prevents invalid punctuation (such as the star sign in Israeli star numbers)\n// getting into the output of the \"as you type formatter\".\n\n\nvar ELIGIBLE_FORMAT_PATTERN = new RegExp('^' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)+' + '$'); // This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\n\nvar MIN_LEADING_DIGITS_LENGTH = 3;\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_PART + '$', 'i');\nvar VALID_PHONE_NUMBER = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar AsYouType =\n/*#__PURE__*/\nfunction () {\n // Not setting `options` to a constructor argument\n // not to break backwards compatibility\n // for older versions of the library.\n\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n\n _defineProperty(this, \"options\", {});\n\n this.metadata = new Metadata(metadata); // Set `defaultCountry` and `defaultCallingCode` options.\n\n var defaultCountry;\n var defaultCallingCode; // Turns out `null` also has type \"object\". Weird.\n\n if (optionsOrDefaultCountry) {\n if (_typeof(optionsOrDefaultCountry) === 'object') {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n\n if (defaultCountry && this.metadata.hasCountry(defaultCountry)) {\n this.defaultCountry = defaultCountry;\n }\n\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n this.defaultCountry = '001';\n }\n }\n\n this.defaultCallingCode = defaultCallingCode;\n } // Reset.\n\n\n this.reset();\n }\n\n _createClass(AsYouType, [{\n key: \"reset\",\n value: function reset() {\n this.formattedOutput = '';\n this.international = undefined;\n this.internationalPrefix = undefined;\n this.countryCallingCode = undefined;\n this.digits = '';\n this.nationalNumberDigits = '';\n this.nationalPrefix = '';\n this.carrierCode = '';\n this.setCountry(this.defaultCountry, this.defaultCallingCode);\n return this;\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country, callingCode) {\n this.country = country;\n this.metadata.selectNumberingPlan(country, callingCode);\n\n if (this.metadata.hasSelectedNumberingPlan()) {\n this.initializePhoneNumberFormatsForCountry();\n } else {\n this.matchingFormats = [];\n }\n\n this.resetFormat();\n }\n }, {\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n\n }, {\n key: \"input\",\n value: function input(text) {\n var formattedDigits = this.extractFormattedDigits(text); // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n\n if (VALID_FORMATTED_PHONE_NUMBER_PART_PATTERN.test(formattedDigits)) {\n this.formattedOutput = this.getFullNumber(this.inputDigits(parseDigits(formattedDigits)) || this.getNonFormattedNationalNumber());\n }\n\n return this.formattedOutput;\n }\n /**\r\n * Extracts formatted phone number digits from text (if there're any).\r\n * @param {string} text\r\n * @return {string}\r\n */\n\n }, {\n key: \"extractFormattedDigits\",\n value: function extractFormattedDigits(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || ''; // Trim a `+`.\n\n if (extractedNumber[0] === '+') {\n // Trim the `+`.\n extractedNumber = extractedNumber.slice('+'.length);\n\n if (this.digits) {// If an out of position `+` is detected\n // (or a second `+`) then just ignore it.\n } else {\n this.formattedOutput = '+';\n this.startInternationalNumber();\n }\n }\n\n return extractedNumber;\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber() {\n // Prepend the `+` to parsed input.\n this.international = true; // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n\n this.setCountry();\n }\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits) {\n // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n if (!this.digits) {\n var numberWithoutIDD = stripIDDPrefix(nextDigits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n\n if (numberWithoutIDD && numberWithoutIDD !== nextDigits) {\n // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n this.internationalPrefix = nextDigits.slice(0, nextDigits.length - numberWithoutIDD.length);\n nextDigits = numberWithoutIDD;\n this.startInternationalNumber();\n }\n } // Append phone number digits.\n\n\n this.digits += nextDigits; // Try to format the parsed input\n\n if (this.isInternational()) {\n if (this.countryCallingCode) {\n this.nationalNumberDigits += nextDigits; // `this.country` could be `undefined`, for example, when there is\n // ambiguity in a form of several different countries,\n // each corresponding to the same country phone code\n // (e.g. NANPA: USA, Canada, etc), and there's not enough digits\n // to reliably determine the country the phone number belongs to.\n // Therefore, in cases of such ambiguity, each time something is input,\n // try to determine the country (if it hasn't been determined yet).\n\n if (!this.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n } else {\n // Extract country calling code from the digits entered so far.\n // There must be some digits in order to extract anything from them.\n //\n // If one looks at country phone codes\n // then they can notice that no one country phone code\n // is ever a (leftmost) substring of another country phone code.\n // So if a valid country code is extracted so far\n // then it means that this is the country code.\n //\n // If no country phone code could be extracted so far,\n // then don't format the phone number.\n //\n if (!this.extractCountryCallingCode()) {\n // Don't format the phone number.\n return;\n } // Possibly extract a national prefix.\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n // Also, mobile phone numbers in Mexico are supposed to be dialled\n // internationally using a `15` national prefix.\n //\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n\n\n this.nationalNumberDigits = this.digits.slice(this.countryCallingCode.length); // this.extractNationalPrefix()\n //\n // Determine the country from country calling code and national number.\n\n this.determineTheCountry();\n }\n } else {\n this.nationalNumberDigits += nextDigits; // If `defaultCallingCode` is set,\n // see if the `country` could be derived.\n\n if (!this.country) {\n this.determineTheCountry();\n } // Some national prefixes are substrings of other national prefixes\n // (for the same country), therefore try to extract national prefix each time\n // because a longer national prefix might be available at some point in time.\n\n\n var previousNationalPrefix = this.nationalPrefix;\n this.nationalNumberDigits = this.nationalPrefix + this.nationalNumberDigits; // Re-extract national prefix.\n\n this.extractNationalPrefix(); // If another national prefix has been extracted.\n\n if (this.nationalPrefix !== previousNationalPrefix) {\n // National number has changed\n // (due to another national prefix been extracted)\n // therefore national number has changed\n // therefore reset all previous formatting data.\n // (and leading digits matching state)\n this.initializePhoneNumberFormatsForCountry();\n this.resetFormat();\n }\n }\n\n if (this.nationalNumberDigits) {\n // Match the available formats by the currently available leading digits.\n this.matchFormats(this.nationalNumberDigits);\n } // Format the phone number (given the next digits)\n\n\n return this.formatNationalNumberWithNextDigits(nextDigits);\n }\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits) {\n // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNextNationalNumberDigits()`,\n // which formats based on the chosen formatting pattern.\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`.\n var formattedNumber = this.attemptToFormatCompletePhoneNumber(); // Just because a phone number doesn't have a suitable format\n // that doesn't mean that the phone number is invalid,\n // because phone number formats only format phone numbers,\n // they don't validate them and some (rare) phone numbers\n // are meant to stay non-formatted.\n\n if (formattedNumber) {\n return formattedNumber;\n } // Format the next phone number digits\n // using the previously chosen phone number format.\n //\n // This is done here because if `attemptToFormatCompletePhoneNumber`\n // was placed before this call then the `template`\n // wouldn't reflect the situation correctly (and would therefore be inconsistent)\n //\n\n\n var previouslyChosenFormat = this.chosenFormat; // Choose a format from the list of matching ones.\n\n var newlyChosenFormat = this.chooseFormat();\n\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If could format the next (current) digit\n // using the previously chosen phone number format\n // then return the formatted number so far.\n //\n // If no new phone number format could be chosen,\n // and couldn't format the supplied national number\n // using the previously chosen phone number pattern,\n // then return `undefined`.\n //\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then format the national phone number (so far)\n // using the newly selected format.\n //\n // Will return `undefined` if it couldn't format\n // the supplied national number\n // using the selected phone number pattern.\n //\n return this.reformatNationalNumber();\n }\n }\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat() {\n // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n for (var _iterator = this.matchingFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var format = _ref;\n\n // If this format is currently being used\n // and is still possible, then stick to it.\n if (this.chosenFormat === format) {\n break;\n }\n\n if (!this.createFormattingTemplate(format)) {\n continue;\n }\n\n this.chosenFormat = format; // With a new formatting template, the matched position\n // using the old template needs to be reset.\n\n this.populatedNationalNumberTemplatePosition = -1;\n break;\n }\n\n if (!this.chosenFormat) {\n // No format matches the national phone number entered.\n this.resetFormat();\n }\n\n return this.chosenFormat;\n } // Formats each digit of the national phone number (so far)\n // using the selected format.\n\n }, {\n key: \"reformatNationalNumber\",\n value: function reformatNationalNumber() {\n return this.formatNextNationalNumberDigits(this.nationalPrefix + this.nationalNumberDigits);\n }\n }, {\n key: \"initializePhoneNumberFormatsForCountry\",\n value: function initializePhoneNumberFormatsForCountry() {\n // Get all \"eligible\" phone number formats for this country\n this.matchingFormats = this.metadata.formats().filter(function (format) {\n // Compared to `libphonenumber`'s code, the two \"Discard a few formats\n // that we know are not relevant based on the presence of the national prefix\"\n // checks have changed: the first one has been moved to `.matchFormats()`,\n // and the second one doesn't apply to this library because it doesn't deal with\n // \"incomplete\" phone numbers (for example, phone numbers, entered without \"area code\").\n return ELIGIBLE_FORMAT_PATTERN.test(format.internationalFormat());\n });\n }\n }, {\n key: \"matchFormats\",\n value: function matchFormats(leadingDigits) {\n var _this = this;\n\n // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n // If national prefix is mandatory for this phone number format\n // and the user didn't input the national prefix\n // then this phone number format isn't suitable.\n if (!_this.isInternational() && !_this.nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length; // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n\n if (leadingDigitsPatternsCount === 0) {\n return true;\n } // Start excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n\n\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n return true;\n } // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are available\n // then format matching starts narrowing down the list of possible formats\n // (only previously matched formats are considered for next digits).\n\n\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]; // Brackets are required for `^` to be applied to\n // all or-ed (`|`) parts, not just the first one.\n\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }); // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 ``\n // and yielding another format for 4 `` (Australia in this case).\n\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n if (this.metadata.countryCallingCode() === '1') {\n return ' ';\n }\n\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n }\n\n return '';\n } // This is in accordance to how Google's `libphonenumber` does it.\n // \"Check to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose `leadingDigitsPattern` also matches the input.\"\n\n }, {\n key: \"attemptToFormatCompletePhoneNumber\",\n value: function attemptToFormatCompletePhoneNumber() {\n for (var _iterator2 = this.matchingFormats, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {\n var _ref2;\n\n if (_isArray2) {\n if (_i2 >= _iterator2.length) break;\n _ref2 = _iterator2[_i2++];\n } else {\n _i2 = _iterator2.next();\n if (_i2.done) break;\n _ref2 = _i2.value;\n }\n\n var format = _ref2;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n\n if (!matcher.test(this.nationalNumberDigits)) {\n continue;\n } // Here, national number is formatted without \"national prefix\n // formatting rule\", because otherwise there'd be a bug\n // when \"area code\" is \"duplicated\" during input:\n // https://github.com/catamphetamine/libphonenumber-js/issues/318\n\n\n var formattedNationalNumber = formatNationalNumberUsingFormat(this.nationalNumberDigits, format, this.isInternational(), false, // Don't prepend national prefix (it will be prepended manually).\n this.metadata); // Check if this `format` preserves all digits.\n // This is how it's done in Google's `libphonenumber`.\n // Also, it fixes the bug when \"area code\" is \"duplicated\" during input:\n // https://github.com/catamphetamine/libphonenumber-js/issues/318\n //\n // \"Check that we didn't remove nor add any extra digits when we matched\n // this formatting pattern. This usually happens after we entered the last\n // digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n // formatted but AYTF should retain all the number entered and not change\n // in order to match a format (of same leading digits and length) display\n // in that way.\"\n // \"If it's the same (i.e entered number and format is same), then it's\n // safe to return this in formatted number as nothing is lost / added.\"\n // Otherwise, don't use this format.\n // https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n // https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n //\n\n if (parseDigits(formattedNationalNumber) !== this.nationalNumberDigits) {\n continue;\n } // Prepend national prefix (if any).\n\n\n if (this.nationalPrefix) {\n // Here, national number is formatted with \"national prefix\n // formatting rule\". The reason is that \"national prefix\n // formatting rule\" often adds parentheses, and while Google's\n // `libphonenumber` dismisses those preferring simply prepending\n // national prefix followed by a \" \" character, this library\n // looks if the national prefix could be formatted better.\n var formattedNationalNumberWithNationalPrefix = formatNationalNumberUsingFormat(this.nationalNumberDigits, format, this.isInternational(), true, // Prepend national prefix.\n this.metadata);\n\n if (parseDigits(formattedNationalNumberWithNationalPrefix) === this.nationalPrefix + this.nationalNumberDigits) {\n formattedNationalNumber = formattedNationalNumberWithNationalPrefix;\n } else {\n formattedNationalNumber = this.nationalPrefix + this.getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n }\n } // formats national number (probably) without national prefix.\n // Formatting a national number with national prefix could result in\n // bugs when \"area code\" is \"duplicated\" during input:\n // https://github.com/catamphetamine/libphonenumber-js/issues/318\n // The \"are all digits preserved\" check fixes that type of bug.\n // To leave the formatter in a consistent state\n\n\n this.resetFormat();\n this.chosenFormat = format; // Set `this.template` and `this.populatedNationalNumberTemplate`.\n\n /* istanbul ignore else */\n\n if (this.createFormattingTemplate(format)) {\n // Populate `this.populatedNationalNumberTemplate` with phone number digits.\n this.reformatNationalNumber();\n } else {\n // If the formatting template couldn't be created for a format,\n // create it manually from the formatted phone number.\n // This case doesn't ever happen with the current metadata.\n this.template = this.getFullNumber(formattedNationalNumber).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER);\n this.populatedNationalNumberTemplate = formattedNationalNumber;\n this.populatedNationalNumberTemplatePosition = this.populatedNationalNumberTemplate.length - 1;\n }\n\n return formattedNationalNumber;\n }\n }\n }, {\n key: \"getInternationalPrefix\",\n value: function getInternationalPrefix(options) {\n return this.internationalPrefix ? options && options.spacing === false ? this.internationalPrefix : this.internationalPrefix + ' ' : '+';\n } // Prepends `+CountryCode ` in case of an international phone number\n\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n if (this.isInternational()) {\n var prefix = this.getInternationalPrefix();\n\n if (!this.countryCallingCode) {\n return \"\".concat(prefix).concat(this.digits);\n }\n\n if (!formattedNationalNumber) {\n return \"\".concat(prefix).concat(this.countryCallingCode);\n }\n\n return \"\".concat(prefix).concat(this.countryCallingCode, \" \").concat(formattedNationalNumber);\n }\n\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumber\",\n value: function getNonFormattedNationalNumber() {\n return this.nationalPrefix + (this.nationalPrefix && this.nationalNumberDigits && this.getSeparatorAfterNationalPrefix()) + this.nationalNumberDigits;\n } // Extracts the country calling code from the beginning\n // of the entered `national_number` (so far),\n // and places the remaining input into the `national_number`.\n\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode() {\n var _extractCountryCallin = _extractCountryCallingCode('+' + this.digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n\n if (!countryCallingCode) {\n return;\n }\n\n this.nationalNumberDigits = number;\n this.countryCallingCode = countryCallingCode;\n this.metadata.chooseCountryByCountryCallingCode(countryCallingCode);\n this.initializePhoneNumberFormatsForCountry();\n this.resetFormat();\n return this.metadata.hasSelectedNumberingPlan();\n }\n }, {\n key: \"extractNationalPrefix\",\n value: function extractNationalPrefix() {\n this.nationalPrefix = '';\n\n if (!this.metadata.hasSelectedNumberingPlan()) {\n return;\n } // Only strip national prefixes for non-international phone numbers\n // because national prefixes can't be present in international phone numbers.\n // While `parseNumber()` is forgiving is such cases, `AsYouType` is not.\n\n\n var _stripNationalPrefixA = stripNationalPrefixAndCarrierCode(this.nationalNumberDigits, this.metadata),\n nationalNumber = _stripNationalPrefixA.nationalNumber,\n carrierCode = _stripNationalPrefixA.carrierCode; // Sometimes `stripNationalPrefixAndCarrierCode()` won't actually\n // strip national prefix and will instead prepend some digits to the `number`:\n // for example, when number `2345678` is passed with `VI` country selected,\n // it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\n // So check if the `nationalNumber` is actually at the end of `this.nationalNumberDigits`.\n\n\n if (nationalNumber) {\n var index = this.nationalNumberDigits.indexOf(nationalNumber);\n\n if (index < 0 || index !== this.nationalNumberDigits.length - nationalNumber.length) {\n return;\n }\n }\n\n if (carrierCode) {\n this.carrierCode = carrierCode;\n }\n\n this.nationalPrefix = this.nationalNumberDigits.slice(0, this.nationalNumberDigits.length - nationalNumber.length);\n this.nationalNumberDigits = nationalNumber;\n return this.nationalPrefix;\n } // isPossibleNumber(number) {\n // \tswitch (checkNumberLengthForType(number, undefined, this.metadata)) {\n // \t\tcase 'IS_POSSIBLE':\n // \t\t\treturn true\n // \t\t// case 'IS_POSSIBLE_LOCAL_ONLY':\n // \t\t// \treturn !this.isInternational()\n // \t\tdefault:\n // \t\t\treturn false\n // \t}\n // }\n\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var countryCodes = this.metadata.getCountryCodesForCallingCode(this.countryCallingCode);\n return countryCodes && countryCodes.length > 1;\n }\n }, {\n key: \"createFormattingTemplate\",\n value: function createFormattingTemplate(format) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n } // Get formatting template for this phone number format\n\n\n var template = this.getTemplateForNumberFormatPattern(format, this.nationalPrefix); // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (!template) {\n return;\n }\n\n this.template = template;\n this.populatedNationalNumberTemplate = template; // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n\n if (this.isInternational()) {\n this.template = this.getInternationalPrefix().replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, this.countryCallingCode.length) + ' ' + template;\n }\n\n return this.template;\n }\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n\n }, {\n key: \"getTemplateForNumberFormatPattern\",\n value: function getTemplateForNumberFormatPattern(format, nationalPrefix) {\n var pattern = format.pattern();\n /* istanbul ignore else */\n\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d') // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n } // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n\n\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]; // If the national number entered is too long\n // for any phone number format, then abort.\n\n if (this.nationalNumberDigits.length > digits.length) {\n return;\n } // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalNumberDigits : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalNumberDigits` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalNumberDigits`\n // is used instead of `digits`.\n\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = this.nationalNumberDigits.replace(/\\d/g, DUMMY_DIGIT); // If `this.nationalNumberDigits` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n\n var numberFormat = this.getFormatFormat(format);\n var includesNationalPrefix;\n\n if (nationalPrefix) {\n if (format.nationalPrefixFormattingRule()) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule());\n\n if (parseDigits(numberFormatWithNationalPrefix) === nationalPrefix + parseDigits(numberFormat)) {\n numberFormat = numberFormatWithNationalPrefix;\n includesNationalPrefix = true;\n var i = nationalPrefix.length;\n\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n } // Generate formatting template for this phone number format.\n\n\n var template = digits // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat) // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER);\n\n if (nationalPrefix) {\n if (!includesNationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator3 = digits.split(''), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {\n var _ref3;\n\n if (_isArray3) {\n if (_i3 >= _iterator3.length) break;\n _ref3 = _iterator3[_i3++];\n } else {\n _i3 = _iterator3.next();\n if (_i3.done) break;\n _ref3 = _i3.value;\n }\n\n var digit = _ref3;\n\n // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n if (this.populatedNationalNumberTemplate.slice(this.populatedNationalNumberTemplatePosition + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n\n this.populatedNationalNumberTemplatePosition = this.populatedNationalNumberTemplate.search(DIGIT_PLACEHOLDER_MATCHER);\n this.populatedNationalNumberTemplate = this.populatedNationalNumberTemplate.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n } // Return the formatted phone number so far.\n\n\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1); // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.international;\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format) {\n if (this.isInternational()) {\n return applyInternationalSeparatorStyle(format.internationalFormat());\n }\n\n return format.format();\n } // Determines the country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.country = findCountryCode(this.isInternational() ? this.countryCallingCode : this.defaultCallingCode, this.nationalNumberDigits, this.metadata);\n }\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n if (this.isInternational()) {\n if (!this.countryCallingCode) {\n return;\n }\n } else {\n if (!this.country && !this.defaultCallingCode) {\n return;\n }\n }\n\n if (!this.nationalNumberDigits) {\n return undefined;\n }\n\n var countryCode = this.country;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.country === '001') {\n countryCode = undefined;\n }\n }\n\n var callingCode = this.countryCallingCode || this.defaultCallingCode;\n var nationalNumber = this.nationalNumberDigits;\n var carrierCode = this.carrierCode; // When an international number without a leading `+` has been autocorrected,\n // extract country calling code, because normally it's only extracted\n // for international numbers with a leading `+`.\n // Could also just use `parsePhoneNumberFromString()` here\n // instead of hacking around this single case.\n\n if (!this.isInternational() && this.nationalNumberDigits === this.digits) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(this.digits, countryCode, callingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin2.countryCallingCode,\n number = _extractCountryCallin2.number;\n\n if (countryCallingCode) {\n var _stripNationalPrefixA2 = stripNationalPrefixAndCarrierCodeFromCompleteNumber(number, this.metadata),\n shorterNationalNumber = _stripNationalPrefixA2.nationalNumber,\n newCarrierCode = _stripNationalPrefixA2.carrierCode;\n\n nationalNumber = shorterNationalNumber;\n carrierCode = newCarrierCode;\n }\n }\n\n var phoneNumber = new PhoneNumber(countryCode || callingCode, nationalNumber, this.metadata.metadata);\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n } // Phone number extensions are not supported by \"As You Type\" formatter.\n\n\n return phoneNumber;\n }\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.nationalNumberDigits;\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n return this.getFullNumber(this.getNonFormattedNationalNumber()).replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n /**\r\n * Returns formatted phone number template.\r\n * @return {string} [template]\r\n */\n\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n if (!this.template) {\n return this.getNonFormattedTemplate();\n }\n\n var index = -1;\n var i = 0;\n\n while (i < (this.isInternational() ? this.getInternationalPrefix({\n spacing: false\n }).length : 0) + this.digits.length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }]);\n\n return AsYouType;\n}();\n\nexport { AsYouType as default };\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n\n i++;\n }\n\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n\n for (var _i4 = 0, _dangling_braces = dangling_braces; _i4 < _dangling_braces.length; _i4++) {\n var index = _dangling_braces[_i4];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n\n return cleared_string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n\n cut_before++;\n }\n\n return template.slice(0, cut_before);\n} // Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\n\nexport function countOccurences(symbol, string) {\n var count = 0; // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n\n for (var _iterator4 = string.split(''), _isArray4 = Array.isArray(_iterator4), _i5 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {\n var _ref4;\n\n if (_isArray4) {\n if (_i5 >= _iterator4.length) break;\n _ref4 = _iterator4[_i5++];\n } else {\n _i5 = _iterator4.next();\n if (_i5.done) break;\n _ref4 = _i5.value;\n }\n\n var character = _ref4;\n\n if (character === symbol) {\n count++;\n }\n }\n\n return count;\n} // Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\n\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n\n var result = '';\n\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n\n times >>= 1;\n string += string;\n }\n\n return result + string;\n}\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\n\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_PHONE_NUMBER);\n\n if (startsAt < 0) {\n return;\n } // Trim everything to the left of the phone number.\n\n\n text = text.slice(startsAt); // Trim the `+`.\n\n var hasPlus;\n\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n } // Trim everything to the right of the phone number.\n\n\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, ''); // Re-add the previously trimmed `+`.\n\n if (hasPlus) {\n text = '+' + text;\n }\n\n return text;\n}\n//# sourceMappingURL=AsYouType.js.map","import Metadata from './metadata';\nexport default function getCountries(metadata) {\n return new Metadata(metadata).getCountries();\n}\n//# sourceMappingURL=getCountries.js.map","import PhoneNumber from './PhoneNumber';\nexport default function getExampleNumber(country, examples, metadata) {\n if (examples[country]) {\n return new PhoneNumber(country, examples[country], metadata);\n }\n}\n//# sourceMappingURL=getExampleNumber.js.map","import AsYouType from './AsYouType';\n/**\r\n * Formats a (possibly incomplete) phone number.\r\n * The phone number can be either in E.164 format\r\n * or in a form of national number digits.\r\n * @param {string} value - A possibly incomplete phone number. Either in E.164 format or in a form of national number digits.\r\n * @param {string?} country - Two-letter (\"ISO 3166-1 alpha-2\") country code.\r\n * @return {string} Formatted (possibly incomplete) phone number.\r\n */\n\nexport default function formatIncompletePhoneNumber(value, country, metadata) {\n if (!metadata) {\n metadata = country;\n country = undefined;\n }\n\n return new AsYouType(country, metadata).input(value);\n}\n//# sourceMappingURL=formatIncompletePhoneNumber.js.map","// Importing from `.json.js` a workaround for a bug in web browsers' \"native\"\r\n// ES6 importing system which is uncapable of importing \"*.json\" files.\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\r\nimport metadata from '../metadata.full.json.js'\r\n\r\nimport {\r\n\tparsePhoneNumber as _parsePhoneNumber,\r\n\tparsePhoneNumberFromString as _parsePhoneNumberFromString,\r\n\r\n\tfindNumbers as _findNumbers,\r\n\tsearchNumbers as _searchNumbers,\r\n\tfindPhoneNumbersInText as _findPhoneNumbersInText,\r\n\tsearchPhoneNumbersInText as _searchPhoneNumbersInText,\r\n\tPhoneNumberMatcher as _PhoneNumberMatcher,\r\n\r\n\tAsYouType as _AsYouType,\r\n\r\n\tisSupportedCountry as _isSupportedCountry,\r\n\tgetCountries as _getCountries,\r\n\tgetCountryCallingCode as _getCountryCallingCode,\r\n\tgetExtPrefix as _getExtPrefix,\r\n\r\n\tgetExampleNumber as _getExampleNumber,\r\n\r\n\tformatIncompletePhoneNumber as _formatIncompletePhoneNumber,\r\n\tparseIncompletePhoneNumber,\r\n\tparsePhoneNumberCharacter,\r\n\tparseDigits,\r\n\r\n\tparseRFC3966,\r\n\tformatRFC3966\r\n} from '../core/index'\r\n\r\nexport {\r\n\tParseError,\r\n\r\n\tparseIncompletePhoneNumber,\r\n\tparsePhoneNumberCharacter,\r\n\tparseDigits,\r\n\r\n\tparseRFC3966,\r\n\tformatRFC3966\r\n} from '../core/index'\r\n\r\nfunction call(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn call(_parsePhoneNumber, arguments)\r\n}\r\n\r\nexport function parsePhoneNumberFromString() {\r\n\treturn call(_parsePhoneNumberFromString, arguments)\r\n}\r\n\r\nexport function findNumbers() {\r\n\treturn call(_findNumbers, arguments)\r\n}\r\n\r\nexport function searchNumbers() {\r\n\treturn call(_searchNumbers, arguments)\r\n}\r\n\r\nexport function findPhoneNumbersInText() {\r\n\treturn call(_findPhoneNumbersInText, arguments)\r\n}\r\n\r\nexport function searchPhoneNumbersInText() {\r\n\treturn call(_searchPhoneNumbersInText, arguments)\r\n}\r\n\r\nexport function PhoneNumberMatcher(text, options) {\r\n\treturn _PhoneNumberMatcher.call(this, text, options, metadata)\r\n}\r\nPhoneNumberMatcher.prototype = Object.create(_PhoneNumberMatcher.prototype, {})\r\nPhoneNumberMatcher.prototype.constructor = PhoneNumberMatcher\r\n\r\nexport function AsYouType(country) {\r\n\treturn _AsYouType.call(this, country, metadata)\r\n}\r\nAsYouType.prototype = Object.create(_AsYouType.prototype, {})\r\nAsYouType.prototype.constructor = AsYouType\r\n\r\nexport function isSupportedCountry() {\r\n\treturn call(_isSupportedCountry, arguments)\r\n}\r\n\r\nexport function getCountries() {\r\n\treturn call(_getCountries, arguments)\r\n}\r\n\r\nexport function getCountryCallingCode() {\r\n\treturn call(_getCountryCallingCode, arguments)\r\n}\r\n\r\nexport function getExtPrefix(country) {\r\n\treturn call(_getExtPrefix, arguments)\r\n}\r\n\r\nexport function getExampleNumber() {\r\n\treturn call(_getExampleNumber, arguments)\r\n}\r\n\r\nexport function formatIncompletePhoneNumber() {\r\n\treturn call(_formatIncompletePhoneNumber, arguments)\r\n}"],"names":["version","country_calling_codes","1","7","20","27","30","31","32","33","34","36","39","40","41","43","44","45","46","47","48","49","51","52","53","54","55","56","57","58","60","61","62","63","64","65","66","81","82","84","86","90","91","92","93","94","95","98","211","212","213","216","218","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","240","241","242","243","244","245","246","247","248","249","250","251","252","253","254","255","256","257","258","260","261","262","263","264","265","266","267","268","269","290","291","297","298","299","350","351","352","353","354","355","356","357","358","359","370","371","372","373","374","375","376","377","378","380","381","382","383","385","386","387","389","420","421","423","500","501","502","503","504","505","506","507","508","509","590","591","592","593","594","595","596","597","598","599","670","672","673","674","675","676","677","678","679","680","681","682","683","685","686","687","688","689","690","691","692","850","852","853","855","856","880","886","960","961","962","963","964","965","966","967","968","970","971","972","973","974","975","976","977","992","993","994","995","996","998","countries","AC","AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GT","GU","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TA","TC","TD","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","nonGeographic","800","808","870","878","881","882","883","888","979","ParseError","code","instance","Constructor","TypeError","_classCallCheck","this","name","constructor","message","stack","Error","prototype","Object","create","VALID_PUNCTUATION","concat","matchesEntirely","text","regular_expression","RegExp","test","a","b","split","pa","pb","i","na","Number","nb","isNaN","_typeof","obj","Symbol","iterator","_defineProperties","target","props","length","descriptor","enumerable","configurable","writable","defineProperty","key","_createClass","protoProps","staticProps","Metadata","metadata","is_object","keys","join","type_of","validateMetadata","setVersion","call","value","filter","_","countryCode","v1","v2","v3","nonGeographical","country","undefined","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","type","ext","country_phone_code_to_countries","globalMetadataObject","_this","_getFormats","getDefaultCountryMetadataForRegion","map","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","format","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getExtPrefix","getCountryCallingCode","countryCallingCode","isSupportedCountry","compare","v4","create_extension_pattern","purpose","single_extension_characters","RFC3966_EXTN_PREFIX","EXTN_PATTERNS_FOR_PARSING","EXTN_PATTERNS_FOR_MATCHING","EXTN_PATTERN","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","number","DIGITS","0","2","3","4","5","6","8","9","0","1","2","3","4","5","6","7","8","9","٠","١","٢","٣","٤","٥","٦","٧","٨","٩","۰","۱","۲","۳","۴","۵","۶","۷","۸","۹","parseDigit","character","parseDigits","string","result","_iterator","_isArray","Array","isArray","_i","_ref","next","done","digit","parseIncompletePhoneNumber","parsePhoneNumberCharacter","NON_FIXED_LINE_PHONE_TYPES","getNumberType","input","options","nationalNumber","phone","is_of_type","pattern","_NON_FIXED_LINE_PHONE","indexOf","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","slice","element","push","sort","mergeArrays","actual_length","minimum_length","isPossibleNumber","isInternational","CAPTURING_DIGIT_PATTERN","SINGLE_IDD_PREFIX","stripIDDPrefix","countryMetadata","IDDPrefixPattern","search","matchedGroups","match","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","err","_iterableToArrayLimit","_nonIterableRest","parseRFC3966","replace","_part$split2","formatRFC3966","_ref2","isValidNumber","_defineProperty","DEFAULT_OPTIONS","formatExtension","formattedNumber","extension","formatNumber","arguments","source","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","forEach","_objectSpread","chooseCountryByCountryCallingCode","addExtension","formatNationalNumber","fromCountry","getIDDPrefix","humanReadable","formattedForSameCountryCallingCode","toCountryCallingCode","toCountryMetadata","fromCountryMetadata","formatIDDSameCountryCallingCodeNumber","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalSeparator","useNationalPrefixFormattingRule","internationalFormat","applyInternationalSeparatorStyle","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","chooseFormatForNumber","local","trim","PhoneNumber","_metadata","isCountryCode","isNonGeographicCallingCode","phoneNumber","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","parse","defaultCountry","_parseInput","throwOnError","startsAt","extractFormattedPhoneNumber","withExtensionStripped","start","number_without_extension","matches","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","_extractCountryCallin","extractCountryCallingCode","_stripNationalPrefixA","stripNationalPrefixAndCarrierCodeFromCompleteNumber","carrierCode","exactCountry","findCountryCode","parsePhoneNumber","hasSelectedNumberingPlan","valid","extended","possible","stripNationalPrefixAndCarrierCode","prefixPattern","prefixMatch","exec","capturedGroupsCount","nationalPhoneNumber","possibleCountries","_findCountryCode","_stripNationalPrefixA2","numberWithoutIDD","_extractCountryCallin2","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","_countryCallingCode","possibleShorterNumber","possibleShorterNationalNumber","parseNumber","_normalizeArguments","normalizeArguments","parsePhoneNumber_","args","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","isObject","parsePhoneNumberFromString","error","parsePhoneNumberFromString_","Node","prev","LRUCache","limit","size","head","tail","cache","ensureLimit","node","remove","put","console","log","RegExpCache","regExp","get","lower","upper","trimAfterFirstMatch","regexp","index","_pZ","pZ","PZ","pNd","_pL","pL","pL_regexp","pSc","pSc_regexp","pMn","pMn_regexp","latinLetterRegexp","isLatinLetter","letter","isInvalidPunctuationSymbol","POSSIBLE","candidate","VALID","containsOnlyValidXChars","toString","STRICT_GROUPING","regExpCache","candidateString","containsMoreThanOneSlashInNationalNumber","isNationalPrefixPresentIfRequired","checkNumberGroupingIsValid","allNumberGroupsRemainGrouped","EXACT_GROUPING","allNumberGroupsAreExactlyPresent","charAtIndex","charAt","charAtNextIndex","util","isNumberMatch","substring","MatchType","NSN_MATCH","getCountryCodeSource","phoneNumberRegion","getRegionCodeForCountryCode","getCountryCode","getMetadataForRegion","getNationalSignificantNumber","formatRule","chooseFormattingPatternForNumber","numberFormats","getNationalPrefixFormattingRule","getNationalPrefixOptionalWhenFormatting","PhoneNumberUtil","formattingRuleHasFirstGroupOnly","rawInputCopy","normalizeDigitsOnly","getRawInput","maybeStripNationalPrefixAndCarrierCode","firstSlashInBodyIndex","secondSlashInBodyIndex","CountryCodeSource","FROM_NUMBER_WITH_PLUS_SIGN","FROM_NUMBER_WITHOUT_PLUS_SIGN","String","checkGroups","normalizedCandidate","normalizeDigits","formattedNumberGroups","getNationalNumberGroups","alternateFormats","MetadataManager","getAlternateFormatsForCountry","nationalSignificantNumber","alternateFormat","getPatternForRegExp","formattingPattern","formatNsnUsingPattern","rfc3966Format","endIndex","startIndex","candidateGroups","NON_DIGITS_PATTERN","candidateNumberGroupIndex","hasExtension","contains","formattedNumberGroupIndex","fromIndex","FROM_DEFAULT_COUNTRY","region","getNddPrefixForRegion","Character","isDigit","getExtension","SECOND_NUMBER_START_PATTERN","parsePreCandidate","SLASH_SEPARATED_DATES","TIME_STAMPS","TIME_STAMPS_SUFFIX_LEADING","isValidPreCandidate","offset","followingText","NON_PARENS","LEAD_CLASS","LEAD_CLASS_LEADING","BRACKET_PAIR_LIMIT","MATCHING_BRACKETS_ENTIRE","PUB_PAGES","INNER_MATCHES","leadLimit","punctuationLimit","blockLimit","MAX_LENGTH_FOR_NSN","punctuation","digitSequence","PATTERN","UNWANTED_END_CHAR_PATTERN","MAX_SAFE_INTEGER","Math","pow","PhoneNumberMatcher","leniency","maxTries","Leniency","parseAndVerify","extractInnerMatch","endsAt","_INNER_MATCHES","isFirstMatch","possibleInnerMatch","_group","_match","group","previousChar","lastCharIndex","nextChar","isValidCandidate","state","lastMatch","find","hasNext","findNumbers","matcher","results","_findNumbers","searchNumbers","findPhoneNumbersInText","getArguments","searchPhoneNumbersInText","LONGEST_DUMMY_PHONE_NUMBER","repeat","DIGIT_PLACEHOLDER_MATCHER","NATIONAL_PREFIX_SEPARATORS_PATTERN","ELIGIBLE_FORMAT_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART_PATTERN","VALID_PHONE_NUMBER","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","AsYouType","optionsOrDefaultCountry","reset","formattedOutput","international","internationalPrefix","digits","nationalNumberDigits","setCountry","initializePhoneNumberFormatsForCountry","matchingFormats","resetFormat","chosenFormat","template","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","formattedDigits","extractFormattedDigits","getFullNumber","inputDigits","getNonFormattedNationalNumber","extractedNumber","hasPlus","startInternationalNumber","nextDigits","isCountryCallingCodeAmbiguous","determineTheCountry","previousNationalPrefix","extractNationalPrefix","matchFormats","formatNationalNumberWithNextDigits","attemptToFormatCompletePhoneNumber","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","reformatNationalNumber","createFormattingTemplate","leadingDigitsPatternIndex","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","min","leadingDigitsPattern","_iterator2","_isArray2","_i2","formattedNationalNumber","formattedNationalNumberWithNationalPrefix","getSeparatorAfterNationalPrefix","spacing","prefix","getInternationalPrefix","_extractCountryCallingCode","getTemplateForNumberFormatPattern","strictPattern","nationalNumberDummyDigits","includesNationalPrefix","numberFormat","getFormatFormat","numberFormatWithNationalPrefix","_iterator3","_isArray3","_i3","_ref3","cutAndStripNonPairedParens","getNonFormattedTemplate","cutBeforeIndex","dangling_braces","pop","cleared_string","_i4","_dangling_braces","stripNonPairedParens","times","getCountries","getExampleNumber","examples","formatIncompletePhoneNumber","func","_arguments","apply","_PhoneNumberMatcher","_AsYouType","_findPhoneNumbersInText","_formatIncompletePhoneNumber","_getCountries","_getCountryCallingCode","_getExampleNumber","_getExtPrefix","_isSupportedCountry","_parsePhoneNumberFromString","_searchNumbers","_searchPhoneNumbersInText"],"mappings":"kNAGe,CAACA,QAAU,SAASC,sBAAwB,CAACC,EAAI,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAMC,EAAI,CAAC,KAAK,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,KAAK,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,KAAK,KAAK,KAAK,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,KAAK,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,KAAK,KAAK,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAA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"}