Updates for region data constants, plus a change to the Android manifest file to support roboelectric.
diff --git a/cpp/src/region_data_constants.cc b/cpp/src/region_data_constants.cc
index f632b6d..c91e6f8 100644
--- a/cpp/src/region_data_constants.cc
+++ b/cpp/src/region_data_constants.cc
@@ -51,8 +51,6 @@
       "\"languages\":\"ca\""
       "}"));
   region_data.insert(std::make_pair("AE", "{"
-      "\"fmt\":\"%N%n%O%n%A%n%C\","
-      "\"require\":\"AC\","
       "\"languages\":\"ar\""
       "}"));
   region_data.insert(std::make_pair("AF", "{"
@@ -199,9 +197,10 @@
       "\"languages\":\"es~qu~ay\""
       "}"));
   region_data.insert(std::make_pair("BR", "{"
-      "\"fmt\":\"%O%n%N%n%A%n%C-%S%n%Z\","
+      "\"fmt\":\"%O%n%N%n%A%n%D%n%C-%S%n%Z\","
       "\"require\":\"ASCZ\","
       "\"state_name_type\":\"state\","
+      "\"sublocality_name_type\":\"neighborhood\","
       "\"zipex\":\"40301-110,70002-900\","
       "\"posturl\":\"http://www.correios.com.br/servicos/cep/cep_default.cfm\","
       "\"languages\":\"pt\""
@@ -224,7 +223,7 @@
       "}"));
   region_data.insert(std::make_pair("BY", "{"
       "\"fmt\":\"%S%n%Z %C %X%n%A%n%O%n%N\","
-      "\"zipex\":\"20050,223016,225860,220050\","
+      "\"zipex\":\"223016,225860,220050\","
       "\"posturl\":\"http://zip.belpost.by\","
       "\"languages\":\"be~ru\""
       "}"));
@@ -240,6 +239,7 @@
       "}"));
   region_data.insert(std::make_pair("CC", "{"
       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
+      "\"zipex\":\"6799\","
       "\"languages\":\"en\""
       "}"));
   region_data.insert(std::make_pair("CD", "{"
@@ -264,7 +264,6 @@
       "\"languages\":\"fr\""
       "}"));
   region_data.insert(std::make_pair("CK", "{"
-      "\"fmt\":\"%N%n%O%n%A%n%C %Z\","
       "\"languages\":\"en\""
       "}"));
   region_data.insert(std::make_pair("CL", "{"
@@ -306,6 +305,7 @@
       "}"));
   region_data.insert(std::make_pair("CX", "{"
       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
+      "\"zipex\":\"6798\","
       "\"languages\":\"en\""
       "}"));
   region_data.insert(std::make_pair("CY", "{"
@@ -357,7 +357,7 @@
       "}"));
   region_data.insert(std::make_pair("EE", "{"
       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
-      "\"zipex\":\"69501,11212,1001\","
+      "\"zipex\":\"69501,11212\","
       "\"posturl\":\"http://www.post.ee/\?op=sihtnumbriotsing\","
       "\"languages\":\"et\""
       "}"));
@@ -433,7 +433,7 @@
       "\"require\":\"ACZ\","
       "\"state_name_type\":\"county\","
       "\"locality_name_type\":\"post_town\","
-      "\"zipex\":\"EC1Y 8SY,GIR 0AA,M2 5BQ,M34 4AB,CR0 2YR,DN16 9AA,W1A 4ZZ,EC1A 1HQ,OX14 4PG,BS18 8HF,NR25 7HG,RH6 OHP,BH23 6AA,B6 5BA,RH6 0HP,SO23 9AP,PO1 3AX,BFPO 61\","
+      "\"zipex\":\"EC1Y 8SY,GIR 0AA,M2 5BQ,M34 4AB,CR0 2YR,DN16 9AA,W1A 4ZZ,EC1A 1HQ,OX14 4PG,BS18 8HF,NR25 7HG,RH6 0NP,BH23 6AA,B6 5BA,SO23 9AP,PO1 3AX,BFPO 61\","
       "\"posturl\":\"http://www.royalmail.com/postcode-finder\","
       "\"languages\":\"en\""
       "}"));
@@ -464,7 +464,7 @@
       "\"languages\":\"en\""
       "}"));
   region_data.insert(std::make_pair("GI", "{"
-      "\"fmt\":\"%N%n%O%n%A\","
+      "\"fmt\":\"%N%n%O%n%A%nGIBRALTAR%n%Z\","
       "\"require\":\"A\","
       "\"zipex\":\"GX11 1AA\","
       "\"languages\":\"en\""
@@ -529,19 +529,22 @@
       "\"languages\":\"en\""
       "}"));
   region_data.insert(std::make_pair("HK", "{"
-      "\"fmt\":\"%S%n%A%n%O%n%N\","
-      "\"lfmt\":\"%N%n%O%n%A%n%S\","
+      "\"fmt\":\"%S%n%C%n%A%n%O%n%N\","
+      "\"lfmt\":\"%N%n%O%n%A%n%C%n%S\","
       "\"require\":\"AS\","
       "\"state_name_type\":\"area\","
+      "\"locality_name_type\":\"district\","
       "\"languages\":\"zh-Hant~en\""
       "}"));
   region_data.insert(std::make_pair("HM", "{"
       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
+      "\"zipex\":\"7050\","
       "\"languages\":\"\""
       "}"));
   region_data.insert(std::make_pair("HN", "{"
       "\"fmt\":\"%N%n%O%n%A%n%C, %S%n%Z\","
       "\"require\":\"ACS\","
+      "\"zipex\":\"31301\","
       "\"languages\":\"es\""
       "}"));
   region_data.insert(std::make_pair("HR", "{"
@@ -602,6 +605,7 @@
   region_data.insert(std::make_pair("IQ", "{"
       "\"fmt\":\"%O%n%N%n%A%n%C, %S%n%Z\","
       "\"require\":\"ACS\","
+      "\"zipex\":\"31001\","
       "\"languages\":\"ar\""
       "}"));
   region_data.insert(std::make_pair("IS", "{"
@@ -689,7 +693,7 @@
       "\"languages\":\"ar\""
       "}"));
   region_data.insert(std::make_pair("KY", "{"
-      "\"fmt\":\"%N%n%O%n%A%n%S\","
+      "\"fmt\":\"%N%n%O%n%A%n%S %Z\","
       "\"require\":\"AS\","
       "\"state_name_type\":\"island\","
       "\"zipex\":\"KY1-1100,KY1-1702,KY2-2101\","
@@ -882,7 +886,6 @@
       "\"languages\":\"ms\""
       "}"));
   region_data.insert(std::make_pair("MZ", "{"
-      "\"fmt\":\"%N%n%O%n%A%n%C\","
       "\"zipex\":\"1102,1119,3212\","
       "\"languages\":\"pt\""
       "}"));
@@ -903,6 +906,7 @@
       "}"));
   region_data.insert(std::make_pair("NF", "{"
       "\"fmt\":\"%O%n%N%n%A%n%C %S %Z\","
+      "\"zipex\":\"2899\","
       "\"languages\":\"en\""
       "}"));
   region_data.insert(std::make_pair("NG", "{"
@@ -973,6 +977,7 @@
       "\"fmt\":\"%N%n%O%n%A%n%Z %C %S\","
       "\"require\":\"ACSZ\","
       "\"state_name_type\":\"island\","
+      "\"zipex\":\"98709\","
       "\"languages\":\"fr~ty\""
       "}"));
   region_data.insert(std::make_pair("PG", "{"
@@ -1254,7 +1259,7 @@
       "\"state_name_type\":\"oblast\","
       "\"zipex\":\"15432,01055,01001\","
       "\"posturl\":\"http://services.ukrposhta.com/postindex_new/\","
-      "\"languages\":\"uk~ru\""
+      "\"languages\":\"uk\""
       "}"));
   region_data.insert(std::make_pair("UG", "{"
       "\"languages\":\"sw~en\""
@@ -1307,6 +1312,7 @@
       "\"languages\":\"es\""
       "}"));
   region_data.insert(std::make_pair("VG", "{"
+      "\"fmt\":\"%N%n%O%n%A%n%C%n%Z\","
       "\"require\":\"A\","
       "\"zipex\":\"VG1110,VG1150,VG1160\","
       "\"languages\":\"en\""
@@ -1321,9 +1327,8 @@
       "\"languages\":\"en\""
       "}"));
   region_data.insert(std::make_pair("VN", "{"
-      "\"fmt\":\"%N%n%O%n%A%n%C%n%S\","
-      "\"lfmt\":\"%N%n%O%n%A%n%C%n%S\","
-      "\"require\":\"AC\","
+      "\"fmt\":\"%N%n%O%n%A%n%C%n%S %Z\","
+      "\"lfmt\":\"%N%n%O%n%A%n%C%n%S %Z\","
       "\"zipex\":\"119415,136065,720344\","
       "\"posturl\":\"http://postcode.vnpost.vn/services/search.aspx\","
       "\"languages\":\"vi\""
@@ -1346,7 +1351,6 @@
       "\"languages\":\"sq~sr-Cyrl~sr-Latn\""
       "}"));
   region_data.insert(std::make_pair("YE", "{"
-      "\"require\":\"AC\","
       "\"languages\":\"ar\""
       "}"));
   region_data.insert(std::make_pair("YT", "{"
@@ -1364,7 +1368,6 @@
       "}"));
   region_data.insert(std::make_pair("ZM", "{"
       "\"fmt\":\"%N%n%O%n%A%n%Z %C\","
-      "\"require\":\"AC\","
       "\"zipex\":\"50100,50101\","
       "\"languages\":\"en\""
       "}"));
diff --git a/cpp/test/region_data_constants_test.cc b/cpp/test/region_data_constants_test.cc
index 63e6ae2..71d473d 100644
--- a/cpp/test/region_data_constants_test.cc
+++ b/cpp/test/region_data_constants_test.cc
@@ -88,7 +88,7 @@
 
 TEST(RegionDataConstantsTest, GetMaxLookupKeyDepth) {
   EXPECT_EQ(0, RegionDataConstants::GetMaxLookupKeyDepth("NZ"));
-  EXPECT_EQ(1, RegionDataConstants::GetMaxLookupKeyDepth("HK"));
+  EXPECT_EQ(1, RegionDataConstants::GetMaxLookupKeyDepth("KY"));
   EXPECT_EQ(2, RegionDataConstants::GetMaxLookupKeyDepth("US"));
   EXPECT_EQ(3, RegionDataConstants::GetMaxLookupKeyDepth("CN"));
 }
diff --git a/java/src/AndroidManifest.xml b/java/src/AndroidManifest.xml
index c3d022e..cf738f3 100644
--- a/java/src/AndroidManifest.xml
+++ b/java/src/AndroidManifest.xml
@@ -6,5 +6,6 @@
     <uses-sdk
         android:minSdkVersion="8"
         android:targetSdkVersion="19" />
+    <application/>
 
 </manifest>
diff --git a/java/src/com/android/i18n/addressinput/RegionDataConstants.java b/java/src/com/android/i18n/addressinput/RegionDataConstants.java
index f9bb119..0b486dd 100644
--- a/java/src/com/android/i18n/addressinput/RegionDataConstants.java
+++ b/java/src/com/android/i18n/addressinput/RegionDataConstants.java
@@ -177,10 +177,11 @@
                 "name", "BRAZIL",
                 "lang", "pt",
                 "languages", "pt",
-                "fmt", "%O%n%N%n%A%n%C-%S%n%Z",
+                "fmt", "%O%n%N%n%A%n%D%n%C-%S%n%Z",
                 "require", "ASCZ",
                 "upper", "CS",
                 "state_name_type", "state",
+                "sublocality_name_type", "neighborhood",
         }),
         BS(new String[]{
                 "name", "BAHAMAS",
@@ -243,7 +244,6 @@
         }),
         CK(new String[]{
                 "name", "COOK ISLANDS",
-                "fmt", "%N%n%O%n%A%n%C %Z",
         }),
         CL(new String[]{
                 "name", "CHILE",
@@ -421,7 +421,7 @@
         }),
         GI(new String[]{
                 "name", "GIBRALTAR",
-                "fmt", "%N%n%O%n%A",
+                "fmt", "%N%n%O%n%A%nGIBRALTAR%n%Z",
                 "require", "A",
         }),
         GL(new String[]{
@@ -479,11 +479,12 @@
                 "name", "HONG KONG",
                 "lang", "zh-Hant",
                 "languages", "zh-Hant~en",
-                "fmt", "%S%n%A%n%O%n%N",
-                "lfmt", "%N%n%O%n%A%n%S",
+                "fmt", "%S%n%C%n%A%n%O%n%N",
+                "lfmt", "%N%n%O%n%A%n%C%n%S",
                 "require", "AS",
                 "upper", "S",
                 "state_name_type", "area",
+                "locality_name_type", "district",
         }),
         HM(new String[]{
                 "name", "HEARD AND MCDONALD ISLANDS",
@@ -642,7 +643,7 @@
                 "name", "CAYMAN ISLANDS",
                 "lang", "en",
                 "languages", "en",
-                "fmt", "%N%n%O%n%A%n%S",
+                "fmt", "%N%n%O%n%A%n%S %Z",
                 "require", "AS",
                 "state_name_type", "island",
         }),
@@ -746,6 +747,8 @@
         }),
         MO(new String[]{
                 "name", "MACAO",
+                "lang", "zh-Hant",
+                "languages", "zh-Hant",
                 "fmt", "%A%n%O%n%N",
                 "lfmt", "%N%n%O%n%A",
                 "require", "A",
@@ -811,7 +814,6 @@
         }),
         MZ(new String[]{
                 "name", "MOZAMBIQUE",
-                "fmt", "%N%n%O%n%A%n%C",
         }),
         NA(new String[]{
                 "name", "NAMIBIA",
@@ -980,8 +982,8 @@
                 "name", "RUSSIAN FEDERATION",
                 "fmt", "%N%n%O%n%A%n%C%n%S%n%Z",
                 "require", "ACZ",
-                "state_name_type", "oblast",
                 "upper", "AC",
+                "state_name_type", "oblast",
         }),
         RW(new String[]{
                 "name", "RWANDA",
@@ -1209,6 +1211,7 @@
         }),
         VG(new String[]{
                 "name", "VIRGIN ISLANDS (BRITISH)",
+                "fmt", "%N%n%O%n%A%n%C%n%Z",
                 "require", "A",
         }),
         VI(new String[]{
@@ -1223,9 +1226,8 @@
                 "name", "VIET NAM",
                 "lang", "vi",
                 "languages", "vi",
-                "fmt", "%N%n%O%n%A%n%C%n%S",
-                "lfmt", "%N%n%O%n%A%n%C%n%S",
-                "require", "AC",
+                "fmt", "%N%n%O%n%A%n%C%n%S %Z",
+                "lfmt", "%N%n%O%n%A%n%C%n%S %Z",
         }),
         VU(new String[]{
                 "name", "VANUATU",
@@ -1245,7 +1247,6 @@
         }),
         YE(new String[]{
                 "name", "YEMEN",
-                "require", "AC",
         }),
         YT(new String[]{
                 "name", "MAYOTTE",
@@ -1261,7 +1262,6 @@
         ZM(new String[]{
                 "name", "ZAMBIA",
                 "fmt", "%N%n%O%n%A%n%Z %C",
-                "require", "AC",
         }),
         ZW(new String[]{
                 "name", "ZIMBABWE",