@rpcbase/api 0.36.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2288 +0,0 @@
1
- import { g as getDefaultExportFromCjs } from "./index-DNsXQO-7.js";
2
- var isEmail$1 = { exports: {} };
3
- var assertString = { exports: {} };
4
- var hasRequiredAssertString;
5
- function requireAssertString() {
6
- if (hasRequiredAssertString) return assertString.exports;
7
- hasRequiredAssertString = 1;
8
- (function(module, exports$1) {
9
- Object.defineProperty(exports$1, "__esModule", {
10
- value: true
11
- });
12
- exports$1.default = assertString2;
13
- function assertString2(input) {
14
- if (input === void 0 || input === null) throw new TypeError("Expected a string but received a ".concat(input));
15
- if (input.constructor.name !== "String") throw new TypeError("Expected a string but received a ".concat(input.constructor.name));
16
- }
17
- module.exports = exports$1.default;
18
- module.exports.default = exports$1.default;
19
- })(assertString, assertString.exports);
20
- return assertString.exports;
21
- }
22
- var checkHost = { exports: {} };
23
- var hasRequiredCheckHost;
24
- function requireCheckHost() {
25
- if (hasRequiredCheckHost) return checkHost.exports;
26
- hasRequiredCheckHost = 1;
27
- (function(module, exports$1) {
28
- Object.defineProperty(exports$1, "__esModule", {
29
- value: true
30
- });
31
- exports$1.default = checkHost2;
32
- function isRegExp(obj) {
33
- return Object.prototype.toString.call(obj) === "[object RegExp]";
34
- }
35
- function checkHost2(host, matches) {
36
- for (var i = 0; i < matches.length; i++) {
37
- var match = matches[i];
38
- if (host === match || isRegExp(match) && match.test(host)) {
39
- return true;
40
- }
41
- }
42
- return false;
43
- }
44
- module.exports = exports$1.default;
45
- module.exports.default = exports$1.default;
46
- })(checkHost, checkHost.exports);
47
- return checkHost.exports;
48
- }
49
- var isByteLength = { exports: {} };
50
- var hasRequiredIsByteLength;
51
- function requireIsByteLength() {
52
- if (hasRequiredIsByteLength) return isByteLength.exports;
53
- hasRequiredIsByteLength = 1;
54
- (function(module, exports$1) {
55
- Object.defineProperty(exports$1, "__esModule", {
56
- value: true
57
- });
58
- exports$1.default = isByteLength2;
59
- var _assertString = _interopRequireDefault(/* @__PURE__ */ requireAssertString());
60
- function _interopRequireDefault(e) {
61
- return e && e.__esModule ? e : { default: e };
62
- }
63
- function _typeof2(o) {
64
- "@babel/helpers - typeof";
65
- return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
66
- return typeof o2;
67
- } : function(o2) {
68
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
69
- }, _typeof2(o);
70
- }
71
- function isByteLength2(str, options) {
72
- (0, _assertString.default)(str);
73
- var min;
74
- var max;
75
- if (_typeof2(options) === "object") {
76
- min = options.min || 0;
77
- max = options.max;
78
- } else {
79
- min = arguments[1];
80
- max = arguments[2];
81
- }
82
- var len = encodeURI(str).split(/%..|./).length - 1;
83
- return len >= min && (typeof max === "undefined" || len <= max);
84
- }
85
- module.exports = exports$1.default;
86
- module.exports.default = exports$1.default;
87
- })(isByteLength, isByteLength.exports);
88
- return isByteLength.exports;
89
- }
90
- var isFQDN = { exports: {} };
91
- var merge$1 = { exports: {} };
92
- var hasRequiredMerge;
93
- function requireMerge() {
94
- if (hasRequiredMerge) return merge$1.exports;
95
- hasRequiredMerge = 1;
96
- (function(module, exports$1) {
97
- Object.defineProperty(exports$1, "__esModule", {
98
- value: true
99
- });
100
- exports$1.default = merge2;
101
- function merge2() {
102
- var obj = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
103
- var defaults = arguments.length > 1 ? arguments[1] : void 0;
104
- for (var key in defaults) {
105
- if (typeof obj[key] === "undefined") {
106
- obj[key] = defaults[key];
107
- }
108
- }
109
- return obj;
110
- }
111
- module.exports = exports$1.default;
112
- module.exports.default = exports$1.default;
113
- })(merge$1, merge$1.exports);
114
- return merge$1.exports;
115
- }
116
- var hasRequiredIsFQDN;
117
- function requireIsFQDN() {
118
- if (hasRequiredIsFQDN) return isFQDN.exports;
119
- hasRequiredIsFQDN = 1;
120
- (function(module, exports$1) {
121
- Object.defineProperty(exports$1, "__esModule", {
122
- value: true
123
- });
124
- exports$1.default = isFQDN2;
125
- var _assertString = _interopRequireDefault(/* @__PURE__ */ requireAssertString());
126
- var _merge = _interopRequireDefault(/* @__PURE__ */ requireMerge());
127
- function _interopRequireDefault(e) {
128
- return e && e.__esModule ? e : { default: e };
129
- }
130
- var default_fqdn_options = {
131
- require_tld: true,
132
- allow_underscores: false,
133
- allow_trailing_dot: false,
134
- allow_numeric_tld: false,
135
- allow_wildcard: false,
136
- ignore_max_length: false
137
- };
138
- function isFQDN2(str, options) {
139
- (0, _assertString.default)(str);
140
- options = (0, _merge.default)(options, default_fqdn_options);
141
- if (options.allow_trailing_dot && str[str.length - 1] === ".") {
142
- str = str.substring(0, str.length - 1);
143
- }
144
- if (options.allow_wildcard === true && str.indexOf("*.") === 0) {
145
- str = str.substring(2);
146
- }
147
- var parts = str.split(".");
148
- var tld = parts[parts.length - 1];
149
- if (options.require_tld) {
150
- if (parts.length < 2) {
151
- return false;
152
- }
153
- if (!options.allow_numeric_tld && !/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
154
- return false;
155
- }
156
- if (/\s/.test(tld)) {
157
- return false;
158
- }
159
- }
160
- if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
161
- return false;
162
- }
163
- return parts.every(function(part) {
164
- if (part.length > 63 && !options.ignore_max_length) {
165
- return false;
166
- }
167
- if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
168
- return false;
169
- }
170
- if (/[\uff01-\uff5e]/.test(part)) {
171
- return false;
172
- }
173
- if (/^-|-$/.test(part)) {
174
- return false;
175
- }
176
- if (!options.allow_underscores && /_/.test(part)) {
177
- return false;
178
- }
179
- return true;
180
- });
181
- }
182
- module.exports = exports$1.default;
183
- module.exports.default = exports$1.default;
184
- })(isFQDN, isFQDN.exports);
185
- return isFQDN.exports;
186
- }
187
- var isIP = { exports: {} };
188
- var hasRequiredIsIP;
189
- function requireIsIP() {
190
- if (hasRequiredIsIP) return isIP.exports;
191
- hasRequiredIsIP = 1;
192
- (function(module, exports$1) {
193
- Object.defineProperty(exports$1, "__esModule", {
194
- value: true
195
- });
196
- exports$1.default = isIP2;
197
- var _assertString = _interopRequireDefault(/* @__PURE__ */ requireAssertString());
198
- function _interopRequireDefault(e) {
199
- return e && e.__esModule ? e : { default: e };
200
- }
201
- function _typeof2(o) {
202
- "@babel/helpers - typeof";
203
- return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
204
- return typeof o2;
205
- } : function(o2) {
206
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
207
- }, _typeof2(o);
208
- }
209
- var IPv4SegmentFormat = "(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])";
210
- var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
211
- var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
212
- var IPv6SegmentFormat = "(?:[0-9a-fA-F]{1,4})";
213
- var IPv6AddressRegExp = new RegExp("^(" + "(?:".concat(IPv6SegmentFormat, ":){7}(?:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){6}(?:").concat(IPv4AddressFormat, "|:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){5}(?::").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,2}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){4}(?:(:").concat(IPv6SegmentFormat, "){0,1}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,3}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){3}(?:(:").concat(IPv6SegmentFormat, "){0,2}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,4}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){2}(?:(:").concat(IPv6SegmentFormat, "){0,3}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,5}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){1}(?:(:").concat(IPv6SegmentFormat, "){0,4}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,6}|:)|") + "(?::((?::".concat(IPv6SegmentFormat, "){0,5}:").concat(IPv4AddressFormat, "|(?::").concat(IPv6SegmentFormat, "){1,7}|:))") + ")(%[0-9a-zA-Z.]{1,})?$");
214
- function isIP2(ipAddress) {
215
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
216
- (0, _assertString.default)(ipAddress);
217
- var version = (_typeof2(options) === "object" ? options.version : arguments[1]) || "";
218
- if (!version) {
219
- return isIP2(ipAddress, {
220
- version: 4
221
- }) || isIP2(ipAddress, {
222
- version: 6
223
- });
224
- }
225
- if (version.toString() === "4") {
226
- return IPv4AddressRegExp.test(ipAddress);
227
- }
228
- if (version.toString() === "6") {
229
- return IPv6AddressRegExp.test(ipAddress);
230
- }
231
- return false;
232
- }
233
- module.exports = exports$1.default;
234
- module.exports.default = exports$1.default;
235
- })(isIP, isIP.exports);
236
- return isIP.exports;
237
- }
238
- var hasRequiredIsEmail;
239
- function requireIsEmail() {
240
- if (hasRequiredIsEmail) return isEmail$1.exports;
241
- hasRequiredIsEmail = 1;
242
- (function(module, exports$1) {
243
- Object.defineProperty(exports$1, "__esModule", {
244
- value: true
245
- });
246
- exports$1.default = isEmail2;
247
- var _assertString = _interopRequireDefault(/* @__PURE__ */ requireAssertString());
248
- var _checkHost = _interopRequireDefault(/* @__PURE__ */ requireCheckHost());
249
- var _isByteLength = _interopRequireDefault(/* @__PURE__ */ requireIsByteLength());
250
- var _isFQDN = _interopRequireDefault(/* @__PURE__ */ requireIsFQDN());
251
- var _isIP = _interopRequireDefault(/* @__PURE__ */ requireIsIP());
252
- var _merge = _interopRequireDefault(/* @__PURE__ */ requireMerge());
253
- function _interopRequireDefault(e) {
254
- return e && e.__esModule ? e : { default: e };
255
- }
256
- var default_email_options = {
257
- allow_display_name: false,
258
- allow_underscores: false,
259
- require_display_name: false,
260
- allow_utf8_local_part: true,
261
- require_tld: true,
262
- blacklisted_chars: "",
263
- ignore_max_length: false,
264
- host_blacklist: [],
265
- host_whitelist: []
266
- };
267
- var splitNameAddress = /^([^\x00-\x1F\x7F-\x9F\cX]+)</i;
268
- var emailUserPart = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i;
269
- var gmailUserPart = /^[a-z\d]+$/;
270
- var quotedEmailUser = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i;
271
- var emailUserUtf8Part = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i;
272
- var quotedEmailUserUtf8 = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;
273
- var defaultMaxEmailLength = 254;
274
- function validateDisplayName(display_name) {
275
- var display_name_without_quotes = display_name.replace(/^"(.+)"$/, "$1");
276
- if (!display_name_without_quotes.trim()) {
277
- return false;
278
- }
279
- var contains_illegal = /[\.";<>]/.test(display_name_without_quotes);
280
- if (contains_illegal) {
281
- if (display_name_without_quotes === display_name) {
282
- return false;
283
- }
284
- var all_start_with_back_slash = display_name_without_quotes.split('"').length === display_name_without_quotes.split('\\"').length;
285
- if (!all_start_with_back_slash) {
286
- return false;
287
- }
288
- }
289
- return true;
290
- }
291
- function isEmail2(str, options) {
292
- (0, _assertString.default)(str);
293
- options = (0, _merge.default)(options, default_email_options);
294
- if (options.require_display_name || options.allow_display_name) {
295
- var display_email = str.match(splitNameAddress);
296
- if (display_email) {
297
- var display_name = display_email[1];
298
- str = str.replace(display_name, "").replace(/(^<|>$)/g, "");
299
- if (display_name.endsWith(" ")) {
300
- display_name = display_name.slice(0, -1);
301
- }
302
- if (!validateDisplayName(display_name)) {
303
- return false;
304
- }
305
- } else if (options.require_display_name) {
306
- return false;
307
- }
308
- }
309
- if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {
310
- return false;
311
- }
312
- var parts = str.split("@");
313
- var domain = parts.pop();
314
- var lower_domain = domain.toLowerCase();
315
- if (options.host_blacklist.length > 0 && (0, _checkHost.default)(lower_domain, options.host_blacklist)) {
316
- return false;
317
- }
318
- if (options.host_whitelist.length > 0 && !(0, _checkHost.default)(lower_domain, options.host_whitelist)) {
319
- return false;
320
- }
321
- var user = parts.join("@");
322
- if (options.domain_specific_validation && (lower_domain === "gmail.com" || lower_domain === "googlemail.com")) {
323
- user = user.toLowerCase();
324
- var username = user.split("+")[0];
325
- if (!(0, _isByteLength.default)(username.replace(/\./g, ""), {
326
- min: 6,
327
- max: 30
328
- })) {
329
- return false;
330
- }
331
- var _user_parts = username.split(".");
332
- for (var i = 0; i < _user_parts.length; i++) {
333
- if (!gmailUserPart.test(_user_parts[i])) {
334
- return false;
335
- }
336
- }
337
- }
338
- if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {
339
- max: 64
340
- }) || !(0, _isByteLength.default)(domain, {
341
- max: 254
342
- }))) {
343
- return false;
344
- }
345
- if (!(0, _isFQDN.default)(domain, {
346
- require_tld: options.require_tld,
347
- ignore_max_length: options.ignore_max_length,
348
- allow_underscores: options.allow_underscores
349
- })) {
350
- if (!options.allow_ip_domain) {
351
- return false;
352
- }
353
- if (!(0, _isIP.default)(domain)) {
354
- if (!domain.startsWith("[") || !domain.endsWith("]")) {
355
- return false;
356
- }
357
- var noBracketdomain = domain.slice(1, -1);
358
- if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {
359
- return false;
360
- }
361
- }
362
- }
363
- if (options.blacklisted_chars) {
364
- if (user.search(new RegExp("[".concat(options.blacklisted_chars, "]+"), "g")) !== -1) return false;
365
- }
366
- if (user[0] === '"' && user[user.length - 1] === '"') {
367
- user = user.slice(1, user.length - 1);
368
- return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);
369
- }
370
- var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;
371
- var user_parts = user.split(".");
372
- for (var _i = 0; _i < user_parts.length; _i++) {
373
- if (!pattern.test(user_parts[_i])) {
374
- return false;
375
- }
376
- }
377
- return true;
378
- }
379
- module.exports = exports$1.default;
380
- module.exports.default = exports$1.default;
381
- })(isEmail$1, isEmail$1.exports);
382
- return isEmail$1.exports;
383
- }
384
- var isEmailExports = /* @__PURE__ */ requireIsEmail();
385
- const isEmail = /* @__PURE__ */ getDefaultExportFromCjs(isEmailExports);
386
- const metadata = { "version": 4, "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]], "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"]]]], "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"], "AF": ["93", "00", "[2-7]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], "0"], "AG": ["1", "011", "(?:268|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([457]\\d{6})$|1", "268$1", 0, "268"], "AI": ["1", "011", "(?:264|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2457]\\d{6})$|1", "264$1", 0, "264"], "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"], "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"], "AO": ["244", "00", "[29]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]]], "AR": ["54", "00", "(?:11|[89]\\d\\d)\\d{8}|[2368]\\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{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], ["(\\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"], "AS": ["1", "011", "(?:[58]\\d\\d|684|900)\\d{7}", [10], 0, "1", 0, "([267]\\d{6})$|1", "684$1", 0, "684"], "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(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]", "(?:31|4)6|51|6(?:485|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"], "AU": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", [5, 6, 7, 8, 9, 10, 12], [["(\\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|4"], "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, "(183[12])|0", 0, 0, 0, [["(?:(?:241|349)0\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|[34]\\d\\d)|91(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79]))))\\d{3}|(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8])|8(?:55|6[0-8]|[78]\\d|9[02-9]))\\d{6}", [9]], ["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, ["163\\d{2,6}", [5, 6, 7, 8, 9]], ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "AW": ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]]], "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", 0, "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[45]|46", "1[28]|2|365(?:4|5[02])|46"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"]], "0"], "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"], "BB": ["1", "011", "(?:246|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "246$1", 0, "246"], "BD": ["880", "00", "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[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(?:[15]|28|4[14])|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]|2[23]"], "0$1"], ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"]], "0"], "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"], "BF": ["226", "00", "(?:[025-7]\\d|44)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[024-7]"]]]], "BG": ["359", "00", "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9, 12], [["(\\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"], "BH": ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]]], "BI": ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]]], "BJ": ["229", "00", "(?:01\\d|8)\\d{7}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["0"]]]], "BL": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]], "BM": ["1", "011", "(?:441|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "441$1", 0, "441"], "BN": ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]]], "BO": ["591", "00(?:1\\d)?", "8001\\d{5}|(?:[2-467]\\d|50)\\d{6}", [8, 9], [["(\\d)(\\d{7})", "$1 $2", ["[235]|4[46]"]], ["(\\d{8})", "$1", ["[67]"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, "0(1\\d)?"], "BQ": ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]"], "BR": ["55", "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", "[1-467]\\d{9,10}|55[0-46-9]\\d{8}|[34]\\d{7}|55\\d{7,8}|(?:5[0-46-9]|[89]\\d)\\d{7,9}", [8, 9, 10, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37|86)", "300|4(?:0(?:0|20)|370|864)"]], ["(\\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|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", "$2"], "BS": ["1", "011", "(?:242|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([3-8]\\d{6})$|1", "242$1", 0, "242"], "BT": ["975", "00", "[178]\\d{7}|[2-8]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-6]|7[246]|8[2-4]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|[78]"]]]], "BW": ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["90"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $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, 0, "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"]]]], "CA": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [7, 10], 0, "1", 0, 0, 0, 0, 0, [["(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}", [10]], ["", [10]], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [10]], ["900[2-9]\\d{6}", [10]], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\d{6}", [10]], 0, ["310\\d{4}", [7]], 0, ["600[2-9]\\d{6}", [10]]]], "CC": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|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]], ["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-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)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CD": ["243", "00", "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", [7, 8, 9, 10], [["(\\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{2})(\\d{4})", "$1 $2 $3", ["2"], "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"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"]], "0"], "CF": ["236", "00", "(?:[27]\\d{3}|8776)\\d{4}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]]], "CG": ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]]]], "CH": ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9, 12], [["(\\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"], "CI": ["225", "00", "[02]\\d{9}", [10], [["(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]]], "CK": ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]]], "CL": ["56", "(?:0|1(?:1[0-69]|2[02-5]|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", ["219", "2196"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["60|809"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9(?:10|[2-9])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[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"]]]], "CM": ["237", "00", "[26]\\d{8}|88\\d{6,7}", [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]|88"]]]], "CN": ["86", "00|1(?:[12]\\d|79)\\d\\d00", "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5,6})", "$1 $2", ["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|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(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|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]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|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]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|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]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|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(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"], "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, "(1(?:[12]\\d|79)\\d\\d)|0", 0, 0, 0, 0, "00"], "CO": ["57", "00(?:4(?:[14]4|56)|[579])", "(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["46"]], ["(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|9[14]"]], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]], "0", 0, "0([3579]|4(?:[14]4|56))?"], "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))"], "CU": ["53", "119", "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", [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", ["[56]"], "0$1"], ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"]], "0"], "CV": ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]]], "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]"], "CX": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|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]], ["4(?:79[01]|83[0-36-9]|95[0-3])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-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)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CY": ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]]], "CZ": ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], ["(\\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"]]]], "DE": ["49", "00", "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", [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{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|3[13])"], "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"], "DJ": ["253", "00", "(?:2\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]]], "DK": ["45", "00", "[2-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]]], "DM": ["1", "011", "(?:[58]\\d\\d|767|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "767$1", 0, "767"], "DO": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "8001|8[024]9"], "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"], "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"], "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"]]]], "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", ["[89]"], "0$1"], ["(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"]], "0"], "EH": ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, "528[89]"], "ER": ["291", "00", "[178]\\d{6}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], "0"], "ES": ["34", "00", "[5-9]\\d{8}", [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]"]]]], "ET": ["251", "00", "(?:11|[2-579]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], "0"], "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{5})", "$1", ["20[2-59]"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1 $2", ["(?:[1-3]0|[68])0|70[07-9]"], "0$1"], ["(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], ["(\\d)(\\d{4,9})", "$1 $2", ["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"]], "0", 0, 0, 0, 0, "1[03-79]|[2-9]", 0, "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, 0, "00"], "FK": ["500", "00", "[2-7]\\d{4}", [5]], "FM": ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]]], "FO": ["298", "00", "[2-9]\\d{5}", [6], [["(\\d{6})", "$1", ["[2-9]"]]], 0, 0, "(10(?:01|[12]0|88))"], "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"], "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", ["0"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"]], 0, 0, "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", "$1"], "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|180020", 0, 0, 0, [["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-5])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|5[01]))\\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|1(?:[0-7]\\d|8[0-3]))|(?: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[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(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]], 0, " x"], "GD": ["1", "011", "(?:473|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "473$1", 0, "473"], "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"], "GF": ["594", "00", "(?:[56]94\\d|7093)\\d{5}|(?:80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]|9[47]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[89]"], "0$1"]], "0"], "GG": ["44", "00", "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", [7, 9, 10], 0, "0", 0, "([25-9]\\d{5})$|0|180020", "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(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\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"], "GI": ["350", "00", "(?:[25]\\d|60)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["2"]]]], "GL": ["299", "00", "(?:19|[2-689]\\d|70)\\d{4}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]]], "GM": ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "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]"]]]], "GP": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]], "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]"]]]], "GR": ["30", "00", "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", [10, 11, 12], [["(\\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]"]], ["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]]], "GT": ["502", "00", "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "GU": ["1", "011", "(?:[58]\\d\\d|671|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "671$1", 0, "671"], "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]"]]]], "GY": ["592", "001", "(?:[2-8]\\d{3}|9008)\\d{3}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "HK": ["852", "00(?:30|5[09]|[126-9]?)", "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", [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, 0, "00"], "HN": ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]]], "HR": ["385", "00", "[2-69]\\d{8}|80\\d{5,7}|[1-79]\\d{7}|6\\d{6}", [7, 8, 9], [["(\\d{2})(\\d{2})(\\d{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", ["6|7[245]"], "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-57]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"]], "0"], "HT": ["509", "00", "[2-589]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]]], "HU": ["36", "00", "[235-7]\\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-9]"], "06 $1"]], "06"], "ID": ["62", "00[89]", "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\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"], "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"], "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"], "IM": ["44", "00", "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([25-8]\\d{5})$|0|180020", "1624$1", 0, "74576|(?:16|7[56])24"], "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"], "IO": ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]]], "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"], "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"], "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, 0, "00"], "IT": ["39", "00", "0\\d{5,11}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", [6, 7, 8, 9, 10, 11, 12], [["(\\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[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[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(?:44|[679])|[378]|43"]], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], ["(\\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", ["[03]"]]], 0, 0, 0, 0, 0, 0, [["0(?:669[0-79]\\d{1,6}|831\\d{2,8})|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[2356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}"], ["3[2-9]\\d{7,8}|(?:31|43)\\d{8}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 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-24-8]\\d{5})$|0|180020", "1534$1", 0, 0, [["1534[0-24-8]\\d{5}"], ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\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(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"], ["56\\d{8}"]]], "JM": ["1", "011", "(?:[58]\\d\\d|658|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "658|876"], "JO": ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|427|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", ["[47]"], "0$1"]], "0"], "JP": ["81", "010", "00[1-9]\\d{6,14}|[25-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)|9(?: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[7-9]|96)|477|51[2-9])|9(?: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[7-9]|96[2457-9])|477|51[2-9])|9(?: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", ["3|4(?:2[09]|7[01])|6[1-9]", "3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]"], "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[0459]|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[26-9]|49|51|6|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(?:[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]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|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[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|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]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?: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(?:[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]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|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]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|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]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[25-9]"], "0$1"]], "0", 0, "(000[2569]\\d{4,6})$|(?:(?:003768)0?)|0", "$1"], "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"], "KG": ["996", "00", "8\\d{9}|[235-9]\\d{8}", [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"], "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"], "KI": ["686", "00", "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", [5, 8], 0, "0"], "KM": ["269", "00", "[3478]\\d{6}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]]], "KN": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "869$1", 0, "869"], "KP": ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\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-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"]], "0"], "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", ["[36]0|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))?"], "KW": ["965", "00", "18\\d{5}|(?:[2569]\\d|41)\\d{6}", [7, 8], [["(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], ["(\\d{3})(\\d{5})", "$1 $2", ["[245]"]]]], "KY": ["1", "011", "(?:345|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "345$1", 0, "345"], "KZ": ["7", "810", "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", [10, 14], 0, "8", 0, 0, 0, 0, "33622|7", 0, "8~10"], "LA": ["856", "00", "[23]\\d{9}|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", ["[23]"], "0$1"]], "0"], "LB": ["961", "00", "[27-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-6]|9[04-9])|8[02-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0"], "LC": ["1", "011", "(?:[58]\\d\\d|758|900)\\d{7}", [10], 0, "1", 0, "([2-8]\\d{6})$|1", "758$1", 0, "758"], "LI": ["423", "00", "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", [7, 9], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], "0", 0, "(1001)|0"], "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"], "LR": ["231", "00", "(?:[2457]\\d|33|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"]], "0"], "LS": ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]]], "LT": ["370", "00", "(?:[3469]\\d|52|[78]0)\\d{6}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", 1], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", 1], ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(0-$1)", 1], ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", 1]], "0", 0, "[08]"], "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)"], "LV": ["371", "00", "(?:[268]\\d|78|90)\\d{6}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2679]|8[01]"]]]], "LY": ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], "0"], "MA": ["212", "00", "[5-8]\\d{8}", [9], [["(\\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-46-9]|3[3-9]|9)|8(?:0[89]|92)"], "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(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-8]|5[0-5]|8[0-7]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], "MC": ["377", "00", "(?:[3489]|[67]\\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", ["[389]"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[67]"], "0$1"]], "0"], "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"], "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"], "MF": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]], "MG": ["261", "00", "[23]\\d{8}", [9], [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, "([24-9]\\d{6})$|0", "20$1"], "MH": ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], "1"], "MK": ["389", "00", "[2-578]\\d{7}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "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"], "ML": ["223", "00", "[24-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]]], "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", ["4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]|452|678|86", "[12]|452|6788|86"], "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"], "MN": ["976", "001", "[12]\\d{7,9}|[5-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", ["[5-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"], "MO": ["853", "00", "0800\\d{3}|(?:28|[68]\\d)\\d{6}", [7, 8], [["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[268]"]]]], "MP": ["1", "011", "[58]\\d{9}|(?:67|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "670$1", 0, "670"], "MQ": ["596", "00", "(?:596\\d|7091)\\d{5}|(?:69|[89]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]|8(?:0[6-9]|[36])"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "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]"]]]], "MS": ["1", "011", "(?:[58]\\d\\d|664|900)\\d{7}", [10], 0, "1", 0, "([34]\\d{6})$|1", "664$1", 0, "664"], "MT": ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]]], "MU": ["230", "0(?:0|[24-7]0|3[03])", "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], ["(\\d{5})(\\d{5})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, 0, "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", ["[34679]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MW": ["265", "00", "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", [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"], "MX": ["52", "0[09]", "[2-9]\\d{9}", [10], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, 0, "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]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-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(?:[367]|80)"]], ["(\\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"], "MZ": ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "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"], "NC": ["687", "00", "(?:050|[2-57-9]\\d\\d)\\d{3}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]]], "NE": ["227", "00", "[027-9]\\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]|7[0467]"]]]], "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"], "NG": ["234", "009", "(?:20|9\\d)\\d{8}|[78]\\d{9,13}", [10, 11, 12, 13, 14], [["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], ["(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "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"], "NI": ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]]], "NL": ["31", "00", "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", [5, 6, 7, 8, 9, 10, 11], [["(\\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-578]|91"], "0$1"], ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"]], "0"], "NO": ["47", "00", "(?:0|[2-9]\\d{3})\\d{4}", [5, 8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]]], 0, 0, 0, 0, 0, "[02-689]|7[0-8]"], "NP": ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [["(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], ["(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0"], "NR": ["674", "00", "(?:222|444|(?:55|8\\d)\\d|666|777|999)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[24-9]"]]]], "NU": ["683", "00", "(?:[4-7]|888\\d)\\d{3}", [4, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["8"]]]], "NZ": ["64", "0(?:0|161)", "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], "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)|[589]"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "00"], "OM": ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [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]"]]]], "PA": ["507", "00", "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]]], "PE": ["51", "00|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, 0, "00", " Anexo "], "PF": ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["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, 0, "00"], "PH": ["63", "00", "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", [6, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{5})", "$1 $2", ["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"], "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,7})", "$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"], "PL": ["48", "00", "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{5})", "$1", ["19"]], ["(\\d{3})(\\d{3})", "$1 $2", ["11|20|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", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]]]], "PM": ["508", "00", "[45]\\d{5}|(?:708|8\\d\\d)\\d{6}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "PR": ["1", "011", "(?:[589]\\d\\d|787)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "787|939"], "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"], "PT": ["351", "00", "1693\\d{5}|(?:[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", ["16|[236-9]"]]]], "PW": ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "PY": ["595", "00", "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", [6, 7, 8, 9, 10, 11], [["(\\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(?:[5-79]|8[1-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]]], "0"], "QA": ["974", "00", "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", [7, 8, 9, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["2[136]|8"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]]]], "RE": ["262", "00", "709\\d{6}|(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"], ["(?:69(?:2\\d\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}"], ["80\\d{7}"], ["89[1-37-9]\\d{6}"], 0, 0, 0, 0, ["9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\d{4}"], ["8(?:1[019]|2[0156]|84|90)\\d{6}"]]], "RO": ["40", "00", "(?:[236-8]\\d|90)\\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", ["[236-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 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"], "RU": ["7", "810", "8\\d{13}|[347-9]\\d{9}", [10, 14], [["(\\d{4})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-8]|2[1-9])", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", "7(?:1(?:[0-356]2|4[29]|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", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", 1], ["(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"]], "8", 0, 0, 0, 0, 0, [["336(?:[013-9]\\d|2[013-9])\\d{5}|(?: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-7]|6[0-35-79]|7[1-37-9]))\\d{7}", [10]], ["9\\d{9}", [10]], ["8(?:0[04]|108\\d{3})\\d{7}"], ["80[39]\\d{7}", [10]], ["808\\d{7}", [10]]], "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", ["2"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"]], "0"], "SA": ["966", "00", "(?:[15]\\d|800|92)\\d{7}", [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{4})", "$1 $2 $3", ["8"]]], "0"], "SB": ["677", "0[01]", "[6-9]\\d{6}|[1-6]\\d{4}", [5, 7], [["(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]]], "SC": ["248", "010|0[0-2]", "(?:[2489]\\d|64)\\d{5}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "SD": ["249", "00", "[19]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "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, 12], [["(\\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|9)"], "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"], "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(?:0[1-9]|[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"]]]], "SH": ["290", "00", "(?:[256]\\d|8)\\d{3}", [4, 5], 0, 0, 0, 0, 0, 0, "[256]"], "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, 0, "00"], "SJ": ["47", "00", "0\\d{4}|(?:[489]\\d|79)\\d{6}", [5, 8], 0, 0, 0, 0, 0, 0, "79"], "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"], "SL": ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], "0"], "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"], "SN": ["221", "00", "(?:[378]\\d|93)\\d{7}", [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]"]]]], "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", ["(?:2|90)4|[67]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[348]|64|79|90"]], ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[0-35-9]|7[67]|9[2-9]"]]], "0"], "SR": ["597", "00", "(?:[2-5]|[6-8]\\d|90)\\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-9]"]]]], "SS": ["211", "00", "[19]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "ST": ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]]], "SV": ["503", "00", "(?:[267]\\d\\d|500)\\d{5}|(?:80\\d|900)\\d{4}(?:\\d{4})?", [7, 8, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[25-7]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]]]], "SX": ["1", "011", "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "(5\\d{6})$|1", "721$1", 0, "721"], "SY": ["963", "00", "[1-359]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-4]|5[1-3]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[59]"], "0$1", 1]], "0"], "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"]]]], "TA": ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8"], "TC": ["1", "011", "(?:[58]\\d\\d|649|900)\\d{7}", [10], 0, "1", 0, "([2-479]\\d{6})$|1", "649$1", 0, "649"], "TD": ["235", "00|16", "(?:22|30|[689]\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[236-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "TG": ["228", "00", "[279]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]]], "TH": ["66", "00[1-9]", "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", [8, 9, 10, 13], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "TJ": ["992", "810", "(?:[0-57-9]\\d|66)\\d{7}", [9], [["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["\\d"]]], 0, 0, 0, 0, 0, 0, 0, "8~10"], "TK": ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7]], "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"]]]], "TM": ["993", "810", "(?:[1-6]\\d|71)\\d{6}", [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", ["[67]"], "8 $1"]], "8", 0, 0, 0, 0, 0, 0, "8~10"], "TN": ["216", "00", "[2-57-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]]], "TO": ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\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-9]"]]]], "TR": ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [7, 10, 12, 13], [["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], "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,7})", "$1 $2 $3", ["80"], "0$1", 1]], "0"], "TT": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-46-8]\\d{6})$|1", "868$1", 0, "868"], "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"]]]], "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, 0, 0, "#"], "TZ": ["255", "00[056]", "(?:[25-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{2})(\\d{7})", "$1 $2", ["5"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"]], "0"], "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{4})(\\d{5})", "$1 $2", ["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "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"], "US": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [10], [["(\\d{3})(\\d{4})", "$1-$2", ["310"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]], "1", 0, 0, 0, 0, 0, [["3052(?:0[0-8]|[1-9]\\d)\\d{4}|(?:2742|305[3-9])\\d{6}|(?:472|983)[2-47-9]\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["305209\\d{4}"]]], "UY": ["598", "0(?:0|1[3-9]\\d)", "0004\\d{2,9}|[1249]\\d{7}|2\\d{3,4}|(?:[49]\\d|80)\\d{5}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d{4,5})", "$1", ["21"]], ["(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], ["(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]]], "0", 0, 0, 0, 0, 0, 0, "00", " int. "], "UZ": ["998", "00", "(?:20|33|[5-9]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]]], "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, 12], 0, 0, 0, 0, 0, 0, "06698"], "VC": ["1", "011", "(?:[58]\\d\\d|784|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "784$1", 0, "784"], "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"], "VG": ["1", "011", "(?:284|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-578]\\d{6})$|1", "284$1", 0, "284"], "VI": ["1", "011", "[58]\\d{9}|(?:34|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "340$1", 0, "340"], "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", ["6"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "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"], "VU": ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]]], "WF": ["681", "00", "(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[47-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "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"]]]], "XK": ["383", "00", "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9, 10, 11, 12], [["(\\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", ["2|39"], "0$1"], ["(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"]], "0"], "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-6]|8[0-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0"], "YT": ["262", "00", "7093\\d{5}|(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", [9], 0, "0", 0, 0, 0, 0, 0, [["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"], ["(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}"], ["80\\d{7}"], 0, 0, 0, 0, 0, ["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]], "ZA": ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [["(\\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"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "ZM": ["260", "00", "800\\d{6}|(?:21|[579]\\d|63)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[579]"], "0$1"]], "0"], "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"] }, "nonGeographic": { "800": ["800", 0, "(?:00|[1-9]\\d)\\d{6}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], 0, 0, 0, 0, 0, 0, [0, 0, ["(?:00|[1-9]\\d)\\d{6}"]]], "808": ["808", 0, "[1-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]]], "870": ["870", 0, "7\\d{11}|[235-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"], 0, 0, 0, 0, 0, 0, ["2\\d{8}", [9]]]], "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, "6\\d{9}|[0-36-9]\\d{8}", [9, 10], [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], ["(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [0, ["6\\d{9}|[0-36-9]\\d{8}"]]], "882": ["882", 0, "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], ["(\\d{2})(\\d{6})", "$1 $2", ["49"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|23|3(?:[15]|4[57])|4|51"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]]], 0, 0, 0, 0, 0, 0, [0, ["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}", [7, 8, 9, 10, 12]], 0, 0, 0, ["348[57]\\d{7}", [11]], 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})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]], "883": ["883", 0, "(?:[1-4]\\d|51)\\d{6,10}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3", ["[14]|2[24-689]|3[02-689]|51[24-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]], "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, "[1359]\\d{8}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, ["[1359]\\d{8}"]]] } };
387
- function withMetadataArgument(func, _arguments) {
388
- var args = Array.prototype.slice.call(_arguments);
389
- args.push(metadata);
390
- return func.apply(this, args);
391
- }
392
- function compare(a, b) {
393
- a = a.split("-");
394
- b = b.split("-");
395
- var pa = a[0].split(".");
396
- var pb = b[0].split(".");
397
- for (var i = 0; i < 3; i++) {
398
- var na = Number(pa[i]);
399
- var nb = Number(pb[i]);
400
- if (na > nb) return 1;
401
- if (nb > na) return -1;
402
- if (!isNaN(na) && isNaN(nb)) return 1;
403
- if (isNaN(na) && !isNaN(nb)) return -1;
404
- }
405
- if (a[1] && b[1]) {
406
- return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;
407
- }
408
- return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;
409
- }
410
- var objectConstructor = {}.constructor;
411
- function isObject(object) {
412
- return object !== void 0 && object !== null && object.constructor === objectConstructor;
413
- }
414
- function _typeof$2(o) {
415
- "@babel/helpers - typeof";
416
- return _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
417
- return typeof o2;
418
- } : function(o2) {
419
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
420
- }, _typeof$2(o);
421
- }
422
- function _classCallCheck$2(a, n) {
423
- if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
424
- }
425
- function _defineProperties$1(e, r) {
426
- for (var t = 0; t < r.length; t++) {
427
- var o = r[t];
428
- o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey$1(o.key), o);
429
- }
430
- }
431
- function _createClass$2(e, r, t) {
432
- return r && _defineProperties$1(e.prototype, r), Object.defineProperty(e, "prototype", { writable: false }), e;
433
- }
434
- function _toPropertyKey$1(t) {
435
- var i = _toPrimitive$1(t, "string");
436
- return "symbol" == _typeof$2(i) ? i : i + "";
437
- }
438
- function _toPrimitive$1(t, r) {
439
- if ("object" != _typeof$2(t) || !t) return t;
440
- var e = t[Symbol.toPrimitive];
441
- if (void 0 !== e) {
442
- var i = e.call(t, r);
443
- if ("object" != _typeof$2(i)) return i;
444
- throw new TypeError("@@toPrimitive must return a primitive value.");
445
- }
446
- return String(t);
447
- }
448
- var V3 = "1.2.0";
449
- var V4 = "1.7.35";
450
- var DEFAULT_EXT_PREFIX = " ext. ";
451
- var CALLING_CODE_REG_EXP = /^\d+$/;
452
- var Metadata = /* @__PURE__ */ (function() {
453
- function Metadata2(metadata2) {
454
- _classCallCheck$2(this, Metadata2);
455
- validateMetadata(metadata2);
456
- this.metadata = metadata2;
457
- setVersion.call(this, metadata2);
458
- }
459
- return _createClass$2(Metadata2, [{
460
- key: "getCountries",
461
- value: function getCountries() {
462
- return Object.keys(this.metadata.countries).filter(function(_) {
463
- return _ !== "001";
464
- });
465
- }
466
- }, {
467
- key: "getCountryMetadata",
468
- value: function getCountryMetadata(countryCode) {
469
- return this.metadata.countries[countryCode];
470
- }
471
- }, {
472
- key: "nonGeographic",
473
- value: function nonGeographic() {
474
- if (this.v1 || this.v2 || this.v3) return;
475
- return this.metadata.nonGeographic || this.metadata.nonGeographical;
476
- }
477
- }, {
478
- key: "hasCountry",
479
- value: function hasCountry(country) {
480
- return this.getCountryMetadata(country) !== void 0;
481
- }
482
- }, {
483
- key: "hasCallingCode",
484
- value: function hasCallingCode(callingCode) {
485
- if (this.getCountryCodesForCallingCode(callingCode)) {
486
- return true;
487
- }
488
- if (this.nonGeographic()) {
489
- if (this.nonGeographic()[callingCode]) {
490
- return true;
491
- }
492
- } else {
493
- var countryCodes = this.countryCallingCodes()[callingCode];
494
- if (countryCodes && countryCodes.length === 1 && countryCodes[0] === "001") {
495
- return true;
496
- }
497
- }
498
- }
499
- }, {
500
- key: "isNonGeographicCallingCode",
501
- value: function isNonGeographicCallingCode(callingCode) {
502
- if (this.nonGeographic()) {
503
- return this.nonGeographic()[callingCode] ? true : false;
504
- } else {
505
- return this.getCountryCodesForCallingCode(callingCode) ? false : true;
506
- }
507
- }
508
- // Deprecated.
509
- }, {
510
- key: "country",
511
- value: function country(countryCode) {
512
- return this.selectNumberingPlan(countryCode);
513
- }
514
- }, {
515
- key: "selectNumberingPlan",
516
- value: function selectNumberingPlan(countryCode, callingCode) {
517
- if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {
518
- callingCode = countryCode;
519
- countryCode = null;
520
- }
521
- if (countryCode && countryCode !== "001") {
522
- if (!this.hasCountry(countryCode)) {
523
- throw new Error("Unknown country: ".concat(countryCode));
524
- }
525
- this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);
526
- } else if (callingCode) {
527
- if (!this.hasCallingCode(callingCode)) {
528
- throw new Error("Unknown calling code: ".concat(callingCode));
529
- }
530
- this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);
531
- } else {
532
- this.numberingPlan = void 0;
533
- }
534
- return this;
535
- }
536
- }, {
537
- key: "getCountryCodesForCallingCode",
538
- value: function getCountryCodesForCallingCode(callingCode) {
539
- var countryCodes = this.countryCallingCodes()[callingCode];
540
- if (countryCodes) {
541
- if (countryCodes.length === 1 && countryCodes[0].length === 3) {
542
- return;
543
- }
544
- return countryCodes;
545
- }
546
- }
547
- }, {
548
- key: "getCountryCodeForCallingCode",
549
- value: function getCountryCodeForCallingCode(callingCode) {
550
- var countryCodes = this.getCountryCodesForCallingCode(callingCode);
551
- if (countryCodes) {
552
- return countryCodes[0];
553
- }
554
- }
555
- }, {
556
- key: "getNumberingPlanMetadata",
557
- value: function getNumberingPlanMetadata(callingCode) {
558
- var countryCode = this.getCountryCodeForCallingCode(callingCode);
559
- if (countryCode) {
560
- return this.getCountryMetadata(countryCode);
561
- }
562
- if (this.nonGeographic()) {
563
- var metadata2 = this.nonGeographic()[callingCode];
564
- if (metadata2) {
565
- return metadata2;
566
- }
567
- } else {
568
- var countryCodes = this.countryCallingCodes()[callingCode];
569
- if (countryCodes && countryCodes.length === 1 && countryCodes[0] === "001") {
570
- return this.metadata.countries["001"];
571
- }
572
- }
573
- }
574
- // Deprecated.
575
- }, {
576
- key: "countryCallingCode",
577
- value: function countryCallingCode() {
578
- return this.numberingPlan.callingCode();
579
- }
580
- // Deprecated.
581
- }, {
582
- key: "IDDPrefix",
583
- value: function IDDPrefix() {
584
- return this.numberingPlan.IDDPrefix();
585
- }
586
- // Deprecated.
587
- }, {
588
- key: "defaultIDDPrefix",
589
- value: function defaultIDDPrefix() {
590
- return this.numberingPlan.defaultIDDPrefix();
591
- }
592
- // Deprecated.
593
- }, {
594
- key: "nationalNumberPattern",
595
- value: function nationalNumberPattern() {
596
- return this.numberingPlan.nationalNumberPattern();
597
- }
598
- // Deprecated.
599
- }, {
600
- key: "possibleLengths",
601
- value: function possibleLengths() {
602
- return this.numberingPlan.possibleLengths();
603
- }
604
- // Deprecated.
605
- }, {
606
- key: "formats",
607
- value: function formats() {
608
- return this.numberingPlan.formats();
609
- }
610
- // Deprecated.
611
- }, {
612
- key: "nationalPrefixForParsing",
613
- value: function nationalPrefixForParsing() {
614
- return this.numberingPlan.nationalPrefixForParsing();
615
- }
616
- // Deprecated.
617
- }, {
618
- key: "nationalPrefixTransformRule",
619
- value: function nationalPrefixTransformRule() {
620
- return this.numberingPlan.nationalPrefixTransformRule();
621
- }
622
- // Deprecated.
623
- }, {
624
- key: "leadingDigits",
625
- value: function leadingDigits() {
626
- return this.numberingPlan.leadingDigits();
627
- }
628
- // Deprecated.
629
- }, {
630
- key: "hasTypes",
631
- value: function hasTypes() {
632
- return this.numberingPlan.hasTypes();
633
- }
634
- // Deprecated.
635
- }, {
636
- key: "type",
637
- value: function type(_type) {
638
- return this.numberingPlan.type(_type);
639
- }
640
- // Deprecated.
641
- }, {
642
- key: "ext",
643
- value: function ext() {
644
- return this.numberingPlan.ext();
645
- }
646
- }, {
647
- key: "countryCallingCodes",
648
- value: function countryCallingCodes() {
649
- if (this.v1) return this.metadata.country_phone_code_to_countries;
650
- return this.metadata.country_calling_codes;
651
- }
652
- // Deprecated.
653
- }, {
654
- key: "chooseCountryByCountryCallingCode",
655
- value: function chooseCountryByCountryCallingCode(callingCode) {
656
- return this.selectNumberingPlan(callingCode);
657
- }
658
- }, {
659
- key: "hasSelectedNumberingPlan",
660
- value: function hasSelectedNumberingPlan() {
661
- return this.numberingPlan !== void 0;
662
- }
663
- }]);
664
- })();
665
- var NumberingPlan = /* @__PURE__ */ (function() {
666
- function NumberingPlan2(metadata2, globalMetadataObject) {
667
- _classCallCheck$2(this, NumberingPlan2);
668
- this.globalMetadataObject = globalMetadataObject;
669
- this.metadata = metadata2;
670
- setVersion.call(this, globalMetadataObject.metadata);
671
- }
672
- return _createClass$2(NumberingPlan2, [{
673
- key: "callingCode",
674
- value: function callingCode() {
675
- return this.metadata[0];
676
- }
677
- // Formatting information for regions which share
678
- // a country calling code is contained by only one region
679
- // for performance reasons. For example, for NANPA region
680
- // ("North American Numbering Plan Administration",
681
- // which includes USA, Canada, Cayman Islands, Bahamas, etc)
682
- // it will be contained in the metadata for `US`.
683
- }, {
684
- key: "getDefaultCountryMetadataForRegion",
685
- value: function getDefaultCountryMetadataForRegion() {
686
- return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());
687
- }
688
- // Is always present.
689
- }, {
690
- key: "IDDPrefix",
691
- value: function IDDPrefix() {
692
- if (this.v1 || this.v2) return;
693
- return this.metadata[1];
694
- }
695
- // Is only present when a country supports multiple IDD prefixes.
696
- }, {
697
- key: "defaultIDDPrefix",
698
- value: function defaultIDDPrefix() {
699
- if (this.v1 || this.v2) return;
700
- return this.metadata[12];
701
- }
702
- }, {
703
- key: "nationalNumberPattern",
704
- value: function nationalNumberPattern() {
705
- if (this.v1 || this.v2) return this.metadata[1];
706
- return this.metadata[2];
707
- }
708
- // "possible length" data is always present in Google's metadata.
709
- }, {
710
- key: "possibleLengths",
711
- value: function possibleLengths() {
712
- if (this.v1) return;
713
- return this.metadata[this.v2 ? 2 : 3];
714
- }
715
- }, {
716
- key: "_getFormats",
717
- value: function _getFormats(metadata2) {
718
- return metadata2[this.v1 ? 2 : this.v2 ? 3 : 4];
719
- }
720
- // For countries of the same region (e.g. NANPA)
721
- // formats are all stored in the "main" country for that region.
722
- // E.g. "RU" and "KZ", "US" and "CA".
723
- }, {
724
- key: "formats",
725
- value: function formats() {
726
- var _this = this;
727
- var formats2 = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];
728
- return formats2.map(function(_) {
729
- return new Format(_, _this);
730
- });
731
- }
732
- }, {
733
- key: "nationalPrefix",
734
- value: function nationalPrefix() {
735
- return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];
736
- }
737
- }, {
738
- key: "_getNationalPrefixFormattingRule",
739
- value: function _getNationalPrefixFormattingRule(metadata2) {
740
- return metadata2[this.v1 ? 4 : this.v2 ? 5 : 6];
741
- }
742
- // For countries of the same region (e.g. NANPA)
743
- // national prefix formatting rule is stored in the "main" country for that region.
744
- // E.g. "RU" and "KZ", "US" and "CA".
745
- }, {
746
- key: "nationalPrefixFormattingRule",
747
- value: function nationalPrefixFormattingRule() {
748
- return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());
749
- }
750
- }, {
751
- key: "_nationalPrefixForParsing",
752
- value: function _nationalPrefixForParsing() {
753
- return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];
754
- }
755
- }, {
756
- key: "nationalPrefixForParsing",
757
- value: function nationalPrefixForParsing() {
758
- return this._nationalPrefixForParsing() || this.nationalPrefix();
759
- }
760
- }, {
761
- key: "nationalPrefixTransformRule",
762
- value: function nationalPrefixTransformRule() {
763
- return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];
764
- }
765
- }, {
766
- key: "_getNationalPrefixIsOptionalWhenFormatting",
767
- value: function _getNationalPrefixIsOptionalWhenFormatting() {
768
- return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];
769
- }
770
- // For countries of the same region (e.g. NANPA)
771
- // "national prefix is optional when formatting" flag is
772
- // stored in the "main" country for that region.
773
- // E.g. "RU" and "KZ", "US" and "CA".
774
- }, {
775
- key: "nationalPrefixIsOptionalWhenFormattingInNationalFormat",
776
- value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {
777
- return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());
778
- }
779
- }, {
780
- key: "leadingDigits",
781
- value: function leadingDigits() {
782
- return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];
783
- }
784
- }, {
785
- key: "types",
786
- value: function types() {
787
- return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];
788
- }
789
- }, {
790
- key: "hasTypes",
791
- value: function hasTypes() {
792
- if (this.types() && this.types().length === 0) {
793
- return false;
794
- }
795
- return !!this.types();
796
- }
797
- }, {
798
- key: "type",
799
- value: function type(_type2) {
800
- if (this.hasTypes() && getType(this.types(), _type2)) {
801
- return new Type(getType(this.types(), _type2), this);
802
- }
803
- }
804
- }, {
805
- key: "ext",
806
- value: function ext() {
807
- if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;
808
- return this.metadata[13] || DEFAULT_EXT_PREFIX;
809
- }
810
- }]);
811
- })();
812
- var Format = /* @__PURE__ */ (function() {
813
- function Format2(format, metadata2) {
814
- _classCallCheck$2(this, Format2);
815
- this._format = format;
816
- this.metadata = metadata2;
817
- }
818
- return _createClass$2(Format2, [{
819
- key: "pattern",
820
- value: function pattern() {
821
- return this._format[0];
822
- }
823
- }, {
824
- key: "format",
825
- value: function format() {
826
- return this._format[1];
827
- }
828
- }, {
829
- key: "leadingDigitsPatterns",
830
- value: function leadingDigitsPatterns() {
831
- return this._format[2] || [];
832
- }
833
- }, {
834
- key: "nationalPrefixFormattingRule",
835
- value: function nationalPrefixFormattingRule() {
836
- return this._format[3] || this.metadata.nationalPrefixFormattingRule();
837
- }
838
- }, {
839
- key: "nationalPrefixIsOptionalWhenFormattingInNationalFormat",
840
- value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {
841
- return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();
842
- }
843
- }, {
844
- key: "nationalPrefixIsMandatoryWhenFormattingInNationalFormat",
845
- value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {
846
- return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();
847
- }
848
- // Checks whether national prefix formatting rule contains national prefix.
849
- }, {
850
- key: "usesNationalPrefix",
851
- value: function usesNationalPrefix() {
852
- return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a "dummy" one.
853
- !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) ? true : false;
854
- }
855
- }, {
856
- key: "internationalFormat",
857
- value: function internationalFormat() {
858
- return this._format[5] || this.format();
859
- }
860
- }]);
861
- })();
862
- var FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\(?\$1\)?$/;
863
- var Type = /* @__PURE__ */ (function() {
864
- function Type2(type, metadata2) {
865
- _classCallCheck$2(this, Type2);
866
- this.type = type;
867
- this.metadata = metadata2;
868
- }
869
- return _createClass$2(Type2, [{
870
- key: "pattern",
871
- value: function pattern() {
872
- if (this.metadata.v1) return this.type;
873
- return this.type[0];
874
- }
875
- }, {
876
- key: "possibleLengths",
877
- value: function possibleLengths() {
878
- if (this.metadata.v1) return;
879
- return this.type[1] || this.metadata.possibleLengths();
880
- }
881
- }]);
882
- })();
883
- function getType(types, type) {
884
- switch (type) {
885
- case "FIXED_LINE":
886
- return types[0];
887
- case "MOBILE":
888
- return types[1];
889
- case "TOLL_FREE":
890
- return types[2];
891
- case "PREMIUM_RATE":
892
- return types[3];
893
- case "PERSONAL_NUMBER":
894
- return types[4];
895
- case "VOICEMAIL":
896
- return types[5];
897
- case "UAN":
898
- return types[6];
899
- case "PAGER":
900
- return types[7];
901
- case "VOIP":
902
- return types[8];
903
- case "SHARED_COST":
904
- return types[9];
905
- }
906
- }
907
- function validateMetadata(metadata2) {
908
- if (!metadata2) {
909
- throw new Error("[libphonenumber-js] `metadata` argument not passed. Check your arguments.");
910
- }
911
- if (!isObject(metadata2) || !isObject(metadata2.countries)) {
912
- 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(isObject(metadata2) ? "an object of shape: { " + Object.keys(metadata2).join(", ") + " }" : "a " + typeOf(metadata2) + ": " + metadata2, "."));
913
- }
914
- }
915
- var typeOf = function typeOf2(_) {
916
- return _typeof$2(_);
917
- };
918
- function getCountryCallingCode(country, metadata2) {
919
- metadata2 = new Metadata(metadata2);
920
- if (metadata2.hasCountry(country)) {
921
- return metadata2.selectNumberingPlan(country).countryCallingCode();
922
- }
923
- throw new Error("Unknown country: ".concat(country));
924
- }
925
- function setVersion(metadata2) {
926
- var version = metadata2.version;
927
- if (typeof version === "number") {
928
- this.v1 = version === 1;
929
- this.v2 = version === 2;
930
- this.v3 = version === 3;
931
- this.v4 = version === 4;
932
- } else {
933
- if (!version) {
934
- this.v1 = true;
935
- } else if (compare(version, V3) === -1) {
936
- this.v2 = true;
937
- } else if (compare(version, V4) === -1) {
938
- this.v3 = true;
939
- } else {
940
- this.v4 = true;
941
- }
942
- }
943
- }
944
- function checkNumberLength(nationalNumber, country, metadata2) {
945
- return checkNumberLengthForType(nationalNumber, country, void 0, metadata2);
946
- }
947
- function checkNumberLengthForType(nationalNumber, country, type, metadata2) {
948
- if (country) {
949
- metadata2 = new Metadata(metadata2.metadata);
950
- metadata2.selectNumberingPlan(country);
951
- }
952
- var type_info = metadata2.type(type);
953
- var possible_lengths = type_info && type_info.possibleLengths() || metadata2.possibleLengths();
954
- if (!possible_lengths) {
955
- return "IS_POSSIBLE";
956
- }
957
- var actual_length = nationalNumber.length;
958
- var minimum_length = possible_lengths[0];
959
- if (minimum_length === actual_length) {
960
- return "IS_POSSIBLE";
961
- }
962
- if (minimum_length > actual_length) {
963
- return "TOO_SHORT";
964
- }
965
- if (possible_lengths[possible_lengths.length - 1] < actual_length) {
966
- return "TOO_LONG";
967
- }
968
- return possible_lengths.indexOf(actual_length, 1) >= 0 ? "IS_POSSIBLE" : "INVALID_LENGTH";
969
- }
970
- function isPossiblePhoneNumber(input, options, metadata2) {
971
- if (options === void 0) {
972
- options = {};
973
- }
974
- metadata2 = new Metadata(metadata2);
975
- if (options.v2) {
976
- if (!input.countryCallingCode) {
977
- throw new Error("Invalid phone number object passed");
978
- }
979
- metadata2.selectNumberingPlan(input.countryCallingCode);
980
- } else {
981
- if (!input.phone) {
982
- return false;
983
- }
984
- if (input.country) {
985
- if (!metadata2.hasCountry(input.country)) {
986
- throw new Error("Unknown country: ".concat(input.country));
987
- }
988
- metadata2.selectNumberingPlan(input.country);
989
- } else {
990
- if (!input.countryCallingCode) {
991
- throw new Error("Invalid phone number object passed");
992
- }
993
- metadata2.selectNumberingPlan(input.countryCallingCode);
994
- }
995
- }
996
- if (metadata2.possibleLengths()) {
997
- return isPossibleNumber(input.phone || input.nationalNumber, input.country, metadata2);
998
- } else {
999
- if (input.countryCallingCode && metadata2.isNonGeographicCallingCode(input.countryCallingCode)) {
1000
- return true;
1001
- } else {
1002
- throw new Error('Missing "possibleLengths" in metadata. Perhaps the metadata has been generated before v1.0.18.');
1003
- }
1004
- }
1005
- }
1006
- function isPossibleNumber(nationalNumber, country, metadata2) {
1007
- switch (checkNumberLength(nationalNumber, country, metadata2)) {
1008
- case "IS_POSSIBLE":
1009
- return true;
1010
- // This library ignores "local-only" phone numbers (for simplicity).
1011
- // See the readme for more info on what are "local-only" phone numbers.
1012
- // case 'IS_POSSIBLE_LOCAL_ONLY':
1013
- // return !isInternational
1014
- default:
1015
- return false;
1016
- }
1017
- }
1018
- function matchesEntirely(text, regularExpressionText) {
1019
- text = text || "";
1020
- return new RegExp("^(?:" + regularExpressionText + ")$").test(text);
1021
- }
1022
- function _createForOfIteratorHelperLoose$2(r, e) {
1023
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
1024
- if (t) return (t = t.call(r)).next.bind(t);
1025
- if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(r)) || e) {
1026
- t && (r = t);
1027
- var o = 0;
1028
- return function() {
1029
- return o >= r.length ? { done: true } : { done: false, value: r[o++] };
1030
- };
1031
- }
1032
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1033
- }
1034
- function _unsupportedIterableToArray$2(r, a) {
1035
- if (r) {
1036
- if ("string" == typeof r) return _arrayLikeToArray$2(r, a);
1037
- var t = {}.toString.call(r).slice(8, -1);
1038
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$2(r, a) : void 0;
1039
- }
1040
- }
1041
- function _arrayLikeToArray$2(r, a) {
1042
- (null == a || a > r.length) && (a = r.length);
1043
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
1044
- return n;
1045
- }
1046
- var NON_FIXED_LINE_PHONE_TYPES = ["MOBILE", "PREMIUM_RATE", "TOLL_FREE", "SHARED_COST", "VOIP", "PERSONAL_NUMBER", "PAGER", "UAN", "VOICEMAIL"];
1047
- function getNumberType(input, options, metadata2) {
1048
- options = options || {};
1049
- if (!input.country && !input.countryCallingCode) {
1050
- return;
1051
- }
1052
- metadata2 = new Metadata(metadata2);
1053
- metadata2.selectNumberingPlan(input.country, input.countryCallingCode);
1054
- var nationalNumber = options.v2 ? input.nationalNumber : input.phone;
1055
- if (!matchesEntirely(nationalNumber, metadata2.nationalNumberPattern())) {
1056
- return;
1057
- }
1058
- if (isNumberTypeEqualTo(nationalNumber, "FIXED_LINE", metadata2)) {
1059
- if (metadata2.type("MOBILE") && metadata2.type("MOBILE").pattern() === "") {
1060
- return "FIXED_LINE_OR_MOBILE";
1061
- }
1062
- if (!metadata2.type("MOBILE")) {
1063
- return "FIXED_LINE_OR_MOBILE";
1064
- }
1065
- if (isNumberTypeEqualTo(nationalNumber, "MOBILE", metadata2)) {
1066
- return "FIXED_LINE_OR_MOBILE";
1067
- }
1068
- return "FIXED_LINE";
1069
- }
1070
- for (var _iterator = _createForOfIteratorHelperLoose$2(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done; ) {
1071
- var type = _step.value;
1072
- if (isNumberTypeEqualTo(nationalNumber, type, metadata2)) {
1073
- return type;
1074
- }
1075
- }
1076
- }
1077
- function isNumberTypeEqualTo(nationalNumber, type, metadata2) {
1078
- type = metadata2.type(type);
1079
- if (!type || !type.pattern()) {
1080
- return false;
1081
- }
1082
- if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {
1083
- return false;
1084
- }
1085
- return matchesEntirely(nationalNumber, type.pattern());
1086
- }
1087
- function isValidNumber$2(input, options, metadata2) {
1088
- options = options || {};
1089
- metadata2 = new Metadata(metadata2);
1090
- metadata2.selectNumberingPlan(input.country, input.countryCallingCode);
1091
- if (metadata2.hasTypes()) {
1092
- return getNumberType(input, options, metadata2.metadata) !== void 0;
1093
- }
1094
- var nationalNumber = options.v2 ? input.nationalNumber : input.phone;
1095
- return matchesEntirely(nationalNumber, metadata2.nationalNumberPattern());
1096
- }
1097
- function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata2) {
1098
- var _metadata = new Metadata(metadata2);
1099
- var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);
1100
- if (!possibleCountries) {
1101
- return [];
1102
- }
1103
- return possibleCountries.filter(function(country) {
1104
- return couldNationalNumberBelongToCountry(nationalNumber, country, metadata2);
1105
- });
1106
- }
1107
- function couldNationalNumberBelongToCountry(nationalNumber, country, metadata2) {
1108
- var _metadata = new Metadata(metadata2);
1109
- _metadata.selectNumberingPlan(country);
1110
- if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {
1111
- return true;
1112
- }
1113
- return false;
1114
- }
1115
- var MIN_LENGTH_FOR_NSN = 2;
1116
- var MAX_LENGTH_FOR_NSN = 17;
1117
- var MAX_LENGTH_COUNTRY_CODE = 3;
1118
- var VALID_DIGITS = "0-90-9٠-٩۰-۹";
1119
- var DASHES = "-‐-―−ー-";
1120
- var SLASHES = "//";
1121
- var DOTS = "..";
1122
- var WHITESPACE = "  ­​⁠ ";
1123
- var BRACKETS = "()()[]\\[\\]";
1124
- var TILDES = "~⁓∼~";
1125
- var VALID_PUNCTUATION = "".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);
1126
- var PLUS_CHARS = "++";
1127
- var CAPTURING_DIGIT_PATTERN = new RegExp("([" + VALID_DIGITS + "])");
1128
- function stripIddPrefix(number, country, callingCode, metadata2) {
1129
- if (!country) {
1130
- return;
1131
- }
1132
- var countryMetadata = new Metadata(metadata2);
1133
- countryMetadata.selectNumberingPlan(country, callingCode);
1134
- var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());
1135
- if (number.search(IDDPrefixPattern) !== 0) {
1136
- return;
1137
- }
1138
- number = number.slice(number.match(IDDPrefixPattern)[0].length);
1139
- var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);
1140
- if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {
1141
- if (matchedGroups[1] === "0") {
1142
- return;
1143
- }
1144
- }
1145
- return number;
1146
- }
1147
- function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata2) {
1148
- if (number && metadata2.numberingPlan.nationalPrefixForParsing()) {
1149
- var prefixPattern = new RegExp("^(?:" + metadata2.numberingPlan.nationalPrefixForParsing() + ")");
1150
- var prefixMatch = prefixPattern.exec(number);
1151
- if (prefixMatch) {
1152
- var nationalNumber;
1153
- var carrierCode;
1154
- var capturedGroupsCount = prefixMatch.length - 1;
1155
- var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];
1156
- if (metadata2.nationalPrefixTransformRule() && hasCapturedGroups) {
1157
- nationalNumber = number.replace(prefixPattern, metadata2.nationalPrefixTransformRule());
1158
- if (capturedGroupsCount > 1) {
1159
- carrierCode = prefixMatch[1];
1160
- }
1161
- } else {
1162
- var prefixBeforeNationalNumber = prefixMatch[0];
1163
- nationalNumber = number.slice(prefixBeforeNationalNumber.length);
1164
- if (hasCapturedGroups) {
1165
- carrierCode = prefixMatch[1];
1166
- }
1167
- }
1168
- var nationalPrefix;
1169
- if (hasCapturedGroups) {
1170
- var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);
1171
- var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup);
1172
- if (possibleNationalPrefix === metadata2.numberingPlan.nationalPrefix()) {
1173
- nationalPrefix = metadata2.numberingPlan.nationalPrefix();
1174
- }
1175
- } else {
1176
- nationalPrefix = prefixMatch[0];
1177
- }
1178
- return {
1179
- nationalNumber,
1180
- nationalPrefix,
1181
- carrierCode
1182
- };
1183
- }
1184
- }
1185
- return {
1186
- nationalNumber: number
1187
- };
1188
- }
1189
- function _createForOfIteratorHelperLoose$1(r, e) {
1190
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
1191
- if (t) return (t = t.call(r)).next.bind(t);
1192
- if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e) {
1193
- t && (r = t);
1194
- var o = 0;
1195
- return function() {
1196
- return o >= r.length ? { done: true } : { done: false, value: r[o++] };
1197
- };
1198
- }
1199
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1200
- }
1201
- function _unsupportedIterableToArray$1(r, a) {
1202
- if (r) {
1203
- if ("string" == typeof r) return _arrayLikeToArray$1(r, a);
1204
- var t = {}.toString.call(r).slice(8, -1);
1205
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0;
1206
- }
1207
- }
1208
- function _arrayLikeToArray$1(r, a) {
1209
- (null == a || a > r.length) && (a = r.length);
1210
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
1211
- return n;
1212
- }
1213
- function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
1214
- var countries = _ref.countries, metadata2 = _ref.metadata;
1215
- metadata2 = new Metadata(metadata2);
1216
- for (var _iterator = _createForOfIteratorHelperLoose$1(countries), _step; !(_step = _iterator()).done; ) {
1217
- var country = _step.value;
1218
- metadata2.selectNumberingPlan(country);
1219
- if (metadata2.leadingDigits()) {
1220
- if (nationalPhoneNumber && nationalPhoneNumber.search(metadata2.leadingDigits()) === 0) {
1221
- return country;
1222
- }
1223
- } else if (getNumberType({
1224
- phone: nationalPhoneNumber,
1225
- country
1226
- }, void 0, metadata2.metadata)) {
1227
- return country;
1228
- }
1229
- }
1230
- }
1231
- function getCountryByCallingCode(callingCode, _ref) {
1232
- var nationalPhoneNumber = _ref.nationalNumber, metadata2 = _ref.metadata;
1233
- var possibleCountries = metadata2.getCountryCodesForCallingCode(callingCode);
1234
- if (!possibleCountries) {
1235
- return;
1236
- }
1237
- if (possibleCountries.length === 1) {
1238
- return possibleCountries[0];
1239
- }
1240
- return getCountryByNationalNumber(nationalPhoneNumber, {
1241
- countries: possibleCountries,
1242
- metadata: metadata2.metadata
1243
- });
1244
- }
1245
- function extractNationalNumber(number, country, metadata2) {
1246
- var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata2), carrierCode = _extractNationalNumbe.carrierCode, nationalNumber = _extractNationalNumbe.nationalNumber;
1247
- if (nationalNumber !== number) {
1248
- if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata2)) {
1249
- return {
1250
- nationalNumber: number
1251
- };
1252
- }
1253
- if (metadata2.numberingPlan.possibleLengths()) {
1254
- if (!country) {
1255
- country = getCountryByCallingCode(metadata2.numberingPlan.callingCode(), {
1256
- nationalNumber,
1257
- metadata: metadata2
1258
- });
1259
- }
1260
- if (!isPossibleIncompleteNationalNumber(nationalNumber, country, metadata2)) {
1261
- return {
1262
- nationalNumber: number
1263
- };
1264
- }
1265
- }
1266
- }
1267
- return {
1268
- nationalNumber,
1269
- carrierCode
1270
- };
1271
- }
1272
- function shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata2) {
1273
- if (matchesEntirely(nationalNumberBefore, metadata2.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata2.nationalNumberPattern())) {
1274
- return false;
1275
- }
1276
- return true;
1277
- }
1278
- function isPossibleIncompleteNationalNumber(nationalNumber, country, metadata2) {
1279
- switch (checkNumberLength(nationalNumber, country, metadata2)) {
1280
- case "TOO_SHORT":
1281
- case "INVALID_LENGTH":
1282
- return false;
1283
- default:
1284
- return true;
1285
- }
1286
- }
1287
- function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, defaultCountry, defaultCallingCode, metadata2) {
1288
- var countryCallingCode = defaultCountry ? getCountryCallingCode(defaultCountry, metadata2) : defaultCallingCode;
1289
- if (number.indexOf(countryCallingCode) === 0) {
1290
- metadata2 = new Metadata(metadata2);
1291
- metadata2.selectNumberingPlan(defaultCountry, countryCallingCode);
1292
- var possibleShorterNumber = number.slice(countryCallingCode.length);
1293
- var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, country, metadata2), possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;
1294
- var _extractNationalNumbe2 = extractNationalNumber(number, country, metadata2), nationalNumber = _extractNationalNumbe2.nationalNumber;
1295
- if (!matchesEntirely(nationalNumber, metadata2.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata2.nationalNumberPattern()) || checkNumberLength(nationalNumber, country, metadata2) === "TOO_LONG") {
1296
- return {
1297
- countryCallingCode,
1298
- number: possibleShorterNumber
1299
- };
1300
- }
1301
- }
1302
- return {
1303
- number
1304
- };
1305
- }
1306
- function extractCountryCallingCode(number, country, defaultCountry, defaultCallingCode, metadata2) {
1307
- if (!number) {
1308
- return {};
1309
- }
1310
- var isNumberWithIddPrefix;
1311
- if (number[0] !== "+") {
1312
- var numberWithoutIDD = stripIddPrefix(number, defaultCountry, defaultCallingCode, metadata2);
1313
- if (numberWithoutIDD && numberWithoutIDD !== number) {
1314
- isNumberWithIddPrefix = true;
1315
- number = "+" + numberWithoutIDD;
1316
- } else {
1317
- if (defaultCountry || defaultCallingCode) {
1318
- var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, defaultCountry, defaultCallingCode, metadata2), countryCallingCode = _extractCountryCallin.countryCallingCode, shorterNumber = _extractCountryCallin.number;
1319
- if (countryCallingCode) {
1320
- return {
1321
- countryCallingCodeSource: "FROM_NUMBER_WITHOUT_PLUS_SIGN",
1322
- countryCallingCode,
1323
- number: shorterNumber
1324
- };
1325
- }
1326
- }
1327
- return {
1328
- // No need to set it to `UNSPECIFIED`. It can be just `undefined`.
1329
- // countryCallingCodeSource: 'UNSPECIFIED',
1330
- number
1331
- };
1332
- }
1333
- }
1334
- if (number[1] === "0") {
1335
- return {};
1336
- }
1337
- metadata2 = new Metadata(metadata2);
1338
- var i = 2;
1339
- while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {
1340
- var _countryCallingCode = number.slice(1, i);
1341
- if (metadata2.hasCallingCode(_countryCallingCode)) {
1342
- metadata2.selectNumberingPlan(_countryCallingCode);
1343
- return {
1344
- countryCallingCodeSource: isNumberWithIddPrefix ? "FROM_NUMBER_WITH_IDD" : "FROM_NUMBER_WITH_PLUS_SIGN",
1345
- countryCallingCode: _countryCallingCode,
1346
- number: number.slice(i)
1347
- };
1348
- }
1349
- i++;
1350
- }
1351
- return {};
1352
- }
1353
- function applyInternationalSeparatorStyle(formattedNumber) {
1354
- return formattedNumber.replace(new RegExp("[".concat(VALID_PUNCTUATION, "]+"), "g"), " ").trim();
1355
- }
1356
- var FIRST_GROUP_PATTERN = /(\$\d)/;
1357
- function formatNationalNumberUsingFormat(number, format, _ref) {
1358
- var useInternationalFormat = _ref.useInternationalFormat, withNationalPrefix = _ref.withNationalPrefix;
1359
- var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : (
1360
- // This library doesn't use `domestic_carrier_code_formatting_rule`,
1361
- // because that one is only used when formatting phone numbers
1362
- // for dialing from a mobile phone, and this is not a dialing library.
1363
- // carrierCode && format.domesticCarrierCodeFormattingRule()
1364
- // // First, replace the $CC in the formatting rule with the desired carrier code.
1365
- // // Then, replace the $FG in the formatting rule with the first group
1366
- // // and the carrier code combined in the appropriate way.
1367
- // ? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))
1368
- // : (
1369
- // withNationalPrefix && format.nationalPrefixFormattingRule()
1370
- // ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())
1371
- // : format.format()
1372
- // )
1373
- withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format()
1374
- ));
1375
- if (useInternationalFormat) {
1376
- return applyInternationalSeparatorStyle(formattedNumber);
1377
- }
1378
- return formattedNumber;
1379
- }
1380
- var SINGLE_IDD_PREFIX_REG_EXP = /^[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?$/;
1381
- function getIddPrefix(country, callingCode, metadata2) {
1382
- var countryMetadata = new Metadata(metadata2);
1383
- countryMetadata.selectNumberingPlan(country, callingCode);
1384
- if (countryMetadata.defaultIDDPrefix()) {
1385
- return countryMetadata.defaultIDDPrefix();
1386
- }
1387
- if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {
1388
- return countryMetadata.IDDPrefix();
1389
- }
1390
- }
1391
- var RFC3966_EXTN_PREFIX = ";ext=";
1392
- var getExtensionDigitsPattern = function getExtensionDigitsPattern2(maxLength) {
1393
- return "([".concat(VALID_DIGITS, "]{1,").concat(maxLength, "})");
1394
- };
1395
- function createExtensionPattern(purpose) {
1396
- var extLimitAfterExplicitLabel = "20";
1397
- var extLimitAfterLikelyLabel = "15";
1398
- var extLimitAfterAmbiguousChar = "9";
1399
- var extLimitWhenNotSure = "6";
1400
- var possibleSeparatorsBetweenNumberAndExtLabel = "[  \\t,]*";
1401
- var possibleCharsAfterExtLabel = "[:\\..]?[  \\t,-]*";
1402
- var optionalExtnSuffix = "#?";
1403
- var explicitExtLabels = "(?:e?xt(?:ensi(?:ó?|ó))?n?|e?xtn?|доб|anexo)";
1404
- var ambiguousExtLabels = "(?:[xx##~~]|int|int)";
1405
- var ambiguousSeparator = "[- ]+";
1406
- var possibleSeparatorsNumberExtLabelNoComma = "[  \\t]*";
1407
- var autoDiallingAndExtLabelsFound = "(?:,{2}|;)";
1408
- var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);
1409
- var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;
1410
- var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;
1411
- var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + "#";
1412
- var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;
1413
- var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + "(?:,)+" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;
1414
- return rfcExtn + "|" + explicitExtn + "|" + ambiguousExtn + "|" + americanStyleExtnWithSuffix + "|" + autoDiallingExtn + "|" + onlyCommasExtn;
1415
- }
1416
- var MIN_LENGTH_PHONE_NUMBER_PATTERN = "[" + VALID_DIGITS + "]{" + MIN_LENGTH_FOR_NSN + "}";
1417
- var VALID_PHONE_NUMBER = "[" + PLUS_CHARS + "]{0,1}(?:[" + VALID_PUNCTUATION + "]*[" + VALID_DIGITS + "]){3,}[" + VALID_PUNCTUATION + VALID_DIGITS + "]*";
1418
- var VALID_PHONE_NUMBER_START_REG_EXP = new RegExp("^[" + PLUS_CHARS + "]{0,1}(?:[" + VALID_PUNCTUATION + "]*[" + VALID_DIGITS + "]){1,2}$", "i");
1419
- var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions
1420
- "(?:" + createExtensionPattern() + ")?";
1421
- var VALID_PHONE_NUMBER_PATTERN = new RegExp(
1422
- // Either a short two-digit-only phone number
1423
- "^" + MIN_LENGTH_PHONE_NUMBER_PATTERN + "$|^" + VALID_PHONE_NUMBER_WITH_EXTENSION + "$",
1424
- "i"
1425
- );
1426
- function isViablePhoneNumber(number) {
1427
- return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);
1428
- }
1429
- function isViablePhoneNumberStart(number) {
1430
- return VALID_PHONE_NUMBER_START_REG_EXP.test(number);
1431
- }
1432
- function formatRFC3966(_ref) {
1433
- var number = _ref.number, ext = _ref.ext;
1434
- if (!number) {
1435
- return "";
1436
- }
1437
- if (number[0] !== "+") {
1438
- throw new Error('"formatRFC3966()" expects "number" to be in E.164 format.');
1439
- }
1440
- return "tel:".concat(number).concat(ext ? ";ext=" + ext : "");
1441
- }
1442
- var DEFAULT_OPTIONS = {
1443
- formatExtension: function formatExtension(formattedNumber, extension, metadata2) {
1444
- return "".concat(formattedNumber).concat(metadata2.ext()).concat(extension);
1445
- }
1446
- };
1447
- function formatNumber(input, format, options, metadata2) {
1448
- if (options) {
1449
- options = merge({}, DEFAULT_OPTIONS, options);
1450
- } else {
1451
- options = DEFAULT_OPTIONS;
1452
- }
1453
- metadata2 = new Metadata(metadata2);
1454
- if (input.country && input.country !== "001") {
1455
- if (!metadata2.hasCountry(input.country)) {
1456
- throw new Error("Unknown country: ".concat(input.country));
1457
- }
1458
- metadata2.selectNumberingPlan(input.country);
1459
- } else if (input.countryCallingCode) {
1460
- metadata2.selectNumberingPlan(input.countryCallingCode);
1461
- } else return input.phone || "";
1462
- var countryCallingCode = metadata2.countryCallingCode();
1463
- var nationalNumber = options.v2 ? input.nationalNumber : input.phone;
1464
- var number;
1465
- switch (format) {
1466
- case "NATIONAL":
1467
- if (!nationalNumber) {
1468
- return "";
1469
- }
1470
- number = formatNationalNumber(nationalNumber, input.carrierCode, "NATIONAL", metadata2, options);
1471
- return addExtension(number, input.ext, metadata2, options.formatExtension);
1472
- case "INTERNATIONAL":
1473
- if (!nationalNumber) {
1474
- return "+".concat(countryCallingCode);
1475
- }
1476
- number = formatNationalNumber(nationalNumber, null, "INTERNATIONAL", metadata2, options);
1477
- number = "+".concat(countryCallingCode, " ").concat(number);
1478
- return addExtension(number, input.ext, metadata2, options.formatExtension);
1479
- case "E.164":
1480
- return "+".concat(countryCallingCode).concat(nationalNumber);
1481
- case "RFC3966":
1482
- return formatRFC3966({
1483
- number: "+".concat(countryCallingCode).concat(nationalNumber),
1484
- ext: input.ext
1485
- });
1486
- // For reference, here's Google's IDD formatter:
1487
- // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546
1488
- // Not saying that this IDD formatter replicates it 1:1, but it seems to work.
1489
- // Who would even need to format phone numbers in IDD format anyway?
1490
- case "IDD":
1491
- if (!options.fromCountry) {
1492
- return;
1493
- }
1494
- var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata2);
1495
- return addExtension(formattedNumber, input.ext, metadata2, options.formatExtension);
1496
- default:
1497
- throw new Error('Unknown "format" argument passed to "formatNumber()": "'.concat(format, '"'));
1498
- }
1499
- }
1500
- function formatNationalNumber(number, carrierCode, formatAs, metadata2, options) {
1501
- var format = chooseFormatForNumber(metadata2.formats(), number);
1502
- if (!format) {
1503
- return number;
1504
- }
1505
- return formatNationalNumberUsingFormat(number, format, {
1506
- useInternationalFormat: formatAs === "INTERNATIONAL",
1507
- withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true
1508
- });
1509
- }
1510
- function chooseFormatForNumber(availableFormats, nationalNumber) {
1511
- return pickFirstMatchingElement(availableFormats, function(format) {
1512
- if (format.leadingDigitsPatterns().length > 0) {
1513
- var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1];
1514
- if (nationalNumber.search(lastLeadingDigitsPattern) !== 0) {
1515
- return false;
1516
- }
1517
- }
1518
- return matchesEntirely(nationalNumber, format.pattern());
1519
- });
1520
- }
1521
- function addExtension(formattedNumber, ext, metadata2, formatExtension2) {
1522
- return ext ? formatExtension2(formattedNumber, ext, metadata2) : formattedNumber;
1523
- }
1524
- function formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata2) {
1525
- var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata2.metadata);
1526
- if (fromCountryCallingCode === countryCallingCode) {
1527
- var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, "NATIONAL", metadata2);
1528
- if (countryCallingCode === "1") {
1529
- return countryCallingCode + " " + formattedNumber;
1530
- }
1531
- return formattedNumber;
1532
- }
1533
- var iddPrefix = getIddPrefix(fromCountry, void 0, metadata2.metadata);
1534
- if (iddPrefix) {
1535
- return "".concat(iddPrefix, " ").concat(countryCallingCode, " ").concat(formatNationalNumber(nationalNumber, null, "INTERNATIONAL", metadata2));
1536
- }
1537
- }
1538
- function merge() {
1539
- var i = 1;
1540
- for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {
1541
- objects[_key] = arguments[_key];
1542
- }
1543
- while (i < objects.length) {
1544
- if (objects[i]) {
1545
- for (var key in objects[i]) {
1546
- objects[0][key] = objects[i][key];
1547
- }
1548
- }
1549
- i++;
1550
- }
1551
- return objects[0];
1552
- }
1553
- function pickFirstMatchingElement(elements, testFunction) {
1554
- var i = 0;
1555
- while (i < elements.length) {
1556
- if (testFunction(elements[i])) {
1557
- return elements[i];
1558
- }
1559
- i++;
1560
- }
1561
- }
1562
- function _typeof$1(o) {
1563
- "@babel/helpers - typeof";
1564
- return _typeof$1 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
1565
- return typeof o2;
1566
- } : function(o2) {
1567
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
1568
- }, _typeof$1(o);
1569
- }
1570
- function ownKeys(e, r) {
1571
- var t = Object.keys(e);
1572
- if (Object.getOwnPropertySymbols) {
1573
- var o = Object.getOwnPropertySymbols(e);
1574
- r && (o = o.filter(function(r2) {
1575
- return Object.getOwnPropertyDescriptor(e, r2).enumerable;
1576
- })), t.push.apply(t, o);
1577
- }
1578
- return t;
1579
- }
1580
- function _objectSpread(e) {
1581
- for (var r = 1; r < arguments.length; r++) {
1582
- var t = null != arguments[r] ? arguments[r] : {};
1583
- r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
1584
- _defineProperty(e, r2, t[r2]);
1585
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
1586
- Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
1587
- });
1588
- }
1589
- return e;
1590
- }
1591
- function _defineProperty(e, r, t) {
1592
- return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
1593
- }
1594
- function _classCallCheck$1(a, n) {
1595
- if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
1596
- }
1597
- function _defineProperties(e, r) {
1598
- for (var t = 0; t < r.length; t++) {
1599
- var o = r[t];
1600
- o.enumerable = o.enumerable || false, o.configurable = true, "value" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);
1601
- }
1602
- }
1603
- function _createClass$1(e, r, t) {
1604
- return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", { writable: false }), e;
1605
- }
1606
- function _toPropertyKey(t) {
1607
- var i = _toPrimitive(t, "string");
1608
- return "symbol" == _typeof$1(i) ? i : i + "";
1609
- }
1610
- function _toPrimitive(t, r) {
1611
- if ("object" != _typeof$1(t) || !t) return t;
1612
- var e = t[Symbol.toPrimitive];
1613
- if (void 0 !== e) {
1614
- var i = e.call(t, r);
1615
- if ("object" != _typeof$1(i)) return i;
1616
- throw new TypeError("@@toPrimitive must return a primitive value.");
1617
- }
1618
- return String(t);
1619
- }
1620
- var PhoneNumber = /* @__PURE__ */ (function() {
1621
- function PhoneNumber2(countryOrCountryCallingCode, nationalNumber, metadata2) {
1622
- _classCallCheck$1(this, PhoneNumber2);
1623
- if (!countryOrCountryCallingCode) {
1624
- throw new TypeError("First argument is required");
1625
- }
1626
- if (typeof countryOrCountryCallingCode !== "string") {
1627
- throw new TypeError("First argument must be a string");
1628
- }
1629
- if (countryOrCountryCallingCode[0] === "+" && !nationalNumber) {
1630
- throw new TypeError("`metadata` argument not passed");
1631
- }
1632
- if (isObject(nationalNumber) && isObject(nationalNumber.countries)) {
1633
- metadata2 = nationalNumber;
1634
- var e164Number = countryOrCountryCallingCode;
1635
- if (!E164_NUMBER_REGEXP.test(e164Number)) {
1636
- throw new Error('Invalid `number` argument passed: must consist of a "+" followed by digits');
1637
- }
1638
- var _extractCountryCallin = extractCountryCallingCode(e164Number, void 0, void 0, void 0, metadata2), _countryCallingCode = _extractCountryCallin.countryCallingCode, number = _extractCountryCallin.number;
1639
- nationalNumber = number;
1640
- countryOrCountryCallingCode = _countryCallingCode;
1641
- if (!nationalNumber) {
1642
- throw new Error("Invalid `number` argument passed: too short");
1643
- }
1644
- }
1645
- if (!nationalNumber) {
1646
- throw new TypeError("`nationalNumber` argument is required");
1647
- }
1648
- if (typeof nationalNumber !== "string") {
1649
- throw new TypeError("`nationalNumber` argument must be a string");
1650
- }
1651
- validateMetadata(metadata2);
1652
- var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata2), country = _getCountryAndCountry.country, countryCallingCode = _getCountryAndCountry.countryCallingCode;
1653
- this.country = country;
1654
- this.countryCallingCode = countryCallingCode;
1655
- this.nationalNumber = nationalNumber;
1656
- this.number = "+" + this.countryCallingCode + this.nationalNumber;
1657
- this.getMetadata = function() {
1658
- return metadata2;
1659
- };
1660
- }
1661
- return _createClass$1(PhoneNumber2, [{
1662
- key: "setExt",
1663
- value: function setExt(ext) {
1664
- this.ext = ext;
1665
- }
1666
- }, {
1667
- key: "getPossibleCountries",
1668
- value: function getPossibleCountries() {
1669
- if (this.country) {
1670
- return [this.country];
1671
- }
1672
- return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());
1673
- }
1674
- }, {
1675
- key: "isPossible",
1676
- value: function isPossible() {
1677
- return isPossiblePhoneNumber(this, {
1678
- v2: true
1679
- }, this.getMetadata());
1680
- }
1681
- }, {
1682
- key: "isValid",
1683
- value: function isValid() {
1684
- return isValidNumber$2(this, {
1685
- v2: true
1686
- }, this.getMetadata());
1687
- }
1688
- }, {
1689
- key: "isNonGeographic",
1690
- value: function isNonGeographic() {
1691
- var metadata2 = new Metadata(this.getMetadata());
1692
- return metadata2.isNonGeographicCallingCode(this.countryCallingCode);
1693
- }
1694
- }, {
1695
- key: "isEqual",
1696
- value: function isEqual(phoneNumber) {
1697
- return this.number === phoneNumber.number && this.ext === phoneNumber.ext;
1698
- }
1699
- // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,
1700
- // but later it was found out that it doesn't include the possible `TOO_SHORT` result
1701
- // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,
1702
- // so eventually I simply commented out this method from the `PhoneNumber` class
1703
- // and just left the `validatePhoneNumberLength()` function, even though that one would require
1704
- // and additional step to also validate the actual country / calling code of the phone number.
1705
- // validateLength() {
1706
- // const metadata = new Metadata(this.getMetadata())
1707
- // metadata.selectNumberingPlan(this.countryCallingCode)
1708
- // const result = checkNumberLength(this.nationalNumber, metadata)
1709
- // if (result !== 'IS_POSSIBLE') {
1710
- // return result
1711
- // }
1712
- // }
1713
- }, {
1714
- key: "getType",
1715
- value: function getType2() {
1716
- return getNumberType(this, {
1717
- v2: true
1718
- }, this.getMetadata());
1719
- }
1720
- }, {
1721
- key: "format",
1722
- value: function format(_format, options) {
1723
- return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {
1724
- v2: true
1725
- }) : {
1726
- v2: true
1727
- }, this.getMetadata());
1728
- }
1729
- }, {
1730
- key: "formatNational",
1731
- value: function formatNational(options) {
1732
- return this.format("NATIONAL", options);
1733
- }
1734
- }, {
1735
- key: "formatInternational",
1736
- value: function formatInternational(options) {
1737
- return this.format("INTERNATIONAL", options);
1738
- }
1739
- }, {
1740
- key: "getURI",
1741
- value: function getURI(options) {
1742
- return this.format("RFC3966", options);
1743
- }
1744
- }]);
1745
- })();
1746
- var isCountryCode = function isCountryCode2(value) {
1747
- return /^[A-Z]{2}$/.test(value);
1748
- };
1749
- function getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {
1750
- var country;
1751
- var countryCallingCode;
1752
- var metadata2 = new Metadata(metadataJson);
1753
- if (isCountryCode(countryOrCountryCallingCode)) {
1754
- country = countryOrCountryCallingCode;
1755
- metadata2.selectNumberingPlan(country);
1756
- countryCallingCode = metadata2.countryCallingCode();
1757
- } else {
1758
- countryCallingCode = countryOrCountryCallingCode;
1759
- }
1760
- return {
1761
- country,
1762
- countryCallingCode
1763
- };
1764
- }
1765
- var E164_NUMBER_REGEXP = /^\+\d+$/;
1766
- function _typeof(o) {
1767
- "@babel/helpers - typeof";
1768
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
1769
- return typeof o2;
1770
- } : function(o2) {
1771
- return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
1772
- }, _typeof(o);
1773
- }
1774
- function _createClass(e, r, t) {
1775
- return Object.defineProperty(e, "prototype", { writable: false }), e;
1776
- }
1777
- function _classCallCheck(a, n) {
1778
- if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
1779
- }
1780
- function _callSuper(t, o, e) {
1781
- return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
1782
- }
1783
- function _possibleConstructorReturn(t, e) {
1784
- if (e && ("object" == _typeof(e) || "function" == typeof e)) return e;
1785
- if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
1786
- return _assertThisInitialized(t);
1787
- }
1788
- function _assertThisInitialized(e) {
1789
- if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1790
- return e;
1791
- }
1792
- function _inherits(t, e) {
1793
- if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
1794
- t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: true, configurable: true } }), Object.defineProperty(t, "prototype", { writable: false }), e && _setPrototypeOf(t, e);
1795
- }
1796
- function _wrapNativeSuper(t) {
1797
- var r = "function" == typeof Map ? /* @__PURE__ */ new Map() : void 0;
1798
- return _wrapNativeSuper = function _wrapNativeSuper2(t2) {
1799
- if (null === t2 || !_isNativeFunction(t2)) return t2;
1800
- if ("function" != typeof t2) throw new TypeError("Super expression must either be null or a function");
1801
- if (void 0 !== r) {
1802
- if (r.has(t2)) return r.get(t2);
1803
- r.set(t2, Wrapper);
1804
- }
1805
- function Wrapper() {
1806
- return _construct(t2, arguments, _getPrototypeOf(this).constructor);
1807
- }
1808
- return Wrapper.prototype = Object.create(t2.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }), _setPrototypeOf(Wrapper, t2);
1809
- }, _wrapNativeSuper(t);
1810
- }
1811
- function _construct(t, e, r) {
1812
- if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
1813
- var o = [null];
1814
- o.push.apply(o, e);
1815
- var p = new (t.bind.apply(t, o))();
1816
- return r && _setPrototypeOf(p, r.prototype), p;
1817
- }
1818
- function _isNativeReflectConstruct() {
1819
- try {
1820
- var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
1821
- }));
1822
- } catch (t2) {
1823
- }
1824
- return (_isNativeReflectConstruct = function _isNativeReflectConstruct2() {
1825
- return !!t;
1826
- })();
1827
- }
1828
- function _isNativeFunction(t) {
1829
- try {
1830
- return -1 !== Function.toString.call(t).indexOf("[native code]");
1831
- } catch (n) {
1832
- return "function" == typeof t;
1833
- }
1834
- }
1835
- function _setPrototypeOf(t, e) {
1836
- return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t2, e2) {
1837
- return t2.__proto__ = e2, t2;
1838
- }, _setPrototypeOf(t, e);
1839
- }
1840
- function _getPrototypeOf(t) {
1841
- return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t2) {
1842
- return t2.__proto__ || Object.getPrototypeOf(t2);
1843
- }, _getPrototypeOf(t);
1844
- }
1845
- var ParseError = /* @__PURE__ */ (function(_Error) {
1846
- function ParseError2(code) {
1847
- var _this;
1848
- _classCallCheck(this, ParseError2);
1849
- _this = _callSuper(this, ParseError2, [code]);
1850
- Object.setPrototypeOf(_this, ParseError2.prototype);
1851
- _this.name = _this.constructor.name;
1852
- return _this;
1853
- }
1854
- _inherits(ParseError2, _Error);
1855
- return _createClass(ParseError2);
1856
- })(/* @__PURE__ */ _wrapNativeSuper(Error));
1857
- var EXTN_PATTERN = new RegExp("(?:" + createExtensionPattern() + ")$", "i");
1858
- function extractExtension(number) {
1859
- var start = number.search(EXTN_PATTERN);
1860
- if (start < 0) {
1861
- return {};
1862
- }
1863
- var numberWithoutExtension = number.slice(0, start);
1864
- var matches = number.match(EXTN_PATTERN);
1865
- var i = 1;
1866
- while (i < matches.length) {
1867
- if (matches[i]) {
1868
- return {
1869
- number: numberWithoutExtension,
1870
- ext: matches[i]
1871
- };
1872
- }
1873
- i++;
1874
- }
1875
- }
1876
- var DIGITS = {
1877
- "0": "0",
1878
- "1": "1",
1879
- "2": "2",
1880
- "3": "3",
1881
- "4": "4",
1882
- "5": "5",
1883
- "6": "6",
1884
- "7": "7",
1885
- "8": "8",
1886
- "9": "9",
1887
- "0": "0",
1888
- // Fullwidth digit 0
1889
- "1": "1",
1890
- // Fullwidth digit 1
1891
- "2": "2",
1892
- // Fullwidth digit 2
1893
- "3": "3",
1894
- // Fullwidth digit 3
1895
- "4": "4",
1896
- // Fullwidth digit 4
1897
- "5": "5",
1898
- // Fullwidth digit 5
1899
- "6": "6",
1900
- // Fullwidth digit 6
1901
- "7": "7",
1902
- // Fullwidth digit 7
1903
- "8": "8",
1904
- // Fullwidth digit 8
1905
- "9": "9",
1906
- // Fullwidth digit 9
1907
- "٠": "0",
1908
- // Arabic-indic digit 0
1909
- "١": "1",
1910
- // Arabic-indic digit 1
1911
- "٢": "2",
1912
- // Arabic-indic digit 2
1913
- "٣": "3",
1914
- // Arabic-indic digit 3
1915
- "٤": "4",
1916
- // Arabic-indic digit 4
1917
- "٥": "5",
1918
- // Arabic-indic digit 5
1919
- "٦": "6",
1920
- // Arabic-indic digit 6
1921
- "٧": "7",
1922
- // Arabic-indic digit 7
1923
- "٨": "8",
1924
- // Arabic-indic digit 8
1925
- "٩": "9",
1926
- // Arabic-indic digit 9
1927
- "۰": "0",
1928
- // Eastern-Arabic digit 0
1929
- "۱": "1",
1930
- // Eastern-Arabic digit 1
1931
- "۲": "2",
1932
- // Eastern-Arabic digit 2
1933
- "۳": "3",
1934
- // Eastern-Arabic digit 3
1935
- "۴": "4",
1936
- // Eastern-Arabic digit 4
1937
- "۵": "5",
1938
- // Eastern-Arabic digit 5
1939
- "۶": "6",
1940
- // Eastern-Arabic digit 6
1941
- "۷": "7",
1942
- // Eastern-Arabic digit 7
1943
- "۸": "8",
1944
- // Eastern-Arabic digit 8
1945
- "۹": "9"
1946
- // Eastern-Arabic digit 9
1947
- };
1948
- function parseDigit(character) {
1949
- return DIGITS[character];
1950
- }
1951
- function _createForOfIteratorHelperLoose(r, e) {
1952
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
1953
- if (t) return (t = t.call(r)).next.bind(t);
1954
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e) {
1955
- t && (r = t);
1956
- var o = 0;
1957
- return function() {
1958
- return o >= r.length ? { done: true } : { done: false, value: r[o++] };
1959
- };
1960
- }
1961
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1962
- }
1963
- function _unsupportedIterableToArray(r, a) {
1964
- if (r) {
1965
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
1966
- var t = {}.toString.call(r).slice(8, -1);
1967
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
1968
- }
1969
- }
1970
- function _arrayLikeToArray(r, a) {
1971
- (null == a || a > r.length) && (a = r.length);
1972
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
1973
- return n;
1974
- }
1975
- function parseIncompletePhoneNumber(string) {
1976
- var result2 = "";
1977
- for (var _iterator = _createForOfIteratorHelperLoose(string.split("")), _step; !(_step = _iterator()).done; ) {
1978
- var character = _step.value;
1979
- result2 += parsePhoneNumberCharacter(character, result2) || "";
1980
- }
1981
- return result2;
1982
- }
1983
- function parsePhoneNumberCharacter(character, prevParsedCharacters, eventListener) {
1984
- if (character === "+") {
1985
- if (prevParsedCharacters) {
1986
- return;
1987
- }
1988
- return "+";
1989
- }
1990
- return parseDigit(character);
1991
- }
1992
- var PLUS_SIGN = "+";
1993
- var RFC3966_VISUAL_SEPARATOR_ = "[\\-\\.\\(\\)]?";
1994
- var RFC3966_PHONE_DIGIT_ = "([" + VALID_DIGITS + "]|" + RFC3966_VISUAL_SEPARATOR_ + ")";
1995
- var RFC3966_GLOBAL_NUMBER_DIGITS_ = "^\\" + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + "*[" + VALID_DIGITS + "]" + RFC3966_PHONE_DIGIT_ + "*$";
1996
- var RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, "g");
1997
- var ALPHANUM_ = VALID_DIGITS;
1998
- var RFC3966_DOMAINLABEL_ = "[" + ALPHANUM_ + "]+((\\-)*[" + ALPHANUM_ + "])*";
1999
- var VALID_ALPHA_ = "a-zA-Z";
2000
- var RFC3966_TOPLABEL_ = "[" + VALID_ALPHA_ + "]+((\\-)*[" + ALPHANUM_ + "])*";
2001
- var RFC3966_DOMAINNAME_ = "^(" + RFC3966_DOMAINLABEL_ + "\\.)*" + RFC3966_TOPLABEL_ + "\\.?$";
2002
- var RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, "g");
2003
- var RFC3966_PREFIX_ = "tel:";
2004
- var RFC3966_PHONE_CONTEXT_ = ";phone-context=";
2005
- var RFC3966_ISDN_SUBADDRESS_ = ";isub=";
2006
- function extractPhoneContext(numberToExtractFrom) {
2007
- var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_);
2008
- if (indexOfPhoneContext < 0) {
2009
- return null;
2010
- }
2011
- var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length;
2012
- if (phoneContextStart >= numberToExtractFrom.length) {
2013
- return "";
2014
- }
2015
- var phoneContextEnd = numberToExtractFrom.indexOf(";", phoneContextStart);
2016
- if (phoneContextEnd >= 0) {
2017
- return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);
2018
- } else {
2019
- return numberToExtractFrom.substring(phoneContextStart);
2020
- }
2021
- }
2022
- function isPhoneContextValid(phoneContext) {
2023
- if (phoneContext === null) {
2024
- return true;
2025
- }
2026
- if (phoneContext.length === 0) {
2027
- return false;
2028
- }
2029
- return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);
2030
- }
2031
- function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {
2032
- var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;
2033
- var phoneContext = extractPhoneContext(numberToParse);
2034
- if (!isPhoneContextValid(phoneContext)) {
2035
- throw new ParseError("NOT_A_NUMBER");
2036
- }
2037
- var phoneNumberString;
2038
- if (phoneContext === null) {
2039
- phoneNumberString = extractFormattedPhoneNumber(numberToParse) || "";
2040
- } else {
2041
- phoneNumberString = "";
2042
- if (phoneContext.charAt(0) === PLUS_SIGN) {
2043
- phoneNumberString += phoneContext;
2044
- }
2045
- var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);
2046
- var indexOfNationalNumber;
2047
- if (indexOfRfc3966Prefix >= 0) {
2048
- indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;
2049
- } else {
2050
- indexOfNationalNumber = 0;
2051
- }
2052
- var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);
2053
- phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);
2054
- }
2055
- var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);
2056
- if (indexOfIsdn > 0) {
2057
- phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);
2058
- }
2059
- if (phoneNumberString !== "") {
2060
- return phoneNumberString;
2061
- }
2062
- }
2063
- var MAX_INPUT_STRING_LENGTH = 250;
2064
- var PHONE_NUMBER_START_PATTERN = new RegExp("[" + PLUS_CHARS + VALID_DIGITS + "]");
2065
- var AFTER_PHONE_NUMBER_END_PATTERN = new RegExp("[^" + VALID_DIGITS + "#]+$");
2066
- function parse(text, options, metadata2) {
2067
- options = options || {};
2068
- metadata2 = new Metadata(metadata2);
2069
- if (options.defaultCountry && !metadata2.hasCountry(options.defaultCountry)) {
2070
- if (options.v2) {
2071
- throw new ParseError("INVALID_COUNTRY");
2072
- }
2073
- throw new Error("Unknown country: ".concat(options.defaultCountry));
2074
- }
2075
- var _parseInput = parseInput(text, options.v2, options.extract), formattedPhoneNumber = _parseInput.number, ext = _parseInput.ext, error = _parseInput.error;
2076
- if (!formattedPhoneNumber) {
2077
- if (options.v2) {
2078
- if (error === "TOO_SHORT") {
2079
- throw new ParseError("TOO_SHORT");
2080
- }
2081
- throw new ParseError("NOT_A_NUMBER");
2082
- }
2083
- return {};
2084
- }
2085
- var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata2), country = _parsePhoneNumber.country, nationalNumber = _parsePhoneNumber.nationalNumber, countryCallingCode = _parsePhoneNumber.countryCallingCode, countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource, carrierCode = _parsePhoneNumber.carrierCode;
2086
- if (!metadata2.hasSelectedNumberingPlan()) {
2087
- if (options.v2) {
2088
- throw new ParseError("INVALID_COUNTRY");
2089
- }
2090
- return {};
2091
- }
2092
- if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {
2093
- if (options.v2) {
2094
- throw new ParseError("TOO_SHORT");
2095
- }
2096
- return {};
2097
- }
2098
- if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {
2099
- if (options.v2) {
2100
- throw new ParseError("TOO_LONG");
2101
- }
2102
- return {};
2103
- }
2104
- if (options.v2) {
2105
- var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata2.metadata);
2106
- if (country) {
2107
- phoneNumber.country = country;
2108
- }
2109
- if (carrierCode) {
2110
- phoneNumber.carrierCode = carrierCode;
2111
- }
2112
- if (ext) {
2113
- phoneNumber.ext = ext;
2114
- }
2115
- phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;
2116
- return phoneNumber;
2117
- }
2118
- var valid = (options.extended ? metadata2.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata2.nationalNumberPattern()) : false;
2119
- if (!options.extended) {
2120
- return valid ? result(country, nationalNumber, ext) : {};
2121
- }
2122
- return {
2123
- country,
2124
- countryCallingCode,
2125
- carrierCode,
2126
- valid,
2127
- possible: valid ? true : options.extended === true && metadata2.possibleLengths() && isPossibleNumber(nationalNumber, country, metadata2) ? true : false,
2128
- phone: nationalNumber,
2129
- ext
2130
- };
2131
- }
2132
- function _extractFormattedPhoneNumber(text, extract, throwOnError) {
2133
- if (!text) {
2134
- return;
2135
- }
2136
- if (text.length > MAX_INPUT_STRING_LENGTH) {
2137
- if (throwOnError) {
2138
- throw new ParseError("TOO_LONG");
2139
- }
2140
- return;
2141
- }
2142
- if (extract === false) {
2143
- return text;
2144
- }
2145
- var startsAt = text.search(PHONE_NUMBER_START_PATTERN);
2146
- if (startsAt < 0) {
2147
- return;
2148
- }
2149
- return text.slice(startsAt).replace(AFTER_PHONE_NUMBER_END_PATTERN, "");
2150
- }
2151
- function parseInput(text, v2, extract) {
2152
- var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {
2153
- extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text2) {
2154
- return _extractFormattedPhoneNumber(text2, extract, v2);
2155
- }
2156
- });
2157
- if (!number) {
2158
- return {};
2159
- }
2160
- if (!isViablePhoneNumber(number)) {
2161
- if (isViablePhoneNumberStart(number)) {
2162
- return {
2163
- error: "TOO_SHORT"
2164
- };
2165
- }
2166
- return {};
2167
- }
2168
- var withExtensionStripped = extractExtension(number);
2169
- if (withExtensionStripped.ext) {
2170
- return withExtensionStripped;
2171
- }
2172
- return {
2173
- number
2174
- };
2175
- }
2176
- function result(country, nationalNumber, ext) {
2177
- var result2 = {
2178
- country,
2179
- phone: nationalNumber
2180
- };
2181
- if (ext) {
2182
- result2.ext = ext;
2183
- }
2184
- return result2;
2185
- }
2186
- function parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata2) {
2187
- var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), void 0, defaultCountry, defaultCallingCode, metadata2.metadata), countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource, countryCallingCode = _extractCountryCallin.countryCallingCode, number = _extractCountryCallin.number;
2188
- var country;
2189
- if (countryCallingCode) {
2190
- metadata2.selectNumberingPlan(countryCallingCode);
2191
- } else if (number && (defaultCountry || defaultCallingCode)) {
2192
- metadata2.selectNumberingPlan(defaultCountry, defaultCallingCode);
2193
- if (defaultCountry) {
2194
- country = defaultCountry;
2195
- }
2196
- countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata2.metadata);
2197
- } else return {};
2198
- if (!number) {
2199
- return {
2200
- countryCallingCodeSource,
2201
- countryCallingCode
2202
- };
2203
- }
2204
- var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), country, metadata2), nationalNumber = _extractNationalNumbe.nationalNumber, carrierCode = _extractNationalNumbe.carrierCode;
2205
- var exactCountry = getCountryByCallingCode(countryCallingCode, {
2206
- nationalNumber,
2207
- metadata: metadata2
2208
- });
2209
- if (exactCountry) {
2210
- country = exactCountry;
2211
- if (exactCountry === "001") ;
2212
- else {
2213
- metadata2.selectNumberingPlan(country);
2214
- }
2215
- }
2216
- return {
2217
- country,
2218
- countryCallingCode,
2219
- countryCallingCodeSource,
2220
- nationalNumber,
2221
- carrierCode
2222
- };
2223
- }
2224
- function normalizeArguments(args) {
2225
- var arg_1 = args[0];
2226
- var arg_2 = args[1];
2227
- var arg_3 = args[2];
2228
- var arg_4 = args[3];
2229
- var input;
2230
- var options = {};
2231
- var metadata2;
2232
- if (typeof arg_1 === "string") {
2233
- if (!isObject(arg_2)) {
2234
- if (arg_4) {
2235
- options = arg_3;
2236
- metadata2 = arg_4;
2237
- } else {
2238
- metadata2 = arg_3;
2239
- }
2240
- if (isViablePhoneNumber(arg_1)) {
2241
- input = parse(arg_1, {
2242
- defaultCountry: arg_2
2243
- }, metadata2);
2244
- } else {
2245
- input = {};
2246
- }
2247
- } else {
2248
- if (arg_3) {
2249
- options = arg_2;
2250
- metadata2 = arg_3;
2251
- } else {
2252
- metadata2 = arg_2;
2253
- }
2254
- if (isViablePhoneNumber(arg_1)) {
2255
- input = parse(arg_1, void 0, metadata2);
2256
- } else {
2257
- input = {};
2258
- }
2259
- }
2260
- } else if (isObject(arg_1)) {
2261
- input = arg_1;
2262
- if (arg_3) {
2263
- options = arg_2;
2264
- metadata2 = arg_3;
2265
- } else {
2266
- metadata2 = arg_2;
2267
- }
2268
- } else throw new TypeError("A phone number must either be a string or an object of shape { phone, [country] }.");
2269
- return {
2270
- input,
2271
- options,
2272
- metadata: metadata2
2273
- };
2274
- }
2275
- function isValidNumber$1() {
2276
- var _normalizeArguments = normalizeArguments(arguments), input = _normalizeArguments.input, options = _normalizeArguments.options, metadata2 = _normalizeArguments.metadata;
2277
- if (!input.phone) {
2278
- return false;
2279
- }
2280
- return isValidNumber$2(input, options, metadata2);
2281
- }
2282
- function isValidNumber() {
2283
- return withMetadataArgument(isValidNumber$1, arguments);
2284
- }
2285
- export {
2286
- isEmail as a,
2287
- isValidNumber as i
2288
- };