JS: libphonenumber v3.5. Patch contributed by tronikos.
authorlararennie@google.com <lararennie@google.com@ee073f10-1060-11df-b6a4-87a95322a99c>
Wed, 25 May 2011 09:19:30 +0000 (09:19 +0000)
committerlararennie@google.com <lararennie@google.com@ee073f10-1060-11df-b6a4-87a95322a99c>
Wed, 25 May 2011 09:19:30 +0000 (09:19 +0000)
git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@212 ee073f10-1060-11df-b6a4-87a95322a99c

javascript/README
javascript/i18n/phonenumbers/metadata.js
javascript/i18n/phonenumbers/metadatalite.js

index 3513820..e14b938 100644 (file)
@@ -25,7 +25,7 @@ pages with your web browser:
 
 How to update:
 ==============
-The JavaScript library is ported from the Java implementation (revision 192).
+The JavaScript library is ported from the Java implementation (revision 206).
 When the Java project gets updated follow these steps to update the JavaScript
 project:
 
@@ -64,3 +64,4 @@ project:
 TODO:
 =====
 Port functionality to extract phone-numbers from text (findNumbers).
+Port offline phone number geocoder.
index 2656993..739bb8a 100644 (file)
@@ -1143,19 +1143,19 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"CY":[,[,,"[27-9]\\d{7}","\\d{8}"]
+,"CY":[,[,,"[257-9]\\d{7}","\\d{8}"]
 ,[,,"2[2-6]\\d{6}","\\d{8}",,,"22345678"]
-,[,,"7777\\d{4}|9(?:[69]\\d|7[67])\\d{5}","\\d{8}",,,"96123456"]
-,[,,"8000\\d{4}","\\d{8}",,,"80001234"]
-,[,,"9009\\d{4}","\\d{8}",,,"90091234"]
-,[,,"NA","NA"]
+,[,,"9[5-79]\\d{6}","\\d{8}",,,"96123456"]
+,[,,"800\\d{5}","\\d{8}",,,"80001234"]
+,[,,"90[09]\\d{5}","\\d{8}",,,"90012345"]
+,[,,"80[1-9]\\d{5}","\\d{8}",,,"80112345"]
 ,[,,"700\\d{5}","\\d{8}",,,"70012345"]
 ,[,,"NA","NA"]
-,"CY",357,"00",,,,,,,,[[,"([27-9]\\d)(\\d{6})","$1 $2",,"",""]
+,"CY",357,"00",,,,,,,,[[,"(\\d{2})(\\d{6})","$1 $2",,"",""]
 ]
 ,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
-,[,,"NA","NA"]
+,[,,"(?:50|77)\\d{6}","\\d{8}",,,"77123456"]
 ]
 ,"CX":[,[,,"[1458]\\d{5,9}","\\d{6,10}"]
 ,[,,"89164\\d{4}","\\d{8,9}",,,"891641234"]
@@ -1171,12 +1171,12 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ]
 ,"CZ":[,[,,"[2-9]\\d{8}","\\d{9}"]
 ,[,,"2\\d{8}|(?:3[1257-9]|4[16-9]|5[13-9])\\d{7}","\\d{9}",,,"212345678"]
-,[,,"60[1-8]\\d{6}|7[2379]\\d{7}","\\d{9}",,,"601123456"]
+,[,,"(?:60[1-8]|7(?:0[25]|[2379]\\d))\\d{6}","\\d{9}",,,"601123456"]
 ,[,,"800\\d{6}","\\d{9}",,,"800123456"]
-,[,,"90[0689]\\d{6}","\\d{9}",,,"900123456"]
+,[,,"9(?:0[05689]|76)\\d{6}","\\d{9}",,,"900123456"]
 ,[,,"8[134]\\d{7}","\\d{9}",,,"811234567"]
 ,[,,"70[01]\\d{6}","\\d{9}",,,"700123456"]
-,[,,"NA","NA"]
+,[,,"9[17]0\\d{6}","\\d{9}",,,"910123456"]
 ,"CZ",420,"00",,,,,,,,[[,"([2-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",,"",""]
 ]
 ,,[,,"NA","NA"]
@@ -1362,7 +1362,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"NA","NA"]
 ]
 ,"ES":[,[,,"[5-9]\\d{8}","\\d{9}"]
-,[,,"[89][1-8]\\d{7}","\\d{9}",,,"812345678"]
+,[,,"(?:8(?:[13]0|[28][0-8]|[47][1-9]|5[01346-9]|6[0457-9])|9(?:[1238][0-8]|[47][1-9]|[56]\\d))\\d{6}","\\d{9}",,,"810123456"]
 ,[,,"6\\d{8}","\\d{9}",,,"612345678"]
 ,[,,"[89]00\\d{6}","\\d{9}",,,"800123456"]
 ,[,,"80[367]\\d{6}","\\d{9}",,,"803123456"]
@@ -1507,7 +1507,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})","\\d{7}(?:\\d{3})?",,,"8431234567"]
 ,[,,"70\\d{8}","\\d{10}",,,"7012345678"]
 ,[,,"56\\d{8}","\\d{10}",,,"5612345678"]
-,"GB",44,"00","0"," x",,"0",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2|5[56]|7[06]"]
+,"GB",44,"00","0"," x",,"0",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2|5[56]|7(?:0|6[013-9])","2|5[56]|7(?:0|6(?:[013-9]|2[0-35-9]))"]
 ,"0$1",""]
 ,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:1|\\d1)|3|9[018]"]
 ,"0$1",""]
@@ -1515,7 +1515,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,"0$1",""]
 ,[,"(1\\d{3})(\\d{5,6})","$1 $2",["1"]
 ,"0$1",""]
-,[,"(7\\d{3})(\\d{6})","$1 $2",["7[1-5789]"]
+,[,"(7\\d{3})(\\d{6})","$1 $2",["7(?:[1-5789]|62)","7(?:[1-5789]|624)"]
 ,"0$1",""]
 ,[,"(800)(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"]
 ,"0$1",""]
@@ -1561,15 +1561,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"GF":[,[]
-,[]
-,[]
+,"GF":[,[,,"[56]\\d{8}","\\d{9}"]
+,[,,"594(?:10|2[012457-9]|3[0-57-9]|4[3-9]|5[7-9]|6[0-3]|9[014])\\d{4}","\\d{9}",,,"594101234"]
+,[,,"694(?:[04][0-7]|1[0-5]|2[0-46-9]|38|9\\d)\\d{4}","\\d{9}",,,"694201234"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"GF",594,"00",,,,,,,1,,,[,,"NA","NA"]
+,"GF",594,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"0$1",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -1667,15 +1669,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,1,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"GQ":[,[,,"[23589]\\d{8}","\\d{6,9}"]
-,[,,"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}","\\d{6,9}",,,"333091234"]
-,[,,"(?:222|551)\\d{6}","\\d{6,9}",,,"222123456"]
-,[,,"80\\d[1-9]\\d{5}","\\d{6,9}",,,"800123456"]
-,[,,"90\\d[1-9]\\d{5}","\\d{6,9}",,,"900123456"]
+,"GQ":[,[,,"[23589]\\d{8}","\\d{9}"]
+,[,,"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}","\\d{9}",,,"333091234"]
+,[,,"(?:222|551)\\d{6}","\\d{9}",,,"222123456"]
+,[,,"80\\d[1-9]\\d{5}","\\d{9}",,,"800123456"]
+,[,,"90\\d[1-9]\\d{5}","\\d{9}",,,"900123456"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"GQ",240,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"]
+,"GQ",240,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]
 ,"",""]
 ,[,"(\\d{3})(\\d{6})","$1 $2",["[89]"]
 ,"",""]
@@ -2092,8 +2094,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))\\d{4}|55\\d{8}","\\d{10}",,,"5512345678"]
 ]
 ,"JM":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"]
-,[,,"876(?:(?:5[0-26]|6\\d)\\d{5}|(?: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})","\\d{7}(?:\\d{3})?",,,"8765123456"]
-,[,,"876(?:(?:2[178]|[348]\\d|5[78])\\d|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}","\\d{10}",,,"8762101234"]
+,[,,"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027]|2[3-5]|34|[45]0|63|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}","\\d{7}(?:\\d{3})?",,,"8765123456"]
+,[,,"876(?:(?:2[178]|[348]\\d|)\\d|5(?:27|66|[78]\\d)|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}","\\d{10}",,,"8762101234"]
 ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002123456"]
 ,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002123456"]
 ,[,,"NA","NA"]
@@ -2244,16 +2246,23 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,"869",[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"KP":[,[]
-,[]
-,[]
+,"KP":[,[,,"1\\d{9}|[28]\\d{7}","\\d{6,8}|\\d{10}"]
+,[,,"2\\d{7}|85\\d{6}","\\d{6,8}",,,"21234567"]
+,[,,"19[123]\\d{7}","\\d{10}",,,"1921234567"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"KP",850,"00","0",,,"0",,,1,,,[,,"NA","NA"]
-,,,[,,"NA","NA"]
+,"KP",850,"00|99","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"]
+,"0$1",""]
+,[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"]
+,"0$1",""]
+,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"]
+,"0$1",""]
+]
+,,[,,"NA","NA"]
+,,,[,,"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}","\\d{8}",,,"23821234"]
 ,[,,"NA","NA"]
 ]
 ,"KR":[,[,,"[1-79]\\d{3,9}|8\\d{8}","\\d{4,10}"]
@@ -2749,8 +2758,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"NA","NA"]
 ]
 ,"MQ":[,[,,"[56]\\d{8}","\\d{9}"]
-,[,,"596(?:3[0789]|4[28]|[5-7]\\d|9[67])\\d{4}","\\d{9}",,,"596301234"]
-,[,,"696(?:[2-49]\\d|7[0-4]|8[0-6])\\d{4}","\\d{9}",,,"696201234"]
+,[,,"596(?:0[2-5]|[12]0|3[05-9]|4[024-8]|[5-7]\\d|89|9[4-8])\\d{4}","\\d{9}",,,"596301234"]
+,[,,"696(?:[0-479]\\d|5[01]|8[0-689])\\d{4}","\\d{9}",,,"696201234"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
@@ -2945,15 +2954,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"NC":[,[]
-,[]
-,[]
+,"NC":[,[,,"[2-47-9]\\d{5}","\\d{6}"]
+,[,,"(?:2[03-9]|35|4[1-7]|88)\\d{4}","\\d{6}",,,"201234"]
+,[,,"(?:7[4-9]|8[0-79]|9\\d)\\d{4}","\\d{6}",,,"751234"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"NC",687,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"NC",687,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -3155,15 +3166,20 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"PA":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"PA":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"]
+,[,,"(?:1(?:0[02-579]|19|23|3[03]|4[479]|5[57]|65|7[016-8]|8[58]|9[1-49])|2(?:[0235679]\\d|1[0-7]|4[04-9]|8[028])|3(?:0[0-7]|1[14-7]|2[0-3]|3[03]|4[0457]|5[56]|6[068]|7[078]|80|9[0-79])|4(?:3[013-59]|4\\d|7[0-689])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:09|2[0-267]|[34]0|5[6-9]|7[0-24-7]|8[89]|99)|8(?:[34]\\d|5[0-5]|8[02])|9(?:0[78]|1[0178]|2[0378]|3[379]|40|5[0489]|6[06-9]|7[046-9]|8[36-8]|9[1-9]))\\d{4}","\\d{7}",,,"2001234"]
+,[,,"(?:161|21[89]|8(?:1[01]|7[23]))\\d{4}|6(?:[04-8]\\d|1[0-5]|2[0-4]|3[7-9]|9[0-8])\\d{5}","\\d{7,8}",,,"60012345"]
+,[,,"80[09]\\d{4}","\\d{7}",,,"8001234"]
+,[,,"(?:779|8(?:2[235]|60|7[578]|86|95)|9(?:0[0-2]|81))\\d{4}","\\d{7}",,,"8601234"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"PA",507,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"PA",507,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]
+,"",""]
+,[,"(\\d{4})(\\d{4})","$1-$2",["6"]
+,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -3186,16 +3202,18 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"PF":[,[]
-,[]
-,[]
+,"PF":[,[,,"[2-9]\\d{5}","\\d{6}"]
+,[,,"(?:36\\d|4(?:[02-9]\\d|1[02-9])|[5689]\\d{2})\\d{3}","\\d{6}",,,"401234"]
+,[,,"(?:[27]\\d{3}|3[0-49]\\d{2}|411[3-6])\\d{2}","\\d{6}",,,"212345"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"PF",689,"00",,,,,,,1,,,[,,"NA","NA"]
-,,,[,,"NA","NA"]
+,"PF",689,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",,"",""]
+]
+,,[,,"NA","NA"]
+,,,[,,"(?:36|44)\\d{4}","\\d{6}",,,"441234"]
 ,[,,"NA","NA"]
 ]
 ,"PG":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"]
@@ -3345,29 +3363,42 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"PW":[,[]
-,[]
-,[]
+,"PW":[,[,,"[2-8]\\d{6}","\\d{7}"]
+,[,,"2552255|(?:277|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76))\\d{4}","\\d{7}",,,"2771234"]
+,[,,"(?:6[234689]0|77[45789])\\d{4}","\\d{7}",,,"6201234"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"PW",680,"011",,,,,,,1,,,[,,"NA","NA"]
+,"PW",680,"01[12]",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"PY":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"PY":[,[,,"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}","\\d{5,9}"]
+,[,,"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}","\\d{5,9}",,,"212345678"]
+,[,,"9(?:61|7[12356]|8[1-5]|9[1235])\\d{6}","\\d{9}",,,"961456789"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"PY",595,"002","0",,,"0",,,1,,,[,,"NA","NA"]
+,[,,"8700[0-4]\\d{4}","\\d{9}",,,"870012345"]
+,"PY",595,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{5,7})","$1 $2",["(?:[26]1|3[289]|4[124678]|7[123]|8[1236])"]
+,"($1)",""]
+,[,"(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"]
+,"0$1",""]
+,[,"(\\d{3})(\\d{6})","$1 $2",["9[1-9]"]
+,"0$1",""]
+,[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8700"]
+,"",""]
+,[,"(\\d{3})(\\d{4,6})","$1 $2",["[2-8][1-9]"]
+,"($1)",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
-,[,,"NA","NA"]
+,[,,"[2-9]0\\d{4,7}","\\d{5,9}",,,"201234567"]
 ]
 ,"QA":[,[,,"[3-8]\\d{6,7}","\\d{7,8}"]
 ,[,,"44\\d{6}","\\d{7,8}",,,"44123456"]
@@ -3495,15 +3526,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"SB":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"SB":[,[,,"[1-8]\\d{4,6}","\\d{5,7}"]
+,[,,"(?:1[4-79]|[23]\\d|4[01]|5[03]|6[0-37])\\d{3}","\\d{5}",,,"40123"]
+,[,,"7(?:4\\d|5[025-7])\\d{4}|8[48]\\d{5}","\\d{7}",,,"7421234"]
+,[,,"1[38]\\d{3}","\\d{5}",,,"18123"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"SB",677,"00",,,,,,,1,,,[,,"NA","NA"]
+,[,,"5[12]\\d{3}","\\d{5}",,,"51123"]
+,"SB",677,"0[01]",,,,,,,,,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -3740,15 +3771,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"SR":[,[]
-,[]
-,[]
+,"SR":[,[,,"[2-8]\\d{5,6}","\\d{6,7}"]
+,[,,"(?:2[1-3]|3[0-7]|4\\d|5[2-58]|68\\d)\\d{4}","\\d{6,7}",,,"211234"]
+,[,,"(?:7[1245]|8[1-9])\\d{5}","\\d{7}",,,"7412345"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"SR",597,"00",,,,,,,1,,,[,,"NA","NA"]
+,[,,"56\\d{4}","\\d{6}",,,"561234"]
+,"SR",597,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1-$2",["[2-4]|5[2-58]"]
+,"",""]
+,[,"(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]
+,"",""]
+,[,"(\\d{3})(\\d{4})","$1-$2",["[6-8]"]
+,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -3953,7 +3991,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ]
 ,"TN":[,[,,"[247-9]\\d{7}","\\d{8}"]
 ,[,,"7\\d{7}","\\d{8}",,,"71234567"]
-,[,,"(?:2[0-7]|40|9\\d)\\d{6}","\\d{8}",,,"20123456"]
+,[,,"(?:[29]\\d|4[01])\\d{6}","\\d{8}",,,"20123456"]
 ,[,,"NA","NA"]
 ,[,,"8[028]\\d{6}","\\d{8}",,,"80123456"]
 ,[,,"NA","NA"]
@@ -3965,18 +4003,25 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"TO":[,[]
-,[]
-,[]
+,"TO":[,[,,"[02-8]\\d{4,6}","\\d{5,7}"]
+,[,,"(?:2\\d|3[1-8]|4[1-4]|[56]0|7[0149]|8[05])\\d{3}","\\d{5}",,,"20123"]
+,[,,"(?:7[578]|8[7-9])\\d{5}","\\d{7}",,,"7715123"]
+,[,,"0800\\d{3}","\\d{7}",,,"0800222"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"TO",676,"00",,,,,,,1,,,[,,"NA","NA"]
+,"TO",676,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1-$2",["[1-6]|7[0-4]|8[05]"]
+,"",""]
+,[,"(\\d{3})(\\d{4})","$1 $2",["7[5-9]|8[7-9]"]
+,"",""]
+,[,"(\\d{4})(\\d{3})","$1 $2",["0"]
+,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
-]
+,1]
 ,"TR":[,[,,"[2-589]\\d{9}|444\\d{4}","\\d{7,10}"]
 ,[,,"(?: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}","\\d{10}",,,"2123456789"]
 ,[,,"5(?:0[1-35-7]|22|3\\d|4[1-79]|5[1-5]|9[246])\\d{7}","\\d{10}",,,"5012345678"]
@@ -4111,15 +4156,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,1,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"UY":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"UY":[,[,,"[2489]\\d{6,7}","\\d{7,8}"]
+,[,,"2\\d{7}|4[2-7]\\d{6}","\\d{7,8}",,,"21231234"]
+,[,,"9[13-9]\\d{6}","\\d{8}",,,"94231234"]
+,[,,"80[05]\\d{4}","\\d{7}",,,"8001234"]
+,[,,"90[0-8]\\d{4}","\\d{7}",,,"9001234"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"UY",598,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"UY",598,"0(?:1[3-9]\\d|0)","0"," int. ",,"0",,"00",,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]"]
+,"",""]
+,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9[1-9]"]
+,"0$1",""]
+,[,"(\\d{3})(\\d{4})","$1 $2",["[89]0"]
+,"0$1",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -4190,8 +4242,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"NA","NA"]
 ]
 ,"VI":[,[,,"[3589]\\d{9}","\\d{7}(?:\\d{3})?"]
-,[,,"340(?:2(?:01|2[07]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?",,,"3406421234"]
-,[,,"340(?:2(?:01|2[07]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?",,,"3406421234"]
+,[,,"340(?:2(?:01|2[067]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?",,,"3406421234"]
+,[,,"340(?:2(?:01|2[067]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?",,,"3406421234"]
 ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}",,,"8002345678"]
 ,[,,"900[2-9]\\d{6}","\\d{10}",,,"9002345678"]
 ,[,,"NA","NA"]
@@ -4230,27 +4282,32 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"VU":[,[]
-,[]
-,[]
+,"VU":[,[,,"[2-578]\\d{4,6}","\\d{5,7}"]
+,[,,"(?:2[2-9]\\d|3(?:[67]\\d|8[0-8])|48[4-9]|88\\d)\\d{2}","\\d{5}",,,"22123"]
+,[,,"(?:5(?:7[2-5]|[3-69]\\d)|7[013-7]\\d)\\d{4}","\\d{7}",,,"5912345"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"VU",678,"00",,,,,,,1,,,[,,"NA","NA"]
+,"VU",678,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[57]"]
+,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
-,[,,"NA","NA"]
+,[,,"30\\d{3}","\\d{5}",,,"30123"]
 ]
-,"WF":[,[]
-,[]
-,[]
+,"WF":[,[,,"[5-7]\\d{5}","\\d{6}"]
+,[,,"(?:50|68|72)\\d{4}","\\d{6}",,,"501234"]
+,[,,"(?:50|68|72)\\d{4}","\\d{6}",,,"501234"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"WF",681,"19",,,,,,,1,,,[,,"NA","NA"]
+,"WF",681,"00",,,,,,,1,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
index 4c81c1a..33c62cb 100644 (file)
@@ -1143,19 +1143,19 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"CY":[,[,,"[27-9]\\d{7}","\\d{8}"]
+,"CY":[,[,,"[257-9]\\d{7}","\\d{8}"]
 ,[,,"2[2-6]\\d{6}","\\d{8}"]
-,[,,"7777\\d{4}|9(?:[69]\\d|7[67])\\d{5}","\\d{8}"]
-,[,,"8000\\d{4}","\\d{8}"]
-,[,,"9009\\d{4}","\\d{8}"]
-,[,,"NA","NA"]
+,[,,"9[5-79]\\d{6}","\\d{8}"]
+,[,,"800\\d{5}","\\d{8}"]
+,[,,"90[09]\\d{5}","\\d{8}"]
+,[,,"80[1-9]\\d{5}","\\d{8}"]
 ,[,,"700\\d{5}","\\d{8}"]
 ,[,,"NA","NA"]
-,"CY",357,"00",,,,,,,,[[,"([27-9]\\d)(\\d{6})","$1 $2",,"",""]
+,"CY",357,"00",,,,,,,,[[,"(\\d{2})(\\d{6})","$1 $2",,"",""]
 ]
 ,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
-,[,,"NA","NA"]
+,[,,"(?:50|77)\\d{6}","\\d{8}"]
 ]
 ,"CX":[,[,,"[1458]\\d{5,9}","\\d{6,10}"]
 ,[,,"89164\\d{4}","\\d{8,9}"]
@@ -1171,12 +1171,12 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ]
 ,"CZ":[,[,,"[2-9]\\d{8}","\\d{9}"]
 ,[,,"2\\d{8}|(?:3[1257-9]|4[16-9]|5[13-9])\\d{7}","\\d{9}"]
-,[,,"60[1-8]\\d{6}|7[2379]\\d{7}","\\d{9}"]
+,[,,"(?:60[1-8]|7(?:0[25]|[2379]\\d))\\d{6}","\\d{9}"]
 ,[,,"800\\d{6}","\\d{9}"]
-,[,,"90[0689]\\d{6}","\\d{9}"]
+,[,,"9(?:0[05689]|76)\\d{6}","\\d{9}"]
 ,[,,"8[134]\\d{7}","\\d{9}"]
 ,[,,"70[01]\\d{6}","\\d{9}"]
-,[,,"NA","NA"]
+,[,,"9[17]0\\d{6}","\\d{9}"]
 ,"CZ",420,"00",,,,,,,,[[,"([2-9]\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",,"",""]
 ]
 ,,[,,"NA","NA"]
@@ -1362,7 +1362,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"NA","NA"]
 ]
 ,"ES":[,[,,"[5-9]\\d{8}","\\d{9}"]
-,[,,"[89][1-8]\\d{7}","\\d{9}"]
+,[,,"(?:8(?:[13]0|[28][0-8]|[47][1-9]|5[01346-9]|6[0457-9])|9(?:[1238][0-8]|[47][1-9]|[56]\\d))\\d{6}","\\d{9}"]
 ,[,,"6\\d{8}","\\d{9}"]
 ,[,,"[89]00\\d{6}","\\d{9}"]
 ,[,,"80[367]\\d{6}","\\d{9}"]
@@ -1507,7 +1507,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"8(?:4(?:5464\\d|[2-5]\\d{7})|70\\d{7})","\\d{7}(?:\\d{3})?"]
 ,[,,"70\\d{8}","\\d{10}"]
 ,[,,"56\\d{8}","\\d{10}"]
-,"GB",44,"00","0"," x",,"0",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2|5[56]|7[06]"]
+,"GB",44,"00","0"," x",,"0",,,,[[,"(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2|5[56]|7(?:0|6[013-9])","2|5[56]|7(?:0|6(?:[013-9]|2[0-35-9]))"]
 ,"0$1",""]
 ,[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:1|\\d1)|3|9[018]"]
 ,"0$1",""]
@@ -1515,7 +1515,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,"0$1",""]
 ,[,"(1\\d{3})(\\d{5,6})","$1 $2",["1"]
 ,"0$1",""]
-,[,"(7\\d{3})(\\d{6})","$1 $2",["7[1-5789]"]
+,[,"(7\\d{3})(\\d{6})","$1 $2",["7(?:[1-5789]|62)","7(?:[1-5789]|624)"]
 ,"0$1",""]
 ,[,"(800)(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"]
 ,"0$1",""]
@@ -1561,15 +1561,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"GF":[,[]
-,[]
-,[]
+,"GF":[,[,,"[56]\\d{8}","\\d{9}"]
+,[,,"594(?:10|2[012457-9]|3[0-57-9]|4[3-9]|5[7-9]|6[0-3]|9[014])\\d{4}","\\d{9}"]
+,[,,"694(?:[04][0-7]|1[0-5]|2[0-46-9]|38|9\\d)\\d{4}","\\d{9}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"GF",594,"00",,,,,,,1,,,[,,"NA","NA"]
+,"GF",594,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",,"0$1",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -1667,15 +1669,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,1,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"GQ":[,[,,"[23589]\\d{8}","\\d{6,9}"]
-,[,,"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}","\\d{6,9}"]
-,[,,"(?:222|551)\\d{6}","\\d{6,9}"]
-,[,,"80\\d[1-9]\\d{5}","\\d{6,9}"]
-,[,,"90\\d[1-9]\\d{5}","\\d{6,9}"]
+,"GQ":[,[,,"[23589]\\d{8}","\\d{9}"]
+,[,,"3(?:3(?:3\\d[7-9]|[0-24-9]\\d[46])|5\\d{2}[7-9])\\d{4}","\\d{9}"]
+,[,,"(?:222|551)\\d{6}","\\d{9}"]
+,[,,"80\\d[1-9]\\d{5}","\\d{9}"]
+,[,,"90\\d[1-9]\\d{5}","\\d{9}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"GQ",240,"00",,,,,,,,[[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"]
+,"GQ",240,"00",,,,,,,,[[,"(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]
 ,"",""]
 ,[,"(\\d{3})(\\d{6})","$1 $2",["[89]"]
 ,"",""]
@@ -2092,8 +2094,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))\\d{4}|55\\d{8}","\\d{10}"]
 ]
 ,"JM":[,[,,"[589]\\d{9}","\\d{7}(?:\\d{3})?"]
-,[,,"876(?:(?:5[0-26]|6\\d)\\d{5}|(?: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})","\\d{7}(?:\\d{3})?"]
-,[,,"876(?:(?:2[178]|[348]\\d|5[78])\\d|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}","\\d{10}"]
+,[,,"876(?:5(?:0[12]|1[0-468]|2[35]|63)|6(?:0[1-3579]|1[027]|2[3-5]|34|[45]0|63|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}","\\d{7}(?:\\d{3})?"]
+,[,,"876(?:(?:2[178]|[348]\\d|)\\d|5(?:27|66|[78]\\d)|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579]))\\d{4}","\\d{10}"]
 ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}"]
 ,[,,"900[2-9]\\d{6}","\\d{10}"]
 ,[,,"NA","NA"]
@@ -2244,16 +2246,23 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,"869",[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"KP":[,[]
-,[]
-,[]
+,"KP":[,[,,"1\\d{9}|[28]\\d{7}","\\d{6,8}|\\d{10}"]
+,[,,"2\\d{7}|85\\d{6}","\\d{6,8}"]
+,[,,"19[123]\\d{7}","\\d{10}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"KP",850,"00","0",,,"0",,,1,,,[,,"NA","NA"]
-,,,[,,"NA","NA"]
+,"KP",850,"00|99","0",,,"0",,,,[[,"(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"]
+,"0$1",""]
+,[,"(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"]
+,"0$1",""]
+,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"]
+,"0$1",""]
+]
+,,[,,"NA","NA"]
+,,,[,,"2(?:[0-24-9]\\d{2}|3(?:[0-79]\\d|8[02-9]))\\d{4}","\\d{8}"]
 ,[,,"NA","NA"]
 ]
 ,"KR":[,[,,"[1-79]\\d{3,9}|8\\d{8}","\\d{4,10}"]
@@ -2749,8 +2758,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"NA","NA"]
 ]
 ,"MQ":[,[,,"[56]\\d{8}","\\d{9}"]
-,[,,"596(?:3[0789]|4[28]|[5-7]\\d|9[67])\\d{4}","\\d{9}"]
-,[,,"696(?:[2-49]\\d|7[0-4]|8[0-6])\\d{4}","\\d{9}"]
+,[,,"596(?:0[2-5]|[12]0|3[05-9]|4[024-8]|[5-7]\\d|89|9[4-8])\\d{4}","\\d{9}"]
+,[,,"696(?:[0-479]\\d|5[01]|8[0-689])\\d{4}","\\d{9}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
@@ -2945,15 +2954,17 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"NC":[,[]
-,[]
-,[]
+,"NC":[,[,,"[2-47-9]\\d{5}","\\d{6}"]
+,[,,"(?:2[03-9]|35|4[1-7]|88)\\d{4}","\\d{6}"]
+,[,,"(?:7[4-9]|8[0-79]|9\\d)\\d{4}","\\d{6}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"NC",687,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"NC",687,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -3155,15 +3166,20 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"PA":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"PA":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"]
+,[,,"(?:1(?:0[02-579]|19|23|3[03]|4[479]|5[57]|65|7[016-8]|8[58]|9[1-49])|2(?:[0235679]\\d|1[0-7]|4[04-9]|8[028])|3(?:0[0-7]|1[14-7]|2[0-3]|3[03]|4[0457]|5[56]|6[068]|7[078]|80|9[0-79])|4(?:3[013-59]|4\\d|7[0-689])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:09|2[0-267]|[34]0|5[6-9]|7[0-24-7]|8[89]|99)|8(?:[34]\\d|5[0-5]|8[02])|9(?:0[78]|1[0178]|2[0378]|3[379]|40|5[0489]|6[06-9]|7[046-9]|8[36-8]|9[1-9]))\\d{4}","\\d{7}"]
+,[,,"(?:161|21[89]|8(?:1[01]|7[23]))\\d{4}|6(?:[04-8]\\d|1[0-5]|2[0-4]|3[7-9]|9[0-8])\\d{5}","\\d{7,8}"]
+,[,,"80[09]\\d{4}","\\d{7}"]
+,[,,"(?:779|8(?:2[235]|60|7[578]|86|95)|9(?:0[0-2]|81))\\d{4}","\\d{7}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"PA",507,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"PA",507,"00","0",,,"0",,,,[[,"(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]
+,"",""]
+,[,"(\\d{4})(\\d{4})","$1-$2",["6"]
+,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -3186,16 +3202,18 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"PF":[,[]
-,[]
-,[]
+,"PF":[,[,,"[2-9]\\d{5}","\\d{6}"]
+,[,,"(?:36\\d|4(?:[02-9]\\d|1[02-9])|[5689]\\d{2})\\d{3}","\\d{6}"]
+,[,,"(?:[27]\\d{3}|3[0-49]\\d{2}|411[3-6])\\d{2}","\\d{6}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"PF",689,"00",,,,,,,1,,,[,,"NA","NA"]
-,,,[,,"NA","NA"]
+,"PF",689,"00",,,,,,,,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",,"",""]
+]
+,,[,,"NA","NA"]
+,,,[,,"(?:36|44)\\d{4}","\\d{6}"]
 ,[,,"NA","NA"]
 ]
 ,"PG":[,[,,"[1-9]\\d{6,7}","\\d{7,8}"]
@@ -3345,29 +3363,42 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"PW":[,[]
-,[]
-,[]
+,"PW":[,[,,"[2-8]\\d{6}","\\d{7}"]
+,[,,"2552255|(?:277|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76))\\d{4}","\\d{7}"]
+,[,,"(?:6[234689]0|77[45789])\\d{4}","\\d{7}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"PW",680,"011",,,,,,,1,,,[,,"NA","NA"]
+,"PW",680,"01[12]",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"PY":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"PY":[,[,,"5[0-5]\\d{4,7}|[2-46-9]\\d{5,8}","\\d{5,9}"]
+,[,,"(?:[26]1|3[289]|4[124678]|7[123]|8[1236])\\d{5,7}|(?:2(?:2[4568]|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51)|4(?:18|2[45]|3[12]|5[13]|64|71|9[1-47])|5(?:[1-4]\\d|5[0234])|6(?:3[1-3]|44|7[1-4678])|7(?:17|4[0-4]|6[1-578]|75|8[0-8])|858)\\d{5,6}","\\d{5,9}"]
+,[,,"9(?:61|7[12356]|8[1-5]|9[1235])\\d{6}","\\d{9}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"PY",595,"002","0",,,"0",,,1,,,[,,"NA","NA"]
+,[,,"8700[0-4]\\d{4}","\\d{9}"]
+,"PY",595,"00","0",,,"0",,,,[[,"(\\d{2})(\\d{5,7})","$1 $2",["(?:[26]1|3[289]|4[124678]|7[123]|8[1236])"]
+,"($1)",""]
+,[,"(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"]
+,"0$1",""]
+,[,"(\\d{3})(\\d{6})","$1 $2",["9[1-9]"]
+,"0$1",""]
+,[,"(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8700"]
+,"",""]
+,[,"(\\d{3})(\\d{4,6})","$1 $2",["[2-8][1-9]"]
+,"($1)",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
-,[,,"NA","NA"]
+,[,,"[2-9]0\\d{4,7}","\\d{5,9}"]
 ]
 ,"QA":[,[,,"[3-8]\\d{6,7}","\\d{7,8}"]
 ,[,,"44\\d{6}","\\d{7,8}"]
@@ -3495,15 +3526,15 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"SB":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"SB":[,[,,"[1-8]\\d{4,6}","\\d{5,7}"]
+,[,,"(?:1[4-79]|[23]\\d|4[01]|5[03]|6[0-37])\\d{3}","\\d{5}"]
+,[,,"7(?:4\\d|5[025-7])\\d{4}|8[48]\\d{5}","\\d{7}"]
+,[,,"1[38]\\d{3}","\\d{5}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"SB",677,"00",,,,,,,1,,,[,,"NA","NA"]
+,[,,"5[12]\\d{3}","\\d{5}"]
+,"SB",677,"0[01]",,,,,,,,,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -3740,15 +3771,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"SR":[,[]
-,[]
-,[]
+,"SR":[,[,,"[2-8]\\d{5,6}","\\d{6,7}"]
+,[,,"(?:2[1-3]|3[0-7]|4\\d|5[2-58]|68\\d)\\d{4}","\\d{6,7}"]
+,[,,"(?:7[1245]|8[1-9])\\d{5}","\\d{7}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"SR",597,"00",,,,,,,1,,,[,,"NA","NA"]
+,[,,"56\\d{4}","\\d{6}"]
+,"SR",597,"00",,,,,,,,[[,"(\\d{3})(\\d{3})","$1-$2",["[2-4]|5[2-58]"]
+,"",""]
+,[,"(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]
+,"",""]
+,[,"(\\d{3})(\\d{4})","$1-$2",["[6-8]"]
+,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -3953,7 +3991,7 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ]
 ,"TN":[,[,,"[247-9]\\d{7}","\\d{8}"]
 ,[,,"7\\d{7}","\\d{8}"]
-,[,,"(?:2[0-7]|40|9\\d)\\d{6}","\\d{8}"]
+,[,,"(?:[29]\\d|4[01])\\d{6}","\\d{8}"]
 ,[,,"NA","NA"]
 ,[,,"8[028]\\d{6}","\\d{8}"]
 ,[,,"NA","NA"]
@@ -3965,18 +4003,25 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"TO":[,[]
-,[]
-,[]
+,"TO":[,[,,"[02-8]\\d{4,6}","\\d{5,7}"]
+,[,,"(?:2\\d|3[1-8]|4[1-4]|[56]0|7[0149]|8[05])\\d{3}","\\d{5}"]
+,[,,"(?:7[578]|8[7-9])\\d{5}","\\d{7}"]
+,[,,"0800\\d{3}","\\d{7}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"TO",676,"00",,,,,,,1,,,[,,"NA","NA"]
+,"TO",676,"00",,,,,,,,[[,"(\\d{2})(\\d{3})","$1-$2",["[1-6]|7[0-4]|8[05]"]
+,"",""]
+,[,"(\\d{3})(\\d{4})","$1 $2",["7[5-9]|8[7-9]"]
+,"",""]
+,[,"(\\d{4})(\\d{3})","$1 $2",["0"]
+,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
-]
+,1]
 ,"TR":[,[,,"[2-589]\\d{9}|444\\d{4}","\\d{7,10}"]
 ,[,,"(?: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}","\\d{10}"]
 ,[,,"5(?:0[1-35-7]|22|3\\d|4[1-79]|5[1-5]|9[246])\\d{7}","\\d{10}"]
@@ -4111,15 +4156,22 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,1,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"UY":[,[]
-,[]
-,[]
-,[,,"NA","NA"]
+,"UY":[,[,,"[2489]\\d{6,7}","\\d{7,8}"]
+,[,,"2\\d{7}|4[2-7]\\d{6}","\\d{7,8}"]
+,[,,"9[13-9]\\d{6}","\\d{8}"]
+,[,,"80[05]\\d{4}","\\d{7}"]
+,[,,"90[0-8]\\d{4}","\\d{7}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,[,,"NA","NA"]
-,"UY",598,"00","0",,,"0",,,1,,,[,,"NA","NA"]
+,"UY",598,"0(?:1[3-9]\\d|0)","0"," int. ",,"0",,"00",,[[,"(\\d{4})(\\d{4})","$1 $2",["[24]"]
+,"",""]
+,[,"(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9[1-9]"]
+,"0$1",""]
+,[,"(\\d{3})(\\d{4})","$1 $2",["[89]0"]
+,"0$1",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
@@ -4190,8 +4242,8 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,[,,"NA","NA"]
 ]
 ,"VI":[,[,,"[3589]\\d{9}","\\d{7}(?:\\d{3})?"]
-,[,,"340(?:2(?:01|2[07]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?"]
-,[,,"340(?:2(?:01|2[07]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?"]
+,[,,"340(?:2(?:01|2[067]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?"]
+,[,,"340(?:2(?:01|2[067]|36|44|77)|3(?:32|44)|4(?:4[38]|7[34])|5(?:1[34]|55)|6(?:26|4[23]|9[023])|7(?:[17]\\d|27)|884|998)\\d{4}","\\d{7}(?:\\d{3})?"]
 ,[,,"8(?:00|55|66|77|88)[2-9]\\d{6}","\\d{10}"]
 ,[,,"900[2-9]\\d{6}","\\d{10}"]
 ,[,,"NA","NA"]
@@ -4230,27 +4282,32 @@ i18n.phonenumbers.metadata.countryToMetadata = {
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]
-,"VU":[,[]
-,[]
-,[]
+,"VU":[,[,,"[2-578]\\d{4,6}","\\d{5,7}"]
+,[,,"(?:2[2-9]\\d|3(?:[67]\\d|8[0-8])|48[4-9]|88\\d)\\d{2}","\\d{5}"]
+,[,,"(?:5(?:7[2-5]|[3-69]\\d)|7[013-7]\\d)\\d{4}","\\d{7}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"VU",678,"00",,,,,,,1,,,[,,"NA","NA"]
+,"VU",678,"00",,,,,,,,[[,"(\\d{3})(\\d{4})","$1 $2",["[57]"]
+,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
-,[,,"NA","NA"]
+,[,,"30\\d{3}","\\d{5}"]
 ]
-,"WF":[,[]
-,[]
-,[]
+,"WF":[,[,,"[5-7]\\d{5}","\\d{6}"]
+,[,,"(?:50|68|72)\\d{4}","\\d{6}"]
+,[,,"(?:50|68|72)\\d{4}","\\d{6}"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ,[,,"NA","NA"]
-,"WF",681,"19",,,,,,,1,,,[,,"NA","NA"]
+,"WF",681,"00",,,,,,,1,[[,"(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",,"",""]
+]
+,,[,,"NA","NA"]
 ,,,[,,"NA","NA"]
 ,[,,"NA","NA"]
 ]