Update external/libphonenumber to v5.3

Change-Id: Ic350cdd9924d5de89c959fa42fab36a8b66484a4
diff --git a/README.android b/README.android
index a27771e..9b4c3e2 100644
--- a/README.android
+++ b/README.android
@@ -1,5 +1,5 @@
 URL: http://code.google.com/p/libphonenumber/
-Version: 5.2 (r536)
+Version: 5.3 (r552)
 License: Apache 2
 Description: Google Phone Number Library.
 Local Modification:
diff --git a/java/release_notes.txt b/java/release_notes.txt
index cf9539c..2680dcd 100644
--- a/java/release_notes.txt
+++ b/java/release_notes.txt
@@ -1,3 +1,25 @@
+Jan 08, 2013: libphonenumber-5.3
+* Code changes:
+ - Handling UAN numbers in Argentina better when dialling them locally from a
+   mobile
+* Metadata changes:
+ - Updated metadata for region code(s):
+   BE, BW, CL, CN, CO, EH, KW, MA, ML, NG, PL, SY, ZA, ZM
+ - New geocoding data for country calling code(s): 32 (en, fr, nl)
+ - Updated geocoding data for country calling code(s): 27 (en), 86 (en, zh)
+
+Dec 06, 2012: libphonenumber-5.2.2
+* Metadata changes:
+ - New metadata for region code(s): EH
+ - Updated metadata for region code(s): BR, CL, CR, IN, MA, PG, PK, RO
+ - New geocoding data for country calling code(s): 241 (en)
+
+Nov 26, 2012: libphonenumber-5.2.1
+* Metadata changes:
+ - Updated metadata for region code(s):
+   AE, AW, BF, CN, DE, JO, KE, KH, LT, MM, MU, NG, RW, SR, TR, VU
+ - New geocoding data for country calling code(s): 359 (bg, en)
+
 Oct 10, 2012: libphonenumber-5.2
 * Code changes:
  - Adds isNumberGeographical() method.
diff --git a/java/src/com/android/i18n/phonenumbers/AsYouTypeFormatter.java b/java/src/com/android/i18n/phonenumbers/AsYouTypeFormatter.java
index 2c8ac44..604d573 100644
--- a/java/src/com/android/i18n/phonenumbers/AsYouTypeFormatter.java
+++ b/java/src/com/android/i18n/phonenumbers/AsYouTypeFormatter.java
@@ -397,8 +397,8 @@
       // Put the extracted NDD back to the national number before attempting to extract a new NDD.
       nationalNumber.insert(0, nationalPrefixExtracted);
       // Remove the previously extracted NDD from prefixBeforeNationalNumber. We cannot simply set
-      // it to empty string because people sometimes enter national prefix after country code, e.g
-      // +44 (0)20-1234-5678.
+      // it to empty string because people sometimes incorrectly enter national prefix after the
+      // country code, e.g. +44 (0)20-1234-5678.
       int indexOfPreviousNdd = prefixBeforeNationalNumber.lastIndexOf(nationalPrefixExtracted);
       prefixBeforeNationalNumber.setLength(indexOfPreviousNdd);
     }
diff --git a/java/src/com/android/i18n/phonenumbers/CountryCodeToRegionCodeMap.java b/java/src/com/android/i18n/phonenumbers/CountryCodeToRegionCodeMap.java
index ab79a47..a4c982b 100644
--- a/java/src/com/android/i18n/phonenumbers/CountryCodeToRegionCodeMap.java
+++ b/java/src/com/android/i18n/phonenumbers/CountryCodeToRegionCodeMap.java
@@ -257,8 +257,9 @@
     listWithRegionCode.add("SS");
     countryCodeToRegionCodeMap.put(211, listWithRegionCode);
 
-    listWithRegionCode = new ArrayList<String>(1);
+    listWithRegionCode = new ArrayList<String>(2);
     listWithRegionCode.add("MA");
+    listWithRegionCode.add("EH");
     countryCodeToRegionCodeMap.put(212, listWithRegionCode);
 
     listWithRegionCode = new ArrayList<String>(1);
diff --git a/java/src/com/android/i18n/phonenumbers/PhoneNumberUtil.java b/java/src/com/android/i18n/phonenumbers/PhoneNumberUtil.java
index 5c54f61..32076ef 100644
--- a/java/src/com/android/i18n/phonenumbers/PhoneNumberUtil.java
+++ b/java/src/com/android/i18n/phonenumbers/PhoneNumberUtil.java
@@ -1220,6 +1220,11 @@
       // In Peru, numbers cannot be dialled using E164 format from a mobile phone for Movistar.
       // Instead they must be dialled in national format.
       formattedNumber = format(numberNoExt, PhoneNumberFormat.NATIONAL);
+    } else if (regionCode.equals("AE") && regionCallingFrom.equals("AE") &&
+               numberType == PhoneNumberType.UAN) {
+      // In the United Arab Emirates, numbers with the prefix 600 (UAN numbers) cannot be dialled
+      // using E164 format. Instead they must be dialled in national format.
+      formattedNumber = format(numberNoExt, PhoneNumberFormat.NATIONAL);
     } else if (regionCode.equals("BR") && regionCallingFrom.equals("BR") &&
         ((numberType == PhoneNumberType.FIXED_LINE) || (numberType == PhoneNumberType.MOBILE) ||
          (numberType == PhoneNumberType.FIXED_LINE_OR_MOBILE))) {
@@ -1279,12 +1284,12 @@
         return countryCallingCode + " " + format(number, PhoneNumberFormat.NATIONAL);
       }
     } else if (countryCallingCode == getCountryCodeForValidRegion(regionCallingFrom)) {
-    // If regions share a country calling code, the country calling code need not be dialled.
-    // This also applies when dialling within a region, so this if clause covers both these cases.
-    // Technically this is the case for dialling from La Reunion to other overseas departments of
-    // France (French Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover this
-    // edge case for now and for those cases return the version including country calling code.
-    // Details here: http://www.petitfute.com/voyage/225-info-pratiques-reunion
+      // If regions share a country calling code, the country calling code need not be dialled.
+      // This also applies when dialling within a region, so this if clause covers both these cases.
+      // Technically this is the case for dialling from La Reunion to other overseas departments of
+      // France (French Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover this
+      // edge case for now and for those cases return the version including country calling code.
+      // Details here: http://www.petitfute.com/voyage/225-info-pratiques-reunion
       return format(number, PhoneNumberFormat.NATIONAL);
     }
     // Metadata cannot be null because we checked 'isValidRegionCode()' above.
diff --git a/java/src/com/android/i18n/phonenumbers/ShortNumberUtil.java b/java/src/com/android/i18n/phonenumbers/ShortNumberUtil.java
index 3f47e7d..bce408d 100644
--- a/java/src/com/android/i18n/phonenumbers/ShortNumberUtil.java
+++ b/java/src/com/android/i18n/phonenumbers/ShortNumberUtil.java
@@ -84,8 +84,7 @@
     Pattern emergencyNumberPattern =
         Pattern.compile(metadata.getEmergency().getNationalNumberPattern());
     String normalizedNumber = PhoneNumberUtil.normalizeDigitsOnly(number);
-    // In Brazil, it is impossible to append additional digits to an emergency number to dial the
-    // number.
+    // In Brazil, emergency numbers don't work when additional digits are appended.
     return (!allowPrefixMatch || regionCode.equals("BR"))
         ? emergencyNumberPattern.matcher(normalizedNumber).matches()
         : emergencyNumberPattern.matcher(normalizedNumber).lookingAt();
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
index b75959f..ac2cac9 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
index 151327c..0c0759e 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
index f53db36..27e3739 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
index 370c7ac..82942ae 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
index 96d2ae4..798f2e0 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
index e1c6492..9846733 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
index 2e74d26..9a4dbda 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
index ae35d25..d79fb8b 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
index 2c6db02..ed8db9c 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
index 7f6746e..4dca01b 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
index 76e9213..4ded4fd 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH
new file mode 100644
index 0000000..0de408e
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
index e6d3b8f..3fd5c9d 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
index a3f78a7..8c292da 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
index 56053cb..d67ceab 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
index a7c91d4..49d926c 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
index 158a8c2..a333014 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
index 2f5c836..05d679f 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
index 4b646f7..f27324b 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
index 66f55b8..9ac0659 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
index fb17e68..844175e 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
index e0eb9f8..24cb204 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
index 8878132..c0b385e 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
index 253b2ed..b580b8f 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
index 335cda0..69c2b2c 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
index 4bc0e39..b426dc8 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
index 9424b97..e59f139 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
index 3e8489d..dfb01b4 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
index 8203e51..fd576a9 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
index 61c0f25..9603fb8 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
index 04618ff..06b2f5c 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
index 58d2d94..d3fb780 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
index b918549..8d07f90 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
index 82fbcb3..4db7196 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
index cef8f8c..cb6d6c7 100644
--- a/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
+++ b/java/src/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/241_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/241_en
new file mode 100644
index 0000000..82c7f62
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/241_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/27_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/27_en
index c86a27c..6331f15 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/27_en
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/27_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/32_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/32_en
new file mode 100644
index 0000000..0bd8b56
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/32_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/32_fr b/java/src/com/android/i18n/phonenumbers/geocoding/data/32_fr
new file mode 100644
index 0000000..23df1d7
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/32_fr
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/32_nl b/java/src/com/android/i18n/phonenumbers/geocoding/data/32_nl
new file mode 100644
index 0000000..74a5c6c
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/32_nl
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/359_bg b/java/src/com/android/i18n/phonenumbers/geocoding/data/359_bg
new file mode 100644
index 0000000..11573e0
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/359_bg
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/359_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/359_en
new file mode 100644
index 0000000..7daae27
--- /dev/null
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/359_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/86_en b/java/src/com/android/i18n/phonenumbers/geocoding/data/86_en
index fcc8652..4cb4f56 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/86_en
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/86_en
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/86_zh b/java/src/com/android/i18n/phonenumbers/geocoding/data/86_zh
index ed87a7b..dbec3ce 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/86_zh
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/86_zh
Binary files differ
diff --git a/java/src/com/android/i18n/phonenumbers/geocoding/data/config b/java/src/com/android/i18n/phonenumbers/geocoding/data/config
index 601c283..9cb6708 100644
--- a/java/src/com/android/i18n/phonenumbers/geocoding/data/config
+++ b/java/src/com/android/i18n/phonenumbers/geocoding/data/config
Binary files differ
diff --git a/java/test/com/android/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java b/java/test/com/android/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java
index ada7c82..38920e3 100644
--- a/java/test/com/android/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java
+++ b/java/test/com/android/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java
@@ -31,10 +31,10 @@
   // countries sharing a calling code, such as the NANPA countries, the one
   // indicated with "isMainCountryForCode" in the metadata should be first.
   static Map<Integer, List<String>> getCountryCodeToRegionCodeMap() {
-    // The capacity is set to 25 as there are 19 different country codes,
+    // The capacity is set to 26 as there are 20 different country codes,
     // and this offers a load factor of roughly 0.75.
     Map<Integer, List<String>> countryCodeToRegionCodeMap =
-        new HashMap<Integer, List<String>>(25);
+        new HashMap<Integer, List<String>>(26);
 
     ArrayList<String> listWithRegionCode;
 
@@ -113,6 +113,10 @@
     countryCodeToRegionCodeMap.put(800, listWithRegionCode);
 
     listWithRegionCode = new ArrayList<String>(1);
+    listWithRegionCode.add("AE");
+    countryCodeToRegionCodeMap.put(971, listWithRegionCode);
+
+    listWithRegionCode = new ArrayList<String>(1);
     listWithRegionCode.add("001");
     countryCodeToRegionCodeMap.put(979, listWithRegionCode);
 
diff --git a/java/test/com/android/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/test/com/android/i18n/phonenumbers/PhoneNumberUtilTest.java
index 430a4c0..0db9f75 100644
--- a/java/test/com/android/i18n/phonenumbers/PhoneNumberUtilTest.java
+++ b/java/test/com/android/i18n/phonenumbers/PhoneNumberUtilTest.java
@@ -41,6 +41,8 @@
   // any risk of accidental changes to mutable static state affecting many tests.
   private static final PhoneNumber ALPHA_NUMERIC_NUMBER =
       new PhoneNumber().setCountryCode(1).setNationalNumber(80074935247L);
+  private static final PhoneNumber AE_UAN =
+      new PhoneNumber().setCountryCode(971).setNationalNumber(600123456L);
   private static final PhoneNumber AR_MOBILE =
       new PhoneNumber().setCountryCode(54).setNationalNumber(91187654321L);
   private static final PhoneNumber AR_NUMBER =
@@ -725,6 +727,12 @@
         phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE, RegionCode.JP, false));
     assertEquals("+800 1234 5678",
         phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE, RegionCode.JP, true));
+
+    // UAE numbers beginning with 600 (classified as UAN) need to be dialled without +971 locally.
+    assertEquals("+971600123456",
+        phoneUtil.formatNumberForMobileDialing(AE_UAN, RegionCode.JP, false));
+    assertEquals("600123456",
+        phoneUtil.formatNumberForMobileDialing(AE_UAN, RegionCode.AE, false));
   }
 
   public void testFormatByPattern() {
diff --git a/java/test/com/android/i18n/phonenumbers/RegionCode.java b/java/test/com/android/i18n/phonenumbers/RegionCode.java
index 89b6817..4312f7f 100644
--- a/java/test/com/android/i18n/phonenumbers/RegionCode.java
+++ b/java/test/com/android/i18n/phonenumbers/RegionCode.java
@@ -23,6 +23,7 @@
   // Region code for global networks (e.g. +800 numbers).
   static final String UN001 = "001";
   static final String AD = "AD";
+  static final String AE = "AE";
   static final String AO = "AO";
   static final String AQ = "AQ";
   static final String AR = "AR";
diff --git a/java/test/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AE b/java/test/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AE
new file mode 100644
index 0000000..c4f0cd2
--- /dev/null
+++ b/java/test/com/android/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AE
Binary files differ