ICU-21480 integrate CLDR release-39-alpha4 to ICU trunk
diff --git a/icu4c/source/data/cldr-icu-readme.txt b/icu4c/source/data/cldr-icu-readme.txt
index aaf4bb2..986447e 100644
--- a/icu4c/source/data/cldr-icu-readme.txt
+++ b/icu4c/source/data/cldr-icu-readme.txt
@@ -201,14 +201,6 @@
 # and add the following line to the beginning of these two files
 # # File copied from cldr common/testData/localeIdentifiers/localeCanonicalization.txt
 
-# 4e. Temporary fix until ICU-21496 is addressed: Need to remove bogus content.
-cd $ICU4C_DIR/source/data
-open rbnf/nb.txt
-# Edit to remove bogus content leaving just the following after header comments, then save:
-nb{
-    %%Parent{"no"}
-}
-
 # 5. Check which data files have modifications, which have been added or removed
 # (if there are no changes, you may not need to proceed further). Make sure the
 # list seems reasonable.
diff --git a/icu4c/source/data/misc/units.txt b/icu4c/source/data/misc/units.txt
index 29584a6..fb08754 100644
--- a/icu4c/source/data/misc/units.txt
+++ b/icu4c/source/data/misc/units.txt
@@ -1126,11 +1126,6 @@
                         unit{"meter-and-centimeter"}
                     }
                 }
-                BR{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
                 CA{
                     {
                         geq{"3.0"}
@@ -1140,21 +1135,6 @@
                         unit{"inch"}
                     }
                 }
-                CN{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
-                DE{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
-                DK{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
                 DZ{
                     {
                         unit{"meter-and-centimeter"}
@@ -1218,41 +1198,11 @@
                         unit{"meter-and-centimeter"}
                     }
                 }
-                MX{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
                 MY{
                     {
                         unit{"meter-and-centimeter"}
                     }
                 }
-                NL{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
-                NO{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
-                PL{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
-                PT{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
-                RU{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
                 SA{
                     {
                         unit{"meter-and-centimeter"}
@@ -1407,11 +1357,6 @@
                         unit{"foot-and-inch"}
                     }
                 }
-                MX{
-                    {
-                        unit{"meter-and-centimeter"}
-                    }
-                }
                 US{
                     {
                         unit{"foot-and-inch"}
@@ -1507,21 +1452,6 @@
                         unit{"gram"}
                     }
                 }
-                DZ{
-                    {
-                        unit{"kilogram-and-gram"}
-                    }
-                }
-                EG{
-                    {
-                        unit{"kilogram-and-gram"}
-                    }
-                }
-                ES{
-                    {
-                        unit{"kilogram-and-gram"}
-                    }
-                }
                 GB{
                     {
                         unit{"stone-and-pound"}
@@ -1535,16 +1465,6 @@
                         unit{"pound-and-ounce"}
                     }
                 }
-                JO{
-                    {
-                        unit{"kilogram-and-gram"}
-                    }
-                }
-                SA{
-                    {
-                        unit{"kilogram-and-gram"}
-                    }
-                }
                 US{
                     {
                         unit{"pound"}
diff --git a/icu4c/source/data/rbnf/nn.txt b/icu4c/source/data/rbnf/nn.txt
index 50704cb..115f10a 100644
--- a/icu4c/source/data/rbnf/nn.txt
+++ b/icu4c/source/data/rbnf/nn.txt
@@ -5,8 +5,6 @@
     %%Parent{"no"}
     RBNFRules{
         SpelloutRules{
-            "%%lenient-parse:",
-            "&[last primary ignorable ] << ' ' << ',' << '-' << '\u00AD';",
             "%spellout-numbering-year:",
             "-x: minus >>;",
             "x.x: =0.0=;",
diff --git a/icu4c/source/data/rbnf/no.txt b/icu4c/source/data/rbnf/no.txt
index 5ce7c65..cc0b7b8 100644
--- a/icu4c/source/data/rbnf/no.txt
+++ b/icu4c/source/data/rbnf/no.txt
@@ -4,6 +4,8 @@
 no{
     RBNFRules{
         SpelloutRules{
+            "%%lenient-parse:",
+            "&[last primary ignorable ] << ' ' << ',' << '-' << '\u00AD';",
             "%spellout-numbering-year:",
             "-x: minus >>;",
             "x.x: =0.0=;",
diff --git a/icu4c/source/data/xml/rbnf/nn.xml b/icu4c/source/data/xml/rbnf/nn.xml
deleted file mode 100644
index 5cac56b..0000000
--- a/icu4c/source/data/xml/rbnf/nn.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (C) 2016 and later: Unicode, Inc. and others.
- License & terms of use: http://www.unicode.org/copyright.html
- Copyright (c) 2010-2015 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "../../dtd/cldr-35.1/common/dtd/ldml.dtd">
-<ldml>
-    <identity>
-        <version number="$Revision$"/>
-        <language type="nn"/>
-    </identity>
-    <rbnf>
-        <rulesetGrouping type="SpelloutRules">
-            <ruleset type="lenient-parse" access="private">
-                <rbnfrule value="0">&amp;[last primary ignorable ] ←← ' ' ←← ',' ←← '-' ←← '­';</rbnfrule>
-            </ruleset>
-        </rulesetGrouping>
- 
-   </rbnf>
-</ldml>
diff --git a/icu4c/source/data/xml/rbnf/nb.xml b/icu4c/source/data/xml/rbnf/no.xml
similarity index 95%
rename from icu4c/source/data/xml/rbnf/nb.xml
rename to icu4c/source/data/xml/rbnf/no.xml
index b877831..f56cc87 100644
--- a/icu4c/source/data/xml/rbnf/nb.xml
+++ b/icu4c/source/data/xml/rbnf/no.xml
@@ -8,7 +8,7 @@
 <ldml>
     <identity>
         <version number="$Revision$"/>
-        <language type="nb"/>
+        <language type="no"/>
     </identity>
     <rbnf>
         <rulesetGrouping type="SpelloutRules">
diff --git a/icu4c/source/test/intltest/numbertest_api.cpp b/icu4c/source/test/intltest/numbertest_api.cpp
index 31b4357..ad2d451 100644
--- a/icu4c/source/test/intltest/numbertest_api.cpp
+++ b/icu4c/source/test/intltest/numbertest_api.cpp
@@ -1691,7 +1691,7 @@
             u"measure-unit/length-meter usage/person-height",
             u"unit/meter usage/person-height",
             NumberFormatter::with().unit(METER).usage("person-height"),
-            Locale("de-DE"),
+            Locale("sv-SE"),
             uprv_getNaN(),
             u"0 m, NaN cm");
 
diff --git a/icu4c/source/test/intltest/units_data_test.cpp b/icu4c/source/test/intltest/units_data_test.cpp
index a5ffa7f..2c578f1 100644
--- a/icu4c/source/test/intltest/units_data_test.cpp
+++ b/icu4c/source/test/intltest/units_data_test.cpp
@@ -113,10 +113,9 @@
         {"XX default falls back to 001", "length", "default", "XX", WorldLenMax, WorldLenMin},
         {"Unknown usage US", "length", "foobar", "US", USLenMax, USLenMin},
         {"Unknown usage 001", "length", "foobar", "XX", WorldLenMax, WorldLenMin},
-        {"Fallback", "length", "person-height-xyzzy", "DE", "meter-and-centimeter",
-         "meter-and-centimeter"},
-        {"Fallback twice", "length", "person-height-xyzzy-foo", "DE", "meter-and-centimeter",
-         "meter-and-centimeter"},
+        {"Fallback", "length", "person-height-xyzzy", "DE", "centimeter", "centimeter"},
+        {"Fallback twice", "length", "person-height-xyzzy-foo", "DE", "centimeter",
+         "centimeter"},
         // Confirming results for some unitPreferencesTest.txt test cases
         {"001 area", "area", "default", "001", "square-kilometer", "square-centimeter"},
         {"GB area", "area", "default", "GB", "square-mile", "square-inch"},
diff --git a/icu4c/source/test/testdata/cldr/units/unitPreferencesTest.txt b/icu4c/source/test/testdata/cldr/units/unitPreferencesTest.txt
index fea05b9..2235305 100644
--- a/icu4c/source/test/testdata/cldr/units/unitPreferencesTest.txt
+++ b/icu4c/source/test/testdata/cldr/units/unitPreferencesTest.txt
@@ -237,9 +237,9 @@
 length;	vehicle;	001;	1;	1.0;	meter;	1;	1.0;	meter
 length;	vehicle;	001;	9 / 10;	0.9;	meter;	9 / 10;	0.9;	meter
 
-length;	vehicle;	MX;	11 / 10;	1.1;	meter;	1;	meter;	10;	10.0;	centimeter
-length;	vehicle;	MX;	1;	1.0;	meter;	1;	meter;	0;	0.0;	centimeter
-length;	vehicle;	MX;	9 / 10;	0.9;	meter;	0;	meter;	90;	90.0;	centimeter
+length;	vehicle;	MX;	11 / 10;	1.1;	meter;	11 / 10;	1.1;	meter
+length;	vehicle;	MX;	1;	1.0;	meter;	1;	1.0;	meter
+length;	vehicle;	MX;	9 / 10;	0.9;	meter;	9 / 10;	0.9;	meter
 
 length;	visiblty;	001;	200;	200.0;	meter;	1 / 5;	0.2;	kilometer
 length;	visiblty;	001;	100;	100.0;	meter;	1 / 10;	0.1;	kilometer
@@ -283,9 +283,9 @@
 mass;	person;	001;	1 / 1000;	0.001;	kilogram;	1;	1.0;	gram
 mass;	person;	001;	9 / 10000;	9.0E-4;	kilogram;	9 / 10;	0.9;	gram
 
-mass;	person;	DZ;	11 / 10;	1.1;	kilogram;	1;	kilogram;	100;	100.0;	gram
-mass;	person;	DZ;	1;	1.0;	kilogram;	1;	kilogram;	0;	0.0;	gram
-mass;	person;	DZ;	9 / 10;	0.9;	kilogram;	0;	kilogram;	900;	900.0;	gram
+mass;	person;	DZ;	11 / 10;	1.1;	kilogram;	11 / 10;	1.1;	kilogram
+mass;	person;	DZ;	1;	1.0;	kilogram;	1;	1.0;	kilogram
+mass;	person;	DZ;	9 / 10;	0.9;	kilogram;	900;	900.0;	gram
 
 mass;	person;	US;	498951607 / 1000000000;	0.498951607;	kilogram;	11 / 10;	1.1;	pound
 mass;	person;	US;	45359237 / 100000000;	0.45359237;	kilogram;	1;	1.0;	pound
diff --git a/icu4j/main/shared/data/icudata.jar b/icu4j/main/shared/data/icudata.jar
index c052810..6f0dae4 100644
--- a/icu4j/main/shared/data/icudata.jar
+++ b/icu4j/main/shared/data/icudata.jar
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:9f438270baa10fbae595a2c84184276867437c2c414331ccdc0939e1af530cd3
-size 13302830
+oid sha256:fd5ad664553e56cbbd89e7eb9721d6e78dbace888a12dfabdd56e4565e92d675
+size 13302692
diff --git a/icu4j/main/shared/data/icutzdata.jar b/icu4j/main/shared/data/icutzdata.jar
index b81adfe..094a1bc 100644
--- a/icu4j/main/shared/data/icutzdata.jar
+++ b/icu4j/main/shared/data/icutzdata.jar
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:7ca9c9bb368c6d12e8c5e0a973f8147bb3a5b69282b273b7f676174386face31
+oid sha256:5deb1e854be1bbc3c1038fc02e95e779ae5f69fb857f9ccd63f7cdccdbc7da9c
 size 95094
diff --git a/icu4j/main/shared/data/testdata.jar b/icu4j/main/shared/data/testdata.jar
index dc23096..3c6055f 100644
--- a/icu4j/main/shared/data/testdata.jar
+++ b/icu4j/main/shared/data/testdata.jar
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:18b9a95ba92f05a9f754b81cb4b575a55bd5f7e1ded655879a0b5c6b29231182
-size 726591
+oid sha256:b39f56ea6d1f099a49aec4265c53c3355ff43a91f926d8fde1355887ae562de4
+size 723620
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/data/cldr/units/unitPreferencesTest.txt b/icu4j/main/tests/core/src/com/ibm/icu/dev/data/cldr/units/unitPreferencesTest.txt
index fea05b9..2235305 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/data/cldr/units/unitPreferencesTest.txt
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/data/cldr/units/unitPreferencesTest.txt
@@ -237,9 +237,9 @@
 length;	vehicle;	001;	1;	1.0;	meter;	1;	1.0;	meter
 length;	vehicle;	001;	9 / 10;	0.9;	meter;	9 / 10;	0.9;	meter
 
-length;	vehicle;	MX;	11 / 10;	1.1;	meter;	1;	meter;	10;	10.0;	centimeter
-length;	vehicle;	MX;	1;	1.0;	meter;	1;	meter;	0;	0.0;	centimeter
-length;	vehicle;	MX;	9 / 10;	0.9;	meter;	0;	meter;	90;	90.0;	centimeter
+length;	vehicle;	MX;	11 / 10;	1.1;	meter;	11 / 10;	1.1;	meter
+length;	vehicle;	MX;	1;	1.0;	meter;	1;	1.0;	meter
+length;	vehicle;	MX;	9 / 10;	0.9;	meter;	9 / 10;	0.9;	meter
 
 length;	visiblty;	001;	200;	200.0;	meter;	1 / 5;	0.2;	kilometer
 length;	visiblty;	001;	100;	100.0;	meter;	1 / 10;	0.1;	kilometer
@@ -283,9 +283,9 @@
 mass;	person;	001;	1 / 1000;	0.001;	kilogram;	1;	1.0;	gram
 mass;	person;	001;	9 / 10000;	9.0E-4;	kilogram;	9 / 10;	0.9;	gram
 
-mass;	person;	DZ;	11 / 10;	1.1;	kilogram;	1;	kilogram;	100;	100.0;	gram
-mass;	person;	DZ;	1;	1.0;	kilogram;	1;	kilogram;	0;	0.0;	gram
-mass;	person;	DZ;	9 / 10;	0.9;	kilogram;	0;	kilogram;	900;	900.0;	gram
+mass;	person;	DZ;	11 / 10;	1.1;	kilogram;	11 / 10;	1.1;	kilogram
+mass;	person;	DZ;	1;	1.0;	kilogram;	1;	1.0;	kilogram
+mass;	person;	DZ;	9 / 10;	0.9;	kilogram;	900;	900.0;	gram
 
 mass;	person;	US;	498951607 / 1000000000;	0.498951607;	kilogram;	11 / 10;	1.1;	pound
 mass;	person;	US;	45359237 / 100000000;	0.45359237;	kilogram;	1;	1.0;	pound
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/impl/UnitsTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/impl/UnitsTest.java
index 927ff58..30d82ed 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/impl/UnitsTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/impl/UnitsTest.java
@@ -650,9 +650,9 @@
             UnitsRouter router = new UnitsRouter(testCase.inputUnit.second, testCase.region, testCase.usage);
             List<Measure> measures = router.route(testCase.input, null).complexConverterResult.measures;
 
-            assertEquals("Measures size must be the same as expected units",
+            assertEquals("For " + testCase.toString() + ", Measures size must be the same as expected units",
                     measures.size(), testCase.expectedInOrder.size());
-            assertEquals("Measures size must be the same as output units",
+            assertEquals("For " + testCase.toString() + ", Measures size must be the same as output units",
                     measures.size(), testCase.outputUnitInOrder.size());
 
 
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java
index a7c6890..7f1f75d 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/number/NumberFormatterApiTest.java
@@ -1505,7 +1505,7 @@
                 "measure-unit/length-meter usage/person-height",
                 "unit/meter usage/person-height",
                 NumberFormatter.with().unit(MeasureUnit.METER).usage("person-height"),
-                new ULocale("en-DE"),
+                new ULocale("sv-SE"),
                 Double.NaN,
                 // "0 m, NaN cm");
                 "0 m, 0 cm");