Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-phonenumbers for 
openSUSE:Factory checked in at 2025-11-12 21:14:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-phonenumbers (Old)
 and      /work/SRC/openSUSE:Factory/.python-phonenumbers.new.1980 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-phonenumbers"

Wed Nov 12 21:14:26 2025 rev:44 rq:1317215 version:9.0.18

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-phonenumbers/python-phonenumbers.changes  
2025-10-17 17:26:41.956309474 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-phonenumbers.new.1980/python-phonenumbers.changes
        2025-11-12 21:14:40.530858501 +0100
@@ -1,0 +2,6 @@
+Tue Nov 11 23:43:22 UTC 2025 - Dirk Müller <[email protected]>
+
+- update to 9.0.18
+  * Merge upstream 9.0.18 phonenumber updates
+
+-------------------------------------------------------------------

Old:
----
  phonenumbers-9.0.16.tar.gz

New:
----
  phonenumbers-9.0.18.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-phonenumbers.spec ++++++
--- /var/tmp/diff_new_pack.6wsaSz/_old  2025-11-12 21:14:42.494940829 +0100
+++ /var/tmp/diff_new_pack.6wsaSz/_new  2025-11-12 21:14:42.514941667 +0100
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-phonenumbers
-Version:        9.0.16
+Version:        9.0.18
 Release:        0
 Summary:        Python version of Google's common library for international 
phone numbers
 License:        Apache-2.0

++++++ phonenumbers-9.0.16.tar.gz -> phonenumbers-9.0.18.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/PKG-INFO 
new/phonenumbers-9.0.18/PKG-INFO
--- old/phonenumbers-9.0.16/PKG-INFO    2025-10-10 14:04:06.693221600 +0200
+++ new/phonenumbers-9.0.18/PKG-INFO    2025-11-07 08:36:53.778277600 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: phonenumbers
-Version: 9.0.16
+Version: 9.0.18
 Summary: Python version of Google's common library for parsing, formatting, 
storing and validating international phone numbers.
 Home-page: https://github.com/daviddrysdale/python-phonenumbers
 Author: David Drysdale
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/__init__.py 
new/phonenumbers-9.0.18/phonenumbers/__init__.py
--- old/phonenumbers-9.0.16/phonenumbers/__init__.py    2025-10-10 
13:56:16.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/__init__.py    2025-11-07 
08:07:55.000000000 +0100
@@ -146,7 +146,7 @@
 
 # Version number is taken from the upstream libphonenumber version
 # together with an indication of the version of the Python-specific code.
-__version__ = "9.0.16"
+__version__ = "9.0.18"
 
 __all__ = ['PhoneNumber', 'CountryCodeSource', 'FrozenPhoneNumber',
            'REGION_CODE_FOR_NON_GEO_ENTITY', 'NumberFormat', 
'PhoneNumberDesc', 'PhoneMetadata',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/phonenumbers-9.0.16/phonenumbers/carrierdata/data0.py 
new/phonenumbers-9.0.18/phonenumbers/carrierdata/data0.py
--- old/phonenumbers-9.0.16/phonenumbers/carrierdata/data0.py   2025-10-10 
13:56:15.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/carrierdata/data0.py   2025-11-07 
08:07:54.000000000 +0100
@@ -826,10 +826,6 @@
  '22171':{'en': 'Orange'},
  '22172':{'en': 'HAYO'},
  '22175':{'en': 'Promobile'},
- '2217535':{'en': 'Orange'},
- '2217536':{'en': 'Orange'},
- '221757':{'en': 'Origines'},
- '2217585':{'en': 'Orange'},
  '22176':{'en': 'Free'},
  '22177':{'en': 'Orange'},
  '22178':{'en': 'Orange'},
@@ -991,30 +987,6 @@
  '2290197':{'en': 'MTN'},
  '2290198':{'en': 'Moov'},
  '2290199':{'en': 'Moov'},
- '2294':{'en': 'Celtiis'},
- '22942':{'en': 'MTN'},
- '22946':{'en': 'MTN'},
- '2295':{'en': 'MTN'},
- '22955':{'en': 'Moov'},
- '22960':{'en': 'Moov'},
- '22961':{'en': 'MTN'},
- '22962':{'en': 'MTN'},
- '22963':{'en': 'Moov'},
- '22964':{'en': 'Moov'},
- '22965':{'en': 'Moov'},
- '22966':{'en': 'MTN'},
- '22967':{'en': 'MTN'},
- '22968':{'en': 'Moov'},
- '22969':{'en': 'MTN'},
- '22990':{'en': 'MTN'},
- '22991':{'en': 'MTN'},
- '22993':{'en': 'BLK'},
- '22994':{'en': 'Moov'},
- '22995':{'en': 'Moov'},
- '22996':{'en': 'MTN'},
- '22997':{'en': 'MTN'},
- '22998':{'en': 'Moov'},
- '22999':{'en': 'Moov'},
  '230525':{'en': 'Cellplus'},
  '230526':{'en': 'Cellplus'},
  '230527':{'en': 'MTML'},
@@ -1341,25 +1313,26 @@
  '25479':{'en': 'Safaricom'},
  '25561':{'en': 'Viettel'},
  '25562':{'en': 'Viettel'},
- '25565':{'en': 'tiGO'},
+ '25565':{'en': 'Yas'},
  '25566':{'en': 'SMILE'},
- '25567':{'en': 'tiGO'},
+ '25567':{'en': 'Yas'},
  '25568':{'en': 'Airtel'},
  '25569':{'en': 'Airtel'},
- '25571':{'en': 'tiGO'},
+ '25571':{'en': 'Yas'},
  '25573':{'en': 'Tanzania Telecom'},
  '25574':{'en': 'Vodacom'},
  '25575':{'en': 'Vodacom'},
  '25576':{'en': 'Vodacom'},
- '25577':{'en': 'tiGO'},
+ '25577':{'en': 'Yas'},
  '25578':{'en': 'Airtel'},
  '25579':{'en': 'Vodacom'},
  '25670':{'en': 'Airtel'},
  '25671':{'en': 'UTL'},
  '256720':{'en': 'Smile'},
+ '256721':{'en': 'LycaMobile'},
  '256724':{'en': 'Hamilton Telecom'},
- '256726':{'en': 'Tangerine'},
- '256727':{'en': 'Tangerine'},
+ '256726':{'en': 'LycaMobile'},
+ '256727':{'en': 'LycaMobile'},
  '256728':{'en': 'Talkio'},
  '25673':{'en': 'Hamilton Telecom'},
  '25674':{'en': 'Airtel'},
@@ -1402,9 +1375,10 @@
  '26098':{'en': 'Beeline Telecoms'},
  '26132':{'en': 'Orange'},
  '26133':{'en': 'Airtel'},
- '26134':{'en': 'Telma'},
+ '26134':{'en': 'Yas'},
+ '26136':{'en': 'Yas'},
  '26137':{'en': 'Orange'},
- '26138':{'en': 'Telma'},
+ '26138':{'en': 'Yas'},
  '26139':{'en': 'Blueline'},
  '26263900':{'en': 'Orange'},
  '26263901':{'en': 'Orange'},
@@ -3249,13 +3223,7 @@
  '37250':{'en': 'Telia Eesti AS'},
  '37251':{'en': 'Telia Eesti AS'},
  '37252':{'en': 'Telia Eesti AS'},
- '372530':{'en': 'Telia Eesti AS'},
- '372533':{'en': 'Telia Eesti AS'},
- '372534':{'en': 'Telia Eesti AS'},
- '372536':{'en': 'Telia Eesti AS'},
- '372537':{'en': 'Telia Eesti AS'},
- '372538':{'en': 'Telia Eesti AS'},
- '372539':{'en': 'Telia Eesti AS'},
+ '37253':{'en': 'Telia Eesti AS'},
  '37254':{'en': 'Telia Eesti AS'},
  '372545':{'en': 'Elisa'},
  '3725461':{'en': 'Elisa'},
@@ -3363,6 +3331,7 @@
  '3773':{'en': 'Monaco Telecom'},
  '3774':{'en': 'Monaco Telecom'},
  '3776':{'en': 'Monaco Telecom'},
+ '3777':{'en': 'Monaco Telecom'},
  '37861':{'en': 'TELENET'},
  '37866':{'en': 'Telecom Italia San Marino'},
  '38039':{'en': 'Kyivstar', 'uk': 
u('\u041a\u0438\u0457\u0432\u0441\u0442\u0430\u0440')},
@@ -6984,6 +6953,7 @@
  '5025919':{'en': 'Tigo'},
  '502599':{'en': 'Tigo'},
  '5028':{'en': 'Tigo'},
+ '5035':{'en': 'Claro'},
  '503600':{'en': 'Tigo'},
  '503601':{'en': 'Tigo'},
  '503602':{'en': 'Tigo'},
@@ -10019,4 +9989,34 @@
  '553199781':{'en': 'Telemig Celular'},
  '553199782':{'en': 'Telemig Celular'},
  '553199783':{'en': 'Telemig Celular'},
+ '553199784':{'en': 'Telemig Celular'},
+ '553199785':{'en': 'Telemig Celular'},
+ '553199786':{'en': 'Telemig Celular'},
+ '553199787':{'en': 'Telemig Celular'},
+ '553199788':{'en': 'Telemig Celular'},
+ '553199789':{'en': 'Telemig Celular'},
+ '553199791':{'en': 'Telemig Celular'},
+ '553199792':{'en': 'Telemig Celular'},
+ '553199793':{'en': 'Telemig Celular'},
+ '553199794':{'en': 'Telemig Celular'},
+ '553199795':{'en': 'Telemig Celular'},
+ '553199796':{'en': 'Telemig Celular'},
+ '553199797':{'en': 'Telemig Celular'},
+ '553199798':{'en': 'Telemig Celular'},
+ '553199799':{'en': 'Telemig Celular'},
+ '5531998':{'en': 'Telemig Celular'},
+ '553199800':{'en': 'TIM'},
+ '553199810':{'en': 'TIM'},
+ '553199820':{'en': 'TIM'},
+ '553199830':{'en': 'TIM'},
+ '553199840':{'en': 'TIM'},
+ '553199850':{'en': 'TIM'},
+ '553199860':{'en': 'TIM'},
+ '553199870':{'en': 'TIM'},
+ '553199880':{'en': 'TIM'},
+ '553199890':{'en': 'TIM'},
+ '553199901':{'en': 'Telemig Celular'},
+ '553199902':{'en': 'Telemig Celular'},
+ '553199903':{'en': 'Telemig Celular'},
+ '553199904':{'en': 'Telemig Celular'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/phonenumbers-9.0.16/phonenumbers/carrierdata/data1.py 
new/phonenumbers-9.0.18/phonenumbers/carrierdata/data1.py
--- old/phonenumbers-9.0.16/phonenumbers/carrierdata/data1.py   2025-10-10 
13:56:15.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/carrierdata/data1.py   2025-11-07 
08:07:54.000000000 +0100
@@ -19,36 +19,6 @@
 # limitations under the License.
 
 data = {
- '553199784':{'en': 'Telemig Celular'},
- '553199785':{'en': 'Telemig Celular'},
- '553199786':{'en': 'Telemig Celular'},
- '553199787':{'en': 'Telemig Celular'},
- '553199788':{'en': 'Telemig Celular'},
- '553199789':{'en': 'Telemig Celular'},
- '553199791':{'en': 'Telemig Celular'},
- '553199792':{'en': 'Telemig Celular'},
- '553199793':{'en': 'Telemig Celular'},
- '553199794':{'en': 'Telemig Celular'},
- '553199795':{'en': 'Telemig Celular'},
- '553199796':{'en': 'Telemig Celular'},
- '553199797':{'en': 'Telemig Celular'},
- '553199798':{'en': 'Telemig Celular'},
- '553199799':{'en': 'Telemig Celular'},
- '5531998':{'en': 'Telemig Celular'},
- '553199800':{'en': 'TIM'},
- '553199810':{'en': 'TIM'},
- '553199820':{'en': 'TIM'},
- '553199830':{'en': 'TIM'},
- '553199840':{'en': 'TIM'},
- '553199850':{'en': 'TIM'},
- '553199860':{'en': 'TIM'},
- '553199870':{'en': 'TIM'},
- '553199880':{'en': 'TIM'},
- '553199890':{'en': 'TIM'},
- '553199901':{'en': 'Telemig Celular'},
- '553199902':{'en': 'Telemig Celular'},
- '553199903':{'en': 'Telemig Celular'},
- '553199904':{'en': 'Telemig Celular'},
  '553199905':{'en': 'Telemig Celular'},
  '553199906':{'en': 'Telemig Celular'},
  '553199907':{'en': 'Telemig Celular'},
@@ -9885,6 +9855,7 @@
  '569998':{'en': 'Claro'},
  '569999':{'en': 'Entel'},
  '5699990':{'en': 'Tesacom'},
+ '573000':{'en': 'Tigo'},
  '573002':{'en': 'Tigo'},
  '573003':{'en': 'Tigo'},
  '573004':{'en': 'Tigo'},
@@ -9893,12 +9864,14 @@
  '573007':{'en': 'Tigo'},
  '573008':{'en': 'Tigo'},
  '573009':{'en': 'Tigo'},
+ '573010':{'en': 'Tigo'},
  '573012':{'en': 'Tigo'},
  '573013':{'en': 'Tigo'},
  '573014':{'en': 'Tigo'},
  '573015':{'en': 'Tigo'},
  '573016':{'en': 'Tigo'},
  '573017':{'en': 'Tigo'},
+ '573020':{'en': 'Tigo'},
  '573022':{'en': 'Tigo'},
  '573023':{'en': 'Tigo'},
  '573024':{'en': 'Tigo'},
@@ -9908,13 +9881,11 @@
  '573025':{'en': 'Partners Telecom Colombia'},
  '573026':{'en': 'Partners Telecom Colombia'},
  '573027':{'en': 'Partners Telecom Colombia'},
- '5730280':{'en': 'Partners Telecom Colombia'},
- '5730281':{'en': 'Partners Telecom Colombia'},
- '5730282':{'en': 'Partners Telecom Colombia'},
- '5730283':{'en': 'Partners Telecom Colombia'},
- '5730284':{'en': 'Partners Telecom Colombia'},
- '5730285':{'en': 'Partners Telecom Colombia'},
- '5730286':{'en': 'Partners Telecom Colombia'},
+ '573028':{'en': 'Partners Telecom Colombia'},
+ '5730287':{'en': 'Tigo'},
+ '5730288':{'en': 'Tigo'},
+ '5730289':{'en': 'Tigo'},
+ '573029':{'en': 'Tigo'},
  '57303':{'en': 'Uff!'},
  '5730410':{'en': 'Tigo'},
  '5730411':{'en': 'Tigo'},
@@ -10019,4 +9990,33 @@
  '573058':{'en': 'Tigo'},
  '5730590':{'en': 'Tigo'},
  '5730591':{'en': 'Tigo'},
+ '5730592':{'en': 'Tigo'},
+ '5730593':{'en': 'Tigo'},
+ '5730594':{'en': 'Tigo'},
+ '5730595':{'en': 'Tigo'},
+ '573102':{'en': 'Claro'},
+ '573103':{'en': 'Claro'},
+ '573104':{'en': 'Claro'},
+ '573105':{'en': 'Claro'},
+ '573106':{'en': 'Claro'},
+ '573107':{'en': 'Claro'},
+ '573108':{'en': 'Claro'},
+ '5731091':{'en': 'Claro'},
+ '5731092':{'en': 'Claro'},
+ '5731093':{'en': 'Claro'},
+ '57310990':{'en': 'Claro'},
+ '57310991':{'en': 'Claro'},
+ '573112':{'en': 'Claro'},
+ '573113':{'en': 'Claro'},
+ '573114':{'en': 'Claro'},
+ '573115':{'en': 'Claro'},
+ '573116':{'en': 'Claro'},
+ '573117':{'en': 'Claro'},
+ '573118':{'en': 'Claro'},
+ '573122':{'en': 'Claro'},
+ '573123':{'en': 'Claro'},
+ '573124':{'en': 'Claro'},
+ '573125':{'en': 'Claro'},
+ '573126':{'en': 'Claro'},
+ '573127':{'en': 'Claro'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/phonenumbers-9.0.16/phonenumbers/carrierdata/data2.py 
new/phonenumbers-9.0.18/phonenumbers/carrierdata/data2.py
--- old/phonenumbers-9.0.16/phonenumbers/carrierdata/data2.py   2025-10-10 
13:56:15.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/carrierdata/data2.py   2025-11-07 
08:07:54.000000000 +0100
@@ -19,35 +19,6 @@
 # limitations under the License.
 
 data = {
- '5730592':{'en': 'Tigo'},
- '5730593':{'en': 'Tigo'},
- '5730594':{'en': 'Tigo'},
- '5730595':{'en': 'Tigo'},
- '573102':{'en': 'Claro'},
- '573103':{'en': 'Claro'},
- '573104':{'en': 'Claro'},
- '573105':{'en': 'Claro'},
- '573106':{'en': 'Claro'},
- '573107':{'en': 'Claro'},
- '573108':{'en': 'Claro'},
- '5731091':{'en': 'Claro'},
- '5731092':{'en': 'Claro'},
- '5731093':{'en': 'Claro'},
- '57310990':{'en': 'Claro'},
- '57310991':{'en': 'Claro'},
- '573112':{'en': 'Claro'},
- '573113':{'en': 'Claro'},
- '573114':{'en': 'Claro'},
- '573115':{'en': 'Claro'},
- '573116':{'en': 'Claro'},
- '573117':{'en': 'Claro'},
- '573118':{'en': 'Claro'},
- '573122':{'en': 'Claro'},
- '573123':{'en': 'Claro'},
- '573124':{'en': 'Claro'},
- '573125':{'en': 'Claro'},
- '573126':{'en': 'Claro'},
- '573127':{'en': 'Claro'},
  '573128':{'en': 'Claro'},
  '573132':{'en': 'Claro'},
  '573133':{'en': 'Claro'},
@@ -924,11 +895,7 @@
  '614808':{'en': 'Pivotel Satellite'},
  '61481':{'en': 'Optus'},
  '61482':{'en': 'Optus'},
- '614830':{'en': 'Telstra'},
- '614831':{'en': 'Telstra'},
- '614832':{'en': 'Telstra'},
- '614833':{'en': 'Telstra'},
- '614838':{'en': 'Telstra'},
+ '61483':{'en': 'Telstra'},
  '614839':{'en': 'Optus'},
  '61484':{'en': 'Telstra'},
  '61485':{'en': 'Optus'},
@@ -946,6 +913,7 @@
  '6148985':{'en': 'MessageBird'},
  '614899':{'en': 'Pivotel Satellite'},
  '6149':{'en': 'Telstra'},
+ '61495':{'en': 'Optus'},
  '62811':{'en': 'Telkomsel'},
  '62812':{'en': 'Telkomsel'},
  '62813':{'en': 'Telkomsel'},
@@ -1402,6 +1370,7 @@
  '658862':{'en': 'M1'},
  '658865':{'en': 'Simba'},
  '658866':{'en': 'M1'},
+ '658867':{'en': 'M1'},
  '658868':{'en': 'M1'},
  '658869':{'en': 'SingTel'},
  '658876':{'en': 'SingTel'},
@@ -1478,6 +1447,7 @@
  '658986':{'en': 'Simba'},
  '658987':{'en': 'Simba'},
  '658988':{'en': 'Simba'},
+ '658989':{'en': 'Simba'},
  '659001':{'en': 'StarHub'},
  '659002':{'en': 'StarHub'},
  '659003':{'en': 'StarHub'},
@@ -3881,7 +3851,7 @@
  '8524616':{'en': 'China Unicom', 'zh': u('\u4e2d\u56fd\u8054\u901a')},
  '8524617':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
  '8524618':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
- '8524619':{'en': 'China Telecom Global Limited', 'zh': 'China Telecom Global 
Limited'},
+ '8524619':{'en': 'China Telecom Global Limited', 'zh': 
u('\u4e2d\u56fd\u7535\u4fe1\u56fd\u9645\u6709\u9650\u516c\u53f8')},
  '8524620':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
  '8524621':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
  '8524622':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
@@ -3917,8 +3887,8 @@
  '8524662':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
  '8524663':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
  '8524664':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
- '8524665':{'en': 'China Telecom Global Limited', 'zh': 'China Telecom Global 
Limited'},
- '8524666':{'en': 'China Telecom Global Limited', 'zh': 'China Telecom Global 
Limited'},
+ '8524665':{'en': 'China Telecom Global Limited', 'zh': 
u('\u4e2d\u56fd\u7535\u4fe1\u56fd\u9645\u6709\u9650\u516c\u53f8')},
+ '8524666':{'en': 'China Telecom Global Limited', 'zh': 
u('\u4e2d\u56fd\u7535\u4fe1\u56fd\u9645\u6709\u9650\u516c\u53f8')},
  '852467':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
  '8524678':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')},
  '8524679':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')},
@@ -3942,7 +3912,7 @@
  '8524742':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
  '8524743':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')},
  '8524744':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')},
- '8524748':{'en': 'China Telecom Global Limited', 'zh': 'China Telecom Global 
Limited'},
+ '8524748':{'en': 'China Telecom Global Limited', 'zh': 
u('\u4e2d\u56fd\u7535\u4fe1\u56fd\u9645\u6709\u9650\u516c\u53f8')},
  '852475':{'en': 'Hutchison Telecom', 'zh': 
u('\u548c\u8a18\u96fb\u8a71\u6709\u9650\u516c\u53f8')},
  '852476':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8')},
  '852510':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8'), 
'zh_Hant': u('\u4e2d\u570b\u79fb\u52d5')},
@@ -4275,8 +4245,8 @@
  '8529592':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')},
  '8529593':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')},
  '8529594':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf')},
- '8529596':{'en': 'China Telecom Global Limited', 'zh': 'China Telecom Global 
Limited'},
- '8529597':{'en': 'China Telecom Global Limited', 'zh': 'China Telecom Global 
Limited'},
+ '8529596':{'en': 'China Telecom Global Limited', 'zh': 
u('\u4e2d\u56fd\u7535\u4fe1\u56fd\u9645\u6709\u9650\u516c\u53f8')},
+ '8529597':{'en': 'China Telecom Global Limited', 'zh': 
u('\u4e2d\u56fd\u7535\u4fe1\u56fd\u9645\u6709\u9650\u516c\u53f8')},
  '852960':{'en': 'China Mobile', 'zh': u('\u4e2d\u56fd\u79fb\u52a8'), 
'zh_Hant': u('\u4e2d\u570b\u79fb\u52d5')},
  '852961':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf'), 
'zh_Hant': u('\u9999\u6e2f\u79fb\u52d5\u901a\u8a0a')},
  '852962':{'en': 'HKT', 'zh': u('\u9999\u6e2f\u79fb\u52a8\u901a\u8baf'), 
'zh_Hant': u('\u9999\u6e2f\u79fb\u52d5\u901a\u8a0a')},
@@ -8272,6 +8242,7 @@
  '961787':{'en': 'Touch'},
  '961788':{'en': 'Touch'},
  '961789':{'en': 'Touch'},
+ '961790':{'en': 'Touch'},
  '961791':{'en': 'Alfa'},
  '961793':{'en': 'Alfa'},
  '961810':{'en': 'Touch'},
@@ -8421,6 +8392,7 @@
  '97255442':{'en': 'Xphone'},
  '97255443':{'en': 'Yossi'},
  '9725545':{'en': 'Maskyoo'},
+ '9725546':{'en': 'Xphone'},
  '9725550':{'en': 'Annatel'},
  '9725551':{'en': 'Annatel'},
  '9725552':{'en': 'Annatel'},
@@ -8546,18 +8518,21 @@
  '9892':{'en': 'Rightel', 'fa': u('\u0631\u0627\u06cc\u062a\u0644')},
  '9893':{'en': 'Irancell', 'fa': 
u('\u0627\u06cc\u0631\u0627\u0646\u0633\u0644')},
  '98931':{'en': 'MTCE', 'fa': u('\u0627\u0633\u067e\u0627\u062f\u0627\u0646')},
- '98932':{'en': 'Taliya', 'fa': u('\u062a\u0627\u0644\u06cc\u0627')},
+ '98932':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
  '98934':{'en': 'TeleKish', 'fa': 
u('\u062a\u0644\u0647\u200c\u06a9\u06cc\u0634')},
  '98990':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
  '98991':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
+ '98992':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
+ '98993':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
  '98994':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
  '989955':{'en': 'Irancell', 'fa': 
u('\u0627\u06cc\u0631\u0627\u0646\u0633\u0644')},
  '98996':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
  '989981':{'en': 'Shatel Mobile', 'fa': u('\u0634\u0627\u062a\u0644 
\u0645\u0648\u0628\u0627\u06cc\u0644')},
  '989982':{'en': 'Shatel Mobile', 'fa': u('\u0634\u0627\u062a\u0644 
\u0645\u0648\u0628\u0627\u06cc\u0644')},
- '9899900':{'en': 'LOTUSTEL', 'fa': 
u('\u0644\u0648\u062a\u0648\u0633\u200c\u062a\u0644')},
- '9899902':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
+ '989990':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
  '989991':{'en': 'Irancell', 'fa': 
u('\u0627\u06cc\u0631\u0627\u0646\u0633\u0644')},
+ '989995':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
+ '989996':{'en': 'IR-MCI', 'fa': u('\u0647\u0645\u0631\u0627\u0647 
\u0627\u0648\u0644')},
  '989998':{'en': 'Rightel', 'fa': u('\u0631\u0627\u06cc\u062a\u0644')},
  '9899996':{'en': 'Rightel', 'fa': u('\u0631\u0627\u06cc\u062a\u0644')},
  '9899997':{'en': 'Rightel', 'fa': u('\u0631\u0627\u06cc\u062a\u0644')},
@@ -8587,6 +8562,7 @@
  '992337':{'en': 'ZET-MOBILE'},
  '992338':{'en': 'ZET-MOBILE'},
  '992339':{'en': 'ZET-MOBILE'},
+ '99238':{'en': 'ZET-MOBILE'},
  '99240':{'en': 'ZET-MOBILE'},
  '99241':{'en': 'Megafon'},
  '992440':{'en': 'ZET-MOBILE'},
@@ -8597,6 +8573,7 @@
  '992449':{'en': 'ZET-MOBILE'},
  '99250':{'en': 'Tcell'},
  '99255':{'en': 'Megafon'},
+ '9926':{'en': 'ZET-MOBILE'},
  '99270':{'en': 'Tcell'},
  '99271':{'en': 'Babilon-M'},
  '99275':{'en': 'Babilon-M'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_AU.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_AU.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_AU.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_AU.py      2025-11-07 
08:07:49.000000000 +0100
@@ -3,8 +3,8 @@
 
 PHONE_METADATA_AU = PhoneMetadata(id='AU', country_code=61, 
international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
     
general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}',
 possible_length=(5, 6, 7, 8, 9, 10, 12)),
-    
fixed_line=PhoneNumberDesc(national_number_pattern='(?:(?:2(?:(?:[0-26-9]\\d|3[0-8]|5[0135-9])\\d|4(?:[02-9]\\d|10))|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90))|7(?:[013-57-9]\\d|2[0-8])\\d)\\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)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[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}',
 example_number='212345678', possible_length=(9,), 
possible_length_local_only=(8,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='4(?:79[01]|83[0-389]|94[0-478])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\\d{6}',
 example_number='412345678', possible_length=(9,)),
+    
fixed_line=PhoneNumberDesc(national_number_pattern='(?:(?: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}',
 example_number='212345678', possible_length=(9,), 
possible_length_local_only=(8,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='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}',
 example_number='412345678', possible_length=(9,)),
     
toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', 
example_number='1800123456', possible_length=(7, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', 
example_number='1900123456', possible_length=(10,)),
     
shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}',
 example_number='1300123456', possible_length=(6, 8, 10, 12)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_BJ.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_BJ.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_BJ.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_BJ.py      2025-11-07 
08:07:49.000000000 +0100
@@ -2,11 +2,11 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_BJ = PhoneMetadata(id='BJ', country_code=229, 
international_prefix='00',
-    
general_desc=PhoneNumberDesc(national_number_pattern='(?:01\\d|[24-689])\\d{7}',
 possible_length=(8, 10)),
-    
fixed_line=PhoneNumberDesc(national_number_pattern='2090\\d{4}|(?:012\\d\\d|2(?:02|1[037]|2[45]|3[68]|4\\d))\\d{5}',
 example_number='0120211234', possible_length=(8, 10)),
-    
mobile=PhoneNumberDesc(national_number_pattern='(?:01(?:2[5-9]|[4-69]\\d)|4[0-8]|[56]\\d|9[013-9])\\d{6}',
 example_number='0195123456', possible_length=(8, 10)),
+    general_desc=PhoneNumberDesc(national_number_pattern='(?:01\\d|8)\\d{7}', 
possible_length=(8, 10)),
+    fixed_line=PhoneNumberDesc(national_number_pattern='012\\d{7}', 
example_number='0120211234', possible_length=(10,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='01(?:2[5-9]|[4-69]\\d)\\d{6}', 
example_number='0195123456', possible_length=(10,)),
     voip=PhoneNumberDesc(national_number_pattern='857[58]\\d{4}', 
example_number='85751234', possible_length=(8,)),
     uan=PhoneNumberDesc(national_number_pattern='81\\d{6}', 
example_number='81123456', possible_length=(8,)),
-    number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', 
format='\\1 \\2 \\3 \\4', leading_digits_pattern=['[24-689]']),
+    number_format=[NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', 
format='\\1 \\2 \\3 \\4', leading_digits_pattern=['8']),
         NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})', 
format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['0'])],
     mobile_number_portable_region=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_CC.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_CC.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_CC.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_CC.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_CC = PhoneMetadata(id='CC', country_code=61, 
international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
     
general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}',
 possible_length=(6, 7, 8, 9, 10, 12)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='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}',
 example_number='891621234', possible_length=(9,), 
possible_length_local_only=(8,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='4(?:79[01]|83[0-389]|94[0-478])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\\d{6}',
 example_number='412345678', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='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}',
 example_number='412345678', possible_length=(9,)),
     
toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', 
example_number='1800123456', possible_length=(7, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', 
example_number='1900123456', possible_length=(10,)),
     
shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}',
 example_number='1300123456', possible_length=(6, 8, 10, 12)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_CX.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_CX.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_CX.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_CX.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_CX = PhoneMetadata(id='CX', country_code=61, 
international_prefix='001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011',
     
general_desc=PhoneNumberDesc(national_number_pattern='1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}',
 possible_length=(6, 7, 8, 9, 10, 12)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='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}',
 example_number='891641234', possible_length=(9,), 
possible_length_local_only=(8,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='4(?:79[01]|83[0-389]|94[0-478])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-37-9])\\d{6}',
 example_number='412345678', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='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}',
 example_number='412345678', possible_length=(9,)),
     
toll_free=PhoneNumberDesc(national_number_pattern='180(?:0\\d{3}|2)\\d{3}', 
example_number='1800123456', possible_length=(7, 10)),
     premium_rate=PhoneNumberDesc(national_number_pattern='190[0-26]\\d{6}', 
example_number='1900123456', possible_length=(10,)),
     
shared_cost=PhoneNumberDesc(national_number_pattern='13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}',
 example_number='1300123456', possible_length=(6, 8, 10, 12)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_ET.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_ET.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_ET.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_ET.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_ET = PhoneMetadata(id='ET', country_code=251, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='(?:11|[2-579]\\d)\\d{7}', 
possible_length=(9,), possible_length_local_only=(7,)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='11667[01]\\d{3}|(?:11(?:1(?:1[1-468]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8]|7\\d)|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}',
 example_number='111112345', possible_length=(9,), 
possible_length_local_only=(7,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\d\\d)\\d{6}',
 example_number='911234567', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|2[1-35-79]|3\\d|77|86|99)|9\\d\\d)\\d{6}',
 example_number='911234567', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', 
format='\\1 \\2 \\3', leading_digits_pattern=['[1-579]'], 
national_prefix_formatting_rule='0\\1')])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_GB.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_GB.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_GB.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_GB.py      2025-11-07 
08:07:49.000000000 +0100
@@ -3,7 +3,7 @@
 
 PHONE_METADATA_GB = PhoneMetadata(id='GB', country_code=44, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}',
 possible_length=(7, 9, 10), possible_length_local_only=(4, 5, 6, 8)),
-    
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\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}',
 example_number='1212345678', possible_length=(9, 10), 
possible_length_local_only=(4, 5, 6, 7, 8)),
+    
fixed_line=PhoneNumberDesc(national_number_pattern='(?: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}',
 example_number='1212345678', possible_length=(9, 10), 
possible_length_local_only=(4, 5, 6, 7, 8)),
     
mobile=PhoneNumberDesc(national_number_pattern='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}',
 example_number='7400123456', possible_length=(10,)),
     
toll_free=PhoneNumberDesc(national_number_pattern='80[08]\\d{7}|800\\d{6}|8001111',
 example_number='8001234567', possible_length=(7, 9, 10)),
     
premium_rate=PhoneNumberDesc(national_number_pattern='(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d',
 example_number='9012345678', possible_length=(7, 10)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_IL.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_IL.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_IL.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_IL.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_IL = PhoneMetadata(id='IL', country_code=972, 
international_prefix='0(?:0|1[2-9])',
     
general_desc=PhoneNumberDesc(national_number_pattern='1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}',
 possible_length=(7, 8, 9, 10, 11, 12)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}',
 example_number='21234567', possible_length=(8, 11, 12), 
possible_length_local_only=(7,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='55(?:4(?:0[01]|10|5[0-7])|57[0-289])\\d{4}|5(?:(?:[0-2][02-9]|[36]\\d|[49][2-9]|8[3-7])\\d|5(?:01|2\\d|3[0-3]|4[34]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}',
 example_number='502345678', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='55(?:4(?:0[0-2]|[16]0|5[0-7])|57[0-289])\\d{4}|5(?:(?:[0-2][02-9]|[36]\\d|[49][2-9]|8[3-7])\\d|5(?:01|2\\d|3[0-3]|4[34]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}',
 example_number='502345678', possible_length=(9,)),
     
toll_free=PhoneNumberDesc(national_number_pattern='1(?:255|80[019]\\d{3})\\d{3}',
 example_number='1800123456', possible_length=(7, 10)),
     
premium_rate=PhoneNumberDesc(national_number_pattern='1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}',
 example_number='1919123456', possible_length=(8, 10)),
     shared_cost=PhoneNumberDesc(national_number_pattern='1700\\d{6}', 
example_number='1700123456', possible_length=(10,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_IR.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_IR.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_IR.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_IR.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_IR = PhoneMetadata(id='IR', country_code=98, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}',
 possible_length=(4, 5, 6, 7, 10), possible_length_local_only=(8,)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|(?:12\\d|30[0-2])\\d|2(?:121|[2689]0\\d)|4(?:111|40\\d))\\d{4}',
 example_number='2123456789', possible_length=(6, 7, 10), 
possible_length_local_only=(4, 5, 8)),
-    
mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0[0-5]|[13]\\d|2[0-3])\\d\\d|9(?:[0-46]\\d\\d|5(?:10|5\\d)|8(?:[12]\\d|88)|9(?:0[0-3]|[19]\\d|21|69|77|8[7-9])))\\d{5}',
 example_number='9123456789', possible_length=(10,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='9(?:(?:0[0-5]|[13]\\d|2[0-3])\\d\\d|9(?:[0-46]\\d\\d|5(?:10|5\\d)|8(?:[12]\\d|88)|9(?:[0159]\\d|21|69|77|8[7-9])))\\d{5}',
 example_number='9123456789', possible_length=(10,)),
     
uan=PhoneNumberDesc(national_number_pattern='96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])',
 example_number='9601', possible_length=(4, 5)),
     
no_international_dialling=PhoneNumberDesc(national_number_pattern='9(?:4440\\d{5}|6(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19]))',
 possible_length=(4, 5, 10)),
     national_prefix='0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_LB.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_LB.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_LB.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_LB.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_LB = PhoneMetadata(id='LB', country_code=961, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='[27-9]\\d{7}|[13-9]\\d{6}',
 possible_length=(7, 8)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='7(?:62|8[0-6]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}',
 example_number='1123456', possible_length=(7, 8)),
-    
mobile=PhoneNumberDesc(national_number_pattern='(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[7-9]|9[1-3]))\\d{5}',
 example_number='71123456', possible_length=(7, 8)),
+    
mobile=PhoneNumberDesc(national_number_pattern='(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[7-9]|9[0-3]))\\d{5}',
 example_number='71123456', possible_length=(7, 8)),
     premium_rate=PhoneNumberDesc(national_number_pattern='9[01]\\d{6}', 
example_number='90123456', possible_length=(8,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='80\\d{6}', 
example_number='80123456', possible_length=(8,)),
     national_prefix='0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_MC.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_MC.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_MC.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_MC.py      2025-11-07 
08:07:49.000000000 +0100
@@ -2,9 +2,9 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_MC = PhoneMetadata(id='MC', country_code=377, 
international_prefix='00',
-    
general_desc=PhoneNumberDesc(national_number_pattern='(?:[3489]|6\\d)\\d{7}', 
possible_length=(8, 9)),
+    
general_desc=PhoneNumberDesc(national_number_pattern='(?:[3489]|[67]\\d)\\d{7}',
 possible_length=(8, 9)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='(?:870|9[2-47-9]\\d)\\d{5}',
 example_number='99123456', possible_length=(8,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='4(?:[469]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}',
 example_number='612345678', possible_length=(8, 9)),
+    
mobile=PhoneNumberDesc(national_number_pattern='4(?:[469]\\d|5[1-9])\\d{5}|(?:3|[67]\\d)\\d{7}',
 example_number='612345678', possible_length=(8, 9)),
     toll_free=PhoneNumberDesc(national_number_pattern='(?:800|90\\d)\\d{5}', 
example_number='90123456', possible_length=(8,)),
     
no_international_dialling=PhoneNumberDesc(national_number_pattern='8[07]0\\d{5}',
 possible_length=(8,)),
     national_prefix='0',
@@ -12,7 +12,7 @@
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{2})', 
format='\\1 \\2 \\3', leading_digits_pattern=['87']),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['4'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 
\\2 \\3 \\4', leading_digits_pattern=['[389]']),
-        NumberFormat(pattern='(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})', 
format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['6'], 
national_prefix_formatting_rule='0\\1')],
+        NumberFormat(pattern='(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})', 
format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['[67]'], 
national_prefix_formatting_rule='0\\1')],
     intl_number_format=[NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3})', 
format='\\1 \\2 \\3', leading_digits_pattern=['4']),
         NumberFormat(pattern='(\\d{2})(\\d{2})(\\d{2})(\\d{2})', format='\\1 
\\2 \\3 \\4', leading_digits_pattern=['[389]']),
-        NumberFormat(pattern='(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})', 
format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['6'])])
+        NumberFormat(pattern='(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})', 
format='\\1 \\2 \\3 \\4 \\5', leading_digits_pattern=['[67]'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_MG.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_MG.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_MG.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_MG.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_MG = PhoneMetadata(id='MG', country_code=261, 
international_prefix='00',
     general_desc=PhoneNumberDesc(national_number_pattern='[23]\\d{8}', 
possible_length=(9,), possible_length_local_only=(7,)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[356]|8[268]|9[2457])\\d{5}',
 example_number='202123456', possible_length=(9,), 
possible_length_local_only=(7,)),
-    mobile=PhoneNumberDesc(national_number_pattern='3[2-47-9]\\d{7}', 
example_number='321234567', possible_length=(9,)),
+    mobile=PhoneNumberDesc(national_number_pattern='3[2-46-9]\\d{7}', 
example_number='321234567', possible_length=(9,)),
     voip=PhoneNumberDesc(national_number_pattern='22\\d{7}', 
example_number='221234567', possible_length=(9,)),
     national_prefix='0',
     national_prefix_for_parsing='([24-9]\\d{6})$|0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_PY.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_PY.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_PY.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_PY.py      2025-11-07 
08:07:49.000000000 +0100
@@ -11,6 +11,7 @@
     national_prefix='0',
     national_prefix_for_parsing='0',
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{3,6})', format='\\1 
\\2', leading_digits_pattern=['[2-9]0'], 
national_prefix_formatting_rule='0\\1'),
+        NumberFormat(pattern='(\\d{7})', format='\\1', 
leading_digits_pattern=['[15]']),
         NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1 \\2', 
leading_digits_pattern=['[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]'], 
national_prefix_formatting_rule='(0\\1)'),
         NumberFormat(pattern='(\\d{3})(\\d{4,5})', format='\\1 \\2', 
leading_digits_pattern=['2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85'],
 national_prefix_formatting_rule='(0\\1)'),
         NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3,4})', format='\\1 \\2 
\\3', 
leading_digits_pattern=['2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]'],
 national_prefix_formatting_rule='(0\\1)'),
@@ -18,4 +19,12 @@
         NumberFormat(pattern='(\\d{3})(\\d{6})', format='\\1 \\2', 
leading_digits_pattern=['9(?:[5-79]|8[1-7])'], 
national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[2-8]'], national_prefix_formatting_rule='0\\1'),
         NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['9'])],
+    intl_number_format=[NumberFormat(pattern='(\\d{3})(\\d{3,6})', format='\\1 
\\2', leading_digits_pattern=['[2-9]0']),
+        NumberFormat(pattern='(\\d{2})(\\d{5})', format='\\1 \\2', 
leading_digits_pattern=['[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]']),
+        NumberFormat(pattern='(\\d{3})(\\d{4,5})', format='\\1 \\2', 
leading_digits_pattern=['2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85']),
+        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{3,4})', format='\\1 \\2 
\\3', 
leading_digits_pattern=['2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]']),
+        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['87']),
+        NumberFormat(pattern='(\\d{3})(\\d{6})', format='\\1 \\2', 
leading_digits_pattern=['9(?:[5-79]|8[1-7])']),
+        NumberFormat(pattern='(\\d{3})(\\d{3})(\\d{3})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[2-8]']),
+        NumberFormat(pattern='(\\d{4})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['9'])],
     mobile_number_portable_region=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_QA.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_QA.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_QA.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_QA.py      2025-11-07 
08:07:49.000000000 +0100
@@ -3,7 +3,7 @@
 
 PHONE_METADATA_QA = PhoneMetadata(id='QA', country_code=974, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}',
 possible_length=(7, 8, 9, 11)),
-    
fixed_line=PhoneNumberDesc(national_number_pattern='4(?:1111|2022)\\d{3}|4(?:[04]\\d\\d|14[0-6]|999)\\d{4}',
 example_number='44123456', possible_length=(8,)),
+    
fixed_line=PhoneNumberDesc(national_number_pattern='4(?:(?:[014]\\d\\d|999)\\d|2022)\\d{3}',
 example_number='44123456', possible_length=(8,)),
     mobile=PhoneNumberDesc(national_number_pattern='[35-7]\\d{7}', 
example_number='33123456', possible_length=(8,)),
     
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{4}|(?:0080[01]|800)\\d{6}',
 example_number='8001234', possible_length=(7, 9, 11)),
     pager=PhoneNumberDesc(national_number_pattern='2[136]\\d{5}', 
example_number='2123456', possible_length=(7,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_SG.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_SG.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_SG.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_SG.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_SG = PhoneMetadata(id='SG', country_code=65, 
international_prefix='0[0-3]\\d',
     
general_desc=PhoneNumberDesc(national_number_pattern='(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}',
 possible_length=(8, 10, 11)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}',
 example_number='61234567', possible_length=(8,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='898[02-8]\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-7])|9[0-8]\\d)\\d{5}',
 example_number='81234567', possible_length=(8,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='898[02-9]\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-7])|9[0-8]\\d)\\d{5}',
 example_number='81234567', possible_length=(8,)),
     toll_free=PhoneNumberDesc(national_number_pattern='(?:18|8)00\\d{7}', 
example_number='18001234567', possible_length=(10, 11)),
     premium_rate=PhoneNumberDesc(national_number_pattern='1900\\d{7}', 
example_number='19001234567', possible_length=(11,)),
     voip=PhoneNumberDesc(national_number_pattern='(?:3[12]\\d|666)\\d{5}', 
example_number='31234567', possible_length=(8,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_SN.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_SN.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_SN.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_SN.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_SN = PhoneMetadata(id='SN', country_code=221, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='(?:[378]\\d|93)\\d{7}', 
possible_length=(9,)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}',
 example_number='301012345', possible_length=(9,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='7(?:(?:[06-8]\\d|[19]0|21)\\d|5(?:0[01]|[19]0|2[25]|3[356]|[4-7]\\d|8[35]))\\d{5}',
 example_number='701234567', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='7(?:[05-8]\\d|[19]0|21)\\d{6}', 
example_number='701234567', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800\\d{6}', 
example_number='800123456', possible_length=(9,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='88[4689]\\d{6}', 
example_number='884123456', possible_length=(9,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='81[02468]\\d{6}', 
example_number='810123456', possible_length=(9,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_SV.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_SV.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_SV.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_SV.py      2025-11-07 
08:07:49.000000000 +0100
@@ -2,11 +2,11 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_SV = PhoneMetadata(id='SV', country_code=503, 
international_prefix='00',
-    
general_desc=PhoneNumberDesc(national_number_pattern='[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?',
 possible_length=(7, 8, 11)),
+    
general_desc=PhoneNumberDesc(national_number_pattern='(?:[267]\\d\\d|500)\\d{5}|(?:80\\d|900)\\d{4}(?:\\d{4})?',
 possible_length=(7, 8, 11)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='2(?:79(?:0[0347-9]|[1-9]\\d)|89(?:0[024589]|[1-9]\\d))\\d{3}|2(?:[1-69]\\d|[78][0-8])\\d{5}',
 example_number='21234567', possible_length=(8,)),
-    mobile=PhoneNumberDesc(national_number_pattern='[67]\\d{7}', 
example_number='70123456', possible_length=(8,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='(?:500[0-4]|[67]\\d{3})\\d{4}', 
example_number='70123456', possible_length=(8,)),
     
toll_free=PhoneNumberDesc(national_number_pattern='800\\d{8}|80[01]\\d{4}', 
example_number='8001234', possible_length=(7, 11)),
     
premium_rate=PhoneNumberDesc(national_number_pattern='900\\d{4}(?:\\d{4})?', 
example_number='9001234', possible_length=(7, 11)),
     number_format=[NumberFormat(pattern='(\\d{3})(\\d{4})', format='\\1 \\2', 
leading_digits_pattern=['[89]']),
-        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', 
leading_digits_pattern=['[267]']),
+        NumberFormat(pattern='(\\d{4})(\\d{4})', format='\\1 \\2', 
leading_digits_pattern=['[25-7]']),
         NumberFormat(pattern='(\\d{3})(\\d{4})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[89]'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_TJ.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_TJ.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_TJ.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_TJ.py      2025-11-07 
08:07:49.000000000 +0100
@@ -2,11 +2,11 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_TJ = PhoneMetadata(id='TJ', country_code=992, 
international_prefix='810',
-    general_desc=PhoneNumberDesc(national_number_pattern='[0-57-9]\\d{8}', 
possible_length=(9,), possible_length_local_only=(3, 5, 6, 7)),
+    
general_desc=PhoneNumberDesc(national_number_pattern='(?:[0-57-9]\\d|66)\\d{7}',
 possible_length=(9,), possible_length_local_only=(3, 5, 6, 7)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}',
 example_number='372123456', possible_length=(9,), 
possible_length_local_only=(3, 5, 6, 7)),
-    
mobile=PhoneNumberDesc(national_number_pattern='(?:33[03-9]|4(?:1[18]|4[02-479])|81[1-9])\\d{6}|(?:[09]\\d|1[0-27-9]|2[0-27]|[34]0|5[05]|7[01578]|8[078])\\d{7}',
 example_number='917123456', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='(?:33[03-9]|4(?:1[18]|4[02-479])|81[1-9])\\d{6}|(?:[09]\\d|1[0-27-9]|2[0-27]|3[08]|40|5[05]|66|7[01578]|8[078])\\d{7}',
 example_number='917123456', possible_length=(9,)),
     preferred_international_prefix='8~10',
     number_format=[NumberFormat(pattern='(\\d{6})(\\d)(\\d{2})', format='\\1 
\\2 \\3', leading_digits_pattern=['331', '3317']),
         NumberFormat(pattern='(\\d{3})(\\d{2})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['44[02-479]|[34]7']),
         NumberFormat(pattern='(\\d{4})(\\d)(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['3(?:[1245]|3[12])']),
-        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['[0-57-9]'])])
+        NumberFormat(pattern='(\\d{2})(\\d{3})(\\d{4})', format='\\1 \\2 \\3', 
leading_digits_pattern=['\\d'])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_UG.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_UG.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_UG.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_UG.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_UG = PhoneMetadata(id='UG', country_code=256, 
international_prefix='00[057]',
     
general_desc=PhoneNumberDesc(national_number_pattern='800\\d{6}|(?:[29]0|[347]\\d)\\d{7}',
 possible_length=(9,), possible_length_local_only=(5, 6, 7)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|3[1-4]|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}',
 example_number='312345678', possible_length=(9,), 
possible_length_local_only=(5, 6, 7)),
-    
mobile=PhoneNumberDesc(national_number_pattern='72[48]0\\d{5}|7(?:[014-8]\\d|2[067]|36|9[0-289])\\d{6}',
 example_number='712345678', possible_length=(9,)),
+    
mobile=PhoneNumberDesc(national_number_pattern='72[48]0\\d{5}|7(?:[014-8]\\d|2[0167]|36|9[0-289])\\d{6}',
 example_number='712345678', possible_length=(9,)),
     toll_free=PhoneNumberDesc(national_number_pattern='800[1-3]\\d{5}', 
example_number='800123456', possible_length=(9,)),
     premium_rate=PhoneNumberDesc(national_number_pattern='90[1-3]\\d{6}', 
example_number='901123456', possible_length=(9,)),
     national_prefix='0',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/data/region_ZA.py 
new/phonenumbers-9.0.18/phonenumbers/data/region_ZA.py
--- old/phonenumbers-9.0.16/phonenumbers/data/region_ZA.py      2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/data/region_ZA.py      2025-11-07 
08:07:49.000000000 +0100
@@ -4,7 +4,7 @@
 PHONE_METADATA_ZA = PhoneMetadata(id='ZA', country_code=27, 
international_prefix='00',
     
general_desc=PhoneNumberDesc(national_number_pattern='[1-79]\\d{8}|8\\d{4,9}', 
possible_length=(5, 6, 7, 8, 9, 10)),
     
fixed_line=PhoneNumberDesc(national_number_pattern='(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}',
 example_number='101234567', possible_length=(9,)),
-    
mobile=PhoneNumberDesc(national_number_pattern='(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:50[0-2]|6\\d\\d|7(?:[0-46-9]\\d|5[0-4]))\\d\\d|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}',
 example_number='711234567', possible_length=(5, 6, 7, 8, 9)),
+    
mobile=PhoneNumberDesc(national_number_pattern='(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:50[0-2]|[67]\\d\\d)\\d\\d|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}',
 example_number='711234567', possible_length=(5, 6, 7, 8, 9)),
     toll_free=PhoneNumberDesc(national_number_pattern='80\\d{7}', 
example_number='801234567', possible_length=(9,)),
     
premium_rate=PhoneNumberDesc(national_number_pattern='(?:86[2-9]|9[0-2]\\d)\\d{6}',
 example_number='862345678', possible_length=(9,)),
     shared_cost=PhoneNumberDesc(national_number_pattern='860\\d{6}', 
example_number='860123456', possible_length=(9,)),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data12.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data12.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data12.py      2025-10-10 
13:56:13.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data12.py      2025-11-07 
08:07:52.000000000 +0100
@@ -2157,6 +2157,7 @@
  '61851294':{'en': 'Wyndham'},
  '618513':{'en': 'Marble Bar/Millstream/Mitchell/Mount 
Bruce/Newman/Onslow/Ord/Pannawonica/Paraburdoo/Port 
Hedland/Roebuck/Sandfire/Telfer/Tom 
Price/Whaleback/Wittenoom/Wyndham/Derby/Broome/Christmas Island/Cocos 
Island/Dampier/De Grey/Fitzroy Crossing/Great Sandy/Hall\'s 
Creek/Karratha/Kununurra/Leopold'},
  '618514':{'en': 'Roebuck /Sandfire /Tom Price/Telfer/Wyndham/Whaleback 
/Wittenoom/Wyndham'},
+ '61855':{'en': 'Bakers Hill/Bindoon/Bullsbrook 
East/Byford/Dwellingup/Gidgegannup/Gingin/Guilderton/Mandurah/Mount 
Helena/Mount Wells/Pinjarra/Rockingham/Toodyay/Yanchep'},
  '61860000':{'en': 'Kalgoorlie'},
  '61860001':{'en': 'Burracoppin'},
  '61860002':{'en': 'Burracoppin'},
@@ -10018,5 +10019,4 @@
  '61885876':{'en': 'Wunkar'},
  '61885877':{'en': 'Wunkar'},
  '61885878':{'en': 'Paruna'},
- '61885879':{'en': 'Wanbi'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data13.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data13.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data13.py      2025-10-10 
13:56:13.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data13.py      2025-11-07 
08:07:52.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '61885879':{'en': 'Wanbi'},
  '6188588':{'en': 'Barmera'},
  '61885890':{'en': 'Mannum'},
  '61885891':{'en': 'Renmark'},
@@ -10018,5 +10019,4 @@
  '61899370':{'en': 'Kalbarri'},
  '61899371':{'en': 'Kalbarri'},
  '61899372':{'en': 'Kalbarri'},
- '61899373':{'en': 'Yandanooka'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data14.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data14.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data14.py      2025-10-10 
13:56:13.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data14.py      2025-11-07 
08:07:52.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '61899373':{'en': 'Yandanooka'},
  '61899374':{'en': 'Yandanooka'},
  '61899375':{'en': 'Guranu'},
  '61899376':{'en': 'Guranu'},
@@ -10018,5 +10019,4 @@
  '861308385':{'en': 'Anyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
  '861308386':{'en': 'Anyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
  '861308387':{'en': 'Anyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
- '861308388':{'en': 'Kaifeng, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data15.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data15.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data15.py      2025-10-10 
13:56:13.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data15.py      2025-11-07 
08:07:52.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861308388':{'en': 'Kaifeng, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
  '861308389':{'en': 'Puyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u6fee\u9633\u5e02')},
  '861308390':{'en': 'Huzhou, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u6e56\u5dde\u5e02')},
  '861308391':{'en': 'Huzhou, Zhejiang', 'zh': 
u('\u6d59\u6c5f\u7701\u6e56\u5dde\u5e02')},
@@ -10018,5 +10019,4 @@
  '861324901':{'en': 'Zhongshan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
  '861324902':{'en': 'Zhongshan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
  '861324903':{'en': 'Zhongshan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
- '861324904':{'en': 'Zhongshan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data16.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data16.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data16.py      2025-10-10 
13:56:13.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data16.py      2025-11-07 
08:07:52.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861324904':{'en': 'Zhongshan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e2d\u5c71\u5e02')},
  '861324905':{'en': 'Shenzhen, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
  '861324906':{'en': 'Shenzhen, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
  '861324907':{'en': 'Shenzhen, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
@@ -10018,5 +10019,4 @@
  '86134131':{'en': 'Huizhou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u60e0\u5dde\u5e02')},
  '86134132':{'en': 'Foshan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4f5b\u5c71\u5e02')},
  '86134133':{'en': 'Maoming, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u8302\u540d\u5e02')},
- '861341340':{'en': 'Shantou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data17.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data17.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data17.py      2025-10-10 
13:56:13.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data17.py      2025-11-07 
08:07:52.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861341340':{'en': 'Shantou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
  '861341341':{'en': 'Shantou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
  '861341342':{'en': 'Shantou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
  '861341343':{'en': 'Shantou, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6c55\u5934\u5e02')},
@@ -10018,5 +10019,4 @@
  '861365935':{'en': 'Wuwei, Gansu', 'zh': 
u('\u7518\u8083\u7701\u6b66\u5a01\u5e02')},
  '861365936':{'en': 'Jiuquan, Gansu', 'zh': 
u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
  '861365937':{'en': 'Jiuquan, Gansu', 'zh': 
u('\u7518\u8083\u7701\u9152\u6cc9\u5e02')},
- '861365938':{'en': 'Tianshui, Gansu', 'zh': 
u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data18.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data18.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data18.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data18.py      2025-11-07 
08:07:52.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861365938':{'en': 'Tianshui, Gansu', 'zh': 
u('\u7518\u8083\u7701\u5929\u6c34\u5e02')},
  '861365939':{'en': 'Longnan, Gansu', 'zh': 
u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
  '86136594':{'en': 'Lanzhou, Gansu', 'zh': 
u('\u7518\u8083\u7701\u5170\u5dde\u5e02')},
  '861365950':{'en': 'Lhasa, Tibet', 'zh': u('\u897f\u85cf\u62c9\u8428\u5e02')},
@@ -10018,5 +10019,4 @@
  '861396651':{'en': 'Bozhou, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
  '861396652':{'en': 'Bozhou, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
  '861396653':{'en': 'Bozhou, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u4eb3\u5dde\u5e02')},
- '861396660':{'en': 'Anqing, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data19.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data19.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data19.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data19.py      2025-11-07 
08:07:52.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861396660':{'en': 'Anqing, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
  '861396661':{'en': 'Anqing, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
  '861396662':{'en': 'Anqing, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
  '861396663':{'en': 'Anqing, Anhui', 'zh': 
u('\u5b89\u5fbd\u7701\u5b89\u5e86\u5e02')},
@@ -10018,5 +10019,4 @@
  '861508220':{'en': 'Leshan, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
  '861508221':{'en': 'Leshan, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
  '861508222':{'en': 'Leshan, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
- '861508223':{'en': 'Leshan, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data20.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data20.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data20.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data20.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861508223':{'en': 'Leshan, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
  '861508224':{'en': 'Leshan, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u4e50\u5c71\u5e02')},
  '861508225':{'en': 'Liangshan, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
  '861508226':{'en': 'Liangshan, Sichuan', 'zh': 
u('\u56db\u5ddd\u7701\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde')},
@@ -10018,5 +10019,4 @@
  '861534518':{'en': 'Nanjing, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u5357\u4eac\u5e02')},
  '861534519':{'en': 'Changzhou, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u5e38\u5dde\u5e02')},
  '861534520':{'en': 'HuaiAn, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
- '861534521':{'en': 'HuaiAn, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data21.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data21.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data21.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data21.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861534521':{'en': 'HuaiAn, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u6dee\u5b89\u5e02')},
  '861534522':{'en': 'Taizhou, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
  '861534523':{'en': 'Taizhou, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u6cf0\u5dde\u5e02')},
  '861534524':{'en': 'Suzhou, Jiangsu', 'zh': 
u('\u6c5f\u82cf\u7701\u82cf\u5dde\u5e02')},
@@ -10018,5 +10019,4 @@
  '861568535':{'en': 'Anshun, Guizhou', 'zh': 
u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
  '861568536':{'en': 'Anshun, Guizhou', 'zh': 
u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
  '861568537':{'en': 'Anshun, Guizhou', 'zh': 
u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
- '861568538':{'en': 'Anshun, Guizhou', 'zh': 
u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data22.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data22.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data22.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data22.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861568538':{'en': 'Anshun, Guizhou', 'zh': 
u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
  '861568539':{'en': 'Anshun, Guizhou', 'zh': 
u('\u8d35\u5dde\u7701\u5b89\u987a\u5e02')},
  '861568540':{'en': 'Qiannan, Guizhou', 'zh': 
u('\u8d35\u5dde\u7701\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde')},
  '861568541':{'en': 'Guiyang, Guizhou', 'zh': 
u('\u8d35\u5dde\u7701\u8d35\u9633\u5e02')},
@@ -10018,5 +10019,4 @@
  '861596038':{'en': 'Xiamen, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
  '861596039':{'en': 'Xiamen, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u53a6\u95e8\u5e02')},
  '861596040':{'en': 'Quanzhou, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
- '861596041':{'en': 'Quanzhou, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data23.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data23.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data23.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data23.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861596041':{'en': 'Quanzhou, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
  '861596042':{'en': 'Quanzhou, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
  '861596043':{'en': 'Quanzhou, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
  '861596044':{'en': 'Quanzhou, Fujian', 'zh': 
u('\u798f\u5efa\u7701\u6cc9\u5dde\u5e02')},
@@ -10018,5 +10019,4 @@
  '861787697':{'en': 'Zhanjiang, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6e5b\u6c5f\u5e02')},
  '861787698':{'en': 'Dongguan, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u4e1c\u839e\u5e02')},
  '861787699':{'en': 'Shenzhen, Guangdong', 'zh': 
u('\u5e7f\u4e1c\u7701\u6df1\u5733\u5e02')},
- '86178770':{'en': 'Nanning, Guangxi', 'zh': 
u('\u5e7f\u897f\u5357\u5b81\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data24.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data24.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data24.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data24.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '86178770':{'en': 'Nanning, Guangxi', 'zh': 
u('\u5e7f\u897f\u5357\u5b81\u5e02')},
  '861787705':{'en': 'Yulin, Guangxi', 'zh': 
u('\u5e7f\u897f\u7389\u6797\u5e02')},
  '861787706':{'en': 'Yulin, Guangxi', 'zh': 
u('\u5e7f\u897f\u7389\u6797\u5e02')},
  '861787708':{'en': 'Hechi, Guangxi', 'zh': 
u('\u5e7f\u897f\u6cb3\u6c60\u5e02')},
@@ -10018,5 +10019,4 @@
  '861820949':{'en': 'Longnan, Gansu', 'zh': 
u('\u7518\u8083\u7701\u9647\u5357\u5e02')},
  '861820950':{'en': 'Yinchuan, Ningxia', 'zh': 
u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
  '861820951':{'en': 'Yinchuan, Ningxia', 'zh': 
u('\u5b81\u590f\u94f6\u5ddd\u5e02')},
- '861820952':{'en': 'Shizuishan, Ningxia', 'zh': 
u('\u5b81\u590f\u77f3\u5634\u5c71\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data25.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data25.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data25.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data25.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '861820952':{'en': 'Shizuishan, Ningxia', 'zh': 
u('\u5b81\u590f\u77f3\u5634\u5c71\u5e02')},
  '861820953':{'en': 'Wuzhong, Ningxia', 'zh': 
u('\u5b81\u590f\u5434\u5fe0\u5e02')},
  '861820954':{'en': 'Guyuan, Ningxia', 'zh': 
u('\u5b81\u590f\u56fa\u539f\u5e02')},
  '861820955':{'en': 'Zhongwei, Ningxia', 'zh': 
u('\u5b81\u590f\u4e2d\u536b\u5e02')},
@@ -10018,5 +10019,4 @@
  '861856867':{'en': 'Kaifeng, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
  '861856868':{'en': 'Kaifeng, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5f00\u5c01\u5e02')},
  '861856869':{'en': 'Xinyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u4fe1\u9633\u5e02')},
- '86185687':{'en': 'Nanyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data26.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data26.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data26.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data26.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '86185687':{'en': 'Nanyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5357\u9633\u5e02')},
  '861856870':{'en': 'Xinxiang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
  '861856871':{'en': 'Xinxiang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
  '861856872':{'en': 'Xinxiang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u65b0\u4e61\u5e02')},
@@ -10018,5 +10019,4 @@
  '86188379':{'en': 'Luoyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u6d1b\u9633\u5e02')},
  '86188380':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
  '86188381':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
- '86188382':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data27.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data27.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data27.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data27.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '86188382':{'en': 'Zhengzhou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u90d1\u5dde\u5e02')},
  '86188383':{'en': 'Zhoukou, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5468\u53e3\u5e02')},
  '861883840':{'en': 'Anyang, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u5b89\u9633\u5e02')},
  '861883841':{'en': 'Luohe, Henan', 'zh': 
u('\u6cb3\u5357\u7701\u6f2f\u6cb3\u5e02')},
@@ -10018,5 +10019,4 @@
  '9171813':{'en': 'Lakhandur, Maharashtra'},
  '9171814':{'en': 'Lakhandur, Maharashtra'},
  '9171815':{'en': 'Lakhandur, Maharashtra'},
- '9171816':{'en': 'Lakhandur, Maharashtra'},
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/geodata/data28.py 
new/phonenumbers-9.0.18/phonenumbers/geodata/data28.py
--- old/phonenumbers-9.0.16/phonenumbers/geodata/data28.py      2025-10-10 
13:56:14.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/geodata/data28.py      2025-11-07 
08:07:53.000000000 +0100
@@ -19,6 +19,7 @@
 # limitations under the License.
 
 data = {
+ '9171816':{'en': 'Lakhandur, Maharashtra'},
  '9171817':{'en': 'Lakhandur, Maharashtra'},
  '9171822':{'en': 'Gondia, Maharashtra'},
  '9171823':{'en': 'Gondia, Maharashtra'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/phonenumbers-9.0.16/phonenumbers/shortdata/region_PY.py 
new/phonenumbers-9.0.18/phonenumbers/shortdata/region_PY.py
--- old/phonenumbers-9.0.16/phonenumbers/shortdata/region_PY.py 2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/shortdata/region_PY.py 2025-11-07 
08:07:50.000000000 +0100
@@ -2,8 +2,10 @@
 from ..phonemetadata import NumberFormat, PhoneNumberDesc, PhoneMetadata
 
 PHONE_METADATA_PY = PhoneMetadata(id='PY', country_code=None, 
international_prefix=None,
-    general_desc=PhoneNumberDesc(national_number_pattern='[19]\\d\\d', 
possible_length=(3,)),
+    
general_desc=PhoneNumberDesc(national_number_pattern='[159]\\d\\d(?:\\d{4})?', 
possible_length=(3, 7)),
     toll_free=PhoneNumberDesc(national_number_pattern='128|911', 
example_number='128', possible_length=(3,)),
     emergency=PhoneNumberDesc(national_number_pattern='128|911', 
example_number='128', possible_length=(3,)),
-    short_code=PhoneNumberDesc(national_number_pattern='1[1-9]\\d|911', 
example_number='110', possible_length=(3,)),
+    
short_code=PhoneNumberDesc(national_number_pattern='(?:1[01]|51)\\d{5}|911|1[1-9]\\d',
 example_number='110', possible_length=(3, 7)),
+    
carrier_specific=PhoneNumberDesc(national_number_pattern='(?:1[01]|51)\\d{5}', 
example_number='1000000', possible_length=(7,)),
+    sms_services=PhoneNumberDesc(national_number_pattern='(?:1[01]|51)\\d{5}', 
example_number='1000000', possible_length=(7,)),
     short_data=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/phonenumbers-9.0.16/phonenumbers/shortdata/region_RO.py 
new/phonenumbers-9.0.18/phonenumbers/shortdata/region_RO.py
--- old/phonenumbers-9.0.16/phonenumbers/shortdata/region_RO.py 2025-10-10 
13:56:11.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/shortdata/region_RO.py 2025-11-07 
08:07:50.000000000 +0100
@@ -3,9 +3,9 @@
 
 PHONE_METADATA_RO = PhoneMetadata(id='RO', country_code=None, 
international_prefix=None,
     general_desc=PhoneNumberDesc(national_number_pattern='[18]\\d{2,5}', 
possible_length=(3, 4, 5, 6)),
-    toll_free=PhoneNumberDesc(national_number_pattern='11(?:2|6\\d{3})', 
example_number='112', possible_length=(3, 6)),
+    toll_free=PhoneNumberDesc(national_number_pattern='11(?:[23]|6\\d{3})', 
example_number='112', possible_length=(3, 6)),
     
premium_rate=PhoneNumberDesc(national_number_pattern='(?:1(?:18[39]|[24])|8[48])\\d\\d',
 example_number='1200', possible_length=(4, 6)),
     emergency=PhoneNumberDesc(national_number_pattern='112', 
example_number='112', possible_length=(3,)),
-    
short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:2|6(?:000|1(?:11|23))|8(?:(?:01|8[18])1|119|[23]00|932))|[24]\\d\\d|9(?:0(?:00|19)|1[19]|21|3[02]|5[178]))|8[48]\\d\\d',
 example_number='112', possible_length=(3, 4, 5, 6)),
-    
sms_services=PhoneNumberDesc(national_number_pattern='(?:1[24]|8[48])\\d\\d', 
example_number='1200', possible_length=(4,)),
+    
short_code=PhoneNumberDesc(national_number_pattern='1(?:1(?:[23]|6(?:000|1(?:11|23))|8(?:(?:01|8[18])1|119|[23]00|932))|[24]\\d\\d|9(?:0(?:00|19)|1[19]|21|3[02]|5[178]))|8[48]\\d\\d',
 example_number='112', possible_length=(3, 4, 5, 6)),
+    
sms_services=PhoneNumberDesc(national_number_pattern='113|(?:1[24]|8[48])\\d\\d',
 example_number='113', possible_length=(3, 4)),
     short_data=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers/tzdata/data0.py 
new/phonenumbers-9.0.18/phonenumbers/tzdata/data0.py
--- old/phonenumbers-9.0.16/phonenumbers/tzdata/data0.py        2025-10-10 
13:56:15.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers/tzdata/data0.py        2025-11-07 
08:07:54.000000000 +0100
@@ -2883,7 +2883,10 @@
  '61734976':('Australia/Brisbane',),
  '617350':('Australia/Brisbane',),
  '617353':('Australia/Brisbane',),
- '617354':('Australia/Brisbane',),
+ '6173540':('Australia/Brisbane',),
+ '6173546':('Australia/Brisbane',),
+ '6173547':('Australia/Brisbane',),
+ '6173548':('Australia/Brisbane',),
  '617355':('Australia/Brisbane',),
  '61735678':('Australia/Brisbane',),
  '617360':('Australia/Brisbane',),
@@ -2998,6 +3001,7 @@
  '6185129':('Australia/Adelaide', 'Australia/Perth'),
  '618513':('Australia/Sydney',),
  '618514':('Australia/Sydney',),
+ '61855':('Australia/Adelaide', 'Australia/Perth'),
  '6186':('Australia/Adelaide', 'Australia/Perth'),
  '6187':('Australia/Adelaide', 'Australia/Perth'),
  '6188':('Australia/Adelaide', 'Australia/Perth'),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/phonenumbers-9.0.16/phonenumbers.egg-info/PKG-INFO 
new/phonenumbers-9.0.18/phonenumbers.egg-info/PKG-INFO
--- old/phonenumbers-9.0.16/phonenumbers.egg-info/PKG-INFO      2025-10-10 
14:04:06.000000000 +0200
+++ new/phonenumbers-9.0.18/phonenumbers.egg-info/PKG-INFO      2025-11-07 
08:36:53.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: phonenumbers
-Version: 9.0.16
+Version: 9.0.18
 Summary: Python version of Google's common library for parsing, formatting, 
storing and validating international phone numbers.
 Home-page: https://github.com/daviddrysdale/python-phonenumbers
 Author: David Drysdale

Reply via email to