JAVA/JS/CPP: v7.0.1 metadata updates.

git-svn-id: http://libphonenumber.googlecode.com/svn/trunk/resources@729 ee073f10-1060-11df-b6a4-87a95322a99c
diff --git a/PhoneNumberAlternateFormats.xml b/PhoneNumberAlternateFormats.xml
index 52df650..94cba10 100644
--- a/PhoneNumberAlternateFormats.xml
+++ b/PhoneNumberAlternateFormats.xml
@@ -1727,6 +1727,19 @@
       </availableFormats>
     </territory>
 
+    <!-- Tonga (TO) -->
+    <territory countryCode="676">
+      <availableFormats>
+        <numberFormat pattern="(\d{2})(\d{5})">
+          <leadingDigits>
+            7[5-9]|
+            8[47-9]
+          </leadingDigits>
+          <format>$1 $2</format>
+        </numberFormat>
+      </availableFormats>
+    </territory>
+
     <!-- Turkey (TR) -->
     <territory countryCode="90">
       <availableFormats>
diff --git a/PhoneNumberMetadata.xml b/PhoneNumberMetadata.xml
index e3b0b3c..b083abd 100644
--- a/PhoneNumberMetadata.xml
+++ b/PhoneNumberMetadata.xml
@@ -2710,12 +2710,12 @@
       </references>
       <availableFormats>
         <numberFormat
-          pattern="([27]\d)(\d{2})(\d{2})(\d{2})">
+          pattern="(\d{2})(\d{2})(\d{2})(\d{2})">
           <format>$1 $2 $3 $4</format>
         </numberFormat>
       </availableFormats>
       <generalDesc>
-        <nationalNumberPattern>[27]\d{7}</nationalNumberPattern>
+        <nationalNumberPattern>[267]\d{7}</nationalNumberPattern>
         <possibleNumberPattern>\d{8}</possibleNumberPattern>
       </generalDesc>
       <fixedLine>
@@ -2734,7 +2734,7 @@
              satellite phones. -->
         <nationalNumberPattern>
           (?:
-            29|
+            [26]9|
             7[14-9]
           )\d{6}
         </nationalNumberPattern>
@@ -4363,12 +4363,16 @@
     <territory id="CM" countryCode="237" internationalPrefix="00">
       <references>
         <sourceUrl>http://www.itu.int/oth/T0202000024/en</sourceUrl>
+        <sourceUrl>http://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-OB.1063-2014-OAS-PDF-E.pdf</sourceUrl>
       </references>
       <availableFormats>
-        <!-- Formatting on the internet is consistently with the first 2 extracted, and usually in
-             the same format as France (all 2 digit groups) so we use this instead of the guidance
-             of the national numbering plan (which has 1 3 2 2 and 4 4 as its two formatting
-             examples.) -->
+        <!-- Formatting in the ITU update document aligns with formatting online (all 2 digit
+             groups). For the new number format with 9 digits the first digit has it's own group.
+             -->
+        <numberFormat pattern="([26])(\d{2})(\d{2})(\d{2})(\d{2})">
+          <leadingDigits>[26]</leadingDigits>
+          <format>$1 $2 $3 $4 $5</format>
+        </numberFormat>
         <numberFormat pattern="([2357-9]\d)(\d{2})(\d{2})(\d{2})">
           <leadingDigits>
             [23579]|
@@ -4382,29 +4386,37 @@
         </numberFormat>
       </availableFormats>
       <generalDesc>
-        <nationalNumberPattern>[2357-9]\d{7}</nationalNumberPattern>
-        <possibleNumberPattern>\d{8}</possibleNumberPattern>
+        <nationalNumberPattern>[235-9]\d{7,8}</nationalNumberPattern>
+        <possibleNumberPattern>\d{8,9}</possibleNumberPattern>
       </generalDesc>
       <fixedLine>
-        <!-- Technically, the numbers are required only to start with a 2 or a 3, but all numbers at
-             the moment start with 22 or 33 since they have been migrated from seven digit numbers
-             beginning with these numbers. This rule should be relaxed if/when we start getting
-             numbers beginning in other ways. -->
+        <!-- Temporarily allow both old (22|33) and new 2(22|33) format. -->
+        <!-- CDMA numbers are described in a subcategory to fixed line numbers in the ITU update
+             document, so those prefixes are added to fixed line (24[23]). -->
         <nationalNumberPattern>
+          2(?:
+             22|
+             33|
+             4[23]
+          )\d{6}|
           (?:
             22|
             33
           )\d{6}
         </nationalNumberPattern>
-        <exampleNumber>22123456</exampleNumber>
+        <exampleNumber>222123456</exampleNumber>
       </fixedLine>
       <mobile>
-        <!-- Mobile numbers beginning with 5 were found online. -->
-        <nationalNumberPattern>[579]\d{7}</nationalNumberPattern>
-        <exampleNumber>71234567</exampleNumber>
+        <!-- Temporarily allow both old [579]\d{7} and new 6[5-79]\d{7} format. -->
+        <nationalNumberPattern>
+          6[5-79]\d{7}|
+          [579]\d{7}
+        </nationalNumberPattern>
+        <exampleNumber>671234567</exampleNumber>
       </mobile>
       <tollFree>
         <nationalNumberPattern>800\d{5}</nationalNumberPattern>
+        <possibleNumberPattern>\d{8}</possibleNumberPattern>
         <exampleNumber>80012345</exampleNumber>
       </tollFree>
       <premiumRate>
@@ -4412,6 +4424,7 @@
              with 88 (usually 880). No information can be found as to whether these are premium rate
              or shared cost. -->
         <nationalNumberPattern>88\d{6}</nationalNumberPattern>
+        <possibleNumberPattern>\d{8}</possibleNumberPattern>
         <exampleNumber>88012345</exampleNumber>
       </premiumRate>
     </territory>
@@ -9414,7 +9427,7 @@
           <format>$1 $2</format>
         </numberFormat>
         <numberFormat nationalPrefixFormattingRule="($NP$FG)"
-          pattern="(\d{3})(\d{5,7})">
+          pattern="(\d{3})(\d{5,8})">
           <leadingDigits>
             [4579]|
             2[035-9]|
@@ -9452,7 +9465,9 @@
              Where known, fixed mobile prefixes have been represented as Mobile. -->
         <!-- Very short (5/6 digit) local numbers in Jakarta seem to be special cases for various
              well known companies (Mc Donalds, KFC etc...). Some of these are listed in:
-             http://cms.binus.edu/datapage/file/io/Spring2014SE/International_Student_Handbook_BINUS.pdf -->
+             http://cms.binus.edu/datapage/file/io/Spring2014SE/International_Student_Handbook_BINUS.pdf
+             There seem to be numbers of this length for area code 22 as well based on numbers found
+             online. -->
         <nationalNumberPattern>
           2(?:
             1(?:
@@ -9461,7 +9476,8 @@
               500\d{3}|
               9\d{6}
             )|
-            [24]\d{7,8}
+            2\d{6,8}|
+            4\d{7,8}
           )|
           (?:
             2(?:
@@ -9506,7 +9522,7 @@
               4[1-6]
             )|
             7(?:
-              1[1-46-9]|
+              1[1-9]|
               2[14-9]|
               [36]\d|
               4[1-8]|
@@ -9524,7 +9540,7 @@
             )
           )\d{5,8}
         </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
+        <possibleNumberPattern>\d{5,11}</possibleNumberPattern>
         <exampleNumber>612345678</exampleNumber>
       </fixedLine>
       <mobile>
@@ -10798,51 +10814,26 @@
           <leadingDigits>21</leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
-        <numberFormat pattern="(2[15])(\d{3})(\d{3,4})">
-          <leadingDigits>
-            2(?:
-              1|
-              5[0-47-9]
-            )
-          </leadingDigits>
-          <format>$1 $2 $3</format>
-        </numberFormat>
         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
-          <leadingDigits>
-            2[156]|
-            31|
-            51|
-            71|
-            86
-          </leadingDigits>
+          <leadingDigits>[1-8]</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})">
-          <leadingDigits>
-            [13-9]|
-            2[02-47-9]
-          </leadingDigits>
+          <leadingDigits>9</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <numberFormat pattern="(\d{3})(\d{2})(\d{2,3})">
-          <leadingDigits>
-            [13-9]|
-            2[02-47-9]
-          </leadingDigits>
+          <leadingDigits>9</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <numberFormat pattern="(\d{3})(\d{3})">
-          <leadingDigits>
-            [13-9]|
-            2[02-47-9]
-          </leadingDigits>
+          <leadingDigits>9</leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
       </availableFormats>
       <generalDesc>
         <nationalNumberPattern>
-          [14-8]\d{6,9}|
-          [23]\d{4,9}|
+          [1-8]\d{9}|
           9(?:
             [0-4]\d{8}|
             9\d{2,8}
@@ -10851,93 +10842,58 @@
         <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
       </generalDesc>
       <fixedLine>
-        <!-- We are following the more specific lengths specified in the communication in the ITU
-             doc of 26.VIII.2012, rather than the brief summary lengths (which actually contradict).
-             The prefixes have been verified by looking at the Persian telecommunications site.
-             22[189], 29[12] have become 21, as part of the shift to unify prefixes. 746 was also
-             found on the website http://www.tct.ir/?siteid=1&pageid=410&siteid=1 but this seems
-             to be a typo. -->
+        <!-- In Summer 2014 Iran unified all fixed phone numbers in the following way:
+             Each province is assigned a two digit prefix (except for North Khorasan which has 3).
+             Within each province, all numbers are exactly eight digits.  The expression below is
+             organized by province.  For each province we accept all eight-digit combinations.
+
+             11 Mazandaran
+             13 Gilan
+             17 Golestan
+             21 Tehran
+             23 Semnan
+             24 Zanjan
+             25 Qom
+             26 Alborz
+             28 Qazvin
+             31 Isfahan
+             34 Kerman
+             35 Yazd
+             38 Chahar Mahaal and Bakhtiari
+             41 East Azerbaijan
+             44 West Azerbaijan
+             45 Ardabil
+             51 Razavi Khorasan
+             54 Sistan and Baluchestan
+             56 South Khorasan
+             57 North Khorasan (Extras)
+             58 North Khorasan
+             61 Khuzestan
+             64 North Khorasan (Extras)
+             66 Lorestan
+             71 Fars
+             74 Kohgiluyeh and Boyer-Ahmad
+             76 Hormozgan
+             77 Bushehr
+             81 Hamadan
+             83 Kermanshah
+             84 Ilam
+             86 Markazi
+             87 Kurdistan
+             -->
         <nationalNumberPattern>
-          1(?:
-            [13-589][12]|
-            [27][1-4]
-          )\d{7}|
-          2(?:
-            1\d{3,8}|
-            3[12]\d{7}|
-            4(?:
-              1\d{4,7}|
-              2\d{7}
-            )|
-            53\d{7}|
-            6\d{8}|
-            7[34]\d{7}|
-            [89][12]\d{7}
-          )|
-          3(?:
-            1[2-5]\d{7}|
-            2[1-4]\d{7}|
-            3(?:
-              [125]\d{7}|
-              4\d{6,7}
-            )|
-            4(?:
-              1\d{6,7}
-              [24-9]\d{7}
-            )|
-            5(?:
-              1\d{4,7}|
-              [23]\d{7}
-            )|
-            [6-9][12]\d{7}
-          )|
-          4(?:
-            [135-9][12]\d{7}|
-            2[1-467]\d{7}|
-            4(?:
-              1\d{4,7}|
-              [2-4]\d{7}
-            )
-          )|
-          5(?:
-            1[2-5]\d{7}|
-            2[89]\d{7}|
-            3[1-5]\d{7}|
-            4(?:
-              1\d{4,7}|
-              [2-8]\d{7}
-            )|
-            [5-7][12]\d{7}|
-            8[1245]\d{7}
-          )|
-          6(?:
-            1(?:
-              1\d{6,7}|
-              2\d{7}
-            )|
-            [347-9][12]\d{7}|
-            5(?:
-              1\d{7}|
-              2\d{6,7}
-            )|
-            6[1-6]\d{7}
-          )|
-          7(?:
-            1[2-5]|
-            2[1289]|
-            [3589][12]|
-            4[1-4]|
-            6[1-6]|
-            7[1-3]
-          )\d{7}|
-          8(?:
-            [145][12]|
-            3[124578]|
-            6[2-6]|
-            7[1245]
-          )\d{7}
+          (?:
+            1[137]|
+            2[13-68]|
+            3[1458]|
+            4[145]|
+            5[146-8]|
+            6[146]|
+            7[1467]|
+            8[13467]
+          )\d{8}
         </nationalNumberPattern>
-        <possibleNumberPattern>\d{5,10}</possibleNumberPattern>
+        <possibleNumberPattern>\d{10}</possibleNumberPattern>
         <exampleNumber>2123456789</exampleNumber>
       </fixedLine>
       <mobile>
@@ -13408,7 +13364,8 @@
           <leadingDigits>
             1(?:
               5[46-9]|
-              6[04678]
+              6[04678]|
+              8[0579]
             )
           </leadingDigits>
           <leadingDigits>
@@ -13426,6 +13383,12 @@
                 6[16]|
                 70|
                 88
+              )|
+              8(?:
+                00|
+                55|
+                77|
+                99
               )
             )
           </leadingDigits>
@@ -13489,6 +13452,7 @@
         <exampleNumber>7012345678</exampleNumber>
       </voip>
       <uan>
+        <!-- Prefix 18 added from numbers found online. -->
         <nationalNumberPattern>
           1(?:
             5(?:
@@ -13504,6 +13468,12 @@
               6[16]|
               70|
               88
+            )|
+            8(?:
+              00|
+              55|
+              77|
+              99
             )
           )\d{4}
         </nationalNumberPattern>
@@ -13903,13 +13873,13 @@
         <exampleNumber>21212862</exampleNumber>
       </fixedLine>
       <mobile>
-        <!-- Adding 202[89], 205[89], 207[68] and 209[57] from numbers found online. -->
+        <!-- Adding 202[89], 205[89], 207[68] and 209[15-7] from numbers found online. -->
         <nationalNumberPattern>
           20(?:
             2[2389]|
             5[4-689]|
             7[6-8]|
-            9[57-9]
+            9[15-9]
           )\d{6}
         </nationalNumberPattern>
         <possibleNumberPattern>\d{10}</possibleNumberPattern>
@@ -17501,6 +17471,7 @@
       <references>
         <sourceUrl>http://www.itu.int/oth/T0202000095/en</sourceUrl>
         <sourceUrl>http://www.ntc.net.np/mobile/mob_postpaid_number_scheme.php</sourceUrl>
+        <sourceUrl>http://www.nta.gov.np/en/2012-06-01-11-45-17/2012-06-04-04-26-59/numbering-plan</sourceUrl>
       </references>
       <availableFormats>
         <!-- Formatting patterns taken from pages like http://www.nepalgov.gov.np -->
@@ -17522,7 +17493,8 @@
         <numberFormat pattern="(9\d{2})(\d{7})">
           <leadingDigits>
             9(?:
-              7[45]|
+              6[013]|
+              7[245]|
               8
             )
             </leadingDigits>
@@ -17535,37 +17507,37 @@
         <nationalNumberPattern>
           [1-8]\d{7}|
           9(?:
-            [1-69]\d{6}|
+            [1-69]\d{6,8}|
             7[2-6]\d{5,7}|
             8\d{8}
           )
         </nationalNumberPattern>
         <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
       </generalDesc>
+      <!-- We don't support Rural Telecommunication Service at the moment since
+           we are not sure what type it is. -->
       <fixedLine>
-        <!-- Added (1) 2XXXXXX and (88) from numbers found online. -->
         <nationalNumberPattern>
           (?:
-            1[0124-6]|
-            2[13-79]|
-            3[135-8]|
-            4[146-9]|
-            5[135-7]|
-            6[13-9]|
-            7[15-9]|
-            8[1-46-9]|
-            9[1-79]
-          )\d{6}
+            1[0-6]\d|
+            2[13-79][2-6]|
+            3[135-8][2-6]|
+            4[146-9][2-6]|
+            5[135-7][2-6]|
+            6[13-9][2-6]|
+            7[15-9][2-6]|
+            8[1-46-9][2-6]|
+            9[1-79][2-6]
+          )\d{5}
         </nationalNumberPattern>
         <possibleNumberPattern>\d{6,8}</possibleNumberPattern>
         <exampleNumber>14567890</exampleNumber>
       </fixedLine>
-      <!-- There is no definitive source of information for mobile numbers in Nepal. The information
-           here is collected by searching the Internet. -->
       <mobile>
         <nationalNumberPattern>
           9(?:
-            7[45]|
+            6[013]|
+            7[245]|
             8[01456]
           )\d{7}
         </nationalNumberPattern>
@@ -21416,7 +21388,8 @@
         <exampleNumber>22212345</exampleNumber>
       </fixedLine>
       <mobile>
-        <nationalNumberPattern>9[0-289]\d{6}</nationalNumberPattern>
+        <!-- Prefix 93 is from an open-source bug report -->
+        <nationalNumberPattern>9[0-389]\d{6}</nationalNumberPattern>
         <exampleNumber>90112345</exampleNumber>
       </mobile>
     </territory>
@@ -21436,8 +21409,11 @@
           <leadingDigits>2</leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
-        <numberFormat pattern="([3-9]\d)(\d{3})(\d{3,4})">
-          <leadingDigits>[3-9]</leadingDigits>
+        <numberFormat pattern="([13-9]\d)(\d{3})(\d{3,4})">
+          <leadingDigits>
+            14|
+            [3-9]
+          </leadingDigits>
           <format>$1 $2 $3</format>
         </numberFormat>
         <numberFormat nationalPrefixFormattingRule="$FG"
@@ -21449,7 +21425,7 @@
       <generalDesc>
         <nationalNumberPattern>
           [2-9]\d{7,8}|
-          1\d{3}(?:\d{6})?
+          1\d{3}(?:\d{5,6})?
         </nationalNumberPattern>
         <possibleNumberPattern>\d{4}|\d{8,10}</possibleNumberPattern>
       </generalDesc>
@@ -21474,9 +21450,14 @@
         <exampleNumber>21234567</exampleNumber>
       </fixedLine>
       <mobile>
+        <!-- Numbers found online starting with 62. 14 and 63 are from an open-source bug report,
+             we couldn't find evidence of these specifically being in use but this article
+             http://www.prachachat.net/news_detail.php?newsid=1395732787&grpid=03&catid=06&subcatid=0600
+             talks about prefix 6 and 1 being cleared for mobile use. -->
         <nationalNumberPattern>
           (?:
-            61|
+            14|
+            6[1-3]|
             [89]\d
           )\d{7}
         </nationalNumberPattern>
@@ -21828,7 +21809,7 @@
         <numberFormat pattern="(\d{3})(\d{4})">
           <leadingDigits>
             7[5-9]|
-            8[7-9]
+            8[47-9]
           </leadingDigits>
           <format>$1 $2</format>
         </numberFormat>
@@ -21857,11 +21838,11 @@
       </fixedLine>
       <mobile>
         <!-- TCC mobile numbers were given a prefix of "77" in 2009, although this is not mentioned
-             in their ITU document. Numbers with a prefix of "75" have also been found. -->
+             in their ITU document. Numbers with a prefix of "75" and "84" have also been found. -->
         <nationalNumberPattern>
           (?:
             7[578]|
-            8[7-9]
+            8[47-9]
           )\d{5}
         </nationalNumberPattern>
         <possibleNumberPattern>\d{7}</possibleNumberPattern>
diff --git a/carrier/en/237.txt b/carrier/en/237.txt
index a3f78d4..fa67840 100644
--- a/carrier/en/237.txt
+++ b/carrier/en/237.txt
@@ -12,5 +12,16 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-2377|MTN Cameroon
-2379|Orange
+237650|MTN Cameroon
+237651|MTN Cameroon
+237652|MTN Cameroon
+237653|MTN Cameroon
+237654|MTN Cameroon
+237655|Orange
+237656|Orange
+237657|Orange
+237658|Orange
+237659|Orange
+23766|NEXTTEL
+23767|MTN Cameroon
+23769|Orange
diff --git a/carrier/en/257.txt b/carrier/en/257.txt
index 730f18d..41f9890 100644
--- a/carrier/en/257.txt
+++ b/carrier/en/257.txt
@@ -16,6 +16,7 @@
 # Tempo is the brand name for Africell.
 
 25729|Leo
+25769|Viettel
 25771|Leo
 25775|Smart Mobile
 25776|Econet
diff --git a/carrier/en/856.txt b/carrier/en/856.txt
index 00e8adc..0f78e70 100644
--- a/carrier/en/856.txt
+++ b/carrier/en/856.txt
@@ -13,4 +13,6 @@
 # limitations under the License.
 
 856202|ETL
+856205|Lao Telecom
 856207|Beeline
+856209|Unitel
diff --git a/carrier/en/977.txt b/carrier/en/977.txt
index b8acd1b..519da0e 100644
--- a/carrier/en/977.txt
+++ b/carrier/en/977.txt
@@ -12,4 +12,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-97798|Namaste / NT Mobile
+977960|STM Telecom
+977961|Smart Telecom
+977963|NSTPL
+977972|UTL
+977974|NDCL
+977975|NDCL
+977980|NCell
+977981|NCell
+977984|Nepal Telecom
+977985|Nepal Telecom
+977986|Nepal Telecom
diff --git a/geocoding/en/237.txt b/geocoding/en/237.txt
new file mode 100644
index 0000000..451a99e
--- /dev/null
+++ b/geocoding/en/237.txt
@@ -0,0 +1,125 @@
+# Copyright (C) 2014 The Libphonenumber Authors
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+# http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+237222111|Mbalmayo
+237222120|Akonolinga
+237222121|Ayos
+237222136|Eséka/Mboumnyebel
+237222144|Ngoumou
+237222180|Obala
+237222182|Monatélé
+237222185|Bafia
+237222195|Nanga Eboko
+23722220|Jamot
+23722221|Jamot
+23722222|Yaounde
+23722223|Yaounde
+237222241|Bertoua
+237222242|Bertoua
+237222250|N'Gaoundéré
+237222251|N'Gaoundéré
+237222252|N'Gaoundéré
+237222253|N'Gaoundéré
+237222254|Dang
+237222256|Beelel/Mbé
+237222262|Batouri
+237222264|Belabo
+23722227|Garoua
+237222282|Mengong
+237222283|Ebolowa
+237222284|Ebolowa
+23722229|Maroua
+23722230|Nkomo
+23722231|Biyem Assi
+237222321|Mfou
+237222322|Soa
+237222335|Abong-Bang
+237222347|N'Gaoundal
+237222348|Tibati
+237222354|Galim Tignère
+237222355|Tignère
+237222369|Banyo
+237222371|Meiganga
+237222395|Guider
+237222397|Figuil
+237222414|Kousseri
+237222426|Yagoua
+237222447|Mora
+237222455|Mokolo
+237222461|Kribi
+237222462|Kribi
+237222463|Lolodorf
+237222464|Lolodorf
+237222478|Sangmelima
+237222479|Meyomessala/Efoulan
+237222482|Kye-Ossie/Ambam
+237233205|Wum
+237233215|Nkambe
+237233221|Kumbo
+237233262|Foumban
+237233263|Foumban
+237233267|Foumbot
+237233277|Bandjoun
+237233296|Bafang
+237233297|Bafang
+237233305|Mbouda
+237233313|Yabassi
+237233321|Muyuka
+237233322|Buéa
+237233323|Buéa
+237233324|Buéa
+237233325|Buéa
+237233326|Buéa
+237233327|Buéa
+237233328|Buéa
+237233329|Buéa
+237233331|Tiko
+237233332|Limbé
+237233333|Limbé
+237233334|Limbé
+237233335|Limbé
+237233336|Limbé
+237233337|Limbé
+237233338|Limbé
+237233339|Limbé
+237233341|Manfé
+237233354|Kumba
+237233355|Kumba
+237233360|Bamenda
+237233361|Bamenda
+237233362|Bamenda
+237233363|Bamenda
+237233364|Bamenda
+237233366|Mbambili
+23723337|Bassa
+23723339|Bonabéri
+23723340|Bepanda
+23723341|Bepanda
+23723342|Akwa Centre
+23723343|Akwa Centre
+23723344|Bafoussam
+237233451|Dschang
+237233452|Dschang
+237233464|Edéa
+23723347|Akwa North
+237233484|Bangangté
+237233489|Bangangté
+237233490|Nkongsamba
+237233491|Nkongsamba
+237233492|Nkongsamba
+237233493|Nkongsamba
+237233494|Nkongsamba
+237233495|Nkongsamba
+237233496|Nkongsamba
+237233497|Loum/Mbanga
diff --git a/geocoding/en/98.txt b/geocoding/en/98.txt
index a8e3e51..0d52d45 100644
--- a/geocoding/en/98.txt
+++ b/geocoding/en/98.txt
@@ -18,149 +18,36 @@
 # Some prefixes were changed/removed based on http://www.tct.ir/?siteid=1&pageid=195
 # Some names were changed to the more common English spelling.
 
-98111|Babol
-98112|Babol suburbs
-98121|Amol
-98122|Amol suburbs
-98123|Ghaemshahr
-98124|Ghaemshahr suburbs
-98131|Rasht
-98132|Rasht suburbs
-98141|Lahijan
-98142|Lahijan suburbs
-98151|Sari
-98152|Sari suburbs
-98171|Gorgan
-98172|Gonbad Kavos
-98173|Gorgan suburbs
-98174|Gonbad Kavos suburbs
-98181|Bandar Anzali
-98182|Bandar Anzali suburbs
-98191|Chalus
-98192|Chalus suburbs
+9811|Mazandaran
+9813|Gilan
+9817|Golestan
 9821|Tehran province
-98231|Semnan
-98232|Semnan suburbs
-98241|Zanjan
-98242|Zanjan suburbs
+9823|Semnan province
+9824|Zanjan province
 9825|Qom province
 9826|Alborz
-98273|Shahroud
-98274|Shahroud suburbs
-98281|Qazvin
-98282|Qazvin suburbs
+9828|Qazvin province
 9831|Isfahan province
-98341|Kerman
-98342|Kerman suburbs
-98344|Bam
-98345|Sirjan
-98346|Bam suburbs
-98347|Sirjan suburbs
-98348|Jiroft
-98349|Jiroft suburbs
-98351|Yazd
-98352|Yazd suburbs
-98353|Yazd suburbs
-98381|Shahrekord
-98382|Shahrekord suburbs
-98391|Rafsanjan
-98392|Rafsanjan suburbs
-98411|Tabriz
-98412|Tabriz suburbs
-98421|Maragheh
-98422|Maragheh suburbs
-98423|Miyaneh
-98424|Miyaneh suburbs
-98426|Ahar
-98427|Ahar suburbs
-98431|Sarab
-98432|Sarab suburbs
-98441|Orumieh
-98442|Mahabad
-98443|Orumieh suburbs
-98444|Mahabad suburbs
-98451|Ardabil
-98452|Ardabil suburbs
-98461|Khoy
-98462|Khoy suburbs
-98471|Shabestar
-98472|Shabestar suburbs
-98481|Myandoab
-98482|Myandoab suburbs
-98491|Marand
-98492|Marand suburbs
+9834|Kerman province
+9835|Yazd province
+9838|Chahar-mahal and Bakhtiari
+9841|East Azarbaijan
+9844|West Azarbaijan
+9845|Ardabil province
 9851|Razavi Khorasan
-98534|Ferdows
-98535|Ferdows suburbs
-98541|Zahedan
-98542|Zabol
-98543|Zahedan suburbs
-98544|Zabol suburbs
-98545|Chabahar
-98546|Chabahar suburbs
-98547|Iranshahr
-98548|Iranshahr suburbs
-98551|Neyshabur
-98552|Neyshabur suburbs
-98561|Birjand
-98562|Birjand suburbs
-98571|Sabzevar
-98572|Sabzevar suburbs
-98581|Quchan
-98582|Quchan suburbs
-98584|Bojnord
-98585|Bojnord suburbs
-98611|Ahwaz
-98612|Ahwaz suburbs
-98631|Abadan
-98632|Abadan suburbs
-98641|Dezful
-98642|Dezful suburbs
-98651|Sarbandar
-98652|Sarbandar suburbs
-98661|Khorramabad
-98662|Borujerd
-98663|Khoramabad suburbs
-98664|Aligudarz
-98665|Borujerd suburbs
-98666|Aligudarz suburbs
-98671|Behbahan
-98672|Behbahan suburbs
-98681|Masjed Soleiman
-98682|Masjed Soleiman suburbs
-98691|Ramhormoz
-98692|Ramhormoz suburbs
+9854|Sistan and Baluchestan
+9856|South Khorasan
+9857|North Khorasan
+9858|North Khorasan
+9861|Khuzestan
+9864|North Khorasan
+9866|Lorestan
 9871|Fars
-98713|Shiraz
-98714|Kazeroon/Marvdasht/Abadeh
-98715|Lar/Fasa/Jahrom
-98741|Yasooj
-98742|Dogonbadan
-98743|Yasooj suburbs
-98744|Dogonbadan suburbs
-98761|Bandar Abbas
-98762|Bandar Lengeh
-98763|Bandar Abbas suburbs
-98764|Bandar Lengeh suburbs
-98765|Minab
-98766|Minab suburbs
-98771|Bushehr
-98772|Bushehr suburbs
-98773|Bushehr suburbs
-98811|Hamedan
-98812|Hamedan suburbs
-98831|Kermanshah
-98832|Kermanshah suburbs
-98834|Sarpole Zahab
-98835|Sarpole Zahab suburbs
-98837|Kangavar
-98838|Kangavar suburbs
-98841|Ilam
-98842|Ilam suburbs
-98851|Malayer
-98852|Malayer suburbs
+9874|Kohgiluyeh and Boyer-Ahmad
+9876|Hormozgan
+9877|Bushehr province
+9881|Hamadan province
+9883|Kermanshah province
+9884|Ilam province
 9886|Markazi
-98871|Sanandaj
-98872|Sanandaj suburbs
-98874|Saqqez
-98875|Saqqez suburbs
+9887|Kurdistan
diff --git a/geocoding/fa/98.txt b/geocoding/fa/98.txt
index 7f3b392..5bb5a26 100644
--- a/geocoding/fa/98.txt
+++ b/geocoding/fa/98.txt
@@ -15,149 +15,36 @@
 # Generated from:
 # en/98.txt and translated and edited manually.
 
-98111|بابل
-98112|حومهٔ بابل
-98121|آمل
-98122|حومهٔ آمل
-98123|قائم‌شهر
-98124|حومهٔ قائم شهر
-98131|رشت
-98132|حومهٔ رشت
-98141|لاهیجان
-98142|حومهٔ لاهیجان
-98151|ساری
-98152|حومهٔ ساری
-98171|گرگان
-98172|گنبد کاووس
-98173|حومهٔ گرگان
-98174|حومهٔ گنبد کاووس
-98181|بندر انزلی
-98182|حومهٔ بندر انزلی
-98191|چالوس
-98192|حومهٔ چالوس
+9811|مازندران
+9813|گیلان
+9817|گلستان
 9821|استان تهران
-98231|سمنان
-98232|حومهٔ سمنان
-98241|زنجان
-98242|حومهٔ زنجان
+9823|استان سمنان
+9824|استان زنجان
 9825|استان قم
-9826|استان البرز
-98273|شاهرود
-98274|حومهٔ شاهرود
-98281|قزوین
-98282|حومهٔ قزوین
+9826|البرز
+9828|استان قزوین
 9831|استان اصفهان
-98341|کرمان
-98342|حومهٔ کرمان
-98344|بم
-98345|سیرجان
-98346|حومهٔ بم
-98347|حومهٔ سیرجان
-98348|جیرفت
-98349|حومهٔ جیرفت
-98351|یزد
-98352|حومهٔ یزد
-98353|حومهٔ یزد
-98381|شهرکرد
-98382|حومهٔ شهرکرد
-98391|رفسنجان
-98392|حومهٔ رفسنجان
-98411|تبریز
-98412|حومهٔ تبریز
-98421|مراغه
-98422|حومهٔ مراغه
-98423|میانه
-98424|حومهٔ میانه
-98426|اهر
-98427|حومهٔ اهر
-98431|سراب
-98432|حومهٔ سراب
-98441|ارومیه
-98442|مهاباد
-98443|حومهٔ ارومیه
-98444|حومهٔ مهاباد
-98451|اردبیل
-98452|حومهٔ اردبیل
-98461|خوی
-98462|حومهٔ خوی
-98471|شبستر
-98472|حومهٔ شبستر
-98481|میاندوآب
-98482|حومهٔ میاندوآب
-98491|مرند
-98492|حومهٔ مرند
-9851|استان خراسان رضوی
-98534|فردوس
-98535|حومهٔ فردوس
-98541|زاهدان
-98542|زابل
-98543|حومهٔ زاهدان
-98544|حومهٔ زابل
-98545|چابهار
-98546|حومهٔ چابهار
-98547|ایرانشهر
-98548|حومهٔ ایرانشهر
-98551|نیشابور
-98552|حومهٔ نیشابور
-98561|بیرجند
-98562|حومهٔ بیرجند
-98571|سبزوار
-98572|حومهٔ سبزوار
-98581|قوچان
-98582|حومهٔ قوچان
-98584|بجنورد
-98585|حومهٔ بجنورد
-98611|اهواز
-98612|حومهٔ اهواز
-98631|آبادان
-98632|حومهٔ آبادان
-98641|دزفول
-98642|حومهٔ دزفول
-98651|سربندر
-98652|حومهٔ سربندر
-98661|خرم‌آباد
-98662|بروجرد
-98663|حومهٔ خرم‌آباد
-98664|الیگودرز
-98665|حومهٔ بروجرد
-98666|حومهٔ اليگودرز
-98671|بهبهان
-98672|حومهٔ بهبهان
-98681|مسجد سلیمان
-98682|حومهٔ مسجد سلیمان
-98691|رامهرمز
-98692|حومهٔ رامهرمز
-9871|استان فارس
-98713|شیراز
-98714|کازرون/مرودشت/آباده
-98715|لار/فسا/جهرم
-98741|یاسوج
-98742|دوگنبدان
-98743|حومهٔ یاسوج
-98744|حومهٔ دوگنبدان
-98761|بندرعباس
-98762|بندر لنگه
-98763|حومهٔ بندرعباس
-98764|حومهٔ بندر لنگه
-98765|میناب
-98766|حومهٔ میناب
-98771|بوشهر
-98772|حومهٔ بوشهر
-98773|حومهٔ بوشهر
-98811|همدان
-98812|حومهٔ همدان
-98831|کرمانشاه
-98832|حومهٔ کرمانشاه
-98834|سرپل ذهاب
-98835|حومهٔ سرپل ذهاب
-98837|کنگاور
-98838|حومهٔ کنگاور
-98841|ایلام
-98842|حومهٔ ایلام
-98851|ملایر
-98852|حومهٔ ملایر
-9886|استان مرکزی
-98871|سنندج
-98872|حومهٔ سنندج
-98874|سقز
-98875|حومهٔ سقز
+9834|استان کرمان
+9835|استان یزد
+9838|چهارمحال و بختیاری
+9841|آذربایجان شرقی
+9844|آذربایجان غربی
+9845|استان اردبیل
+9851|خراسان رضوی
+9854|سیستان و بلوچستان
+9856|خراسان جنوبی
+9857|خراسان شمالی
+9858|خراسان شمالی
+9861|خوزستان
+9864|خراسان شمالی
+9866|لرستان
+9871|فارس
+9874|کهگیلویه و بویراحمد
+9876|هرمزگان
+9877|استان بوشهر
+9881|استان همدان
+9883|استان کرمانشاه
+9884|استان ایلام
+9886|مرکزی
+9887|کردستان