Trailing slashes and fixing Vcs-Git to point to https://github.com/googlei18n/libphon...
[platform/upstream/libphonenumber.git] / resources / PhoneNumberMetadataForTesting.xml
1 <!-- Copyright (C) 2009 The Libphonenumber Authors
2
3      Licensed under the Apache License, Version 2.0 (the "License");
4      you may not use this file except in compliance with the License.
5      You may obtain a copy of the License at
6
7      http://www.apache.org/licenses/LICENSE-2.0
8
9      Unless required by applicable law or agreed to in writing, software
10      distributed under the License is distributed on an "AS IS" BASIS,
11      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12      See the License for the specific language governing permissions and
13      limitations under the License.
14
15      @author: Shaopeng Jia
16
17      Metadata on Phone Number Plan and formatting rules. This file is used
18      solely for the purpose of unittesting, so data in this file is not
19      necessarily consistent with that of PhoneNumberMetadata.xml.
20 -->
21
22 <phoneNumberMetadata>
23   <territories>
24     <!-- Andorra -->
25     <territory id="AD" countryCode="376" internationalPrefix="00">
26     </territory>
27
28     <!-- United Arab Emirates -->
29     <!-- Added since when formatting the number for mobile dialling we have special rules to handle
30          it. -->
31     <territory id="AE" countryCode="971" internationalPrefix="00">
32       <generalDesc>
33         <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern>
34         <possibleNumberPattern>\d{9}</possibleNumberPattern>
35       </generalDesc>
36       <uan>
37         <nationalNumberPattern>600\d{6}</nationalNumberPattern>
38         <exampleNumber>600123456</exampleNumber>
39       </uan>
40     </territory>
41
42     <!-- Angola -->
43     <!-- This country has been coopted to test the case of a national prefix with a non-numeric
44          symbol in it. It is also useful since it has no national prefix formatting rule. -->
45     <territory id="AO" countryCode="244" internationalPrefix="00" nationalPrefix="0~0">
46       <availableFormats>
47         <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
48           <format>$1 $2 $3</format>
49         </numberFormat>
50       </availableFormats>
51       <generalDesc>
52         <nationalNumberPattern>[29]\d{8}</nationalNumberPattern>
53         <possibleNumberPattern>\d{9}</possibleNumberPattern>
54       </generalDesc>
55       <fixedLine>
56         <nationalNumberPattern>2\d(?:[26-9]\d|\d[26-9])\d{5}</nationalNumberPattern>
57         <exampleNumber>222123456</exampleNumber>
58       </fixedLine>
59       <mobile>
60         <!-- Expanded the 92 prefix possibilities to match numbers found online. -->
61         <nationalNumberPattern>9[1-3]\d{7}</nationalNumberPattern>
62         <exampleNumber>923123456</exampleNumber>
63       </mobile>
64     </territory>
65
66     <!-- Argentina -->
67     <territory id="AR" countryCode="54" internationalPrefix="00"
68                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"
69                nationalPrefixForParsing="0(?:(11|343|3715)15)?"
70                nationalPrefixTransformRule="9$1">
71       <!-- Note in nationalPrefixForParsing, the areacode (such as 11, 343, etc.), when present in
72            front of carrier selection code 15, is captured to replace $1 in
73            nationalPrefixTransformRule -->
74       <availableFormats>
75         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
76           <leadingDigits>11</leadingDigits>
77           <format>$1 $2-$3</format>
78         </numberFormat>
79         <numberFormat pattern="(\d{4})(\d{2})(\d{4})">
80           <leadingDigits>1[02-9]|[23]</leadingDigits>
81           <format>$1 $2-$3</format>
82         </numberFormat>
83         <numberFormat pattern="(9)(11)(\d{4})(\d{4})">
84           <leadingDigits>911</leadingDigits>
85           <format>$2 15 $3-$4</format>
86           <intlFormat>$1 $2 $3 $4</intlFormat>
87         </numberFormat>
88         <numberFormat pattern="(9)(\d{4})(\d{2})(\d{4})"
89           carrierCodeFormattingRule="$NP$FG $CC">
90           <leadingDigits>9(?:1[02-9]|[23])</leadingDigits>
91           <format>$2 $3-$4</format>
92           <intlFormat>$1 $2 $3 $4</intlFormat>
93         </numberFormat>
94         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
95           <leadingDigits>[68]</leadingDigits>
96           <format>$1-$2-$3</format>
97         </numberFormat>
98       </availableFormats>
99       <generalDesc>
100         <nationalNumberPattern>[1-3689]\d{9,10}</nationalNumberPattern>
101         <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
102       </generalDesc>
103       <fixedLine>
104          <nationalNumberPattern>[1-3]\d{9}</nationalNumberPattern>
105          <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
106       </fixedLine>
107       <mobile>
108         <nationalNumberPattern>9\d{10}|[1-3]\d{9}</nationalNumberPattern>
109         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
110       </mobile>
111       <tollFree>
112         <nationalNumberPattern>80\d{8}</nationalNumberPattern>
113         <possibleNumberPattern>\d{10}</possibleNumberPattern>
114       </tollFree>
115       <premiumRate>
116         <nationalNumberPattern>6(0\d|10)\d{7}</nationalNumberPattern>
117         <possibleNumberPattern>\d{10}</possibleNumberPattern>
118       </premiumRate>
119     </territory>
120
121     <!-- Australia -->
122     <!-- Country calling code shared with Cocos Islands (CC) and Christmas Islands (CX) -->
123     <territory id="AU" countryCode="61" internationalPrefix="001[12]"
124                nationalPrefix="0" preferredInternationalPrefix="0011"
125                nationalPrefixFormattingRule="$NP$FG">
126       <availableFormats>
127         <numberFormat nationalPrefixFormattingRule="$FG"
128           pattern="(\d{4})(\d{3})(\d{3})" >
129           <leadingDigits>1</leadingDigits>
130           <format>$1 $2 $3</format>
131         </numberFormat>
132         <numberFormat pattern="(\d{1})(\d{4})(\d{4})">
133           <leadingDigits>[2-478]</leadingDigits>
134           <format>$1 $2 $3</format>
135         </numberFormat>
136       </availableFormats>
137       <generalDesc >
138         <nationalNumberPattern>[1-578]\d{4,14}</nationalNumberPattern>
139         <possibleNumberPattern>\d{5,15}</possibleNumberPattern>
140       </generalDesc>
141       <fixedLine>
142         <nationalNumberPattern>[2378]\d{8}</nationalNumberPattern>
143         <possibleNumberPattern>\d{9}</possibleNumberPattern>
144       </fixedLine>
145       <mobile>
146         <nationalNumberPattern>4\d{8}</nationalNumberPattern>
147         <possibleNumberPattern>\d{9}</possibleNumberPattern>
148       </mobile>
149       <tollFree>
150         <nationalNumberPattern>1800\d{6}</nationalNumberPattern>
151         <possibleNumberPattern>\d{10}</possibleNumberPattern>
152       </tollFree>
153       <premiumRate>
154         <nationalNumberPattern>190[0126]\d{6}</nationalNumberPattern>
155         <possibleNumberPattern>\d{10}</possibleNumberPattern>
156       </premiumRate>
157     </territory>
158
159     <!-- Barbados -->
160     <territory id="BB" countryCode="1" internationalPrefix="011">
161     </territory>
162
163     <!-- Brazil -->
164     <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be
165          recognised by the library. -->
166     <territory id="BR" countryCode="55">
167     </territory>
168
169     <!-- Bahamas -->
170     <territory id="BS" countryCode="1" internationalPrefix="011"
171                nationalPrefix="1">
172       <generalDesc>
173         <nationalNumberPattern>(242|8(00|66|77|88)|900)\d{7}</nationalNumberPattern>
174         <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
175       </generalDesc>
176       <fixedLine>
177         <nationalNumberPattern>242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\d{4}</nationalNumberPattern>
178       </fixedLine>
179       <mobile>
180         <nationalNumberPattern>242(357|359|457|557)\d{4}</nationalNumberPattern>
181         <possibleNumberPattern>\d{10}</possibleNumberPattern>
182       </mobile>
183       <tollFree>
184         <nationalNumberPattern>8(00|66|77|88)\d{7}</nationalNumberPattern>
185         <possibleNumberPattern>\d{10}</possibleNumberPattern>
186       </tollFree>
187       <premiumRate>
188         <nationalNumberPattern>900\d{7}</nationalNumberPattern>
189         <possibleNumberPattern>\d{10}</possibleNumberPattern>
190       </premiumRate>
191     </territory>
192
193     <!-- Belarus -->
194     <!-- This country has been coopted to test the case of a national prefix formatting rule with a
195          space in it and the case where a number happens to begin with the national prefix, but
196          would become too short if the prefix is stripped. -->
197     <territory id="BY" countryCode="375" internationalPrefix="810" nationalPrefix="8"
198                nationalPrefixForParsing="80?|99999" nationalPrefixFormattingRule="$NP $FG">
199       <availableFormats>
200         <!-- We make some bogus formatting templates that differ only in length to check that
201              switching formatting patterns works as expected.-->
202         <numberFormat pattern="(\d{4})">
203           <leadingDigits>[1-8]</leadingDigits>
204           <format>$1</format>
205         </numberFormat>
206         <!-- This pattern has an override to remove the space after the national prefix. -->
207         <numberFormat pattern="(\d{2})(\d{3})" nationalPrefixFormattingRule="$NP$FG">
208           <leadingDigits>[1-8]</leadingDigits>
209           <format>$1 $2</format>
210         </numberFormat>
211         <numberFormat pattern="(\d{3})(\d{3})">
212           <leadingDigits>[1-8]</leadingDigits>
213           <format>$1 $2</format>
214         </numberFormat>
215       </availableFormats>
216       <generalDesc>
217         <!-- This numbering plan is completely bogus, but is used to test the AYTF logic. For that
218              reason, it is kept very simple. -->
219         <nationalNumberPattern>[1-9]\d{5}</nationalNumberPattern>
220         <possibleNumberPattern>\d{6}</possibleNumberPattern>
221       </generalDesc>
222       <fixedLine>
223         <exampleNumber>112345</exampleNumber>
224       </fixedLine>
225     </territory>
226
227     <!-- Canada -->
228     <territory id="CA" countryCode="1" internationalPrefix="011">
229     </territory>
230
231     <!-- Cocos Islands -->
232     <!-- Country calling code shared with Australia. -->
233     <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be
234          recognised by the library. -->
235     <territory id="CC" countryCode="61">
236     </territory>
237
238     <!-- China -->
239     <!-- Used to test as-you-type-formatter with complicated number format patterns. -->
240     <territory id="CN" countryCode="86">
241       <availableFormats>
242         <numberFormat nationalPrefixFormattingRule="$NP$FG" pattern="(\d{3})(\d{5,6})"
243                       carrierCodeFormattingRule="$CC $FG">
244           <leadingDigits>[3-9]</leadingDigits>
245           <leadingDigits>[3-9]\d{2}[19]</leadingDigits>
246           <leadingDigits>
247             [3-9]\d{2}(?:
248               10|
249               95
250             )
251           </leadingDigits>
252           <format>$1 $2</format>
253         </numberFormat>
254       </availableFormats>
255     </territory>
256
257     <!-- Christmas Islands -->
258     <!-- Country calling code shared with Australia. -->
259     <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be
260          recognised by the library. -->
261     <territory id="CX" countryCode="61" internationalPrefix="00">
262     </territory>
263
264     <!-- Germany -->
265     <territory id="DE" countryCode="49" internationalPrefix="00"
266                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
267       <availableFormats>
268         <numberFormat pattern="(\d{3})(\d{3,8})">
269           <leadingDigits>2|3[3-9]|906|[4-9][1-9]1</leadingDigits>
270           <format>$1 $2</format>
271         </numberFormat>
272         <numberFormat pattern="(\d{2})(\d{4,11})">
273           <leadingDigits>[34]0|[68]9</leadingDigits>
274           <format>$1/$2</format>
275         </numberFormat>
276         <!-- Extra fictional pattern for shorter numbers with the same prefixes as the following
277              pattern, to illustrate the problem the AYTF has with real patterns that share this
278              property. -->
279         <numberFormat pattern="([4-9]\d)(\d{2})">
280           <leadingDigits>[4-9]</leadingDigits>
281           <leadingDigits>[4-6]|[7-9](?:\d[1-9]|[1-9]\d)</leadingDigits>
282           <format>$1 $2</format>
283         </numberFormat>
284         <numberFormat pattern="([4-9]\d{3})(\d{2,7})">
285           <leadingDigits>[4-9]</leadingDigits>
286           <leadingDigits>[4-6]|[7-9](?:\d[1-9]|[1-9]\d)</leadingDigits>
287           <format>$1 $2</format>
288         </numberFormat>
289         <numberFormat pattern="(\d{3})(\d{1})(\d{6})">
290           <leadingDigits>800</leadingDigits>
291           <format>$1 $2 $3</format>
292         </numberFormat>
293         <numberFormat pattern="(\d{3})(\d{3,4})(\d{4})">
294           <leadingDigits>900</leadingDigits>
295           <format>$1 $2 $3</format>
296         </numberFormat>
297       </availableFormats>
298       <generalDesc>
299         <nationalNumberPattern>\d{4,14}</nationalNumberPattern>
300         <possibleNumberPattern>\d{2,14}</possibleNumberPattern>
301       </generalDesc>
302       <fixedLine>
303         <nationalNumberPattern>(?:[24-6]\d{2}|3[03-9]\d|[789](?:[1-9]\d|0[2-9]))\d{1,8}</nationalNumberPattern>
304         <exampleNumber>30123456</exampleNumber>
305       </fixedLine>
306       <mobile>
307         <nationalNumberPattern>1(5\d{9}|7\d{8}|6[02]\d{8}|63\d{7})</nationalNumberPattern>
308         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
309       </mobile>
310       <tollFree>
311         <nationalNumberPattern>800\d{7}</nationalNumberPattern>
312         <possibleNumberPattern>\d{10}</possibleNumberPattern>
313       </tollFree>
314       <premiumRate>
315         <nationalNumberPattern>900([135]\d{6}|9\d{7})</nationalNumberPattern>
316         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
317       </premiumRate>
318     </territory>
319
320     <!-- France -->
321     <territory id="FR" countryCode="33" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"
322                internationalPrefix="00">
323       <availableFormats>
324         <!-- We use this to test the phone number matcher. For our test-case, the formatting
325              pattern must have as the first group a sub-part of the country calling code,
326              and have a national prefix. This corresponds to the test number +33 3 34 2312. -->
327         <numberFormat pattern="(\d)(\d{2})(\d{2})(\d{2})">
328           <leadingDigits>3</leadingDigits>
329           <format>$1 $2 $3 $4</format>
330         </numberFormat>
331       </availableFormats>
332       <generalDesc>
333         <nationalNumberPattern>3\d{6}</nationalNumberPattern>
334         <possibleNumberPattern>\d{7}</possibleNumberPattern>
335       </generalDesc>
336     </territory>
337
338     <!-- United Kingdom -->
339     <territory id="GB" countryCode="44" internationalPrefix="00"
340                nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)"
341                mobileNumberPortableRegion="true">
342       <availableFormats>
343         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
344           <leadingDigits>[1-59]|[78]0</leadingDigits>
345           <format>$1 $2 $3</format>
346         </numberFormat>
347         <numberFormat pattern="(\d)(\d{3})(\d{3})(\d{3})">
348           <leadingDigits>6</leadingDigits>
349           <format>$1 $2 $3 $4</format>
350         </numberFormat>
351         <numberFormat pattern="(\d{4})(\d{3})(\d{3})">
352           <leadingDigits>7[1-57-9]</leadingDigits>
353           <format>$1 $2 $3</format>
354         </numberFormat>
355         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
356           <leadingDigits>8[47]</leadingDigits>
357           <format>$1 $2 $3</format>
358         </numberFormat>
359       </availableFormats>
360       <generalDesc>
361         <nationalNumberPattern>\d{10}</nationalNumberPattern>
362         <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
363       </generalDesc>
364       <fixedLine>
365         <nationalNumberPattern>[1-6]\d{9}</nationalNumberPattern>
366       </fixedLine>
367       <mobile>
368         <nationalNumberPattern>7[1-57-9]\d{8}</nationalNumberPattern>
369         <possibleNumberPattern>\d{10}</possibleNumberPattern>
370       </mobile>
371       <pager>
372         <nationalNumberPattern>76\d{8}</nationalNumberPattern>
373         <possibleNumberPattern>\d{10}</possibleNumberPattern>
374       </pager>
375       <tollFree>
376         <nationalNumberPattern>80\d{8}</nationalNumberPattern>
377         <possibleNumberPattern>\d{10}</possibleNumberPattern>
378       </tollFree>
379       <premiumRate>
380         <nationalNumberPattern>9[018]\d{8}</nationalNumberPattern>
381         <possibleNumberPattern>\d{10}</possibleNumberPattern>
382       </premiumRate>
383       <sharedCost>
384         <nationalNumberPattern>8(?:4[3-5]|7[0-2])\d{7}</nationalNumberPattern>
385         <possibleNumberPattern>\d{10}</possibleNumberPattern>
386       </sharedCost>
387       <voip>
388         <nationalNumberPattern>56\d{8}</nationalNumberPattern>
389         <possibleNumberPattern>\d{10}</possibleNumberPattern>
390       </voip>
391       <personalNumber>
392         <nationalNumberPattern>70\d{8}</nationalNumberPattern>
393         <possibleNumberPattern>\d{10}</possibleNumberPattern>
394       </personalNumber>
395     </territory>
396
397     <!-- Guernsey -->
398     <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be
399          recognised by the library, and it must be the same as that of the United Kingdom. -->
400     <territory id="GG" countryCode="44">
401     </territory>
402
403     <!-- Hungary -->
404     <!-- This country has special logic in formatNumberForMobileDialing which must be tested. -->
405     <territory id="HU" countryCode="36" nationalPrefix="06">
406       <generalDesc>
407         <nationalNumberPattern>30\d{7}</nationalNumberPattern>
408         <possibleNumberPattern>\d{9}</possibleNumberPattern>
409       </generalDesc>
410       <mobile>
411         <nationalNumberPattern>30\d{7}</nationalNumberPattern>
412         <possibleNumberPattern>\d{9}</possibleNumberPattern>
413       </mobile>
414     </territory>
415
416     <!-- Italy -->
417     <!-- http://en.wikipedia.org/wiki/%2B39 -->
418     <territory id="IT" countryCode="39" internationalPrefix="00" leadingZeroPossible="true">
419       <availableFormats>
420         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
421           <leadingDigits>0[26]</leadingDigits>
422           <format>$1 $2 $3</format>
423         </numberFormat>
424         <numberFormat pattern="(\d{3})(\d{4})(\d{3,4})">
425           <leadingDigits>0[13-57-9]</leadingDigits>
426           <format>$1 $2 $3</format>
427         </numberFormat>
428         <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})">
429           <leadingDigits>3</leadingDigits>
430           <format>$1 $2 $3</format>
431         </numberFormat>
432         <numberFormat pattern="(\d{3})(\d{3,6})">
433           <leadingDigits>8</leadingDigits>
434           <format>$1 $2</format>
435         </numberFormat>
436       </availableFormats>
437       <generalDesc>
438         <nationalNumberPattern>[0389]\d{5,10}</nationalNumberPattern>
439         <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
440       </generalDesc>
441       <fixedLine>
442         <nationalNumberPattern>0\d{9,10}</nationalNumberPattern>
443         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
444       </fixedLine>
445       <mobile>
446         <nationalNumberPattern>3\d{8,9}</nationalNumberPattern>
447         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
448       </mobile>
449       <tollFree>
450         <nationalNumberPattern>80(?:0\d{6}|3\d{3})</nationalNumberPattern>
451         <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
452       </tollFree>
453       <premiumRate>
454         <nationalNumberPattern>89(?:2\d{3}|9\d{6})</nationalNumberPattern>
455         <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
456       </premiumRate>
457     </territory>
458
459     <!-- Japan -->
460     <!-- The metadata here is added to unit test AsYouTypeFormatter for JP, which requires switching
461          patterns as digits beyond the third one are entered. As a result, only a few fake
462          formatting rules are added. -->
463     <territory id="JP" countryCode="81" internationalPrefix="010"
464                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG" leadingZeroPossible="true">
465       <availableFormats>
466         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
467           <leadingDigits>[57-9]0</leadingDigits>
468           <format>$1 $2 $3</format>
469         </numberFormat>
470         <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{4})">
471           <leadingDigits>[57-9]0</leadingDigits>
472           <format>$1 $2 $3 $4</format>
473         </numberFormat>
474         <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
475           <leadingDigits>111|222|333</leadingDigits>
476           <leadingDigits>(?:111|222|333)1</leadingDigits>
477           <leadingDigits>(?:111|222|333)11</leadingDigits>
478           <format>$1 $2 $3</format>
479         </numberFormat>
480         <numberFormat pattern="(\d{4})(\d)(\d{4})">
481           <leadingDigits>222|333</leadingDigits>
482           <leadingDigits>2221|3332</leadingDigits>
483           <leadingDigits>22212|3332</leadingDigits>
484           <leadingDigits>222120|3332</leadingDigits>
485           <format>$1 $2 $3</format>
486         </numberFormat>
487         <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
488           <leadingDigits>[23]</leadingDigits>
489           <format>$1 $2 $3</format>
490         </numberFormat>
491         <numberFormat pattern="(\d{3})(\d{4})">
492           <leadingDigits>077</leadingDigits>
493           <format>$1-$2</format>
494         </numberFormat>
495         <!-- The following numberFormat is added to test that the format containing the star sign is
496              not used by the AYTF. -->
497         <numberFormat nationalPrefixFormattingRule="$FG" pattern="(\d{4})">
498           <leadingDigits>[23]</leadingDigits>
499           <format>*$1</format>
500         </numberFormat>
501       </availableFormats>
502       <noInternationalDialling>
503         <nationalNumberPattern>[23]\d{3}</nationalNumberPattern>
504         <possibleNumberPattern>\d{4}</possibleNumberPattern>
505       </noInternationalDialling>
506       <generalDesc>
507         <nationalNumberPattern>07\d{5}|[1-357-9]\d{3,10}</nationalNumberPattern>
508         <possibleNumberPattern>\d{4,11}</possibleNumberPattern>
509       </generalDesc>
510       <tollFree>
511         <nationalNumberPattern>0777[01]\d{2}</nationalNumberPattern>
512         <possibleNumberPattern>\d{7}</possibleNumberPattern>
513         <exampleNumber>0777012</exampleNumber>
514       </tollFree>
515     </territory>
516
517     <!-- Korea (Rep. of) -->
518     <!-- http://www.itu.int/oth/T0202000072/en -->
519     <!-- http://en.wikipedia.org/wiki/%2B82 -->
520     <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2349 -->
521     <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2240 -->
522     <!-- http://www.telecentro.co.kr/sub/index.php?job=detail&ebcf_id=faq&page=1&mid=0503&eb_seq=36 -->
523     <!-- Exceptions :
524         internationalPrefix
525             0031, 0033, 0071, 0073 - Special services of KT and DACOM, ignorable
526         nationalPrefix
527             1[4-6]XX-YYYY - Country-wide common number services, display as it is without hyphens -->
528     <territory id="KR" countryCode="82" internationalPrefix="00(?:[124-68]|[37]\d{2})"
529                nationalPrefix="0" nationalPrefixForParsing="0(8[1-46-8]|85\d{2})?"
530                nationalPrefixFormattingRule="$NP$FG">
531       <availableFormats>
532         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
533           <leadingDigits>1(?:0|1[19]|[69]9|5[458])|[57]0</leadingDigits>
534           <leadingDigits>1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0</leadingDigits>
535           <format>$1-$2-$3</format>
536         </numberFormat>
537         <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
538           <leadingDigits>1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]</leadingDigits>
539           <leadingDigits>1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]</leadingDigits>
540           <format>$1-$2-$3</format>
541         </numberFormat>
542         <numberFormat pattern="(\d{3})(\d)(\d{4})">
543           <leadingDigits>131</leadingDigits>
544           <leadingDigits>1312</leadingDigits>
545           <format>$1-$2-$3</format>
546         </numberFormat>
547         <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
548           <leadingDigits>131</leadingDigits>
549           <leadingDigits>131[13-9]</leadingDigits>
550           <format>$1-$2-$3</format>
551         </numberFormat>
552         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
553           <leadingDigits>13[2-9]</leadingDigits>
554           <format>$1-$2-$3</format>
555         </numberFormat>
556         <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{4})">
557           <leadingDigits>30</leadingDigits>
558           <format>$1-$2-$3-$4</format>
559         </numberFormat>
560         <numberFormat pattern="(\d)(\d{4})(\d{4})">
561           <leadingDigits>2(?:[26]|3[0-467])</leadingDigits>
562           <leadingDigits>2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078]))</leadingDigits>
563           <format>$1-$2-$3</format>
564         </numberFormat>
565         <numberFormat pattern="(\d)(\d{3})(\d{4})">
566           <leadingDigits>2(?:3[0-35-9]|[457-9])</leadingDigits>
567           <leadingDigits>2(?:3(?:0[02-9]|1[0-36-9]|2[02-6]|3[0-8]|6[0-589]|7[1-69]|[589])|[457-9])</leadingDigits>
568           <format>$1-$2-$3</format>
569         </numberFormat>
570         <numberFormat pattern="(\d)(\d{3})">
571           <leadingDigits>21[0-46-9]</leadingDigits>
572           <leadingDigits>21(?:[0-247-9]|3[124]|6[1269])</leadingDigits>
573           <format>$1-$2</format>
574         </numberFormat>
575         <numberFormat pattern="(\d)(\d{4})">
576           <leadingDigits>21[36]</leadingDigits>
577           <leadingDigits>21(?:3[035-9]|6[03-578])</leadingDigits>
578           <format>$1-$2</format>
579         </numberFormat>
580         <numberFormat pattern="(\d{2})(\d{3})">
581           <leadingDigits>[3-6][1-9]1</leadingDigits>
582           <leadingDigits>[3-6][1-9]1(?:[0-46-9])</leadingDigits>
583           <leadingDigits>[3-6][1-9]1(?:[0-247-9]|3[124]|6[1269])</leadingDigits>
584           <format>$1-$2</format>
585         </numberFormat>
586         <numberFormat pattern="(\d{2})(\d{4})">
587           <leadingDigits>[3-6][1-9]1</leadingDigits>
588           <leadingDigits>[3-6][1-9]1[36]</leadingDigits>
589           <leadingDigits>[3-6][1-9]1(?:3[035-9]|6[03-578])</leadingDigits>
590           <format>$1-$2</format>
591         </numberFormat>
592       </availableFormats>
593       <generalDesc>
594         <nationalNumberPattern>[1-7]\d{3,9}|8\d{8}</nationalNumberPattern>
595         <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
596       </generalDesc>
597       <fixedLine>
598         <nationalNumberPattern>(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\d{2,3}|[2-9]\d{6,7})</nationalNumberPattern>
599         <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
600         <exampleNumber>22123456</exampleNumber>
601       </fixedLine>
602       <mobile>
603         <nationalNumberPattern>1[0-25-9]\d{7,8}</nationalNumberPattern>
604         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
605         <exampleNumber>1023456789</exampleNumber>
606       </mobile>
607       <tollFree>
608         <nationalNumberPattern>80\d{7}</nationalNumberPattern>
609         <possibleNumberPattern>\d{9}</possibleNumberPattern>
610         <exampleNumber>801234567</exampleNumber>
611       </tollFree>
612       <premiumRate>
613         <nationalNumberPattern>60[2-9]\d{6}</nationalNumberPattern>
614         <possibleNumberPattern>\d{9}</possibleNumberPattern>
615         <exampleNumber>602345678</exampleNumber>
616       </premiumRate>
617       <personalNumber>
618         <nationalNumberPattern>50\d{8}</nationalNumberPattern>
619         <possibleNumberPattern>\d{10}</possibleNumberPattern>
620         <exampleNumber>5012345678</exampleNumber>
621       </personalNumber>
622       <voip>
623         <nationalNumberPattern>70\d{8}</nationalNumberPattern>
624         <possibleNumberPattern>\d{10}</possibleNumberPattern>
625         <exampleNumber>7012345678</exampleNumber>
626       </voip>
627     </territory>
628
629     <!-- Mexico -->
630     <territory id="MX" countryCode="52" internationalPrefix="00"
631                nationalPrefix="01" nationalPrefixForParsing="01|04[45](\d{10})"
632                nationalPrefixTransformRule="1$1" nationalPrefixFormattingRule="$NP $FG"
633                nationalPrefixOptionalWhenFormatting="true">
634       <availableFormats>
635         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
636           <leadingDigits>[89]00</leadingDigits>
637           <format>$1 $2 $3</format>
638         </numberFormat>
639         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
640           <leadingDigits>33|55|81</leadingDigits>
641           <format>$1 $2 $3</format>
642         </numberFormat>
643         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
644           <leadingDigits>[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]</leadingDigits>
645           <format>$1 $2 $3</format>
646         </numberFormat>
647         <numberFormat nationalPrefixFormattingRule="$FG" pattern="(1)(\d{2})(\d{4})(\d{4})">
648           <leadingDigits>1(?:33|55|81)</leadingDigits>
649           <format>045 $2 $3 $4</format>
650           <intlFormat>$1 $2 $3 $4</intlFormat>
651         </numberFormat>
652         <numberFormat nationalPrefixFormattingRule="$FG" pattern="(1)(\d{3})(\d{3})(\d{4})">
653           <leadingDigits>1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])</leadingDigits>
654           <format>045 $2 $3 $4</format>
655           <intlFormat>$1 $2 $3 $4</intlFormat>
656         </numberFormat>
657       </availableFormats>
658       <generalDesc>
659         <nationalNumberPattern>[1-9]\d{9,10}</nationalNumberPattern>
660         <possibleNumberPattern>\d{7,11}</possibleNumberPattern>
661       </generalDesc>
662       <fixedLine>
663         <nationalNumberPattern>[2-9]\d{9}</nationalNumberPattern>
664         <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
665       </fixedLine>
666       <mobile>
667         <nationalNumberPattern>1\d{10}</nationalNumberPattern>
668         <possibleNumberPattern>\d{11}</possibleNumberPattern>
669       </mobile>
670       <tollFree>
671         <nationalNumberPattern>800\d{7}</nationalNumberPattern>
672         <possibleNumberPattern>\d{10}</possibleNumberPattern>
673       </tollFree>
674       <premiumRate>
675         <nationalNumberPattern>900\d{7}</nationalNumberPattern>
676         <possibleNumberPattern>\d{10}</possibleNumberPattern>
677       </premiumRate>
678     </territory>
679
680     <!-- New Zealand -->
681     <territory id="NZ" countryCode="64" internationalPrefix="00"
682                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
683       <availableFormats>
684         <numberFormat pattern="(\d)(\d{3})(\d{4})">
685           <leadingDigits>24|[34679]</leadingDigits>
686           <format>$1-$2 $3</format>
687         </numberFormat>
688         <numberFormat pattern="(\d)(\d{3})(\d{3,5})">
689           <leadingDigits>2[179]</leadingDigits>
690           <format>$1-$2 $3</format>
691         </numberFormat>
692         <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})">
693           <leadingDigits>[89]</leadingDigits>
694           <format>$1 $2 $3</format>
695         </numberFormat>
696       </availableFormats>
697       <generalDesc>
698         <nationalNumberPattern>
699           [289]\d{7,9}|
700           [3-7]\d{7}
701         </nationalNumberPattern>
702         <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
703       </generalDesc>
704       <fixedLine>
705         <nationalNumberPattern>24099\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\d{6}</nationalNumberPattern>
706         <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
707       </fixedLine>
708       <mobile>
709         <nationalNumberPattern>2(?:[027]\d{7}|9\d{6,7}|1(?:0\d{5,7}|[12]\d{5,6}|[3-9]\d{5})|4[1-9]\d{6}|8\d{7,8})</nationalNumberPattern>
710         <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
711       </mobile>
712       <tollFree>
713         <nationalNumberPattern>800\d{6,7}</nationalNumberPattern>
714         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
715       </tollFree>
716       <premiumRate>
717         <nationalNumberPattern>900\d{6,7}</nationalNumberPattern>
718         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
719       </premiumRate>
720     </territory>
721
722     <!-- Poland -->
723     <!-- http://en.wikipedia.org/wiki/%2B48 -->
724     <territory id="PL" countryCode="48" internationalPrefix="00"
725                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
726       <availableFormats>
727         <numberFormat pattern="(\d{2})(\d{3})(\d{2})(\d{2})">
728           <format>$1 $2 $3 $4</format>
729         </numberFormat>
730       </availableFormats>
731       <generalDesc>
732         <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern>
733         <possibleNumberPattern>\d{9}</possibleNumberPattern>
734       </generalDesc>
735       <mobile>
736         <nationalNumberPattern>(?:5[01]|6[069]|7[289]|88)\d{7}</nationalNumberPattern>
737       </mobile>
738       <tollFree>
739         <nationalNumberPattern>800\d{6}</nationalNumberPattern>
740       </tollFree>
741       <premiumRate>
742         <nationalNumberPattern>70\d{7}</nationalNumberPattern>
743       </premiumRate>
744     </territory>
745
746     <!-- RĂ©union (French Departments and Territories in the Indian Ocean) -->
747     <!-- Note this shares the same country code as La Mayotte and French
748     Southern Territories, and the formatting patterns here are used by all of
749     them. This is present to test leadingDigits. -->
750     <territory id="RE" countryCode="262" leadingDigits="262|6(?:9[23]|47)|8"
751                internationalPrefix="00" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
752       <availableFormats>
753         <numberFormat pattern="([268]\d{2})(\d{2})(\d{2})(\d{2})">
754           <format>$1 $2 $3 $4</format>
755         </numberFormat>
756       </availableFormats>
757       <generalDesc>
758         <nationalNumberPattern>[268]\d{8}</nationalNumberPattern>
759         <possibleNumberPattern>\d{9}</possibleNumberPattern>
760       </generalDesc>
761       <fixedLine>
762         <!-- 0876 numbers are mentioned in the plan, but none in use can be
763         found. -->
764         <nationalNumberPattern>262\d{6}</nationalNumberPattern>
765         <exampleNumber>262161234</exampleNumber>
766       </fixedLine>
767       <mobile>
768         <nationalNumberPattern>6(?:9[23]|47)\d{6}</nationalNumberPattern>
769         <possibleNumberPattern>\d{9}</possibleNumberPattern>
770         <exampleNumber>692123456</exampleNumber>
771       </mobile>
772       <!-- 08* Numbers in RĂ©union are the same as those valid in France. -->
773       <tollFree>
774         <nationalNumberPattern>80\d{7}</nationalNumberPattern>
775         <exampleNumber>801234567</exampleNumber>
776       </tollFree>
777       <premiumRate>
778         <nationalNumberPattern>8(?:1[01]|2[0156]|84|9[0-37-9])\d{6}</nationalNumberPattern>
779         <exampleNumber>810123456</exampleNumber>
780       </premiumRate>
781     </territory>
782
783     <!-- Singapore -->
784     <!-- http://www.ida.gov.sg/policies%20and%20regulation/20060508120124.aspx -->
785     <!-- For testing the AYTF with long NDDs, "777777" is added as a possible national prefix. -->
786     <territory id="SG" countryCode="65" internationalPrefix="0[0-3][0-9]"
787                nationalPrefixForParsing="777777">
788       <availableFormats>
789         <numberFormat pattern="(\d{4})(\d{4})">
790           <leadingDigits>[369]|8[1-9]</leadingDigits>
791           <format>$1 $2</format>
792         </numberFormat>
793         <numberFormat pattern="(\d{4})(\d{3})(\d{4})">
794           <leadingDigits>1[89]</leadingDigits>
795           <format>$1 $2 $3</format>
796         </numberFormat>
797         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
798           <leadingDigits>800</leadingDigits>
799           <format>$1 $2 $3</format>
800         </numberFormat>
801       </availableFormats>
802       <generalDesc>
803         <nationalNumberPattern>[13689]\d{7,10}</nationalNumberPattern>
804         <!-- This specific pattern with the | is used to unit-test IsPossibleNumberWithReason. -->
805         <possibleNumberPattern>
806           \d{8}|
807           \d{10,11}
808         </possibleNumberPattern>
809       </generalDesc>
810       <fixedLine>
811         <nationalNumberPattern>[36]\d{7}</nationalNumberPattern>
812         <possibleNumberPattern>\d{8}</possibleNumberPattern>
813       </fixedLine>
814       <mobile>
815         <nationalNumberPattern>[89]\d{7}</nationalNumberPattern>
816         <possibleNumberPattern>\d{8}</possibleNumberPattern>
817       </mobile>
818       <tollFree>
819         <nationalNumberPattern>1?800\d{7}</nationalNumberPattern>
820         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
821       </tollFree>
822       <premiumRate>
823         <nationalNumberPattern>1900\d{7}</nationalNumberPattern>
824         <possibleNumberPattern>\d{11}</possibleNumberPattern>
825       </premiumRate>
826     </territory>
827
828     <!-- United States -->
829     <!-- http://www.nanpa.com/reports/reports_npa.html -->
830     <!-- For testing purposes, numbers starting with 24 are not considered US numbers.-->
831     <territory id="US" countryCode="1" internationalPrefix="011"
832                preferredExtnPrefix=" extn. " nationalPrefix="1"
833                mainCountryForCode="true" nationalPrefixOptionalWhenFormatting="true"
834                mobileNumberPortableRegion="true">
835       <availableFormats>
836         <numberFormat pattern="(\d{3})(\d{4})">
837           <format>$1 $2</format>
838           <intlFormat>NA</intlFormat>
839        </numberFormat>
840         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
841           <format>$1 $2 $3</format>
842         </numberFormat>
843       </availableFormats>
844       <generalDesc>
845         <!-- Numbers beginning with 7 are excluded for testing purposes only. -->
846         <nationalNumberPattern>[13-689]\d{9}|2[0-35-9]\d{8}</nationalNumberPattern>
847         <possibleNumberPattern>\d{7}(?:\d{3})?</possibleNumberPattern>
848         <exampleNumber>1234567890</exampleNumber>
849       </generalDesc>
850       <noInternationalDialling>
851         <!-- This range is added for testing purposes only. -->
852         <nationalNumberPattern>800\d{7}</nationalNumberPattern>
853         <possibleNumberPattern>\d{10}</possibleNumberPattern>
854       </noInternationalDialling>
855       <tollFree>
856         <nationalNumberPattern>8(?:00|66|77|88)\d{7}</nationalNumberPattern>
857         <possibleNumberPattern>\d{10}</possibleNumberPattern>
858       </tollFree>
859       <premiumRate>
860         <nationalNumberPattern>900\d{7}</nationalNumberPattern>
861         <possibleNumberPattern>\d{10}</possibleNumberPattern>
862       </premiumRate>
863     </territory>
864
865     <!-- Mayotte -->
866     <territory id="YT" countryCode="262" leadingDigits="269|639"
867                internationalPrefix="00" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
868       <!-- Formatting as per La RĂ©union. -->
869       <generalDesc>
870         <nationalNumberPattern>[268]\d{8}</nationalNumberPattern>
871         <possibleNumberPattern>\d{9}</possibleNumberPattern>
872       </generalDesc>
873       <fixedLine>
874         <nationalNumberPattern>2696[0-4]\d{4}</nationalNumberPattern>
875         <exampleNumber>269601234</exampleNumber>
876       </fixedLine>
877       <mobile>
878         <nationalNumberPattern>639\d{6}</nationalNumberPattern>
879         <exampleNumber>639123456</exampleNumber>
880       </mobile>
881       <!-- Same as in France. -->
882       <tollFree>
883         <nationalNumberPattern>80\d{7}</nationalNumberPattern>
884         <exampleNumber>801234567</exampleNumber>
885       </tollFree>
886     </territory>
887
888     <!-- International Toll Free numbers  -->
889     <territory id="001" countryCode="800" leadingZeroPossible="true">
890       <availableFormats>
891         <numberFormat pattern="(\d{4})(\d{4})">
892           <format>$1 $2</format>
893         </numberFormat>
894       </availableFormats>
895       <generalDesc>
896         <nationalNumberPattern>\d{8}</nationalNumberPattern>
897         <possibleNumberPattern>\d{8}</possibleNumberPattern>
898         <exampleNumber>12345678</exampleNumber>
899       </generalDesc>
900       <fixedLine>
901         <nationalNumberPattern>NA</nationalNumberPattern>
902         <possibleNumberPattern>NA</possibleNumberPattern>
903       </fixedLine>
904       <mobile>
905         <nationalNumberPattern>NA</nationalNumberPattern>
906         <possibleNumberPattern>NA</possibleNumberPattern>
907       </mobile>
908       <tollFree>
909         <nationalNumberPattern>\d{8}</nationalNumberPattern>
910       </tollFree>
911     </territory>
912
913     <!-- Universal International Premium Rate Number -->
914     <territory id="001" countryCode="979">
915       <availableFormats>
916         <numberFormat pattern="(\d)(\d{4})(\d{4})">
917           <format>$1 $2 $3</format>
918         </numberFormat>
919       </availableFormats>
920       <generalDesc>
921         <nationalNumberPattern>\d{9}</nationalNumberPattern>
922         <possibleNumberPattern>\d{9}</possibleNumberPattern>
923         <exampleNumber>123456789</exampleNumber>
924       </generalDesc>
925       <fixedLine>
926         <nationalNumberPattern>NA</nationalNumberPattern>
927         <possibleNumberPattern>NA</possibleNumberPattern>
928       </fixedLine>
929       <mobile>
930         <nationalNumberPattern>NA</nationalNumberPattern>
931         <possibleNumberPattern>NA</possibleNumberPattern>
932       </mobile>
933       <premiumRate>
934         <nationalNumberPattern>\d{9}</nationalNumberPattern>
935       </premiumRate>
936     </territory>
937   </territories>
938 </phoneNumberMetadata>