diff --git a/build/azure-nuget.yml b/build/azure-nuget.yml
index 96ee572d936..be6cb83ec20 100644
--- a/build/azure-nuget.yml
+++ b/build/azure-nuget.yml
@@ -3,10 +3,7 @@
# no PR triggers
pr: none
-# We need to set the version for the PackageES builds.
-name: $(BuildDefinitionName)-$(date:yyMM).$(date:dd)$(rev:rrr)
-
-# Code signing only runs on the MSCodeHub build pipeline.
+# Note: Code signing is only enabled for the manually triggered build pipeline in MSCodeHub.
variables:
codeSign: ${{ eq(variables['System.definitionId'], '1386') }}
BuildConfiguration: 'Release'
@@ -245,13 +242,19 @@ stages:
condition: and(succeeded(), eq(variables.codeSign, true))
dependsOn: Build
pool:
- name: Package ES CodeHub Lab E
+ name: Azure Pipelines
+ vmImage: 'windows-2019'
jobs:
- job: CodeSignBits
- timeoutInMinutes: 45
+ timeoutInMinutes: 60
workspace:
clean: all
-
+ variables:
+ signingPattern: |
+ icudt*.dll
+ icuuc*.dll
+ icuin*.dll
+
# This matrix strategy lets us code-sign the architectures in parallel.
strategy:
matrix:
@@ -266,12 +269,6 @@ stages:
- checkout: self
lfs: true
fetchDepth: 1
- - task: PkgESSetupBuild@10
- displayName: 'PkgES Setup Build'
- inputs:
- useDfs: false
- productName: 'ms-icu-nuget'
- disableOutputRedirect: true
- task: PowerShell@2
displayName: 'Set Version'
@@ -302,15 +299,47 @@ stages:
scanType: 'Register'
failOnAlert: true
- - task: PkgESCodeSign@10
- displayName: 'CodeSign MS-ICU DLLs'
- env:
- SYSTEM_ACCESSTOKEN: $(system.accesstoken)
- inputs:
- signConfigXml: 'build\nuget\SignConfig-ICU-Binaries-runtime.xml'
- signTimeOut: 30
- inPathRoot: '$(BUILD.ArtifactStagingDirectory)\bits\binaries-$(BuildPlatform)'
- outPathRoot: '$(BUILD.ArtifactStagingDirectory)\bits\binaries-$(BuildPlatform)'
+ - task: EsrpCodeSigning@1
+ displayName: 'ESRP CodeSigning - CodeSign DLLs'
+ inputs:
+ ConnectedServiceName: 'ESRP Code Signing for MS-ICU'
+ FolderPath: '$(BUILD.ArtifactStagingDirectory)\bits\binaries-$(BuildPlatform)'
+ Pattern: $(signingPattern)
+ UseMinimatch: true
+ signConfigType: 'inlineSignParams'
+ inlineOperation: |
+ [
+ {
+ "keyCode": "CP-230012",
+ "operationSetCode": "SigntoolSign",
+ "parameters": [
+ {
+ "parameterName": "OpusName",
+ "parameterValue": "Microsoft"
+ },
+ {
+ "parameterName": "OpusInfo",
+ "parameterValue": "http://www.microsoft.com"
+ },
+ {
+ "parameterName": "PageHash",
+ "parameterValue": "/NPH"
+ },
+ {
+ "parameterName": "FileDigest",
+ "parameterValue": "/fd sha256"
+ },
+ {
+ "parameterName": "TimeStamp",
+ "parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
+ }
+ ],
+ "toolName": "signtool.exe",
+ }
+ ]
+ SessionTimeout: '30'
+ MaxConcurrency: '20'
+ MaxRetryAttempts: '5'
- task: PublishBuildArtifacts@1
displayName: 'Publish: binaries signed'
@@ -318,19 +347,21 @@ stages:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\bits\binaries-$(BuildPlatform)'
ArtifactName: 'win-$(BuildPlatform)'
-- stage: Nuget
+- stage: CreateNuget
dependsOn:
- Build
- CodeSignBinaries
+ # This stage needs to depend on CodeSignBinaries for the Release-Nuget pipeline, but it will be skipped in the CI-Nuget pipeline.
condition: and(in(dependencies.Build.result, 'Succeeded'), in(dependencies.CodeSignBinaries.result, 'Succeeded', 'Skipped'))
pool:
- name: Package ES CodeHub Lab E
+ name: Azure Pipelines
+ vmImage: 'windows-2019'
variables:
BuildPlatform: AnyCPU
jobs:
- - job: CreateNugetAndCodeSign
- timeoutInMinutes: 45
+ - job: CreateNugetJob
+ timeoutInMinutes: 30
workspace:
clean: all
steps:
@@ -338,14 +369,6 @@ stages:
lfs: true
fetchDepth: 1
- - task: PkgESSetupBuild@10
- displayName: 'PkgES Setup Build'
- inputs:
- useDfs: false
- productName: 'ms-icu-nuget'
- disableOutputRedirect: true
- condition: and(succeeded(), eq(variables.codeSign, true))
-
- task: PowerShell@2
displayName: 'Set Version'
inputs:
@@ -434,6 +457,56 @@ stages:
Tree /F /A $(BUILD.ArtifactStagingDirectory)
displayName: 'DIAG: dir'
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish: Nuget Packages'
+ inputs:
+ PathtoPublish: '$(BUILD.ArtifactStagingDirectory)\output\package'
+ ArtifactName: 'Nuget_Packages'
+
+- stage: CodeSignNuget
+ dependsOn:
+ - Build
+ - CodeSignBinaries
+ - CreateNuget
+ condition: and(eq(variables.codeSign, true), and(in(dependencies.CodeSignBinaries.result, 'Succeeded'), in(dependencies.CreateNuget.result, 'Succeeded')))
+ pool:
+ name: Azure Pipelines
+ vmImage: 'windows-2019'
+ variables:
+ BuildPlatform: AnyCPU
+
+ jobs:
+ - job: CodeSignNugetJob
+ timeoutInMinutes: 60
+ workspace:
+ clean: all
+ steps:
+ - checkout: self
+ lfs: true
+ fetchDepth: 1
+
+ - task: PowerShell@2
+ displayName: 'Set Version'
+ inputs:
+ targetType: filePath
+ filePath: './build/scripts/Set-ICUVersion.ps1'
+ arguments: '-icuVersionFile "$(BUILD.SOURCESDIRECTORY)\version.txt"'
+
+ - task: NuGetToolInstaller@1
+ displayName: 'Install NuGet'
+
+ - task: DownloadBuildArtifacts@0
+ displayName: 'Download Nuget'
+ inputs:
+ artifactName: 'Nuget_Packages'
+ downloadPath: '$(BUILD.ArtifactStagingDirectory)\nuget'
+
+ - powershell: |
+ Write-Host ""
+ Write-Host "$(BUILD.ArtifactStagingDirectory)"
+ Tree /F /A $(BUILD.ArtifactStagingDirectory)
+ displayName: 'DIAG: dir'
+
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Governance Detection'
inputs:
@@ -441,22 +514,46 @@ stages:
scanType: 'Register'
failOnAlert: true
- - task: PkgESCodeSign@10
- displayName: 'CodeSign MS-ICU Nuget'
- env:
- SYSTEM_ACCESSTOKEN: $(system.accesstoken)
- inputs:
- signConfigXml: 'build\nuget\SignConfig-ICU-Nuget.xml'
- signTimeOut: 30
- inPathRoot: '$(BUILD.ArtifactStagingDirectory)\output\package'
- outPathRoot: '$(BUILD.ArtifactStagingDirectory)\output\package'
- condition: and(succeeded(), eq(variables.codeSign, true))
-
+ - task: EsrpCodeSigning@1
+ inputs:
+ ConnectedServiceName: 'ESRP Code Signing for MS-ICU'
+ FolderPath: '$(BUILD.ArtifactStagingDirectory)\nuget\Nuget_Packages'
+ Pattern: |
+ *.nupkg
+ UseMinimatch: true
+ signConfigType: 'inlineSignParams'
+ inlineOperation: |
+ [
+ {
+ "KeyCode" : "CP-401405",
+ "OperationCode" : "NuGetSign",
+ "Parameters" : {},
+ "ToolName" : "sign",
+ "ToolVersion" : "1.0"
+ },
+ {
+ "KeyCode" : "CP-401405",
+ "OperationCode" : "NuGetVerify",
+ "Parameters" : {},
+ "ToolName" : "sign",
+ "ToolVersion" : "1.0"
+ }
+ ]
+ SessionTimeout: '30'
+ MaxConcurrency: '20'
+ MaxRetryAttempts: '5'
+
+ - powershell: |
+ Write-Host ""
+ Write-Host "$(BUILD.ArtifactStagingDirectory)"
+ Tree /F /A $(BUILD.ArtifactStagingDirectory)
+ displayName: 'DIAG: dir'
+
- task: PublishBuildArtifacts@1
displayName: 'Publish: Nuget Packages'
inputs:
- PathtoPublish: '$(BUILD.ArtifactStagingDirectory)\output\package'
- ArtifactName: 'Nuget_Packages'
+ PathtoPublish: '$(BUILD.ArtifactStagingDirectory)\nuget\Nuget_Packages'
+ ArtifactName: 'Nuget_Packages_Signed'
# Publish the Windows Symbols to the public symbols server
- task: PublishSymbols@2
@@ -473,15 +570,3 @@ stages:
env:
ArtifactServices_Symbol_AccountName: microsoftpublicsymbols
ArtifactServices_Symbol_UseAAD: true
-
- - task: PkgESSerializeForPostBuild@10
- displayName: 'PkgES Post Build Serialization'
- continueOnError: true
- condition: and(succeeded(), eq(variables.codeSign, true))
-
- - task: PkgESLateTasks@10
- displayName: 'PkgES Finalize and Cleanup'
- inputs:
- enablePostBuild: false
- enableLatest: false
- condition: and(succeeded(), eq(variables.codeSign, true))
diff --git a/build/azure-pipelines.yml b/build/azure-pipelines.yml
index c253c6368ae..650e94f69b7 100644
--- a/build/azure-pipelines.yml
+++ b/build/azure-pipelines.yml
@@ -396,3 +396,45 @@ jobs:
env:
CC: clang
CXX: clang++
+
+#-------------------------------------------------------------------------
+
+- job: ICU4C_Clang_Valgrind_Ubuntu_1604
+ displayName: 'C: Linux Clang Valgrind (Ubuntu 16.04)'
+ timeoutInMinutes: 60
+ pool:
+ vmImage: 'Ubuntu 16.04'
+ steps:
+ - checkout: self
+ lfs: true
+ fetchDepth: 10
+ - script: |
+ set -ex
+ sudo apt -y update
+ sudo apt install -y valgrind
+ displayName: 'Install valgrind'
+ timeoutInMinutes: 5
+ - script: |
+ cd icu/icu4c/source && ./runConfigureICU --enable-debug Linux --disable-renaming && make -j2 tests
+ displayName: 'Build'
+ timeoutInMinutes: 10
+ env:
+ CC: clang
+ CXX: clang++
+ - script: |
+ cd icu/icu4c/source/test/intltest && LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH valgrind --tool=memcheck --error-exitcode=1 --leak-check=full --show-reachable=yes ./intltest
+ displayName: 'Valgrind intltest'
+ timeoutInMinutes: 45
+ - script: |
+ cd icu/icu4c/source/test/cintltst && LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH valgrind --tool=memcheck --error-exitcode=1 --leak-check=full --show-reachable=yes ./cintltst
+ displayName: 'Valgrind cintltst'
+ timeoutInMinutes: 15
+ - script: |
+ cd icu/icu4c/source/test/iotest && LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH valgrind --tool=memcheck --error-exitcode=1 --leak-check=full --show-reachable=yes ./iotest
+ displayName: 'Valgrind iotest'
+ timeoutInMinutes: 5
+ - script: |
+ cd icu/icu4c/source/tools/icuinfo && LD_LIBRARY_PATH=../../lib:../../stubdata:../../tools/ctestfw:$LD_LIBRARY_PATH valgrind --tool=memcheck --error-exitcode=1 --leak-check=full --show-reachable=yes ./icuinfo
+ displayName: 'Valgrind icuinfo'
+ timeoutInMinutes: 5
+#-------------------------------------------------------------------------
\ No newline at end of file
diff --git a/build/nuget/SignConfig-ICU-Binaries-runtime.xml b/build/nuget/SignConfig-ICU-Binaries-runtime.xml
deleted file mode 100644
index cc2c1dc1944..00000000000
--- a/build/nuget/SignConfig-ICU-Binaries-runtime.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/nuget/SignConfig-ICU-Nuget.xml b/build/nuget/SignConfig-ICU-Nuget.xml
deleted file mode 100644
index 02efbf1a964..00000000000
--- a/build/nuget/SignConfig-ICU-Nuget.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build/scripts/Create-Nuget-Runtime.ps1 b/build/scripts/Create-Nuget-Runtime.ps1
index af450b54c50..db1a8693fa4 100644
--- a/build/scripts/Create-Nuget-Runtime.ps1
+++ b/build/scripts/Create-Nuget-Runtime.ps1
@@ -108,9 +108,6 @@ foreach ($rid in $runtimeIdentifiers)
if (Test-Path "$dllInput\bin" -PathType Container) {
$dllInput = "$dllInput\bin"
}
- if ($codesign -eq 'true') {
- $dllInput = "$dllInput\signed"
- }
$dllOutput = "$stagingLocation\runtimes\$rid\native"
Copy-Item "$dllInput\*.dll" -Destination $dllOutput -Recurse
}
diff --git a/changelog.md b/changelog.md
index b7dd8d3411c..033bbe2ee37 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,10 +1,26 @@
# Changelog
+## ICU 68.2.0.6
+#### Misc changes:
+- Migration to ESRP Code Signing from PackageES Code Signing. [#93](https://github.com/microsoft/icu/pull/93)
+- Add Valgrind to CI build pipeline. [#95](https://github.com/microsoft/icu/pull/95)
+
+#### Changes cherry-picked from upstream tickets/PRs:
+ICU-21587 Fix memory bug w/ baseName
+- https://unicode-org.atlassian.net/browse/ICU-21587
+- https://github.com/unicode-org/icu/pull/1698
+
+## ICU 68.2.0.5
+#### Data changes:
+- Add extra locales from CLDR-MS based on NLS "MS-Only" culture data. [#91](https://github.com/microsoft/icu/pull/91)
+- Update ff-Latn-MR region name. [#88](https://github.com/microsoft/icu/pull/88)
+
+#### Misc changes:
+- Update guava from 27.0-jre to 30.0-jre [#87](https://github.com/microsoft/icu/pull/87)
## ICU 68.2.0.4
#### Data changes:
- Update number grouping separator for French locales. [#80](https://github.com/microsoft/icu/pull/80)
- Picked up additional tzdata fixes. [#81](https://github.com/microsoft/icu/pull/81)
-
#### Changes cherry-picked from upstream tickets/PRs:
ICU-21041 Fix fuzzer memory read error.
diff --git a/icu-patches/patches/016-MSFT-Patch-Bump_guava_version_to_30.0-jre.patch b/icu-patches/patches/016-MSFT-Patch-Bump_guava_version_to_30.0-jre.patch
new file mode 100644
index 00000000000..3ee514a5760
--- /dev/null
+++ b/icu-patches/patches/016-MSFT-Patch-Bump_guava_version_to_30.0-jre.patch
@@ -0,0 +1,25 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Daniel Ju <41210545+daniel-ju@users.noreply.github.com>
+Date: Tue, 6 Apr 2021 17:53:03 -0700
+Subject: MSFT-PATCH: Bump guava version to 30.0-jre
+
+---
+ icu/tools/cldr/cldr-to-icu/pom.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/icu/tools/cldr/cldr-to-icu/pom.xml b/icu/tools/cldr/cldr-to-icu/pom.xml
+index 38a43e63fc..e8d72aa7f6 100644
+--- a/icu/tools/cldr/cldr-to-icu/pom.xml
++++ b/icu/tools/cldr/cldr-to-icu/pom.xml
+@@ -92,7 +92,7 @@
+
+ com.google.guava
+ guava
+- 29.0-jre
++ 30.0-jre
+
+
+
+--
+2.30.0.vfs.0.2
+
diff --git a/icu-patches/patches/017-MSFT-Patch_ICU_test_changes_for_extra_CLDR-MS_locales.patch b/icu-patches/patches/017-MSFT-Patch_ICU_test_changes_for_extra_CLDR-MS_locales.patch
new file mode 100644
index 00000000000..bcdaa06123a
--- /dev/null
+++ b/icu-patches/patches/017-MSFT-Patch_ICU_test_changes_for_extra_CLDR-MS_locales.patch
@@ -0,0 +1,131 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jeff Genovy <29107334+jefgen@users.noreply.github.com>
+Date: Wed, 7 Apr 2021 20:47:08 -0700
+Subject: MSFT-PATCH: Modify ICU tests to pass with extra locales from CLDR-MS.
+
+This changes modifies the ICU tests to pass with extra locales from
+CLDR-MS.
+
+diff --git a/icu/icu4c/source/test/cintltst/cldrtest.c b/icu/icu4c/source/test/cintltst/cldrtest.c
+index 179539d5178b5cfd8b5350043c539e89e8740185..bfb35c35a449f60c61c9a8eb6282c307e41fd161 100644
+--- a/icu/icu4c/source/test/cintltst/cldrtest.c
++++ b/icu/icu4c/source/test/cintltst/cldrtest.c
+@@ -970,7 +970,14 @@ static void VerifyTranslation(void) {
+ uprv_strncmp(currLoc, "oc", 2) == 0 || uprv_strncmp(currLoc, "oc_FR", 5) == 0 ||
+ uprv_strncmp(currLoc, "syr", 3) == 0 || uprv_strncmp(currLoc, "syr_SY", 6) == 0 ||
+ uprv_strncmp(currLoc, "tig", 3) == 0 || uprv_strncmp(currLoc, "tig_ER", 6) == 0 ||
+- uprv_strncmp(currLoc, "wal", 3) == 0 || uprv_strncmp(currLoc, "wal_ET", 6) == 0
++ uprv_strncmp(currLoc, "wal", 3) == 0 || uprv_strncmp(currLoc, "wal_ET", 6) == 0 ||
++ uprv_strncmp(currLoc, "bin", 3) == 0 || uprv_strncmp(currLoc, "bin_NG", 6) == 0 ||
++ uprv_strncmp(currLoc, "la", 2) == 0 || uprv_strncmp(currLoc, "la_VA", 6) == 0 ||
++ uprv_strncmp(currLoc, "jv_Java", 7) == 0 || uprv_strncmp(currLoc, "jv_Java_ID", 10) == 0 ||
++ uprv_strncmp(currLoc, "ks_Deva", 7) == 0 || uprv_strncmp(currLoc, "ks_Deva_IN", 10) == 0 ||
++ uprv_strncmp(currLoc, "pap", 3) == 0 || uprv_strncmp(currLoc, "pap_029", 7) == 0 ||
++ uprv_strncmp(currLoc, "tzm_Arab", 8) == 0 || uprv_strncmp(currLoc, "tzm_Arab_MA", 11) == 0 ||
++ uprv_strncmp(currLoc, "tzm_Tfng", 8) == 0 || uprv_strncmp(currLoc, "tzm_Tfng_MA", 11) == 0
+ ) {
+ log_knownIssue("0", "MSFT Change: skipping test for %s which has issues due to CLDR Seed data.", currLoc);
+ }
+@@ -1110,7 +1117,8 @@ static void VerifyTranslation(void) {
+ if (U_FAILURE(errorCode)) {
+ log_err("ulocdata_getMeasurementSystem failed for locale %s with error: %s \n", currLoc, u_errorName(errorCode));
+ } else {
+- if ( strstr(fullLoc, "_US")!=NULL || strstr(fullLoc, "_LR")!=NULL ) {
++ /* MSFT Change: CLDR-MS adds 029 region with US measurement */
++ if ( strstr(fullLoc, "_US")!=NULL || strstr(fullLoc, "_LR")!=NULL || strstr(fullLoc, "_029")!=NULL ) {
+ if(measurementSystem != UMS_US){
+ log_err("ulocdata_getMeasurementSystem did not return expected data for locale %s \n", currLoc);
+ }
+@@ -1128,10 +1136,11 @@ static void VerifyTranslation(void) {
+ if (U_FAILURE(errorCode)) {
+ log_err("ulocdata_getPaperSize failed for locale %s with error: %s \n", currLoc, u_errorName(errorCode));
+ } else {
++ /* MSFT Change: CLDR-MS adds 029 region with US paper size */
+ if ( strstr(fullLoc, "_US")!=NULL || strstr(fullLoc, "_BZ")!=NULL || strstr(fullLoc, "_CA")!=NULL || strstr(fullLoc, "_CL")!=NULL ||
+ strstr(fullLoc, "_CO")!=NULL || strstr(fullLoc, "_CR")!=NULL || strstr(fullLoc, "_GT")!=NULL || strstr(fullLoc, "_MX")!=NULL ||
+ strstr(fullLoc, "_NI")!=NULL || strstr(fullLoc, "_PA")!=NULL || strstr(fullLoc, "_PH")!=NULL || strstr(fullLoc, "_PR")!=NULL ||
+- strstr(fullLoc, "_SV")!=NULL || strstr(fullLoc, "_VE")!=NULL ) {
++ strstr(fullLoc, "_SV")!=NULL || strstr(fullLoc, "_VE")!=NULL || strstr(fullLoc, "_029")!=NULL ) {
+ if (height != 279 || width != 216) {
+ log_err("ulocdata_getPaperSize did not return expected data for locale %s \n", currLoc);
+ }
+@@ -1251,8 +1260,14 @@ static void TestExemplarSet(void){
+
+ if (existsInScript == FALSE){
+ /* MSFT Change */
+- if (uprv_strncmp(locale, "oc", 2) == 0 || uprv_strncmp(locale, "oc_FR", 5) == 0) {
+- log_knownIssue("0", "MSFT Change: oc and oc_FR have ExemplarSet issues.");
++ if (uprv_strncmp(locale, "oc", 2) == 0 || uprv_strncmp(locale, "oc_FR", 5) == 0 ||
++ uprv_strncmp(locale, "jv_Java", 7) == 0 || uprv_strncmp(locale, "jv_Java_ID", 10) == 0 ||
++ uprv_strncmp(locale, "la", 2) == 0 || uprv_strncmp(locale, "la_VA", 6) == 0 ||
++ uprv_strncmp(locale, "pap", 3) == 0 || uprv_strncmp(locale, "pap_029", 7) == 0 ||
++ uprv_strncmp(locale, "tzm_Arab", 8) == 0 || uprv_strncmp(locale, "tzm_Arab_MA", 11) == 0 ||
++ uprv_strncmp(locale, "tzm_Tfng", 8) == 0 || uprv_strncmp(locale, "tzm_Tfng_MA", 11) == 0
++ ) {
++ log_knownIssue("0", "MSFT Change: skipping test for %s which has issue due to CLDR seed data.", locale);
+ continue;
+ } else {
+ log_err("ExemplarSet containment failed for locale : %s\n", locale);
+diff --git a/icu/icu4c/source/test/cintltst/cnmdptst.c b/icu/icu4c/source/test/cintltst/cnmdptst.c
+index 99a9ce23be7ef93923493b2b8312a254706c3f2d..a319b99e3faf6f6fc749e70852a298ce42268696 100644
+--- a/icu/icu4c/source/test/cintltst/cnmdptst.c
++++ b/icu/icu4c/source/test/cintltst/cnmdptst.c
+@@ -811,7 +811,8 @@ static void TestGetKeywordValuesForLocale(void) {
+ { "und", "USD", "USN", NULL },
+ /* { "und_ZZ", "USD", NULL, NULL }, -- temporarily remove as this locale now has 15 entries */
+ { "en_US", "USD", "USN", NULL },
+- { "en_029", "USD", "USN", NULL },
++ /* MSFT Change: CLDR-MS adds en_029 locale with XCD currency */
++ { "en_029", "XCD", NULL, NULL },
+ { "en_TH", "THB", NULL, NULL },
+ { "de", "EUR", NULL, NULL },
+ { "de_DE", "EUR", NULL, NULL },
+@@ -825,11 +826,13 @@ static void TestGetKeywordValuesForLocale(void) {
+ { "en_US@currency=CAD;rg=THZZZZ", "THB", NULL, NULL },
+ };
+ const int32_t EXPECTED_SIZE[PREFERRED_SIZE] = {
+- 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1
++ /* MSFT Change: CLDR-MS adds en_029 locale with XCD currency */
++ 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1
+ };
+ /* ucurr_forLocale results for same locales; "" if no result expected */
+ const char *FORLOCALE[PREFERRED_SIZE] = {
+- "", "", "USD", "",
++ /* MSFT Change: CLDR-MS adds en_029 locale with XCD currency */
++ "", "", "USD", "XCD",
+ "THB", "", "EUR", "",
+ "ILS", "CAD", "ZZZ", "DEM",
+ "THB", "USD", "CAD"
+diff --git a/icu/icu4c/source/test/intltest/dtptngts.cpp b/icu/icu4c/source/test/intltest/dtptngts.cpp
+index dc86355f93fa68f509a0023dc95fc17a548170c1..c83e27bb68c212c3e9569c71ed5b417a96b7f9de 100644
+--- a/icu/icu4c/source/test/intltest/dtptngts.cpp
++++ b/icu/icu4c/source/test/intltest/dtptngts.cpp
+@@ -1408,7 +1408,8 @@ void IntlTestDateTimePatternGeneratorAPI::testJjMapping() {
+ uprv_strncmp(localeID, "ssy_ER", 6) == 0 || uprv_strncmp(localeID, "st_LS", 5) == 0 ||
+ uprv_strncmp(localeID, "syr", 3) == 0 || uprv_strncmp(localeID, "syr_SY", 6) == 0 ||
+ uprv_strncmp(localeID, "tig", 3) == 0 || uprv_strncmp(localeID, "tig_ER", 6) == 0 ||
+- uprv_strncmp(localeID, "wal", 3) == 0 || uprv_strncmp(localeID, "wal_ET", 6) == 0
++ uprv_strncmp(localeID, "wal", 3) == 0 || uprv_strncmp(localeID, "wal_ET", 6) == 0 ||
++ uprv_strncmp(localeID, "ks_Deva", 7) == 0 || uprv_strncmp(localeID, "ks_Deva_IN", 10) == 0
+ ) {
+ logKnownIssue("0", "MSFT Change: skipping test for %s which has issues due to CLDR Seed data.", localeID);
+ }
+diff --git a/icu/icu4c/source/test/intltest/numfmtst.cpp b/icu/icu4c/source/test/intltest/numfmtst.cpp
+index bc072bd8e3775554b8a8f96a81baf850b5e8feb7..a63c329c8eabf287512b9c152ac91d862d333264 100644
+--- a/icu/icu4c/source/test/intltest/numfmtst.cpp
++++ b/icu/icu4c/source/test/intltest/numfmtst.cpp
+@@ -8094,10 +8094,12 @@ void NumberFormatTest::TestAccountingCurrency() {
+ (Formattable)(double)-1000.5, UnicodeString("(\\uFFE51,000)").unescape(), FALSE, status);
+ expect(NumberFormat::createInstance("de_DE", style, status),
+ (Formattable)(double)-23456.7, UnicodeString("-23.456,70\\u00A0\\u20AC").unescape(), TRUE, status);
++ /* MSFT Change: We add a CLDR-MS locale en_ID */
+ expect(NumberFormat::createInstance("en_ID", style, status),
+- (Formattable)(double)0, UnicodeString("IDR\\u00A00.00").unescape(), TRUE, status);
++ (Formattable)(double)0, UnicodeString("IDR\\u00A00,00").unescape(), TRUE, status);
+ expect(NumberFormat::createInstance("en_ID", style, status),
+- (Formattable)(double)-0.2, UnicodeString("(IDR\\u00A00.20)").unescape(), TRUE, status);
++ (Formattable)(double)-0.2, UnicodeString("(IDR\\u00A00,20)").unescape(), TRUE, status);
++ /* MSFT Change: End */
+ expect(NumberFormat::createInstance("sh_ME", style, status),
+ (Formattable)(double)0, UnicodeString("0,00\\u00A0\\u20AC").unescape(), TRUE, status);
+ expect(NumberFormat::createInstance("sh_ME", style, status),
diff --git a/icu-patches/patches/018-MSFT-Patch_ICU_toolutil_increase_string_store_for_extra_locales.patch b/icu-patches/patches/018-MSFT-Patch_ICU_toolutil_increase_string_store_for_extra_locales.patch
new file mode 100644
index 00000000000..a41c47a5263
--- /dev/null
+++ b/icu-patches/patches/018-MSFT-Patch_ICU_toolutil_increase_string_store_for_extra_locales.patch
@@ -0,0 +1,19 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jeff Genovy <29107334+jefgen@users.noreply.github.com>
+Date: Wed, 7 Apr 2021 20:47:31 -0700
+Subject: MSFT-PATCH: Increase the STRING_STORE_SIZE due to extra locales from CLDR-MS
+
+
+diff --git a/icu/icu4c/source/tools/toolutil/package.h b/icu/icu4c/source/tools/toolutil/package.h
+index ea60c13a74a57b94057882e39b6aa05314c4ca1f..6c411ae5fd04c8463a089307efc056f4d2f622f9 100644
+--- a/icu/icu4c/source/tools/toolutil/package.h
++++ b/icu/icu4c/source/tools/toolutil/package.h
+@@ -27,7 +27,7 @@
+
+ // .dat package file representation ---------------------------------------- ***
+
+-#define STRING_STORE_SIZE 100000
++#define STRING_STORE_SIZE 120000
+ #define MAX_PKG_NAME_LENGTH 64
+
+ typedef void CheckDependency(void *context, const char *itemName, const char *targetName);
diff --git a/icu/icu4c/source/common/locid.cpp b/icu/icu4c/source/common/locid.cpp
index becbdd04300..e8c6297a933 100644
--- a/icu/icu4c/source/common/locid.cpp
+++ b/icu/icu4c/source/common/locid.cpp
@@ -469,14 +469,18 @@ Locale& Locale::operator=(Locale&& other) U_NOEXCEPT {
if ((baseName != fullName) && (baseName != fullNameBuffer)) uprv_free(baseName);
if (fullName != fullNameBuffer) uprv_free(fullName);
- if (other.fullName == other.fullNameBuffer) {
+ if (other.fullName == other.fullNameBuffer || other.baseName == other.fullNameBuffer) {
uprv_strcpy(fullNameBuffer, other.fullNameBuffer);
+ }
+ if (other.fullName == other.fullNameBuffer) {
fullName = fullNameBuffer;
} else {
fullName = other.fullName;
}
- if (other.baseName == other.fullName) {
+ if (other.baseName == other.fullNameBuffer) {
+ baseName = fullNameBuffer;
+ } else if (other.baseName == other.fullName) {
baseName = fullName;
} else {
baseName = other.baseName;
@@ -2487,6 +2491,9 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro
if (fullName != fullNameBuffer) {
// if full Name is already on the heap, need to free it.
uprv_free(fullName);
+ if (baseName == fullName) {
+ baseName = newFullName; // baseName should not point to freed memory.
+ }
}
fullName = newFullName;
status = U_ZERO_ERROR;
diff --git a/icu/icu4c/source/common/unicode/uvernum.h b/icu/icu4c/source/common/unicode/uvernum.h
index ac8aa1d2776..96f446c7893 100644
--- a/icu/icu4c/source/common/unicode/uvernum.h
+++ b/icu/icu4c/source/common/unicode/uvernum.h
@@ -79,7 +79,7 @@
* @stable ICU 4.0
*/
#ifndef U_ICU_VERSION_BUILDLEVEL_NUM
-#define U_ICU_VERSION_BUILDLEVEL_NUM 4
+#define U_ICU_VERSION_BUILDLEVEL_NUM 6
#endif
/** Glued version suffix for renamers
@@ -139,7 +139,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.4
*/
-#define U_ICU_VERSION "68.2.0.4"
+#define U_ICU_VERSION "68.2.0.6"
/**
* The current ICU library major version number as a string, for library name suffixes.
diff --git a/icu/icu4c/source/data/curr/LOCALE_DEPS.json b/icu/icu4c/source/data/curr/LOCALE_DEPS.json
index 6f4bfbc0617..1b77cc7bd27 100644
--- a/icu/icu4c/source/data/curr/LOCALE_DEPS.json
+++ b/icu/icu4c/source/data/curr/LOCALE_DEPS.json
@@ -21,6 +21,10 @@
"ff_GN": "ff_Latn_GN",
"ff_MR": "ff_Latn_MR",
"ff_SN": "ff_Latn_SN",
+ "ha_Latn": "ha",
+ "ha_Latn_GH": "ha_GH",
+ "ha_Latn_NE": "ha_NE",
+ "ha_Latn_NG": "ha_NG",
"in": "id",
"in_ID": "id_ID",
"iu_Cans": "iu",
@@ -75,6 +79,9 @@
"su_ID": "su_Latn_ID",
"tl": "fil",
"tl_PH": "fil_PH",
+ "tzm_Latn": "tzm",
+ "tzm_Latn_DZ": "tzm_DZ",
+ "tzm_Latn_MA": "tzm_MA",
"uz_AF": "uz_Arab_AF",
"uz_UZ": "uz_Latn_UZ",
"vai_LR": "vai_Vaii_LR",
@@ -204,6 +211,7 @@
"es_VE": "es_419",
"ff_Adlm": "root",
"iu_Latn": "root",
+ "ks_Deva": "root",
"mn_Mong": "root",
"pa_Arab": "root",
"pt_AO": "pt_PT",
diff --git a/icu/icu4c/source/data/curr/bin.txt b/icu/icu4c/source/data/curr/bin.txt
new file mode 100644
index 00000000000..d773a332ce7
--- /dev/null
+++ b/icu/icu4c/source/data/curr/bin.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+bin{
+}
diff --git a/icu/icu4c/source/data/curr/en_029.txt b/icu/icu4c/source/data/curr/en_029.txt
new file mode 100644
index 00000000000..daa23664d16
--- /dev/null
+++ b/icu/icu4c/source/data/curr/en_029.txt
@@ -0,0 +1,11 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+en_029{
+ Currencies{
+ XCD{
+ "EC$",
+ "East Caribbean Dollar",
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/curr/en_ID.txt b/icu/icu4c/source/data/curr/en_ID.txt
new file mode 100644
index 00000000000..cf7de1237a0
--- /dev/null
+++ b/icu/icu4c/source/data/curr/en_ID.txt
@@ -0,0 +1,11 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+en_ID{
+ Currencies{
+ IDR{
+ "IDR",
+ "Rupiah",
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/curr/fr_029.txt b/icu/icu4c/source/data/curr/fr_029.txt
new file mode 100644
index 00000000000..c800fbee614
--- /dev/null
+++ b/icu/icu4c/source/data/curr/fr_029.txt
@@ -0,0 +1,11 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+fr_029{
+ Currencies{
+ XCD{
+ "EC$",
+ "dollar des Caraïbes orientales",
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/curr/ha_Latn.txt b/icu/icu4c/source/data/curr/ha_Latn.txt
new file mode 100644
index 00000000000..0eeb272f433
--- /dev/null
+++ b/icu/icu4c/source/data/curr/ha_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn{
+ "%%ALIAS"{"ha"}
+}
diff --git a/icu/icu4c/source/data/curr/ha_Latn_GH.txt b/icu/icu4c/source/data/curr/ha_Latn_GH.txt
new file mode 100644
index 00000000000..dfdd0f52934
--- /dev/null
+++ b/icu/icu4c/source/data/curr/ha_Latn_GH.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_GH{
+ "%%ALIAS"{"ha_GH"}
+}
diff --git a/icu/icu4c/source/data/curr/ha_Latn_NE.txt b/icu/icu4c/source/data/curr/ha_Latn_NE.txt
new file mode 100644
index 00000000000..b9dd7955071
--- /dev/null
+++ b/icu/icu4c/source/data/curr/ha_Latn_NE.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NE{
+ "%%ALIAS"{"ha_NE"}
+}
diff --git a/icu/icu4c/source/data/curr/ha_Latn_NG.txt b/icu/icu4c/source/data/curr/ha_Latn_NG.txt
new file mode 100644
index 00000000000..33d19431bc0
--- /dev/null
+++ b/icu/icu4c/source/data/curr/ha_Latn_NG.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NG{
+ "%%ALIAS"{"ha_NG"}
+}
diff --git a/icu/icu4c/source/data/curr/ha_NE.txt b/icu/icu4c/source/data/curr/ha_NE.txt
new file mode 100644
index 00000000000..7991d4caf5f
--- /dev/null
+++ b/icu/icu4c/source/data/curr/ha_NE.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_NE{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/curr/ha_NG.txt b/icu/icu4c/source/data/curr/ha_NG.txt
new file mode 100644
index 00000000000..112a2b67283
--- /dev/null
+++ b/icu/icu4c/source/data/curr/ha_NG.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_NG{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/curr/ibb.txt b/icu/icu4c/source/data/curr/ibb.txt
new file mode 100644
index 00000000000..d1822fe81c5
--- /dev/null
+++ b/icu/icu4c/source/data/curr/ibb.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ibb{
+}
diff --git a/icu/icu4c/source/data/curr/kr.txt b/icu/icu4c/source/data/curr/kr.txt
new file mode 100644
index 00000000000..deb77943734
--- /dev/null
+++ b/icu/icu4c/source/data/curr/kr.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+kr{
+}
diff --git a/icu/icu4c/source/data/curr/ks_Deva.txt b/icu/icu4c/source/data/curr/ks_Deva.txt
new file mode 100644
index 00000000000..4e3f94cb787
--- /dev/null
+++ b/icu/icu4c/source/data/curr/ks_Deva.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ks_Deva{
+ %%Parent{"root"}
+}
diff --git a/icu/icu4c/source/data/curr/la.txt b/icu/icu4c/source/data/curr/la.txt
new file mode 100644
index 00000000000..31eb90800fe
--- /dev/null
+++ b/icu/icu4c/source/data/curr/la.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+la{
+}
diff --git a/icu/icu4c/source/data/curr/pap.txt b/icu/icu4c/source/data/curr/pap.txt
new file mode 100644
index 00000000000..6ac8f73a114
--- /dev/null
+++ b/icu/icu4c/source/data/curr/pap.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+pap{
+}
diff --git a/icu/icu4c/source/data/curr/supplementalData.txt b/icu/icu4c/source/data/curr/supplementalData.txt
index b52ff56c9da..8843f403e21 100644
--- a/icu/icu4c/source/data/curr/supplementalData.txt
+++ b/icu/icu4c/source/data/curr/supplementalData.txt
@@ -3,6 +3,15 @@
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
supplementalData:table(nofallback){
CurrencyMap{
+ 029{
+ {
+ from:intvector{
+ -507,
+ 95619072,
+ }
+ id{"XCD"}
+ }
+ }
AC{
{
from:intvector{
diff --git a/icu/icu4c/source/data/curr/tzm_DZ.txt b/icu/icu4c/source/data/curr/tzm_DZ.txt
new file mode 100644
index 00000000000..0bbad718942
--- /dev/null
+++ b/icu/icu4c/source/data/curr/tzm_DZ.txt
@@ -0,0 +1,11 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_DZ{
+ Currencies{
+ DZD{
+ "DA",
+ "Dinar",
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/curr/tzm_Latn.txt b/icu/icu4c/source/data/curr/tzm_Latn.txt
new file mode 100644
index 00000000000..40dbe914a1a
--- /dev/null
+++ b/icu/icu4c/source/data/curr/tzm_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn{
+ "%%ALIAS"{"tzm"}
+}
diff --git a/icu/icu4c/source/data/curr/tzm_Latn_DZ.txt b/icu/icu4c/source/data/curr/tzm_Latn_DZ.txt
new file mode 100644
index 00000000000..099c0786222
--- /dev/null
+++ b/icu/icu4c/source/data/curr/tzm_Latn_DZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_DZ{
+ "%%ALIAS"{"tzm_DZ"}
+}
diff --git a/icu/icu4c/source/data/curr/tzm_Latn_MA.txt b/icu/icu4c/source/data/curr/tzm_Latn_MA.txt
new file mode 100644
index 00000000000..c86150699b4
--- /dev/null
+++ b/icu/icu4c/source/data/curr/tzm_Latn_MA.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_MA{
+ "%%ALIAS"{"tzm_MA"}
+}
diff --git a/icu/icu4c/source/data/curr/tzm_MA.txt b/icu/icu4c/source/data/curr/tzm_MA.txt
new file mode 100644
index 00000000000..adb983ffd15
--- /dev/null
+++ b/icu/icu4c/source/data/curr/tzm_MA.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_MA{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/curr/tzm_Tfng.txt b/icu/icu4c/source/data/curr/tzm_Tfng.txt
new file mode 100644
index 00000000000..befdf34da37
--- /dev/null
+++ b/icu/icu4c/source/data/curr/tzm_Tfng.txt
@@ -0,0 +1,11 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Tfng{
+ Currencies{
+ MAD{
+ "ⴷⵔ",
+ "ⴷⵔⵀⵎ ⴰⵎⵖⵔⴰⴱⵉ",
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/lang/LOCALE_DEPS.json b/icu/icu4c/source/data/lang/LOCALE_DEPS.json
index 6f4bfbc0617..1b77cc7bd27 100644
--- a/icu/icu4c/source/data/lang/LOCALE_DEPS.json
+++ b/icu/icu4c/source/data/lang/LOCALE_DEPS.json
@@ -21,6 +21,10 @@
"ff_GN": "ff_Latn_GN",
"ff_MR": "ff_Latn_MR",
"ff_SN": "ff_Latn_SN",
+ "ha_Latn": "ha",
+ "ha_Latn_GH": "ha_GH",
+ "ha_Latn_NE": "ha_NE",
+ "ha_Latn_NG": "ha_NG",
"in": "id",
"in_ID": "id_ID",
"iu_Cans": "iu",
@@ -75,6 +79,9 @@
"su_ID": "su_Latn_ID",
"tl": "fil",
"tl_PH": "fil_PH",
+ "tzm_Latn": "tzm",
+ "tzm_Latn_DZ": "tzm_DZ",
+ "tzm_Latn_MA": "tzm_MA",
"uz_AF": "uz_Arab_AF",
"uz_UZ": "uz_Latn_UZ",
"vai_LR": "vai_Vaii_LR",
@@ -204,6 +211,7 @@
"es_VE": "es_419",
"ff_Adlm": "root",
"iu_Latn": "root",
+ "ks_Deva": "root",
"mn_Mong": "root",
"pa_Arab": "root",
"pt_AO": "pt_PT",
diff --git a/icu/icu4c/source/data/lang/bin.txt b/icu/icu4c/source/data/lang/bin.txt
new file mode 100644
index 00000000000..6649f150961
--- /dev/null
+++ b/icu/icu4c/source/data/lang/bin.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+bin{
+ Languages{
+ bin{"Ẹ̀dó"}
+ }
+}
diff --git a/icu/icu4c/source/data/lang/en.txt b/icu/icu4c/source/data/lang/en.txt
index e5d9a44a269..2bf39dcc8de 100644
--- a/icu/icu4c/source/data/lang/en.txt
+++ b/icu/icu4c/source/data/lang/en.txt
@@ -102,7 +102,7 @@ en{
bho{"Bhojpuri"}
bi{"Bislama"}
bik{"Bikol"}
- bin{"Bini"}
+ bin{"Edo"}
bjn{"Banjar"}
bkm{"Kom"}
bla{"Siksika"}
diff --git a/icu/icu4c/source/data/lang/en_GB.txt b/icu/icu4c/source/data/lang/en_GB.txt
index 9ef9b3df4e2..5656e8fd3da 100644
--- a/icu/icu4c/source/data/lang/en_GB.txt
+++ b/icu/icu4c/source/data/lang/en_GB.txt
@@ -4,6 +4,7 @@
en_GB{
%%Parent{"en_001"}
Languages{
+ bin{"Bini"}
bm{"Bambara"}
ii{"Sichuan Yi"}
nso{"Northern Sotho"}
diff --git a/icu/icu4c/source/data/lang/ha_GH.txt b/icu/icu4c/source/data/lang/ha_GH.txt
new file mode 100644
index 00000000000..6dd3820c7dd
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ha_GH.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_GH{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/lang/ha_Latn.txt b/icu/icu4c/source/data/lang/ha_Latn.txt
new file mode 100644
index 00000000000..0eeb272f433
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ha_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn{
+ "%%ALIAS"{"ha"}
+}
diff --git a/icu/icu4c/source/data/lang/ha_Latn_GH.txt b/icu/icu4c/source/data/lang/ha_Latn_GH.txt
new file mode 100644
index 00000000000..dfdd0f52934
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ha_Latn_GH.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_GH{
+ "%%ALIAS"{"ha_GH"}
+}
diff --git a/icu/icu4c/source/data/lang/ha_Latn_NE.txt b/icu/icu4c/source/data/lang/ha_Latn_NE.txt
new file mode 100644
index 00000000000..b9dd7955071
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ha_Latn_NE.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NE{
+ "%%ALIAS"{"ha_NE"}
+}
diff --git a/icu/icu4c/source/data/lang/ha_Latn_NG.txt b/icu/icu4c/source/data/lang/ha_Latn_NG.txt
new file mode 100644
index 00000000000..33d19431bc0
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ha_Latn_NG.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NG{
+ "%%ALIAS"{"ha_NG"}
+}
diff --git a/icu/icu4c/source/data/lang/ha_NE.txt b/icu/icu4c/source/data/lang/ha_NE.txt
new file mode 100644
index 00000000000..7991d4caf5f
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ha_NE.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_NE{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/lang/ha_NG.txt b/icu/icu4c/source/data/lang/ha_NG.txt
new file mode 100644
index 00000000000..112a2b67283
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ha_NG.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_NG{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/lang/ibb.txt b/icu/icu4c/source/data/lang/ibb.txt
new file mode 100644
index 00000000000..de282c6a383
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ibb.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ibb{
+ Languages{
+ ibb{"Ibibio-Efik"}
+ }
+}
diff --git a/icu/icu4c/source/data/lang/jv_Java.txt b/icu/icu4c/source/data/lang/jv_Java.txt
new file mode 100644
index 00000000000..86aa13834aa
--- /dev/null
+++ b/icu/icu4c/source/data/lang/jv_Java.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+jv_Java{
+ Languages{
+ jv{"ꦧꦱꦗꦮ"}
+ }
+}
diff --git a/icu/icu4c/source/data/lang/kr.txt b/icu/icu4c/source/data/lang/kr.txt
new file mode 100644
index 00000000000..deb77943734
--- /dev/null
+++ b/icu/icu4c/source/data/lang/kr.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+kr{
+}
diff --git a/icu/icu4c/source/data/lang/ks_Deva.txt b/icu/icu4c/source/data/lang/ks_Deva.txt
new file mode 100644
index 00000000000..d75f07d87bf
--- /dev/null
+++ b/icu/icu4c/source/data/lang/ks_Deva.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ks_Deva{
+ %%Parent{"root"}
+ Languages{
+ ks{"कॉशुर"}
+ }
+}
diff --git a/icu/icu4c/source/data/lang/la.txt b/icu/icu4c/source/data/lang/la.txt
new file mode 100644
index 00000000000..31eb90800fe
--- /dev/null
+++ b/icu/icu4c/source/data/lang/la.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+la{
+}
diff --git a/icu/icu4c/source/data/lang/pap.txt b/icu/icu4c/source/data/lang/pap.txt
new file mode 100644
index 00000000000..15b1184006e
--- /dev/null
+++ b/icu/icu4c/source/data/lang/pap.txt
@@ -0,0 +1,13 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+pap{
+ Languages{
+ pap{"Papiamentu"}
+ }
+ Types{
+ calendar{
+ gregorian{"gregorian kalènder"}
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/lang/tzm_DZ.txt b/icu/icu4c/source/data/lang/tzm_DZ.txt
new file mode 100644
index 00000000000..36945d3ba3a
--- /dev/null
+++ b/icu/icu4c/source/data/lang/tzm_DZ.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_DZ{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/lang/tzm_Latn.txt b/icu/icu4c/source/data/lang/tzm_Latn.txt
new file mode 100644
index 00000000000..40dbe914a1a
--- /dev/null
+++ b/icu/icu4c/source/data/lang/tzm_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn{
+ "%%ALIAS"{"tzm"}
+}
diff --git a/icu/icu4c/source/data/lang/tzm_Latn_DZ.txt b/icu/icu4c/source/data/lang/tzm_Latn_DZ.txt
new file mode 100644
index 00000000000..099c0786222
--- /dev/null
+++ b/icu/icu4c/source/data/lang/tzm_Latn_DZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_DZ{
+ "%%ALIAS"{"tzm_DZ"}
+}
diff --git a/icu/icu4c/source/data/lang/tzm_Latn_MA.txt b/icu/icu4c/source/data/lang/tzm_Latn_MA.txt
new file mode 100644
index 00000000000..c86150699b4
--- /dev/null
+++ b/icu/icu4c/source/data/lang/tzm_Latn_MA.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_MA{
+ "%%ALIAS"{"tzm_MA"}
+}
diff --git a/icu/icu4c/source/data/lang/tzm_MA.txt b/icu/icu4c/source/data/lang/tzm_MA.txt
new file mode 100644
index 00000000000..adb983ffd15
--- /dev/null
+++ b/icu/icu4c/source/data/lang/tzm_MA.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_MA{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/lang/tzm_Tfng.txt b/icu/icu4c/source/data/lang/tzm_Tfng.txt
new file mode 100644
index 00000000000..7ddbb64d320
--- /dev/null
+++ b/icu/icu4c/source/data/lang/tzm_Tfng.txt
@@ -0,0 +1,14 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Tfng{
+ Languages{
+ tzm{"ⵜⴰⵎⴰⵣⵉⵖⵜ"}
+ }
+ Types{
+ calendar{
+ gregorian{"ⴰⵙⵎⵍⵓⵙⵙⴰⵏ ⴰⴳⵔⵉⴳⵓⵔⵉ"}
+ islamic{"ⴰⵙⵎⵍⵓⵙⵙⴰⵏ ⴰⵀⵉⵊⵔⵉ"}
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/LOCALE_DEPS.json b/icu/icu4c/source/data/locales/LOCALE_DEPS.json
index 6f4bfbc0617..1b77cc7bd27 100644
--- a/icu/icu4c/source/data/locales/LOCALE_DEPS.json
+++ b/icu/icu4c/source/data/locales/LOCALE_DEPS.json
@@ -21,6 +21,10 @@
"ff_GN": "ff_Latn_GN",
"ff_MR": "ff_Latn_MR",
"ff_SN": "ff_Latn_SN",
+ "ha_Latn": "ha",
+ "ha_Latn_GH": "ha_GH",
+ "ha_Latn_NE": "ha_NE",
+ "ha_Latn_NG": "ha_NG",
"in": "id",
"in_ID": "id_ID",
"iu_Cans": "iu",
@@ -75,6 +79,9 @@
"su_ID": "su_Latn_ID",
"tl": "fil",
"tl_PH": "fil_PH",
+ "tzm_Latn": "tzm",
+ "tzm_Latn_DZ": "tzm_DZ",
+ "tzm_Latn_MA": "tzm_MA",
"uz_AF": "uz_Arab_AF",
"uz_UZ": "uz_Latn_UZ",
"vai_LR": "vai_Vaii_LR",
@@ -204,6 +211,7 @@
"es_VE": "es_419",
"ff_Adlm": "root",
"iu_Latn": "root",
+ "ks_Deva": "root",
"mn_Mong": "root",
"pa_Arab": "root",
"pt_AO": "pt_PT",
diff --git a/icu/icu4c/source/data/locales/bin.txt b/icu/icu4c/source/data/locales/bin.txt
new file mode 100644
index 00000000000..0bfb111fe58
--- /dev/null
+++ b/icu/icu4c/source/data/locales/bin.txt
@@ -0,0 +1,47 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+bin{
+ AuxExemplarCharacters{"[c j q x]"}
+ ExemplarCharacters{
+ "[a á b d e ẹ é è {ẹ\u0300} f g {gb} {gh} h i í k {kh} {kp} l m {mw} n o ọ ó "
+ "ò p r {rh} {rr} s t u ú v {vb} w y z]"
+ }
+ NumberElements{
+ latn{
+ patterns{
+ currencyFormat{"¤ #,##0.00"}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "HH:mm:ss zzzz",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, MMMM dd, y",
+ "MMMM dd, y",
+ "d MMM y",
+ "d/M/y",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ }
+ availableFormats{
+ MMMMEd{"E, d MMMM"}
+ MMMMd{"MMMM dd"}
+ MMMd{"MMM dd"}
+ Md{"M/d"}
+ yMMMM{"y MMMM"}
+ }
+ }
+ }
+ layout{
+ characters{"left-to-right"}
+ lines{"top-to-bottom"}
+ }
+}
diff --git a/icu/icu4c/source/data/locales/bin_NG.txt b/icu/icu4c/source/data/locales/bin_NG.txt
new file mode 100644
index 00000000000..23894470c66
--- /dev/null
+++ b/icu/icu4c/source/data/locales/bin_NG.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+bin_NG{
+}
diff --git a/icu/icu4c/source/data/locales/en_029.txt b/icu/icu4c/source/data/locales/en_029.txt
new file mode 100644
index 00000000000..c5cec3a0b12
--- /dev/null
+++ b/icu/icu4c/source/data/locales/en_029.txt
@@ -0,0 +1,45 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+en_029{
+ NumberElements{
+ latn{
+ patterns{
+ percentFormat{"#,##0 %"}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "HH:mm:ss zzzz",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, dd MMMM y",
+ "d MMMM y",
+ "d MMM y",
+ "dd/MM/y",
+ "{1}, {0}",
+ "{1} 'at' {0}",
+ "{1} 'at' {0}",
+ "{1}, {0}",
+ "{1}, {0}",
+ }
+ availableFormats{
+ Hm{"H:mm"}
+ Hms{"H:mm:ss"}
+ MMMEd{"E, d MMMM"}
+ yMMMM{"MMMM, y"}
+ }
+ dayPeriod{
+ stand-alone{
+ narrow{
+ am{"AM"}
+ pm{"PM"}
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/en_ID.txt b/icu/icu4c/source/data/locales/en_ID.txt
new file mode 100644
index 00000000000..aa78513c2bb
--- /dev/null
+++ b/icu/icu4c/source/data/locales/en_ID.txt
@@ -0,0 +1,46 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+en_ID{
+ NumberElements{
+ latn{
+ symbols{
+ decimal{","}
+ group{"."}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "HH:mm:ss zzzz",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, dd MMMM y",
+ "dd MMMM y",
+ "d MMM y",
+ "dd/MM/y",
+ "{1}, {0}",
+ "{1} 'at' {0}",
+ "{1} 'at' {0}",
+ "{1}, {0}",
+ "{1}, {0}",
+ }
+ availableFormats{
+ Hm{"H:mm"}
+ Hms{"H:mm:ss"}
+ MMMEd{"E, dd MMM"}
+ MMMMd{"dd MMMM"}
+ }
+ dayPeriod{
+ stand-alone{
+ narrow{
+ am{"AM"}
+ pm{"PM"}
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/fr_029.txt b/icu/icu4c/source/data/locales/fr_029.txt
new file mode 100644
index 00000000000..ab20a7c9abf
--- /dev/null
+++ b/icu/icu4c/source/data/locales/fr_029.txt
@@ -0,0 +1,25 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+fr_029{
+ NumberElements{
+ latn{
+ patterns{
+ percentFormat{"#,##0%"}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ AmPmMarkersNarrow{
+ "a",
+ "p",
+ }
+ availableFormats{
+ Hm{"H:mm"}
+ Hms{"H:mm:ss"}
+ Md{"d/M"}
+ }
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/ha_Latn.txt b/icu/icu4c/source/data/locales/ha_Latn.txt
new file mode 100644
index 00000000000..0eeb272f433
--- /dev/null
+++ b/icu/icu4c/source/data/locales/ha_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn{
+ "%%ALIAS"{"ha"}
+}
diff --git a/icu/icu4c/source/data/locales/ha_Latn_GH.txt b/icu/icu4c/source/data/locales/ha_Latn_GH.txt
new file mode 100644
index 00000000000..dfdd0f52934
--- /dev/null
+++ b/icu/icu4c/source/data/locales/ha_Latn_GH.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_GH{
+ "%%ALIAS"{"ha_GH"}
+}
diff --git a/icu/icu4c/source/data/locales/ha_Latn_NE.txt b/icu/icu4c/source/data/locales/ha_Latn_NE.txt
new file mode 100644
index 00000000000..b9dd7955071
--- /dev/null
+++ b/icu/icu4c/source/data/locales/ha_Latn_NE.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NE{
+ "%%ALIAS"{"ha_NE"}
+}
diff --git a/icu/icu4c/source/data/locales/ha_Latn_NG.txt b/icu/icu4c/source/data/locales/ha_Latn_NG.txt
new file mode 100644
index 00000000000..33d19431bc0
--- /dev/null
+++ b/icu/icu4c/source/data/locales/ha_Latn_NG.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NG{
+ "%%ALIAS"{"ha_NG"}
+}
diff --git a/icu/icu4c/source/data/locales/ibb.txt b/icu/icu4c/source/data/locales/ibb.txt
new file mode 100644
index 00000000000..83c8a4a5797
--- /dev/null
+++ b/icu/icu4c/source/data/locales/ibb.txt
@@ -0,0 +1,43 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ibb{
+ ExemplarCharacters{"[a b d e f g {gh} h i ị k {kp} m n ñ {ny} o ọ p r s t u ʌ w y]"}
+ NumberElements{
+ latn{
+ patterns{
+ currencyFormat{"¤ #,##0.00"}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "HH:mm:ss zzzz",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, MMMM dd, y",
+ "MMMM dd, y",
+ "d MMM y",
+ "d/M/y",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ }
+ availableFormats{
+ MMMMEd{"E, d MMMM"}
+ MMMMd{"MMMM dd"}
+ MMMd{"MMM dd"}
+ Md{"M/d"}
+ yMMMM{"y MMMM"}
+ }
+ }
+ }
+ layout{
+ characters{"left-to-right"}
+ lines{"top-to-bottom"}
+ }
+}
diff --git a/icu/icu4c/source/data/locales/ibb_NG.txt b/icu/icu4c/source/data/locales/ibb_NG.txt
new file mode 100644
index 00000000000..a498d6cbb1e
--- /dev/null
+++ b/icu/icu4c/source/data/locales/ibb_NG.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ibb_NG{
+}
diff --git a/icu/icu4c/source/data/locales/jv_Java.txt b/icu/icu4c/source/data/locales/jv_Java.txt
new file mode 100644
index 00000000000..872016e36b0
--- /dev/null
+++ b/icu/icu4c/source/data/locales/jv_Java.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+jv_Java{
+}
diff --git a/icu/icu4c/source/data/locales/jv_Java_ID.txt b/icu/icu4c/source/data/locales/jv_Java_ID.txt
new file mode 100644
index 00000000000..c1f3613d96b
--- /dev/null
+++ b/icu/icu4c/source/data/locales/jv_Java_ID.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+jv_Java_ID{
+}
diff --git a/icu/icu4c/source/data/locales/kr.txt b/icu/icu4c/source/data/locales/kr.txt
new file mode 100644
index 00000000000..f0f30ebf2c8
--- /dev/null
+++ b/icu/icu4c/source/data/locales/kr.txt
@@ -0,0 +1,37 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+kr{
+ AuxExemplarCharacters{"[q x]"}
+ ExemplarCharacters{"[a b c d e ǝ f g h i j k l m n {ny} o p r ɍ s {sh} t u v w y z]"}
+ NumberElements{
+ latn{
+ patterns{
+ currencyFormat{"¤ #,##0.00"}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "HH:mm:ss zzzz",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, MMMM dd, y",
+ "MMMM dd, y",
+ "MMM d, y",
+ "d/M/y",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ }
+ }
+ }
+ layout{
+ characters{"left-to-right"}
+ lines{"top-to-bottom"}
+ }
+}
diff --git a/icu/icu4c/source/data/locales/kr_Latn.txt b/icu/icu4c/source/data/locales/kr_Latn.txt
new file mode 100644
index 00000000000..2dd6b620835
--- /dev/null
+++ b/icu/icu4c/source/data/locales/kr_Latn.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+kr_Latn{
+}
diff --git a/icu/icu4c/source/data/locales/kr_Latn_NG.txt b/icu/icu4c/source/data/locales/kr_Latn_NG.txt
new file mode 100644
index 00000000000..375c562ff13
--- /dev/null
+++ b/icu/icu4c/source/data/locales/kr_Latn_NG.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+kr_Latn_NG{
+}
diff --git a/icu/icu4c/source/data/locales/ks_Deva.txt b/icu/icu4c/source/data/locales/ks_Deva.txt
new file mode 100644
index 00000000000..68bf1e23940
--- /dev/null
+++ b/icu/icu4c/source/data/locales/ks_Deva.txt
@@ -0,0 +1,12 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ks_Deva{
+ %%Parent{"root"}
+ AuxExemplarCharacters{"[\u200C\u200D]"}
+ ExemplarCharacters{
+ "[\u093C \u0901 अ आ इ ई उ ऊ ए ऑ ओ क ख ग च {च\u093C} छ {छ\u093C} ज ट ठ ड त थ द"
+ " न प फ ब म य र ल व श स ह ा ि ी \u0941 \u0942 \u0943 \u0944 \u0945 \u0947 "
+ "\u0948 ॉ ो ौ \u094D]"
+ }
+}
diff --git a/icu/icu4c/source/data/locales/ks_Deva_IN.txt b/icu/icu4c/source/data/locales/ks_Deva_IN.txt
new file mode 100644
index 00000000000..491dc63e5c3
--- /dev/null
+++ b/icu/icu4c/source/data/locales/ks_Deva_IN.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ks_Deva_IN{
+}
diff --git a/icu/icu4c/source/data/locales/la.txt b/icu/icu4c/source/data/locales/la.txt
new file mode 100644
index 00000000000..14c15cdb2b0
--- /dev/null
+++ b/icu/icu4c/source/data/locales/la.txt
@@ -0,0 +1,20 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+la{
+ NumberElements{
+ default{"latn"}
+ minimumGroupingDigits{"1"}
+ native{"latn"}
+ }
+ fields{
+ minute{
+ relative{
+ "0"{"hac minuta"}
+ }
+ }
+ week{
+ relativePeriod{"the week of {0}"}
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/la_VA.txt b/icu/icu4c/source/data/locales/la_VA.txt
new file mode 100644
index 00000000000..5a1c9b401b6
--- /dev/null
+++ b/icu/icu4c/source/data/locales/la_VA.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+la_VA{
+}
diff --git a/icu/icu4c/source/data/locales/pap.txt b/icu/icu4c/source/data/locales/pap.txt
new file mode 100644
index 00000000000..099f6314b80
--- /dev/null
+++ b/icu/icu4c/source/data/locales/pap.txt
@@ -0,0 +1,118 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+pap{
+ NumberElements{
+ default{"latn"}
+ latn{
+ patterns{
+ currencyFormat{"¤#,##0.00"}
+ percentFormat{"#,##0%"}
+ }
+ symbols{
+ decimal{"."}
+ group{","}
+ list{","}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "H:mm:ss zzzz",
+ "H:mm:ss z",
+ "H:mm:ss",
+ "H:mm",
+ "EEEE d MMMM y",
+ "d MMMM y",
+ "d MMM yy",
+ "d-M-y",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ }
+ availableFormats{
+ MMMMEd{"E, d MMMM"}
+ MMMMd{"dd MMMM"}
+ MMMd{"dd MMM"}
+ Md{"d/M"}
+ yMMMM{"MMMM y"}
+ }
+ dayNames{
+ format{
+ abbreviated{
+ "dom",
+ "lun",
+ "mar",
+ "web",
+ "raz",
+ "bie",
+ "sab",
+ }
+ short{
+ "do",
+ "lu",
+ "ma",
+ "we",
+ "ra",
+ "bi",
+ "sa",
+ }
+ wide{
+ "diadomingo",
+ "dialuna",
+ "diamars",
+ "diawebs",
+ "diarazon",
+ "diabierna",
+ "diasabra",
+ }
+ }
+ }
+ eras{
+ abbreviated{
+ "BCE",
+ "AD",
+ }
+ wide{
+ "BCE",
+ "A.D.",
+ }
+ }
+ monthNames{
+ format{
+ abbreviated{
+ "jan",
+ "feb",
+ "mrt",
+ "apr",
+ "mei",
+ "jun",
+ "jul",
+ "aug",
+ "sep",
+ "okt",
+ "nov",
+ "dec",
+ }
+ wide{
+ "januari",
+ "februari",
+ "maart",
+ "april",
+ "mei",
+ "juni",
+ "juli",
+ "augustus",
+ "september",
+ "oktober",
+ "november",
+ "december",
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/pap_029.txt b/icu/icu4c/source/data/locales/pap_029.txt
new file mode 100644
index 00000000000..f69c88df02a
--- /dev/null
+++ b/icu/icu4c/source/data/locales/pap_029.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+pap_029{
+}
diff --git a/icu/icu4c/source/data/locales/tzm_Arab.txt b/icu/icu4c/source/data/locales/tzm_Arab.txt
new file mode 100644
index 00000000000..5f4c8981d2c
--- /dev/null
+++ b/icu/icu4c/source/data/locales/tzm_Arab.txt
@@ -0,0 +1,26 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Arab{
+ AuxExemplarCharacters{"[\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک ڭ گ ݣ ی]"}
+ ExemplarCharactersNumbers{"[\u200E \\- ‑ , . % ‰ + 0 1 2 3 4 5 6 7 8 9]"}
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "HH:mm:ss zzzz",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "y MMMM d, EEEE",
+ "y MMMM d",
+ "y MMM d",
+ "y-MM-dd",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ }
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/tzm_Arab_MA.txt b/icu/icu4c/source/data/locales/tzm_Arab_MA.txt
new file mode 100644
index 00000000000..6f23a4e9ca8
--- /dev/null
+++ b/icu/icu4c/source/data/locales/tzm_Arab_MA.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Arab_MA{
+}
diff --git a/icu/icu4c/source/data/locales/tzm_DZ.txt b/icu/icu4c/source/data/locales/tzm_DZ.txt
new file mode 100644
index 00000000000..4c581bea90b
--- /dev/null
+++ b/icu/icu4c/source/data/locales/tzm_DZ.txt
@@ -0,0 +1,99 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_DZ{
+ NumberElements{
+ latn{
+ patterns{
+ percentFormat{"#,##0 %"}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "h:mm:ss a zzzz",
+ "h:mm:ss a z",
+ "h:mm:ss a",
+ "h:mm a",
+ "EEEE, dd MMMM, y",
+ "dd MMMM, y",
+ "d MMM, y",
+ "dd/MM/y",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ }
+ availableFormats{
+ MMMMEd{"E, d MMMM"}
+ MMMMd{"d MMMM"}
+ yMMMM{"MMMM, y"}
+ }
+ dayNames{
+ format{
+ abbreviated{
+ "lh'd",
+ "let",
+ "ttl",
+ "lar",
+ "lex",
+ "ldj",
+ "sse",
+ }
+ short{
+ "lh",
+ "lt",
+ "tt",
+ "la",
+ "lx",
+ "ld",
+ "ss",
+ }
+ wide{
+ "lh'ed",
+ "letnayen",
+ "ttlata",
+ "larebâa",
+ "lexmis",
+ "ldjemâa",
+ "ssebt",
+ }
+ }
+ }
+ monthNames{
+ format{
+ abbreviated{
+ "Yen",
+ "Fur",
+ "Megh",
+ "Yeb",
+ "May",
+ "Yun",
+ "Yul",
+ "Ghu",
+ "Cut",
+ "Tub",
+ "Nun",
+ "Duj",
+ }
+ wide{
+ "Yennayer",
+ "Furar",
+ "Meghres",
+ "Yebrir",
+ "Magu",
+ "Yunyu",
+ "Yulyu",
+ "Ghuct",
+ "Cutenber",
+ "Tuber",
+ "Nunember",
+ "Dujanbir",
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/tzm_Latn.txt b/icu/icu4c/source/data/locales/tzm_Latn.txt
new file mode 100644
index 00000000000..40dbe914a1a
--- /dev/null
+++ b/icu/icu4c/source/data/locales/tzm_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn{
+ "%%ALIAS"{"tzm"}
+}
diff --git a/icu/icu4c/source/data/locales/tzm_Latn_DZ.txt b/icu/icu4c/source/data/locales/tzm_Latn_DZ.txt
new file mode 100644
index 00000000000..099c0786222
--- /dev/null
+++ b/icu/icu4c/source/data/locales/tzm_Latn_DZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_DZ{
+ "%%ALIAS"{"tzm_DZ"}
+}
diff --git a/icu/icu4c/source/data/locales/tzm_Latn_MA.txt b/icu/icu4c/source/data/locales/tzm_Latn_MA.txt
new file mode 100644
index 00000000000..c86150699b4
--- /dev/null
+++ b/icu/icu4c/source/data/locales/tzm_Latn_MA.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_MA{
+ "%%ALIAS"{"tzm_MA"}
+}
diff --git a/icu/icu4c/source/data/locales/tzm_Tfng.txt b/icu/icu4c/source/data/locales/tzm_Tfng.txt
new file mode 100644
index 00000000000..54243453121
--- /dev/null
+++ b/icu/icu4c/source/data/locales/tzm_Tfng.txt
@@ -0,0 +1,172 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Tfng{
+ NumberElements{
+ latn{
+ patterns{
+ currencyFormat{"#,##0.00 ¤"}
+ percentFormat{"#,##0 %"}
+ }
+ symbols{
+ nan{"ⵡⴰⵔ ⴰⵎⴹⴰⵏ"}
+ }
+ }
+ }
+ calendar{
+ gregorian{
+ DateTimePatterns{
+ "H:mm:ss zzzz",
+ "H:mm:ss z",
+ "H:mm:ss",
+ "H:mm",
+ "EEEE, dd MMMM, y",
+ "dd MMMM, y",
+ "dd.MMM.y",
+ "dd-MM-y",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ "{1} {0}",
+ }
+ availableFormats{
+ MMMMEd{"E dd MMMM"}
+ MMMMd{"dd MMMM"}
+ yMMMM{"MMMM, y"}
+ }
+ dayNames{
+ format{
+ abbreviated{
+ "ⵙⵎⵙ",
+ "ⵢⵏⵙ",
+ "ⵙⵏⵙ",
+ "ⴽⵕⵙ",
+ "ⴽⵡⵙ",
+ "ⵙⵎⵡ",
+ "ⵙⴹⵙ",
+ }
+ short{
+ "ⵙⵎ",
+ "ⵢⵏ",
+ "ⵙⵏ",
+ "ⴽⵕ",
+ "ⴽⵡ",
+ "ⵙⵡ",
+ "ⵙⴹ",
+ }
+ wide{
+ "ⴰⵙⴰⵎⴰⵙ",
+ "ⴰⵢⵏⴰⵙ",
+ "ⴰⵙⵉⵏⴰⵙ",
+ "ⴰⴽⵕⴰⵙ",
+ "ⴰⴽⵡⴰⵙ",
+ "ⴰⵙⵉⵎⵡⴰⵙ",
+ "ⴰⵙⵉⴹⵢⴰⵙ",
+ }
+ }
+ stand-alone{
+ abbreviated{
+ "ⵙⵎⵙ",
+ "ⵢⵏⵙ",
+ "ⵙⵏⵙ",
+ "ⴽⵕⵙ",
+ "ⴽⵡⵙ",
+ "ⵙⵎⵡ",
+ "ⵙⴹⵙ",
+ }
+ short{
+ "ⵙⵎ",
+ "ⵢⵏ",
+ "ⵙⵏ",
+ "ⴽⵕ",
+ "ⴽⵡ",
+ "ⵙⵡ",
+ "ⵙⴹ",
+ }
+ wide{
+ "ⴰⵙⴰⵎⴰⵙ",
+ "ⴰⵢⵏⴰⵙ",
+ "ⴰⵙⵉⵏⴰⵙ",
+ "ⴰⴽⵕⴰⵙ",
+ "ⴰⴽⵡⴰⵙ",
+ "ⴰⵙⵉⵎⵡⴰⵙ",
+ "ⴰⵙⵉⴹⵢⴰⵙ",
+ }
+ }
+ }
+ eras{
+ abbreviated{
+ "BCE",
+ "ⴷ-ⵙ.ⵄ.",
+ }
+ wide{
+ "BCE",
+ "ⴷⴰⵜ ⵙⵉⴷⵏⴰ ⵄⵉⵙⴰ",
+ }
+ }
+ monthNames{
+ format{
+ abbreviated{
+ "ⵏⵢⵔ",
+ "ⴱⵕⵢ",
+ "ⵎⵕⵚ",
+ "ⴱⵔⵔ",
+ "ⵎⵢⵢ",
+ "ⵢⵏⵢ",
+ "ⵢⵍⵢ",
+ "ⵖⵛⵜ",
+ "ⵛⵜⵏ",
+ "ⴽⵜⴱ",
+ "ⵏⵡⴱ",
+ "ⴷⵊⵏ",
+ }
+ wide{
+ "ⵉⵏⵏⴰⵢⵔ",
+ "ⴱⵕⴰⵢⵕ",
+ "ⵎⴰⵕⵚ",
+ "ⵉⴱⵔⵉⵔ",
+ "ⵎⴰⵢⵢⵓ",
+ "ⵢⵓⵏⵢⵓ",
+ "ⵢⵓⵍⵢⵓⵣ",
+ "ⵖⵓⵛⵜ",
+ "ⵛⵓⵜⴰⵏⴱⵉⵔ",
+ "ⴽⵜⵓⴱⵕ",
+ "ⵏⵓⵡⴰⵏⴱⵉⵔ",
+ "ⴷⵓⵊⴰⵏⴱⵉⵔ",
+ }
+ }
+ stand-alone{
+ abbreviated{
+ "ⵏⵢⵔ",
+ "ⴱⵕⵢ",
+ "ⵎⵕⵚ",
+ "ⴱⵔⵔ",
+ "ⵎⵢⵢ",
+ "ⵢⵏⵢ",
+ "ⵢⵍⵢ",
+ "ⵖⵛⵜ",
+ "ⵛⵜⵏ",
+ "ⴽⵜⴱ",
+ "ⵏⵡⴱ",
+ "ⴷⵊⵏ",
+ }
+ wide{
+ "ⵉⵏⵏⴰⵢⵔ",
+ "ⴱⵕⴰⵢⵕ",
+ "ⵎⴰⵕⵚ",
+ "ⵉⴱⵔⵉⵔ",
+ "ⵎⴰⵢⵢⵓ",
+ "ⵢⵓⵏⵢⵓ",
+ "ⵢⵓⵍⵢⵓⵣ",
+ "ⵖⵓⵛⵜ",
+ "ⵛⵓⵜⴰⵏⴱⵉⵔ",
+ "ⴽⵜⵓⴱⵕ",
+ "ⵏⵓⵡⴰⵏⴱⵉⵔ",
+ "ⴷⵓⵊⴰⵏⴱⵉⵔ",
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/icu/icu4c/source/data/locales/tzm_Tfng_MA.txt b/icu/icu4c/source/data/locales/tzm_Tfng_MA.txt
new file mode 100644
index 00000000000..664acd2f2be
--- /dev/null
+++ b/icu/icu4c/source/data/locales/tzm_Tfng_MA.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Tfng_MA{
+}
diff --git a/icu/icu4c/source/data/misc/supplementalData.txt b/icu/icu4c/source/data/misc/supplementalData.txt
index 9474e649fc6..ff21ba9860a 100644
--- a/icu/icu4c/source/data/misc/supplementalData.txt
+++ b/icu/icu4c/source/data/misc/supplementalData.txt
@@ -19541,6 +19541,13 @@ supplementalData:table(nofallback){
210,
}
}
+ 029{
+ MeasurementSystem:int{1}
+ PaperSize:intvector{
+ 279,
+ 216,
+ }
+ }
BS{
MeasurementSystemCategory{
temperature:int{1}
diff --git a/icu/icu4c/source/data/region/LOCALE_DEPS.json b/icu/icu4c/source/data/region/LOCALE_DEPS.json
index 6f4bfbc0617..1b77cc7bd27 100644
--- a/icu/icu4c/source/data/region/LOCALE_DEPS.json
+++ b/icu/icu4c/source/data/region/LOCALE_DEPS.json
@@ -21,6 +21,10 @@
"ff_GN": "ff_Latn_GN",
"ff_MR": "ff_Latn_MR",
"ff_SN": "ff_Latn_SN",
+ "ha_Latn": "ha",
+ "ha_Latn_GH": "ha_GH",
+ "ha_Latn_NE": "ha_NE",
+ "ha_Latn_NG": "ha_NG",
"in": "id",
"in_ID": "id_ID",
"iu_Cans": "iu",
@@ -75,6 +79,9 @@
"su_ID": "su_Latn_ID",
"tl": "fil",
"tl_PH": "fil_PH",
+ "tzm_Latn": "tzm",
+ "tzm_Latn_DZ": "tzm_DZ",
+ "tzm_Latn_MA": "tzm_MA",
"uz_AF": "uz_Arab_AF",
"uz_UZ": "uz_Latn_UZ",
"vai_LR": "vai_Vaii_LR",
@@ -204,6 +211,7 @@
"es_VE": "es_419",
"ff_Adlm": "root",
"iu_Latn": "root",
+ "ks_Deva": "root",
"mn_Mong": "root",
"pa_Arab": "root",
"pt_AO": "pt_PT",
diff --git a/icu/icu4c/source/data/region/bin.txt b/icu/icu4c/source/data/region/bin.txt
new file mode 100644
index 00000000000..454f8ed46db
--- /dev/null
+++ b/icu/icu4c/source/data/region/bin.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+bin{
+ Countries{
+ NG{"Nigeria"}
+ }
+}
diff --git a/icu/icu4c/source/data/region/ff_Latn_MR.txt b/icu/icu4c/source/data/region/ff_Latn_MR.txt
index 0f5eb4148f9..dd6364bc3bd 100644
--- a/icu/icu4c/source/data/region/ff_Latn_MR.txt
+++ b/icu/icu4c/source/data/region/ff_Latn_MR.txt
@@ -1,8 +1,9 @@
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
ff_Latn_MR{
- Countries{
- PS{"السلطة الفلسطينية"}
- }
+ ___{""}
}
diff --git a/icu/icu4c/source/data/region/ha_Latn.txt b/icu/icu4c/source/data/region/ha_Latn.txt
new file mode 100644
index 00000000000..0eeb272f433
--- /dev/null
+++ b/icu/icu4c/source/data/region/ha_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn{
+ "%%ALIAS"{"ha"}
+}
diff --git a/icu/icu4c/source/data/region/ha_Latn_GH.txt b/icu/icu4c/source/data/region/ha_Latn_GH.txt
new file mode 100644
index 00000000000..dfdd0f52934
--- /dev/null
+++ b/icu/icu4c/source/data/region/ha_Latn_GH.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_GH{
+ "%%ALIAS"{"ha_GH"}
+}
diff --git a/icu/icu4c/source/data/region/ha_Latn_NE.txt b/icu/icu4c/source/data/region/ha_Latn_NE.txt
new file mode 100644
index 00000000000..b9dd7955071
--- /dev/null
+++ b/icu/icu4c/source/data/region/ha_Latn_NE.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NE{
+ "%%ALIAS"{"ha_NE"}
+}
diff --git a/icu/icu4c/source/data/region/ha_Latn_NG.txt b/icu/icu4c/source/data/region/ha_Latn_NG.txt
new file mode 100644
index 00000000000..33d19431bc0
--- /dev/null
+++ b/icu/icu4c/source/data/region/ha_Latn_NG.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NG{
+ "%%ALIAS"{"ha_NG"}
+}
diff --git a/icu/icu4c/source/data/region/ibb.txt b/icu/icu4c/source/data/region/ibb.txt
new file mode 100644
index 00000000000..e47f7a4fbd2
--- /dev/null
+++ b/icu/icu4c/source/data/region/ibb.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ibb{
+ Countries{
+ NG{"Nigeria"}
+ }
+}
diff --git a/icu/icu4c/source/data/region/kr.txt b/icu/icu4c/source/data/region/kr.txt
new file mode 100644
index 00000000000..deb77943734
--- /dev/null
+++ b/icu/icu4c/source/data/region/kr.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+kr{
+}
diff --git a/icu/icu4c/source/data/region/ks_Deva.txt b/icu/icu4c/source/data/region/ks_Deva.txt
new file mode 100644
index 00000000000..4e3f94cb787
--- /dev/null
+++ b/icu/icu4c/source/data/region/ks_Deva.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ks_Deva{
+ %%Parent{"root"}
+}
diff --git a/icu/icu4c/source/data/region/la.txt b/icu/icu4c/source/data/region/la.txt
new file mode 100644
index 00000000000..31eb90800fe
--- /dev/null
+++ b/icu/icu4c/source/data/region/la.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+la{
+}
diff --git a/icu/icu4c/source/data/region/pap.txt b/icu/icu4c/source/data/region/pap.txt
new file mode 100644
index 00000000000..4a656bc5380
--- /dev/null
+++ b/icu/icu4c/source/data/region/pap.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+pap{
+ Countries{
+ 029{"Caribbean"}
+ }
+}
diff --git a/icu/icu4c/source/data/region/tzm_DZ.txt b/icu/icu4c/source/data/region/tzm_DZ.txt
new file mode 100644
index 00000000000..36945d3ba3a
--- /dev/null
+++ b/icu/icu4c/source/data/region/tzm_DZ.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_DZ{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/region/tzm_Latn.txt b/icu/icu4c/source/data/region/tzm_Latn.txt
new file mode 100644
index 00000000000..40dbe914a1a
--- /dev/null
+++ b/icu/icu4c/source/data/region/tzm_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn{
+ "%%ALIAS"{"tzm"}
+}
diff --git a/icu/icu4c/source/data/region/tzm_Latn_DZ.txt b/icu/icu4c/source/data/region/tzm_Latn_DZ.txt
new file mode 100644
index 00000000000..099c0786222
--- /dev/null
+++ b/icu/icu4c/source/data/region/tzm_Latn_DZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_DZ{
+ "%%ALIAS"{"tzm_DZ"}
+}
diff --git a/icu/icu4c/source/data/region/tzm_Latn_MA.txt b/icu/icu4c/source/data/region/tzm_Latn_MA.txt
new file mode 100644
index 00000000000..c86150699b4
--- /dev/null
+++ b/icu/icu4c/source/data/region/tzm_Latn_MA.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_MA{
+ "%%ALIAS"{"tzm_MA"}
+}
diff --git a/icu/icu4c/source/data/region/tzm_MA.txt b/icu/icu4c/source/data/region/tzm_MA.txt
new file mode 100644
index 00000000000..adb983ffd15
--- /dev/null
+++ b/icu/icu4c/source/data/region/tzm_MA.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_MA{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/region/tzm_Tfng.txt b/icu/icu4c/source/data/region/tzm_Tfng.txt
new file mode 100644
index 00000000000..d5c391d730b
--- /dev/null
+++ b/icu/icu4c/source/data/region/tzm_Tfng.txt
@@ -0,0 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Tfng{
+ Countries{
+ MA{"ⵍⵎⵖⵔⵉⴱ"}
+ }
+}
diff --git a/icu/icu4c/source/data/unit/LOCALE_DEPS.json b/icu/icu4c/source/data/unit/LOCALE_DEPS.json
index 6f4bfbc0617..1b77cc7bd27 100644
--- a/icu/icu4c/source/data/unit/LOCALE_DEPS.json
+++ b/icu/icu4c/source/data/unit/LOCALE_DEPS.json
@@ -21,6 +21,10 @@
"ff_GN": "ff_Latn_GN",
"ff_MR": "ff_Latn_MR",
"ff_SN": "ff_Latn_SN",
+ "ha_Latn": "ha",
+ "ha_Latn_GH": "ha_GH",
+ "ha_Latn_NE": "ha_NE",
+ "ha_Latn_NG": "ha_NG",
"in": "id",
"in_ID": "id_ID",
"iu_Cans": "iu",
@@ -75,6 +79,9 @@
"su_ID": "su_Latn_ID",
"tl": "fil",
"tl_PH": "fil_PH",
+ "tzm_Latn": "tzm",
+ "tzm_Latn_DZ": "tzm_DZ",
+ "tzm_Latn_MA": "tzm_MA",
"uz_AF": "uz_Arab_AF",
"uz_UZ": "uz_Latn_UZ",
"vai_LR": "vai_Vaii_LR",
@@ -204,6 +211,7 @@
"es_VE": "es_419",
"ff_Adlm": "root",
"iu_Latn": "root",
+ "ks_Deva": "root",
"mn_Mong": "root",
"pa_Arab": "root",
"pt_AO": "pt_PT",
diff --git a/icu/icu4c/source/data/unit/bin.txt b/icu/icu4c/source/data/unit/bin.txt
new file mode 100644
index 00000000000..d773a332ce7
--- /dev/null
+++ b/icu/icu4c/source/data/unit/bin.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+bin{
+}
diff --git a/icu/icu4c/source/data/unit/ha_GH.txt b/icu/icu4c/source/data/unit/ha_GH.txt
new file mode 100644
index 00000000000..6dd3820c7dd
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ha_GH.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_GH{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/unit/ha_Latn.txt b/icu/icu4c/source/data/unit/ha_Latn.txt
new file mode 100644
index 00000000000..0eeb272f433
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ha_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn{
+ "%%ALIAS"{"ha"}
+}
diff --git a/icu/icu4c/source/data/unit/ha_Latn_GH.txt b/icu/icu4c/source/data/unit/ha_Latn_GH.txt
new file mode 100644
index 00000000000..dfdd0f52934
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ha_Latn_GH.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_GH{
+ "%%ALIAS"{"ha_GH"}
+}
diff --git a/icu/icu4c/source/data/unit/ha_Latn_NE.txt b/icu/icu4c/source/data/unit/ha_Latn_NE.txt
new file mode 100644
index 00000000000..b9dd7955071
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ha_Latn_NE.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NE{
+ "%%ALIAS"{"ha_NE"}
+}
diff --git a/icu/icu4c/source/data/unit/ha_Latn_NG.txt b/icu/icu4c/source/data/unit/ha_Latn_NG.txt
new file mode 100644
index 00000000000..33d19431bc0
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ha_Latn_NG.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NG{
+ "%%ALIAS"{"ha_NG"}
+}
diff --git a/icu/icu4c/source/data/unit/ha_NE.txt b/icu/icu4c/source/data/unit/ha_NE.txt
new file mode 100644
index 00000000000..7991d4caf5f
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ha_NE.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_NE{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/unit/ha_NG.txt b/icu/icu4c/source/data/unit/ha_NG.txt
new file mode 100644
index 00000000000..112a2b67283
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ha_NG.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_NG{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/unit/ibb.txt b/icu/icu4c/source/data/unit/ibb.txt
new file mode 100644
index 00000000000..d1822fe81c5
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ibb.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ibb{
+}
diff --git a/icu/icu4c/source/data/unit/kr.txt b/icu/icu4c/source/data/unit/kr.txt
new file mode 100644
index 00000000000..deb77943734
--- /dev/null
+++ b/icu/icu4c/source/data/unit/kr.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+kr{
+}
diff --git a/icu/icu4c/source/data/unit/ks_Deva.txt b/icu/icu4c/source/data/unit/ks_Deva.txt
new file mode 100644
index 00000000000..4e3f94cb787
--- /dev/null
+++ b/icu/icu4c/source/data/unit/ks_Deva.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ks_Deva{
+ %%Parent{"root"}
+}
diff --git a/icu/icu4c/source/data/unit/la.txt b/icu/icu4c/source/data/unit/la.txt
new file mode 100644
index 00000000000..31eb90800fe
--- /dev/null
+++ b/icu/icu4c/source/data/unit/la.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+la{
+}
diff --git a/icu/icu4c/source/data/unit/pap.txt b/icu/icu4c/source/data/unit/pap.txt
new file mode 100644
index 00000000000..6ac8f73a114
--- /dev/null
+++ b/icu/icu4c/source/data/unit/pap.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+pap{
+}
diff --git a/icu/icu4c/source/data/unit/tzm_DZ.txt b/icu/icu4c/source/data/unit/tzm_DZ.txt
new file mode 100644
index 00000000000..36945d3ba3a
--- /dev/null
+++ b/icu/icu4c/source/data/unit/tzm_DZ.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_DZ{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/unit/tzm_Latn.txt b/icu/icu4c/source/data/unit/tzm_Latn.txt
new file mode 100644
index 00000000000..40dbe914a1a
--- /dev/null
+++ b/icu/icu4c/source/data/unit/tzm_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn{
+ "%%ALIAS"{"tzm"}
+}
diff --git a/icu/icu4c/source/data/unit/tzm_Latn_DZ.txt b/icu/icu4c/source/data/unit/tzm_Latn_DZ.txt
new file mode 100644
index 00000000000..099c0786222
--- /dev/null
+++ b/icu/icu4c/source/data/unit/tzm_Latn_DZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_DZ{
+ "%%ALIAS"{"tzm_DZ"}
+}
diff --git a/icu/icu4c/source/data/unit/tzm_Latn_MA.txt b/icu/icu4c/source/data/unit/tzm_Latn_MA.txt
new file mode 100644
index 00000000000..c86150699b4
--- /dev/null
+++ b/icu/icu4c/source/data/unit/tzm_Latn_MA.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_MA{
+ "%%ALIAS"{"tzm_MA"}
+}
diff --git a/icu/icu4c/source/data/unit/tzm_MA.txt b/icu/icu4c/source/data/unit/tzm_MA.txt
new file mode 100644
index 00000000000..adb983ffd15
--- /dev/null
+++ b/icu/icu4c/source/data/unit/tzm_MA.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_MA{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/zone/LOCALE_DEPS.json b/icu/icu4c/source/data/zone/LOCALE_DEPS.json
index 6f4bfbc0617..1b77cc7bd27 100644
--- a/icu/icu4c/source/data/zone/LOCALE_DEPS.json
+++ b/icu/icu4c/source/data/zone/LOCALE_DEPS.json
@@ -21,6 +21,10 @@
"ff_GN": "ff_Latn_GN",
"ff_MR": "ff_Latn_MR",
"ff_SN": "ff_Latn_SN",
+ "ha_Latn": "ha",
+ "ha_Latn_GH": "ha_GH",
+ "ha_Latn_NE": "ha_NE",
+ "ha_Latn_NG": "ha_NG",
"in": "id",
"in_ID": "id_ID",
"iu_Cans": "iu",
@@ -75,6 +79,9 @@
"su_ID": "su_Latn_ID",
"tl": "fil",
"tl_PH": "fil_PH",
+ "tzm_Latn": "tzm",
+ "tzm_Latn_DZ": "tzm_DZ",
+ "tzm_Latn_MA": "tzm_MA",
"uz_AF": "uz_Arab_AF",
"uz_UZ": "uz_Latn_UZ",
"vai_LR": "vai_Vaii_LR",
@@ -204,6 +211,7 @@
"es_VE": "es_419",
"ff_Adlm": "root",
"iu_Latn": "root",
+ "ks_Deva": "root",
"mn_Mong": "root",
"pa_Arab": "root",
"pt_AO": "pt_PT",
diff --git a/icu/icu4c/source/data/zone/bin.txt b/icu/icu4c/source/data/zone/bin.txt
new file mode 100644
index 00000000000..d773a332ce7
--- /dev/null
+++ b/icu/icu4c/source/data/zone/bin.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+bin{
+}
diff --git a/icu/icu4c/source/data/zone/ha_GH.txt b/icu/icu4c/source/data/zone/ha_GH.txt
new file mode 100644
index 00000000000..6dd3820c7dd
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ha_GH.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_GH{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/zone/ha_Latn.txt b/icu/icu4c/source/data/zone/ha_Latn.txt
new file mode 100644
index 00000000000..0eeb272f433
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ha_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn{
+ "%%ALIAS"{"ha"}
+}
diff --git a/icu/icu4c/source/data/zone/ha_Latn_GH.txt b/icu/icu4c/source/data/zone/ha_Latn_GH.txt
new file mode 100644
index 00000000000..dfdd0f52934
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ha_Latn_GH.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_GH{
+ "%%ALIAS"{"ha_GH"}
+}
diff --git a/icu/icu4c/source/data/zone/ha_Latn_NE.txt b/icu/icu4c/source/data/zone/ha_Latn_NE.txt
new file mode 100644
index 00000000000..b9dd7955071
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ha_Latn_NE.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NE{
+ "%%ALIAS"{"ha_NE"}
+}
diff --git a/icu/icu4c/source/data/zone/ha_Latn_NG.txt b/icu/icu4c/source/data/zone/ha_Latn_NG.txt
new file mode 100644
index 00000000000..33d19431bc0
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ha_Latn_NG.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ha_Latn_NG{
+ "%%ALIAS"{"ha_NG"}
+}
diff --git a/icu/icu4c/source/data/zone/ha_NE.txt b/icu/icu4c/source/data/zone/ha_NE.txt
new file mode 100644
index 00000000000..7991d4caf5f
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ha_NE.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_NE{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/zone/ha_NG.txt b/icu/icu4c/source/data/zone/ha_NG.txt
new file mode 100644
index 00000000000..112a2b67283
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ha_NG.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+ha_NG{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/zone/ibb.txt b/icu/icu4c/source/data/zone/ibb.txt
new file mode 100644
index 00000000000..d1822fe81c5
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ibb.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ibb{
+}
diff --git a/icu/icu4c/source/data/zone/kr.txt b/icu/icu4c/source/data/zone/kr.txt
new file mode 100644
index 00000000000..deb77943734
--- /dev/null
+++ b/icu/icu4c/source/data/zone/kr.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+kr{
+}
diff --git a/icu/icu4c/source/data/zone/ks_Deva.txt b/icu/icu4c/source/data/zone/ks_Deva.txt
new file mode 100644
index 00000000000..4e3f94cb787
--- /dev/null
+++ b/icu/icu4c/source/data/zone/ks_Deva.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+ks_Deva{
+ %%Parent{"root"}
+}
diff --git a/icu/icu4c/source/data/zone/la.txt b/icu/icu4c/source/data/zone/la.txt
new file mode 100644
index 00000000000..31eb90800fe
--- /dev/null
+++ b/icu/icu4c/source/data/zone/la.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+la{
+}
diff --git a/icu/icu4c/source/data/zone/pap.txt b/icu/icu4c/source/data/zone/pap.txt
new file mode 100644
index 00000000000..6ac8f73a114
--- /dev/null
+++ b/icu/icu4c/source/data/zone/pap.txt
@@ -0,0 +1,5 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+pap{
+}
diff --git a/icu/icu4c/source/data/zone/tzm_DZ.txt b/icu/icu4c/source/data/zone/tzm_DZ.txt
new file mode 100644
index 00000000000..36945d3ba3a
--- /dev/null
+++ b/icu/icu4c/source/data/zone/tzm_DZ.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_DZ{
+ ___{""}
+}
diff --git a/icu/icu4c/source/data/zone/tzm_Latn.txt b/icu/icu4c/source/data/zone/tzm_Latn.txt
new file mode 100644
index 00000000000..40dbe914a1a
--- /dev/null
+++ b/icu/icu4c/source/data/zone/tzm_Latn.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn{
+ "%%ALIAS"{"tzm"}
+}
diff --git a/icu/icu4c/source/data/zone/tzm_Latn_DZ.txt b/icu/icu4c/source/data/zone/tzm_Latn_DZ.txt
new file mode 100644
index 00000000000..099c0786222
--- /dev/null
+++ b/icu/icu4c/source/data/zone/tzm_Latn_DZ.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_DZ{
+ "%%ALIAS"{"tzm_DZ"}
+}
diff --git a/icu/icu4c/source/data/zone/tzm_Latn_MA.txt b/icu/icu4c/source/data/zone/tzm_Latn_MA.txt
new file mode 100644
index 00000000000..c86150699b4
--- /dev/null
+++ b/icu/icu4c/source/data/zone/tzm_Latn_MA.txt
@@ -0,0 +1,6 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+tzm_Latn_MA{
+ "%%ALIAS"{"tzm_MA"}
+}
diff --git a/icu/icu4c/source/data/zone/tzm_MA.txt b/icu/icu4c/source/data/zone/tzm_MA.txt
new file mode 100644
index 00000000000..adb983ffd15
--- /dev/null
+++ b/icu/icu4c/source/data/zone/tzm_MA.txt
@@ -0,0 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+// Generated using tools/cldr/cldr-to-icu/build-icu-data.xml
+/**
+ * generated alias target
+ */
+tzm_MA{
+ ___{""}
+}
diff --git a/icu/icu4c/source/test/cintltst/cldrtest.c b/icu/icu4c/source/test/cintltst/cldrtest.c
index 179539d5178..bfb35c35a44 100644
--- a/icu/icu4c/source/test/cintltst/cldrtest.c
+++ b/icu/icu4c/source/test/cintltst/cldrtest.c
@@ -970,7 +970,14 @@ static void VerifyTranslation(void) {
uprv_strncmp(currLoc, "oc", 2) == 0 || uprv_strncmp(currLoc, "oc_FR", 5) == 0 ||
uprv_strncmp(currLoc, "syr", 3) == 0 || uprv_strncmp(currLoc, "syr_SY", 6) == 0 ||
uprv_strncmp(currLoc, "tig", 3) == 0 || uprv_strncmp(currLoc, "tig_ER", 6) == 0 ||
- uprv_strncmp(currLoc, "wal", 3) == 0 || uprv_strncmp(currLoc, "wal_ET", 6) == 0
+ uprv_strncmp(currLoc, "wal", 3) == 0 || uprv_strncmp(currLoc, "wal_ET", 6) == 0 ||
+ uprv_strncmp(currLoc, "bin", 3) == 0 || uprv_strncmp(currLoc, "bin_NG", 6) == 0 ||
+ uprv_strncmp(currLoc, "la", 2) == 0 || uprv_strncmp(currLoc, "la_VA", 6) == 0 ||
+ uprv_strncmp(currLoc, "jv_Java", 7) == 0 || uprv_strncmp(currLoc, "jv_Java_ID", 10) == 0 ||
+ uprv_strncmp(currLoc, "ks_Deva", 7) == 0 || uprv_strncmp(currLoc, "ks_Deva_IN", 10) == 0 ||
+ uprv_strncmp(currLoc, "pap", 3) == 0 || uprv_strncmp(currLoc, "pap_029", 7) == 0 ||
+ uprv_strncmp(currLoc, "tzm_Arab", 8) == 0 || uprv_strncmp(currLoc, "tzm_Arab_MA", 11) == 0 ||
+ uprv_strncmp(currLoc, "tzm_Tfng", 8) == 0 || uprv_strncmp(currLoc, "tzm_Tfng_MA", 11) == 0
) {
log_knownIssue("0", "MSFT Change: skipping test for %s which has issues due to CLDR Seed data.", currLoc);
}
@@ -1110,7 +1117,8 @@ static void VerifyTranslation(void) {
if (U_FAILURE(errorCode)) {
log_err("ulocdata_getMeasurementSystem failed for locale %s with error: %s \n", currLoc, u_errorName(errorCode));
} else {
- if ( strstr(fullLoc, "_US")!=NULL || strstr(fullLoc, "_LR")!=NULL ) {
+ /* MSFT Change: CLDR-MS adds 029 region with US measurement */
+ if ( strstr(fullLoc, "_US")!=NULL || strstr(fullLoc, "_LR")!=NULL || strstr(fullLoc, "_029")!=NULL ) {
if(measurementSystem != UMS_US){
log_err("ulocdata_getMeasurementSystem did not return expected data for locale %s \n", currLoc);
}
@@ -1128,10 +1136,11 @@ static void VerifyTranslation(void) {
if (U_FAILURE(errorCode)) {
log_err("ulocdata_getPaperSize failed for locale %s with error: %s \n", currLoc, u_errorName(errorCode));
} else {
+ /* MSFT Change: CLDR-MS adds 029 region with US paper size */
if ( strstr(fullLoc, "_US")!=NULL || strstr(fullLoc, "_BZ")!=NULL || strstr(fullLoc, "_CA")!=NULL || strstr(fullLoc, "_CL")!=NULL ||
strstr(fullLoc, "_CO")!=NULL || strstr(fullLoc, "_CR")!=NULL || strstr(fullLoc, "_GT")!=NULL || strstr(fullLoc, "_MX")!=NULL ||
strstr(fullLoc, "_NI")!=NULL || strstr(fullLoc, "_PA")!=NULL || strstr(fullLoc, "_PH")!=NULL || strstr(fullLoc, "_PR")!=NULL ||
- strstr(fullLoc, "_SV")!=NULL || strstr(fullLoc, "_VE")!=NULL ) {
+ strstr(fullLoc, "_SV")!=NULL || strstr(fullLoc, "_VE")!=NULL || strstr(fullLoc, "_029")!=NULL ) {
if (height != 279 || width != 216) {
log_err("ulocdata_getPaperSize did not return expected data for locale %s \n", currLoc);
}
@@ -1251,8 +1260,14 @@ static void TestExemplarSet(void){
if (existsInScript == FALSE){
/* MSFT Change */
- if (uprv_strncmp(locale, "oc", 2) == 0 || uprv_strncmp(locale, "oc_FR", 5) == 0) {
- log_knownIssue("0", "MSFT Change: oc and oc_FR have ExemplarSet issues.");
+ if (uprv_strncmp(locale, "oc", 2) == 0 || uprv_strncmp(locale, "oc_FR", 5) == 0 ||
+ uprv_strncmp(locale, "jv_Java", 7) == 0 || uprv_strncmp(locale, "jv_Java_ID", 10) == 0 ||
+ uprv_strncmp(locale, "la", 2) == 0 || uprv_strncmp(locale, "la_VA", 6) == 0 ||
+ uprv_strncmp(locale, "pap", 3) == 0 || uprv_strncmp(locale, "pap_029", 7) == 0 ||
+ uprv_strncmp(locale, "tzm_Arab", 8) == 0 || uprv_strncmp(locale, "tzm_Arab_MA", 11) == 0 ||
+ uprv_strncmp(locale, "tzm_Tfng", 8) == 0 || uprv_strncmp(locale, "tzm_Tfng_MA", 11) == 0
+ ) {
+ log_knownIssue("0", "MSFT Change: skipping test for %s which has issue due to CLDR seed data.", locale);
continue;
} else {
log_err("ExemplarSet containment failed for locale : %s\n", locale);
diff --git a/icu/icu4c/source/test/cintltst/cnmdptst.c b/icu/icu4c/source/test/cintltst/cnmdptst.c
index 99a9ce23be7..a319b99e3fa 100644
--- a/icu/icu4c/source/test/cintltst/cnmdptst.c
+++ b/icu/icu4c/source/test/cintltst/cnmdptst.c
@@ -811,7 +811,8 @@ static void TestGetKeywordValuesForLocale(void) {
{ "und", "USD", "USN", NULL },
/* { "und_ZZ", "USD", NULL, NULL }, -- temporarily remove as this locale now has 15 entries */
{ "en_US", "USD", "USN", NULL },
- { "en_029", "USD", "USN", NULL },
+ /* MSFT Change: CLDR-MS adds en_029 locale with XCD currency */
+ { "en_029", "XCD", NULL, NULL },
{ "en_TH", "THB", NULL, NULL },
{ "de", "EUR", NULL, NULL },
{ "de_DE", "EUR", NULL, NULL },
@@ -825,11 +826,13 @@ static void TestGetKeywordValuesForLocale(void) {
{ "en_US@currency=CAD;rg=THZZZZ", "THB", NULL, NULL },
};
const int32_t EXPECTED_SIZE[PREFERRED_SIZE] = {
- 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1
+ /* MSFT Change: CLDR-MS adds en_029 locale with XCD currency */
+ 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1
};
/* ucurr_forLocale results for same locales; "" if no result expected */
const char *FORLOCALE[PREFERRED_SIZE] = {
- "", "", "USD", "",
+ /* MSFT Change: CLDR-MS adds en_029 locale with XCD currency */
+ "", "", "USD", "XCD",
"THB", "", "EUR", "",
"ILS", "CAD", "ZZZ", "DEM",
"THB", "USD", "CAD"
diff --git a/icu/icu4c/source/test/intltest/dtptngts.cpp b/icu/icu4c/source/test/intltest/dtptngts.cpp
index dc86355f93f..c83e27bb68c 100644
--- a/icu/icu4c/source/test/intltest/dtptngts.cpp
+++ b/icu/icu4c/source/test/intltest/dtptngts.cpp
@@ -1408,7 +1408,8 @@ void IntlTestDateTimePatternGeneratorAPI::testJjMapping() {
uprv_strncmp(localeID, "ssy_ER", 6) == 0 || uprv_strncmp(localeID, "st_LS", 5) == 0 ||
uprv_strncmp(localeID, "syr", 3) == 0 || uprv_strncmp(localeID, "syr_SY", 6) == 0 ||
uprv_strncmp(localeID, "tig", 3) == 0 || uprv_strncmp(localeID, "tig_ER", 6) == 0 ||
- uprv_strncmp(localeID, "wal", 3) == 0 || uprv_strncmp(localeID, "wal_ET", 6) == 0
+ uprv_strncmp(localeID, "wal", 3) == 0 || uprv_strncmp(localeID, "wal_ET", 6) == 0 ||
+ uprv_strncmp(localeID, "ks_Deva", 7) == 0 || uprv_strncmp(localeID, "ks_Deva_IN", 10) == 0
) {
logKnownIssue("0", "MSFT Change: skipping test for %s which has issues due to CLDR Seed data.", localeID);
}
diff --git a/icu/icu4c/source/test/intltest/loctest.cpp b/icu/icu4c/source/test/intltest/loctest.cpp
index 5f1075f5461..420ead8d335 100644
--- a/icu/icu4c/source/test/intltest/loctest.cpp
+++ b/icu/icu4c/source/test/intltest/loctest.cpp
@@ -282,6 +282,8 @@ void LocaleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, c
TESTCASE_AUTO(TestSetUnicodeKeywordValueNullInLongLocale);
TESTCASE_AUTO(TestCanonicalize);
TESTCASE_AUTO(TestLeak21419);
+ TESTCASE_AUTO(TestLongLocaleSetKeywordAssign);
+ TESTCASE_AUTO(TestLongLocaleSetKeywordMoveAssign);
TESTCASE_AUTO_END;
}
@@ -6355,6 +6357,30 @@ void LocaleTest::TestSetUnicodeKeywordValueInLongLocale() {
}
}
+void LocaleTest::TestLongLocaleSetKeywordAssign() {
+ IcuTestErrorCode status(*this, "TestLongLocaleSetKeywordAssign");
+ // A long base name, with an illegal keyword and copy constructor
+ icu::Locale l("de_AAAAAAA1_AAAAAAA2_AAAAAAA3_AAAAAAA4_AAAAAAA5_AAAAAAA6_"
+ "AAAAAAA7_AAAAAAA8_AAAAAAA9_AAAAAA10_AAAAAA11_AAAAAA12_"
+ "AAAAAA13_AAAAAA14_AAAAAA15_AAAAAA16_AAAAAA17_AAAAAA18");
+ Locale l2;
+ l.setUnicodeKeywordValue("co", "12", status); // Cause an error
+ status.reset();
+ l2 = l; // copy operator on such bogus locale.
+}
+
+void LocaleTest::TestLongLocaleSetKeywordMoveAssign() {
+ IcuTestErrorCode status(*this, "TestLongLocaleSetKeywordMoveAssign");
+ // A long base name, with an illegal keyword and copy constructor
+ icu::Locale l("de_AAAAAAA1_AAAAAAA2_AAAAAAA3_AAAAAAA4_AAAAAAA5_AAAAAAA6_"
+ "AAAAAAA7_AAAAAAA8_AAAAAAA9_AAAAAA10_AAAAAA11_AAAAAA12_"
+ "AAAAAA13_AAAAAA14_AAAAAA15_AAAAAA16_AAAAAA17");
+ Locale l2;
+ l.setUnicodeKeywordValue("co", "12", status); // Cause an error
+ status.reset();
+ Locale l3 = std::move(l); // move assign
+}
+
void LocaleTest::TestSetUnicodeKeywordValueNullInLongLocale() {
IcuTestErrorCode status(*this, "TestSetUnicodeKeywordValueNullInLongLocale");
const char *exts[] = {"cf", "cu", "em", "kk", "kr", "ks", "kv", "lb", "lw",
diff --git a/icu/icu4c/source/test/intltest/loctest.h b/icu/icu4c/source/test/intltest/loctest.h
index 1fba6d94f56..edbd5c01016 100644
--- a/icu/icu4c/source/test/intltest/loctest.h
+++ b/icu/icu4c/source/test/intltest/loctest.h
@@ -154,6 +154,8 @@ class LocaleTest: public IntlTest {
void TestSetUnicodeKeywordValueInLongLocale();
void TestSetUnicodeKeywordValueNullInLongLocale();
void TestLeak21419();
+ void TestLongLocaleSetKeywordAssign();
+ void TestLongLocaleSetKeywordMoveAssign();
private:
void _checklocs(const char* label,
diff --git a/icu/icu4c/source/test/intltest/numfmtst.cpp b/icu/icu4c/source/test/intltest/numfmtst.cpp
index bc072bd8e37..a63c329c8ea 100644
--- a/icu/icu4c/source/test/intltest/numfmtst.cpp
+++ b/icu/icu4c/source/test/intltest/numfmtst.cpp
@@ -8094,10 +8094,12 @@ void NumberFormatTest::TestAccountingCurrency() {
(Formattable)(double)-1000.5, UnicodeString("(\\uFFE51,000)").unescape(), FALSE, status);
expect(NumberFormat::createInstance("de_DE", style, status),
(Formattable)(double)-23456.7, UnicodeString("-23.456,70\\u00A0\\u20AC").unescape(), TRUE, status);
+ /* MSFT Change: We add a CLDR-MS locale en_ID */
expect(NumberFormat::createInstance("en_ID", style, status),
- (Formattable)(double)0, UnicodeString("IDR\\u00A00.00").unescape(), TRUE, status);
+ (Formattable)(double)0, UnicodeString("IDR\\u00A00,00").unescape(), TRUE, status);
expect(NumberFormat::createInstance("en_ID", style, status),
- (Formattable)(double)-0.2, UnicodeString("(IDR\\u00A00.20)").unescape(), TRUE, status);
+ (Formattable)(double)-0.2, UnicodeString("(IDR\\u00A00,20)").unescape(), TRUE, status);
+ /* MSFT Change: End */
expect(NumberFormat::createInstance("sh_ME", style, status),
(Formattable)(double)0, UnicodeString("0,00\\u00A0\\u20AC").unescape(), TRUE, status);
expect(NumberFormat::createInstance("sh_ME", style, status),
diff --git a/icu/icu4c/source/tools/toolutil/package.h b/icu/icu4c/source/tools/toolutil/package.h
index ea60c13a74a..6c411ae5fd0 100644
--- a/icu/icu4c/source/tools/toolutil/package.h
+++ b/icu/icu4c/source/tools/toolutil/package.h
@@ -27,7 +27,7 @@
// .dat package file representation ---------------------------------------- ***
-#define STRING_STORE_SIZE 100000
+#define STRING_STORE_SIZE 120000
#define MAX_PKG_NAME_LENGTH 64
typedef void CheckDependency(void *context, const char *itemName, const char *targetName);
diff --git a/icu/tools/cldr/cldr-to-icu/build-icu-data.xml b/icu/tools/cldr/cldr-to-icu/build-icu-data.xml
index 6d81bcd0639..cb9b7515112 100644
--- a/icu/tools/cldr/cldr-to-icu/build-icu-data.xml
+++ b/icu/tools/cldr/cldr-to-icu/build-icu-data.xml
@@ -169,6 +169,14 @@
+
+
+
+
+
+
+
+
@@ -200,6 +208,12 @@
+
+
+
+
+
+
diff --git a/version.txt b/version.txt
index 80b6402b16c..c8fee944013 100644
--- a/version.txt
+++ b/version.txt
@@ -35,5 +35,5 @@
# in the header file "uvernum.h" whenever updated and/or changed.
#
-ICU_version = 68.2.0.4
+ICU_version = 68.2.0.6
ICU_upstream_hash = 84e1f26ea77152936e70d53178a816dbfbf69989