diff --git a/SHARDS.md b/SHARDS.md
new file mode 100644
index 00000000000..bac57a04848
--- /dev/null
+++ b/SHARDS.md
@@ -0,0 +1,48 @@
+# Building ICU Shards
+
+The ICU is divided by locales and features.
+
+By locale:
+- EFIGS (en, fr, it, de, es)
+- CJK (zh, ja, ko)
+- no CJK (all locales except for zh, ja, ko)
+
+By features:
+- Collation
+- Normalization
+- Currency
+- Locales
+- Zones
+
+To generate ICU shards run:
+
+`make -C ./eng -f icu.mk shards`
+
+which will build all shards from filter files available in `icu-filters/` as well as `icu-dictionary.json`, which maps each parent locale (i.e. en) to relevant files.
+
+## ICU dictionary
+The ICU dictionary is divided into the following format:
+
+```
+{
+ "en": {
+ "essentials": [
+ icudt_currency.dat,
+ icudt_normalization.dat,
+ icudt_base.dat
+ ]
+ "zones": [ relevant timezone data files ],
+ "locales": [ relevant locale data files ],
+ "coll": [ relevant collationd data files ]
+ }
+ .
+ .
+ .
+}
+```
+
+To generate just the ICU dictionary run:
+
+`make -C ./eng -f icu.mk icu_dictionary.json`
+
+The dictionary is packaged with the data files to be consumed later by the WASM runtime.
diff --git a/eng/azure-pipelines.yml b/eng/azure-pipelines.yml
index 57f69f45a44..ab8018d5d22 100644
--- a/eng/azure-pipelines.yml
+++ b/eng/azure-pipelines.yml
@@ -32,7 +32,7 @@ stages:
############ BROWSER BUILD ############
- job: Build_Browser
displayName: Browser
- timeoutInMinutes: 30
+ timeoutInMinutes: 40
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
vmImage: ubuntu-18.04
@@ -43,7 +43,7 @@ stages:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-webassembly-20220531132048-00a561c
steps:
- bash: |
- ./build.sh --ci --restore --build --configuration $(_BuildConfig) /p:TargetOS=Browser /p:TargetArchitecture=wasm $(_InternalBuildArgs)
+ ./build.sh --ci --restore --build --configuration $(_BuildConfig) /p:TargetOS=Browser /p:TargetArchitecture=wasm /p:IcuSharding=true $(_InternalBuildArgs)
displayName: Build
- task: PublishPipelineArtifact@1
displayName: Upload artifacts
diff --git a/eng/icu.browser.mk b/eng/icu.browser.mk
index ea733efc2df..bdb477b0da5 100644
--- a/eng/icu.browser.mk
+++ b/eng/icu.browser.mk
@@ -1,5 +1,6 @@
ENV_INIT_SCRIPT = source $(EMSDK_PATH)/emsdk_env.sh &&
ENV_CONFIGURE_WRAPPER = emconfigure
+ICU_SHARDING = true
ifeq ($(WASM_ENABLE_THREADS),true)
THREADS_FLAG="-pthread"
diff --git a/eng/icu.mk b/eng/icu.mk
index 0cd7ce0fa69..bb5b454c111 100644
--- a/eng/icu.mk
+++ b/eng/icu.mk
@@ -99,6 +99,38 @@ endif
$(eval $(call TargetBuildTemplate,icudt_CJK,icudt_CJK))
$(eval $(call TargetBuildTemplate,icudt_no_CJK,icudt_no_CJK))
$(eval $(call TargetBuildTemplate,icudt_EFIGS,icudt_EFIGS))
+$(eval $(call TargetBuildTemplate,icudt_normalization,icudt_normalization))
+$(eval $(call TargetBuildTemplate,icudt_base,icudt_base))
+$(eval $(call TargetBuildTemplate,icudt_currency,icudt_currency))
+$(eval $(call TargetBuildTemplate,icudt_full_full,icudt_full_full))
+$(eval $(call TargetBuildTemplate,icudt_full_coll,icudt_full_coll))
+$(eval $(call TargetBuildTemplate,icudt_full_zones,icudt_full_zones))
+$(eval $(call TargetBuildTemplate,icudt_full_locales,icudt_full_locales))
+$(eval $(call TargetBuildTemplate,icudt_efigs_locales,icudt_efigs_locales))
+$(eval $(call TargetBuildTemplate,icudt_efigs_coll,icudt_efigs_coll))
+$(eval $(call TargetBuildTemplate,icudt_efigs_full,icudt_efigs_full))
+$(eval $(call TargetBuildTemplate,icudt_efigs_zones,icudt_efigs_zones))
+$(eval $(call TargetBuildTemplate,icudt_cjk_locales,icudt_cjk_locales))
+$(eval $(call TargetBuildTemplate,icudt_cjk_zones,icudt_cjk_zones))
+$(eval $(call TargetBuildTemplate,icudt_cjk_full,icudt_cjk_full))
+$(eval $(call TargetBuildTemplate,icudt_cjk_coll,icudt_cjk_coll))
+$(eval $(call TargetBuildTemplate,icudt_no_cjk_full,icudt_no_cjk_full))
+$(eval $(call TargetBuildTemplate,icudt_no_cjk_coll,icudt_no_cjk_coll))
+$(eval $(call TargetBuildTemplate,icudt_no_cjk_zones,icudt_no_cjk_zones))
+$(eval $(call TargetBuildTemplate,icudt_no_cjk_locales,icudt_no_cjk_locales))
+
+
+ICU_SHARDS := icudt_base icudt_normalization icudt_currency icudt_cjk_zones icudt_no_cjk_zones icudt_efigs_zones icudt_efigs_locales icudt_cjk_locales icudt_no_cjk_locales icudt_efigs_coll icudt_cjk_coll icudt_no_cjk_coll icudt_efigs_full icudt_cjk_full icudt_no_cjk_full icudt_full_full
+DATA_SHARDS := $(addprefix data-, $(ICU_SHARDS))
+
+dictionary:
+ cd $(TOP)/icu/icu4c/source/ && PYTHONPATH=python python3 -m icutools.databuilder --mode=makedict --filter_dir=$(ICU_FILTER_PATH) --out_dir=$(TARGET_BINDIR) --shard_cfg=$(abspath $(CURDIR)/main-config.json) --exclude_feats=zones;
+
+shards: dictionary $(DATA_SHARDS)
# build source+data for the main "icudt" filter and only data for the other filters
-all: lib-icudt data-icudt data-icudt_no_CJK data-icudt_EFIGS data-icudt_CJK
+ifeq ($(ICU_SHARDING), true)
+all: lib-icudt data-icudt data-icudt_no_CJK data-icudt_EFIGS data-icudt_CJK dictionary shards
+else
+all: lib-icudt data-icudt data-icudt_no_CJK data-icudt_EFIGS data-icudt_CJK
+endif
diff --git a/eng/icu.proj b/eng/icu.proj
index da08c33e49d..98c9ca9f1d8 100644
--- a/eng/icu.proj
+++ b/eng/icu.proj
@@ -1,40 +1,40 @@
-
-
-
+
+
+
-
- <_ExtraParams Condition="'$(WasmEnableThreads)' == 'true'">WASM_ENABLE_THREADS=true
-
+
+ <_ExtraParams Condition="'$(WasmEnableThreads)' == 'true'">WASM_ENABLE_THREADS=true
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/eng/main-config.json b/eng/main-config.json
new file mode 100644
index 00000000000..f181549d16e
--- /dev/null
+++ b/eng/main-config.json
@@ -0,0 +1,474 @@
+{
+ "shards": {
+ "efigs": "(?:en|fr|it|de|es)",
+ "cjk": "(?:en|zh|ja|ko)",
+ "no_cjk": "^(?!.*(zh|ja|ko))",
+ "full": "full"
+ },
+ "packs": {
+ "base": {
+ "core": [ "base", "normalization" ],
+ "features": ["currency"]
+ },
+ "shards": {
+ "extends": "base",
+ "full": ["full"],
+ "core": ["locales", "coll"],
+ "features": ["zones"]
+ },
+ "full": "full"
+ },
+ "filter": {
+ "coll": {
+ "collationUCAData": "implicithan"
+ },
+ "strategy": {
+ "strategy": "additive"
+ },
+ "localeFilter": {
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "ja_JP",
+ "kn_IN",
+ "ko_KR",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN",
+ "zh_CN",
+ "zh_Hans_HK",
+ "zh_SG",
+ "zh_HK",
+ "zh_TW"
+ ]
+
+ },
+ "featureFilters": {
+ "base": {
+ "misc": {
+ "whitelist": [
+ "numberingSystems",
+ "icuver",
+ "keyTypeData",
+ "supplementalData"
+ ]
+ },
+ "brkitr_rules": {
+ "whitelist": ["char"]
+ },
+ "brkitr_tree": "include"
+ },
+ "normalization": {
+ "normalization": {
+ "blacklist": [
+ "nkfc_cf",
+ "nkfc"
+ ]
+ }
+ },
+ "currency": {
+ "curr_supplemental": "include",
+ "misc": {
+ "whitelist": [
+ "numberingSystems",
+ "currencyNumericCodes",
+ "supplementalData",
+ "keyTypeData"
+ ]
+ },
+ "curr_tree": {
+ "whitelist": ["root"]
+ }
+ },
+ "locales": {
+ "locales_tree": "include",
+ "misc": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ }
+ },
+ "zones": {
+ "zone_tree": "include",
+ "misc": {
+ "whitelist": [
+ "metaZones",
+ "zoneinfo64"
+ ]
+ }
+ },
+ "coll": {
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ }
+ },
+ "resourceFilters": {
+ "base": [
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/timeData",
+ "+/weekData",
+ "+/cldrVersion"
+ ]
+ },
+ {
+ "categories": [
+ "brkitr_tree"
+ ],
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "numberingSystems",
+ "icuver",
+ "keyTypeData"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ }
+ ],
+ "currency": [
+ {
+ "categories": ["misc"],
+ "files": {
+ "whitelist": ["supplementalData"]
+ },
+ "rules": [
+ "+/codeMappings",
+ "+/idValidity",
+ "+/cldrVersion"
+ ]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "numberingSystems",
+ "currencyNumericCodes",
+ "keyTypeData"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "curr_tree"
+ ],
+ "files": {
+ "whitelist": [ "root" ]
+ },
+ "rules": [
+ "+/"
+ ]
+ }
+ ],
+ "locales": [
+ {
+ "categories": ["locales_tree"],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": ["locales_tree"],
+ "files": {
+ "blacklist": ["root"]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "shards": ["cjk", "full"],
+ "categories": ["locales_tree"],
+ "files": {
+ "whitelist": ["ja"]
+ },
+ "rules": [
+ "+/calendar/japanese"
+ ]
+ },
+ {
+ "shards": ["cjk"],
+ "categories": ["locales_tree"],
+ "files": {
+ "whitelist": ["ko"]
+ },
+ "rules": [
+ "+/calendar/dangi"
+ ]
+ },
+ {
+ "shards": ["cjk"],
+ "categories": ["locales_tree"],
+ "files": {
+ "whitelist": ["zh", "zh_Hant"]
+ },
+ "rules": [
+ "+/calendar/roc"
+ ]
+ },
+ {
+ "categories": ["misc"],
+ "files": {
+ "whitelist": ["supplementalData"]
+ },
+ "rules": [
+ "+/cldrVersion",
+ "+/codeMappings",
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/timeData",
+ "+/measurementData",
+ "+/weekData"
+ ]
+ }
+ ],
+ "zones": [
+ {
+ "categories": ["zone_tree"],
+ "rules": [
+ "+/zoneStrings/*"
+ ]
+ }
+ ],
+ "coll": [
+ {
+ "shards": ["no_cjk", "efigs"],
+ "categories": ["coll_tree"],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "-/UCARules"
+ ]
+ },
+ {
+ "shards": ["cjk", "full"],
+ "categories": ["coll_tree"],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "+/collations/private-kana",
+ "-/UCARules"
+ ]
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_base.json b/icu-filters/icudt_base.json
new file mode 100644
index 00000000000..e1781490629
--- /dev/null
+++ b/icu-filters/icudt_base.json
@@ -0,0 +1,252 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "ja_JP",
+ "kn_IN",
+ "ko_KR",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN",
+ "zh_CN",
+ "zh_Hans_HK",
+ "zh_SG",
+ "zh_HK",
+ "zh_TW"
+ ]
+ },
+ "featureFilters": {
+ "misc": {
+ "whitelist": [
+ "numberingSystems",
+ "icuver",
+ "keyTypeData",
+ "supplementalData"
+ ]
+ },
+ "brkitr_rules": {
+ "whitelist": [
+ "char"
+ ]
+ },
+ "brkitr_tree": "include"
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/timeData",
+ "+/weekData",
+ "+/cldrVersion"
+ ]
+ },
+ {
+ "categories": [
+ "brkitr_tree"
+ ],
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "numberingSystems",
+ "icuver",
+ "keyTypeData"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_cjk_coll.json b/icu-filters/icudt_cjk_coll.json
new file mode 100644
index 00000000000..ddb632dfc59
--- /dev/null
+++ b/icu-filters/icudt_cjk_coll.json
@@ -0,0 +1,36 @@
+{
+ "localeFilter": {
+ "filterType": "language",
+ "includeScripts": true,
+ "includeChildren": true,
+ "whitelist": [
+ "ko",
+ "en",
+ "ja",
+ "zh"
+ ]
+ },
+ "collationUCAData": "implicithan",
+ "featureFilters": {
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "shards": [
+ "cjk",
+ "full"
+ ],
+ "categories": [
+ "coll_tree"
+ ],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "+/collations/private-kana",
+ "-/UCARules"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_cjk_full.json b/icu-filters/icudt_cjk_full.json
new file mode 100644
index 00000000000..d319b8aa1df
--- /dev/null
+++ b/icu-filters/icudt_cjk_full.json
@@ -0,0 +1,211 @@
+{
+ "collationUCAData": "implicithan",
+ "featureFilters": {
+ "misc": {
+ "whitelist": [
+ "supplementalData",
+ "icuver",
+ "numberingSystems",
+ "currencyNumericCodes",
+ "keyTypeData"
+ ]
+ },
+ "brkitr_rules": {
+ "whitelist": [
+ "char"
+ ]
+ },
+ "brkitr_tree": "include",
+ "normalization": {
+ "blacklist": [
+ "nkfc_cf",
+ "nkfc"
+ ]
+ },
+ "curr_supplemental": "include",
+ "curr_tree": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "locales_tree": "include",
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ },
+ "resourceFilters": [
+ {
+ "categories": [
+ "brkitr_tree"
+ ],
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "curr_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "blacklist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "shards": [
+ "cjk",
+ "full"
+ ],
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "ja"
+ ]
+ },
+ "rules": [
+ "+/calendar/japanese"
+ ]
+ },
+ {
+ "shards": [
+ "cjk"
+ ],
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "ko"
+ ]
+ },
+ "rules": [
+ "+/calendar/dangi"
+ ]
+ },
+ {
+ "shards": [
+ "cjk"
+ ],
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "zh",
+ "zh_Hant"
+ ]
+ },
+ "rules": [
+ "+/calendar/roc"
+ ]
+ },
+ {
+ "shards": [
+ "cjk",
+ "full"
+ ],
+ "categories": [
+ "coll_tree"
+ ],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "+/collations/private-kana",
+ "-/UCARules"
+ ]
+ },
+ {
+ "categories": "misc",
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/codeMappings",
+ "+/timeData",
+ "+/measurementData",
+ "+/cldrVersion",
+ "+/idValidity",
+ "+/weekData"
+ ]
+ },
+ {
+ "categories": "misc",
+ "files": {
+ "whitelist": [
+ "icuver",
+ "numberingSystems",
+ "keyTypeData",
+ "currencyNumericCodes"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ }
+ ],
+ "strategy": "additive",
+ "localeFilter": {
+ "filterType": "language",
+ "includeScripts": true,
+ "includeChildren": true,
+ "whitelist": [
+ "ko",
+ "en",
+ "ja",
+ "zh"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_cjk_locales.json b/icu-filters/icudt_cjk_locales.json
new file mode 100644
index 00000000000..bf94a96f0fb
--- /dev/null
+++ b/icu-filters/icudt_cjk_locales.json
@@ -0,0 +1,137 @@
+{
+ "localeFilter": {
+ "filterType": "language",
+ "includeScripts": true,
+ "includeChildren": true,
+ "whitelist": [
+ "ko",
+ "en",
+ "ja",
+ "zh"
+ ]
+ },
+ "featureFilters": {
+ "locales_tree": "include",
+ "misc": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "blacklist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "shards": [
+ "cjk",
+ "full"
+ ],
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "ja"
+ ]
+ },
+ "rules": [
+ "+/calendar/japanese"
+ ]
+ },
+ {
+ "shards": [
+ "cjk"
+ ],
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "ko"
+ ]
+ },
+ "rules": [
+ "+/calendar/dangi"
+ ]
+ },
+ {
+ "shards": [
+ "cjk"
+ ],
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "zh",
+ "zh_Hant"
+ ]
+ },
+ "rules": [
+ "+/calendar/roc"
+ ]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/cldrVersion",
+ "+/codeMappings",
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/timeData",
+ "+/measurementData",
+ "+/weekData"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_cjk_zones.json b/icu-filters/icudt_cjk_zones.json
new file mode 100644
index 00000000000..ee005631243
--- /dev/null
+++ b/icu-filters/icudt_cjk_zones.json
@@ -0,0 +1,33 @@
+{
+ "localeFilter": {
+ "filterType": "language",
+ "includeScripts": true,
+ "includeChildren": true,
+ "whitelist": [
+ "ko",
+ "en",
+ "ja",
+ "zh"
+ ]
+ },
+ "featureFilters": {
+ "zone_tree": "include",
+ "misc": {
+ "whitelist": [
+ "metaZones",
+ "zoneinfo64"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "zone_tree"
+ ],
+ "rules": [
+ "+/zoneStrings/*"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_currency.json b/icu-filters/icudt_currency.json
new file mode 100644
index 00000000000..f70386f24b0
--- /dev/null
+++ b/icu-filters/icudt_currency.json
@@ -0,0 +1,255 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "ja_JP",
+ "kn_IN",
+ "ko_KR",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN",
+ "zh_CN",
+ "zh_Hans_HK",
+ "zh_SG",
+ "zh_HK",
+ "zh_TW"
+ ]
+ },
+ "featureFilters": {
+ "curr_supplemental": "include",
+ "misc": {
+ "whitelist": [
+ "numberingSystems",
+ "currencyNumericCodes",
+ "supplementalData",
+ "keyTypeData"
+ ]
+ },
+ "curr_tree": {
+ "whitelist": [
+ "root"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/codeMappings",
+ "+/idValidity",
+ "+/cldrVersion"
+ ]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "numberingSystems",
+ "currencyNumericCodes",
+ "keyTypeData"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "curr_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_efigs_coll.json b/icu-filters/icudt_efigs_coll.json
new file mode 100644
index 00000000000..05aa7683b38
--- /dev/null
+++ b/icu-filters/icudt_efigs_coll.json
@@ -0,0 +1,150 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "it_CH",
+ "it_IT"
+ ]
+ },
+ "collationUCAData": "implicithan",
+ "featureFilters": {
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "shards": [
+ "no_cjk",
+ "efigs"
+ ],
+ "categories": [
+ "coll_tree"
+ ],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "-/UCARules"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_efigs_full.json b/icu-filters/icudt_efigs_full.json
new file mode 100644
index 00000000000..0d285d5c63f
--- /dev/null
+++ b/icu-filters/icudt_efigs_full.json
@@ -0,0 +1,275 @@
+{
+ "collationUCAData": "implicithan",
+ "featureFilters": {
+ "misc": {
+ "whitelist": [
+ "supplementalData",
+ "icuver",
+ "numberingSystems",
+ "currencyNumericCodes",
+ "keyTypeData"
+ ]
+ },
+ "brkitr_rules": {
+ "whitelist": [
+ "char"
+ ]
+ },
+ "brkitr_tree": "include",
+ "normalization": {
+ "blacklist": [
+ "nkfc_cf",
+ "nkfc"
+ ]
+ },
+ "curr_supplemental": "include",
+ "curr_tree": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "locales_tree": "include",
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ },
+ "resourceFilters": [
+ {
+ "categories": [
+ "brkitr_tree"
+ ],
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "curr_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "blacklist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "shards": [
+ "no_cjk",
+ "efigs"
+ ],
+ "categories": [
+ "coll_tree"
+ ],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "-/UCARules"
+ ]
+ },
+ {
+ "categories": "misc",
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/codeMappings",
+ "+/timeData",
+ "+/measurementData",
+ "+/cldrVersion",
+ "+/idValidity",
+ "+/weekData"
+ ]
+ },
+ {
+ "categories": "misc",
+ "files": {
+ "whitelist": [
+ "icuver",
+ "numberingSystems",
+ "keyTypeData",
+ "currencyNumericCodes"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ }
+ ],
+ "strategy": "additive",
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "it_CH",
+ "it_IT"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_efigs_locales.json b/icu-filters/icudt_efigs_locales.json
new file mode 100644
index 00000000000..7927448f8d7
--- /dev/null
+++ b/icu-filters/icudt_efigs_locales.json
@@ -0,0 +1,202 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "it_CH",
+ "it_IT"
+ ]
+ },
+ "featureFilters": {
+ "locales_tree": "include",
+ "misc": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "blacklist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/cldrVersion",
+ "+/codeMappings",
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/timeData",
+ "+/measurementData",
+ "+/weekData"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_efigs_zones.json b/icu-filters/icudt_efigs_zones.json
new file mode 100644
index 00000000000..f6af9ec69a8
--- /dev/null
+++ b/icu-filters/icudt_efigs_zones.json
@@ -0,0 +1,148 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "it_CH",
+ "it_IT"
+ ]
+ },
+ "featureFilters": {
+ "zone_tree": "include",
+ "misc": {
+ "whitelist": [
+ "metaZones",
+ "zoneinfo64"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "zone_tree"
+ ],
+ "rules": [
+ "+/zoneStrings/*"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_full_coll.json b/icu-filters/icudt_full_coll.json
new file mode 100644
index 00000000000..1a67e9c6e19
--- /dev/null
+++ b/icu-filters/icudt_full_coll.json
@@ -0,0 +1,216 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "ja_JP",
+ "kn_IN",
+ "ko_KR",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN",
+ "zh_CN",
+ "zh_Hans_HK",
+ "zh_SG",
+ "zh_HK",
+ "zh_TW"
+ ]
+ },
+ "collationUCAData": "implicithan",
+ "featureFilters": {
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "shards": [
+ "cjk",
+ "full"
+ ],
+ "categories": [
+ "coll_tree"
+ ],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "+/collations/private-kana",
+ "-/UCARules"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_full_full.json b/icu-filters/icudt_full_full.json
new file mode 100644
index 00000000000..8be4c58c415
--- /dev/null
+++ b/icu-filters/icudt_full_full.json
@@ -0,0 +1,358 @@
+{
+ "collationUCAData": "implicithan",
+ "featureFilters": {
+ "misc": {
+ "whitelist": [
+ "supplementalData",
+ "icuver",
+ "numberingSystems",
+ "currencyNumericCodes",
+ "keyTypeData"
+ ]
+ },
+ "brkitr_rules": {
+ "whitelist": [
+ "char"
+ ]
+ },
+ "brkitr_tree": "include",
+ "normalization": {
+ "blacklist": [
+ "nkfc_cf",
+ "nkfc"
+ ]
+ },
+ "curr_supplemental": "include",
+ "curr_tree": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "locales_tree": "include",
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ },
+ "resourceFilters": [
+ {
+ "categories": [
+ "brkitr_tree"
+ ],
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "curr_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "blacklist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "shards": [
+ "cjk",
+ "full"
+ ],
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "ja"
+ ]
+ },
+ "rules": [
+ "+/calendar/japanese"
+ ]
+ },
+ {
+ "shards": [
+ "cjk",
+ "full"
+ ],
+ "categories": [
+ "coll_tree"
+ ],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "+/collations/private-kana",
+ "-/UCARules"
+ ]
+ },
+ {
+ "categories": "misc",
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/codeMappings",
+ "+/timeData",
+ "+/measurementData",
+ "+/cldrVersion",
+ "+/idValidity",
+ "+/weekData"
+ ]
+ },
+ {
+ "categories": "misc",
+ "files": {
+ "whitelist": [
+ "icuver",
+ "numberingSystems",
+ "keyTypeData",
+ "currencyNumericCodes"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ }
+ ],
+ "strategy": "additive",
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "ja_JP",
+ "kn_IN",
+ "ko_KR",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN",
+ "zh_CN",
+ "zh_Hans_HK",
+ "zh_SG",
+ "zh_HK",
+ "zh_TW"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_full_locales.json b/icu-filters/icudt_full_locales.json
new file mode 100644
index 00000000000..2853fbf9b83
--- /dev/null
+++ b/icu-filters/icudt_full_locales.json
@@ -0,0 +1,284 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "ja_JP",
+ "kn_IN",
+ "ko_KR",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN",
+ "zh_CN",
+ "zh_Hans_HK",
+ "zh_SG",
+ "zh_HK",
+ "zh_TW"
+ ]
+ },
+ "featureFilters": {
+ "locales_tree": "include",
+ "misc": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "blacklist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "shards": [
+ "cjk",
+ "full"
+ ],
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "ja"
+ ]
+ },
+ "rules": [
+ "+/calendar/japanese"
+ ]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/cldrVersion",
+ "+/codeMappings",
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/timeData",
+ "+/measurementData",
+ "+/weekData"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_full_zones.json b/icu-filters/icudt_full_zones.json
new file mode 100644
index 00000000000..1db0bb6e490
--- /dev/null
+++ b/icu-filters/icudt_full_zones.json
@@ -0,0 +1,213 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "ja_JP",
+ "kn_IN",
+ "ko_KR",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN",
+ "zh_CN",
+ "zh_Hans_HK",
+ "zh_SG",
+ "zh_HK",
+ "zh_TW"
+ ]
+ },
+ "featureFilters": {
+ "zone_tree": "include",
+ "misc": {
+ "whitelist": [
+ "metaZones",
+ "zoneinfo64"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "zone_tree"
+ ],
+ "rules": [
+ "+/zoneStrings/*"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_no_cjk_coll.json b/icu-filters/icudt_no_cjk_coll.json
new file mode 100644
index 00000000000..54f0e644e6f
--- /dev/null
+++ b/icu-filters/icudt_no_cjk_coll.json
@@ -0,0 +1,208 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "kn_IN",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN"
+ ]
+ },
+ "collationUCAData": "implicithan",
+ "featureFilters": {
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "shards": [
+ "no_cjk",
+ "efigs"
+ ],
+ "categories": [
+ "coll_tree"
+ ],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "-/UCARules"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_no_cjk_full.json b/icu-filters/icudt_no_cjk_full.json
new file mode 100644
index 00000000000..f105954ebcf
--- /dev/null
+++ b/icu-filters/icudt_no_cjk_full.json
@@ -0,0 +1,333 @@
+{
+ "collationUCAData": "implicithan",
+ "featureFilters": {
+ "misc": {
+ "whitelist": [
+ "supplementalData",
+ "icuver",
+ "numberingSystems",
+ "currencyNumericCodes",
+ "keyTypeData"
+ ]
+ },
+ "brkitr_rules": {
+ "whitelist": [
+ "char"
+ ]
+ },
+ "brkitr_tree": "include",
+ "normalization": {
+ "blacklist": [
+ "nkfc_cf",
+ "nkfc"
+ ]
+ },
+ "curr_supplemental": "include",
+ "curr_tree": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "locales_tree": "include",
+ "coll_ucadata": "include",
+ "coll_tree": "include"
+ },
+ "resourceFilters": [
+ {
+ "categories": [
+ "brkitr_tree"
+ ],
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "curr_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "blacklist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "shards": [
+ "no_cjk",
+ "efigs"
+ ],
+ "categories": [
+ "coll_tree"
+ ],
+ "rules": [
+ "+/collations/default",
+ "+/collations/standard",
+ "-/UCARules"
+ ]
+ },
+ {
+ "categories": "misc",
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/codeMappings",
+ "+/timeData",
+ "+/measurementData",
+ "+/cldrVersion",
+ "+/idValidity",
+ "+/weekData"
+ ]
+ },
+ {
+ "categories": "misc",
+ "files": {
+ "whitelist": [
+ "icuver",
+ "numberingSystems",
+ "keyTypeData",
+ "currencyNumericCodes"
+ ]
+ },
+ "rules": [
+ "+/"
+ ]
+ }
+ ],
+ "strategy": "additive",
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "kn_IN",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_no_cjk_locales.json b/icu-filters/icudt_no_cjk_locales.json
new file mode 100644
index 00000000000..99e34d6dd50
--- /dev/null
+++ b/icu-filters/icudt_no_cjk_locales.json
@@ -0,0 +1,260 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "kn_IN",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN"
+ ]
+ },
+ "featureFilters": {
+ "locales_tree": "include",
+ "misc": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "rules": [
+ "+/NumberElements",
+ "-/NumberElements/latn/miscPatterns",
+ "-/NumberElements/latn/patternsLong",
+ "-/NumberElements/latn/patternsShort",
+ "-/NumberElements/*/patternsLong",
+ "-/NumberElements/*/patternsShort",
+ "-/NumberElements/minimalPairs",
+ "+/Version",
+ "+/layout"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "blacklist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar/default",
+ "+/calendar/gregorian",
+ "+/calendar/generic"
+ ]
+ },
+ {
+ "categories": [
+ "locales_tree"
+ ],
+ "files": {
+ "whitelist": [
+ "root"
+ ]
+ },
+ "rules": [
+ "+/calendar"
+ ]
+ },
+ {
+ "categories": [
+ "misc"
+ ],
+ "files": {
+ "whitelist": [
+ "supplementalData"
+ ]
+ },
+ "rules": [
+ "+/cldrVersion",
+ "+/codeMappings",
+ "+/calendarData",
+ "+/calendarPreferenceData",
+ "+/timeData",
+ "+/measurementData",
+ "+/weekData"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_no_cjk_zones.json b/icu-filters/icudt_no_cjk_zones.json
new file mode 100644
index 00000000000..fa2d6aa6afe
--- /dev/null
+++ b/icu-filters/icudt_no_cjk_zones.json
@@ -0,0 +1,206 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "kn_IN",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN"
+ ]
+ },
+ "featureFilters": {
+ "zone_tree": "include",
+ "misc": {
+ "whitelist": [
+ "metaZones",
+ "zoneinfo64"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": [
+ {
+ "categories": [
+ "zone_tree"
+ ],
+ "rules": [
+ "+/zoneStrings/*"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/icu-filters/icudt_normalization.json b/icu-filters/icudt_normalization.json
new file mode 100644
index 00000000000..f475a430962
--- /dev/null
+++ b/icu-filters/icudt_normalization.json
@@ -0,0 +1,203 @@
+{
+ "localeFilter": {
+ "filterType": "locale",
+ "includeScripts": false,
+ "includeChildren": false,
+ "whitelist": [
+ "ar_SA",
+ "am_ET",
+ "bg_BG",
+ "bn_BD",
+ "bn_IN",
+ "ca_AD",
+ "ca_ES",
+ "cs_CZ",
+ "da_DK",
+ "de_AT",
+ "de_BE",
+ "de_CH",
+ "de_DE",
+ "de_IT",
+ "de_LI",
+ "de_LU",
+ "el_CY",
+ "el_GR",
+ "en_AE",
+ "en_AG",
+ "en_AI",
+ "en_AS",
+ "en_AT",
+ "en_AU",
+ "en_BB",
+ "en_BE",
+ "en_BI",
+ "en_BM",
+ "en_BS",
+ "en_BW",
+ "en_BZ",
+ "en_CA",
+ "en_CC",
+ "en_CH",
+ "en_CK",
+ "en_CM",
+ "en_CX",
+ "en_CY",
+ "en_DE",
+ "en_DK",
+ "en_DM",
+ "en_ER",
+ "en_FI",
+ "en_FJ",
+ "en_FK",
+ "en_FM",
+ "en_GB",
+ "en_GD",
+ "en_GG",
+ "en_GH",
+ "en_GI",
+ "en_GM",
+ "en_GU",
+ "en_GY",
+ "en_HK",
+ "en_IE",
+ "en_IL",
+ "en_IM",
+ "en_IN",
+ "en_IO",
+ "en_JE",
+ "en_JM",
+ "en_KE",
+ "en_KI",
+ "en_KN",
+ "en_KY",
+ "en_LC",
+ "en_LR",
+ "en_LS",
+ "en_MG",
+ "en_MH",
+ "en_MO",
+ "en_MP",
+ "en_MS",
+ "en_MT",
+ "en_MU",
+ "en_MW",
+ "en_MY",
+ "en_NA",
+ "en_NF",
+ "en_NG",
+ "en_NL",
+ "en_NR",
+ "en_NU",
+ "en_NZ",
+ "en_PG",
+ "en_PH",
+ "en_PK",
+ "en_PN",
+ "en_PR",
+ "en_PW",
+ "en_RW",
+ "en_SB",
+ "en_SC",
+ "en_SD",
+ "en_SE",
+ "en_SG",
+ "en_SH",
+ "en_SI",
+ "en_SL",
+ "en_SS",
+ "en_SX",
+ "en_SZ",
+ "en_TC",
+ "en_TK",
+ "en_TO",
+ "en_TT",
+ "en_TV",
+ "en_TZ",
+ "en_UG",
+ "en_UM",
+ "en_US",
+ "en_VC",
+ "en_VG",
+ "en_VI",
+ "en_VU",
+ "en_WS",
+ "en_ZA",
+ "en_ZM",
+ "en_ZW",
+ "en_US",
+ "es_419",
+ "es_ES",
+ "es_MX",
+ "et_EE",
+ "fa_IR",
+ "fi_FI",
+ "fil_PH",
+ "fr_BE",
+ "fr_CA",
+ "fr_CH",
+ "fr_FR",
+ "gu_IN",
+ "he_IL",
+ "hi_IN",
+ "hr_BA",
+ "hr_HR",
+ "hu_HU",
+ "id_ID",
+ "it_CH",
+ "it_IT",
+ "ja_JP",
+ "kn_IN",
+ "ko_KR",
+ "lt_LT",
+ "lv_LV",
+ "ml_IN",
+ "mr_IN",
+ "ms_BN",
+ "ms_MY",
+ "ms_SG",
+ "nl_AW",
+ "nl_BE",
+ "nl_NL",
+ "pl_PL",
+ "pt_BR",
+ "pt_PT",
+ "ro_RO",
+ "ru_RU",
+ "sk_SK",
+ "sl_SI",
+ "sr_Cyrl_RS",
+ "sr_Latn_RS",
+ "sv_AX",
+ "sv_SE",
+ "sw_CD",
+ "sw_KE",
+ "sw_TZ",
+ "sw_UG",
+ "ta_IN",
+ "ta_LK",
+ "ta_MY",
+ "ta_SG",
+ "te_IN",
+ "th_TH",
+ "tr_CY",
+ "tr_TR",
+ "uk_UA",
+ "vi_VN",
+ "zh_CN",
+ "zh_Hans_HK",
+ "zh_SG",
+ "zh_HK",
+ "zh_TW"
+ ]
+ },
+ "featureFilters": {
+ "normalization": {
+ "blacklist": [
+ "nkfc_cf",
+ "nkfc"
+ ]
+ }
+ },
+ "strategy": "additive",
+ "resourceFilters": []
+}
\ No newline at end of file
diff --git a/icu/icu4c/source/python/icutools/databuilder/__main__.py b/icu/icu4c/source/python/icutools/databuilder/__main__.py
index a6a387d9ad2..950d2607805 100644
--- a/icu/icu4c/source/python/icutools/databuilder/__main__.py
+++ b/icu/icu4c/source/python/icutools/databuilder/__main__.py
@@ -4,6 +4,7 @@
# Python 2/3 Compatibility (ICU-20299)
# TODO(ICU-20301): Remove this.
from __future__ import print_function
+from functools import reduce
import argparse
import glob as pyglob
@@ -11,6 +12,8 @@
import json
import os
import sys
+import re
+import collections
from . import *
from .comment_stripper import CommentStripper
@@ -63,7 +66,7 @@
arg_group_required.add_argument(
"--mode",
help = "What to do with the generated rules.",
- choices = ["gnumake", "unix-exec", "windows-exec", "bazel-exec"],
+ choices = ["gnumake", "unix-exec", "windows-exec", "bazel-exec", "makedict"],
required = True
)
@@ -78,6 +81,22 @@
help = "Path to an ICU data filter JSON file.",
default = None
)
+flag_parser.add_argument(
+ "--filter_dir",
+ metavar = "PATH",
+ help = "Path to an ICU filter directory.",
+ default = None
+)
+flag_parser.add_argument(
+ "--shard_cfg",
+ help = "Path to shard configuration file.",
+ default = None
+)
+flag_parser.add_argument(
+ "--exclude_feats",
+ help = "Excluded features from full ICU data file.",
+ default = None
+)
flag_parser.add_argument(
"--include_uni_core_data",
help = "Include the full Unicode core data in the dat file.",
@@ -238,6 +257,260 @@ def add_copy_input_requests(requests, config, common_vars):
return result
+class Dictionary(object):
+ def __init__ (self, filter_dir, config_path, output_dir, exclude_feats):
+ self.filter_dir = filter_dir
+ self.output_dir = output_dir
+ self.filter_file_names = []
+ self.dictionary = {"packs": {}}
+ self.locale_whitelist = {}
+ self.exclude_feats = exclude_feats.split(",")
+ with open(config_path, "r") as file:
+ self.config = json.load(file)
+
+ # Dictionary of features of the format
+ # :
+ self.features = {
+ "base": False,
+ "normalization": False,
+ "currency": False,
+ "locales": True,
+ "zones": True,
+ "coll": True,
+ "full": True
+ }
+ self.icu_dict = {}
+
+ def get_locales_from_shards(self, shard, pattern, locales):
+ whitelist = [x for x in locales if re.match(pattern, x.split("_")[0])]
+ if shard == "cjk":
+ whitelist = list(set([x.split("_")[0] for x in whitelist]))
+ return whitelist
+
+ # Create localeFilter component of filter
+ def get_locale_filters(self, locale_filter, shard_name=""):
+ filter = {}
+ filter["filterType"] = "locale" if shard_name != "cjk" else "language"
+ filter["includeScripts"] = (shard_name == "cjk")
+ filter["includeChildren"] = (shard_name == "cjk")
+ for param in locale_filter:
+ if param == "whitelist":
+ filter["whitelist"] = self.locale_whitelist[shard_name] if shard_name != "" else self.locale_whitelist["full"]
+ else:
+ filter[param] = locale_filter[param]
+ return filter
+
+ def get_locale_whitelist(self, shard_data, locale_filters):
+ for shard in shard_data:
+ if "?" in shard_data[shard]:
+ self.locale_whitelist[shard] = self.get_locales_from_shards(shard, shard_data[shard], locale_filters["whitelist"])
+ self.locale_whitelist["full"] = locale_filters["whitelist"]
+
+ def get_full_feature_filters(self, filter_data, filter):
+ """
+ Merges parameters for all features. Used for full-featured shards. Features are
+ formatted as follows in main-config.json
+ "featureFilters":{
+ : {
+ : {
+ "whitelist"/"blacklist": [
+
+ ]
+ }
+ }, ...
+ }
+ """
+ filter = {}
+ for key, val in filter_data.items():
+ if key not in self.exclude_feats:
+ for param in val:
+ if param not in filter:
+ filter[param] = val[param]
+ else:
+ for lists in val[param]:
+ if lists in filter[param]:
+ filter[param][lists] += val[param][lists]
+ filter[param][lists] = list(set(filter[param][lists]))
+ else:
+ filter[param][lists] = val[lists]
+ return filter
+
+ def get_resource_filters(self, filter_data, shard="", feature=""):
+ """
+ Merges parameters for all resources. Used for full-featured shards. Resources are
+ formatted as follows in main-config.json
+ "resourceFilters": [
+ : [
+ {
+ "categories": [ ]
+ },
+ "rules": [
+
+ ]
+ }
+ ], ...
+ ]
+ """
+ filter = []
+ if feature == "full":
+ supplemental = []
+
+ # for other misc files that needed to be added with "+/"
+ misc_whitelist = []
+ for category in filter_data:
+ if category not in self.exclude_feats:
+ for rules in filter_data[category]:
+ # This is the only category with overlapping rules
+ if rules["categories"] == ["misc"]:
+ if rules["files"]["whitelist"] == ["supplementalData"]:
+ supplemental += rules["rules"]
+ if rules["rules"] == ["+/"]:
+ misc_whitelist += rules["files"]["whitelist"]
+ else:
+ if ("shards" in rules and shard in rules["shards"]) or ("shards" not in rules):
+ filter.append(rules)
+ if len(supplemental) > 0:
+ filter.append( {
+ "categories": "misc",
+ "files": {
+ "whitelist": ["supplementalData"]
+ },
+ "rules": list(set(supplemental))
+ })
+ if len(misc_whitelist) > 0 :
+ filter.append( {
+ "categories": "misc",
+ "files": {
+ "whitelist": list(set(misc_whitelist))
+ },
+ "rules": ["+/"]
+ })
+ else:
+ if feature in filter_data:
+ filter = [f for f in filter_data[feature] if ("shards" not in f) or (shard in f["shards"])]
+ return filter
+
+ def update_dict(self, dict1, dict_list):
+ for d in dict_list:
+ dict1.update(d)
+
+ def create_filters(self):
+ """
+ Generates filters for ICU shards based on a main-config.json file
+ """
+ filter_data = self.config["filter"]
+ shard_data = self.config["shards"]
+
+ # populate locale whitelists for each shard type
+ self.get_locale_whitelist(shard_data, filter_data["localeFilter"])
+
+ # First update dictionary object with shard information
+ self.dictionary["shards"] = shard_data
+ for feat in self.features:
+ filter = {}
+ shard_dependent = self.features[feat]
+
+ # for shards with all features
+ if feat == "full":
+ # Include any additional filter parameters that are at the root level of main-config.json
+ root_features = [filter_data[k] for k in filter_data if k not in ["featureFilters", "resourceFilters", "localeFilter"] + self.exclude_feats]
+ self.update_dict(filter, root_features)
+ filter["featureFilters"] = self.get_full_feature_filters(filter_data["featureFilters"], {})
+ filter["resourceFilters"] = self.get_resource_filters(filter_data["resourceFilters"], feature="full")
+ else:
+ if feat in filter_data:
+ filter.update(filter_data[feat])
+ if feat in filter_data["featureFilters"]:
+ filter["featureFilters"] = filter_data["featureFilters"][feat]
+ if shard_dependent:
+ for shard in shard_data:
+ filter["localeFilter"] = self.get_locale_filters(filter_data["localeFilter"], shard_name=shard)
+ filter["resourceFilters"] = self.get_resource_filters(filter_data["resourceFilters"], shard=shard, feature=feat)
+
+ filter_file_name = "icudt_{shard}_{feat}.json".format(shard=shard, feat=feat)
+
+ # Used for generating props file later
+ self.filter_file_names.append(filter_file_name)
+ with open (os.path.join(self.filter_dir, filter_file_name), "w") as f:
+ json.dump(filter, f, indent=2)
+ else:
+ filter["localeFilter"] = self.get_locale_filters(filter_data["localeFilter"])
+ filter["resourceFilters"] = self.get_resource_filters(filter_data["resourceFilters"], feature=feat)
+ filter_file_name = "icudt_{feat}.json".format(feat=feat)
+ self.filter_file_names.append(filter_file_name)
+ with open (os.path.join(self.filter_dir, filter_file_name), "w") as f:
+ json.dump(filter, f, indent=2)
+
+ def generate_props(self):
+ with open (os.path.join(self.output_dir, "ICU.DataFiles.props"), "w") as f:
+ f.write("\n")
+ f.write("\t\n")
+ f.write("\t\t\n")
+ for filename in self.filter_file_names:
+ filename = filename.replace("json", "dat")
+ f.write("\t\t\n".format(filename=filename))
+ f.write("\t\n")
+ f.write("")
+
+ def get_file_names(self, pack_features, shard):
+ return ["icudt_{feat}.dat".format(feat=feat) if not self.features[feat]
+ else "icudt_{shard}_{feat}.dat".format(shard=shard, feat=feat)
+ for feat in pack_features]
+
+ def create_packs(self, pack, shard=""):
+ """
+ Create packs portion of ICU dictionary, which has the format:
+ "packs": {
+ "base": {
+ "core": [],
+ "currency": []
+ },
+ "efigs": {
+ "extends": "base",
+ "full: [
+
+ ],
+ "core": [],
+ "zones": []
+ },
+ ...,
+ "full" : []
+ }
+ """
+ file_pack = {}
+ for item in pack:
+ if item == "base" or item == "extends":
+ file_pack[item] = pack[item]
+ elif item == "core" or item == "full":
+ file_pack[item] = self.get_file_names(pack[item], shard)
+ elif item == "features":
+ for feat in pack[item]:
+ file_pack[feat] = self.get_file_names([feat], shard)
+ return file_pack
+
+ def create_dictionary(self):
+ """
+ Creates dictionary which will be consumed by library_mono.js in the runtime.
+ The structure of the packs portion is described in main-config.json
+ """
+ packs = self.config["packs"]
+ for pack in packs:
+ if pack == "base":
+ self.dictionary["packs"][pack] = self.create_packs(packs[pack])
+ if pack == "shards":
+ for shard in self.config["shards"]:
+ if shard == "full":
+ self.dictionary["packs"]["full"] = "icudt_full_full.dat"
+ else:
+ self.dictionary["packs"][shard] = self.create_packs(packs[pack], shard=shard)
+ self.filter_file_names.append("icu_dictionary.js")
+ with open (os.path.join(self.output_dir, "icu_dictionary.js"), "w") as f:
+ text = "dictionary = " + json.dumps(self.dictionary, indent=2)
+ f.write(text)
+
+
class IO(object):
"""I/O operations required when computing the build actions"""
@@ -263,6 +536,14 @@ def _read_json(self, filename):
def main(argv):
args = flag_parser.parse_args(argv)
+
+ if args.mode == "makedict":
+ dictionary = Dictionary(args.filter_dir, args.shard_cfg, args.out_dir, args.exclude_feats)
+ dictionary.create_filters()
+ dictionary.generate_props()
+ dictionary.create_dictionary()
+ return 0
+
config = Config(args)
if args.mode == "gnumake":
diff --git a/locale_dictionary.json b/locale_dictionary.json
new file mode 100644
index 00000000000..65ae5764c4b
--- /dev/null
+++ b/locale_dictionary.json
@@ -0,0 +1,649 @@
+{
+ "en": [
+ "icudt_en_base.json",
+ "icudt_locales.json",
+ "icudt_efigsonly.json",
+ "icudt_efigs_zones.json",
+ "icudt_en_zones.json",
+ "icudt_cjk_base.json",
+ "icudt_with_zones.json",
+ "icudt_EFIGS.json",
+ "icudt_currency.json",
+ "icudt_no_cjkonly.json",
+ "icudt.json",
+ "icudt_base.json",
+ "icudt_efigs_base.json",
+ "icudt_en.json",
+ "icudt_CJK.json",
+ "icudt_coll.json",
+ "icudt_efigs_coll.json",
+ "icudt_no_CJK.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_normalization.json"
+ ],
+ "ja": [
+ "icudt_coll.json",
+ "icudt_cjk_base.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_cjkonly.json",
+ "icudt_locales.json",
+ "icudt_cjk_zones.json",
+ "icudt_zones.json",
+ "icudt_cjk_coll.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_normalization.json",
+ "icudt_CJK.json"
+ ],
+ "pl": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "kn": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "sl": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "hi": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "es": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_efigs_coll.json",
+ "icudt_locales.json",
+ "icudt_EFIGS.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_efigsonly.json",
+ "icudt_no_cjkonly.json",
+ "icudt_base.json",
+ "icudt_efigs_zones.json",
+ "icudt_normalization.json",
+ "icudt_efigs_base.json"
+ ],
+ "bn": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "ml": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "ru": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "nl": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "uk": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "ro": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "hr": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "id": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "lt": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "ko": [
+ "icudt_coll.json",
+ "icudt_cjk_base.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_cjkonly.json",
+ "icudt_locales.json",
+ "icudt_cjk_zones.json",
+ "icudt_zones.json",
+ "icudt_cjk_coll.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_normalization.json",
+ "icudt_CJK.json"
+ ],
+ "mr": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "it": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_efigs_coll.json",
+ "icudt_locales.json",
+ "icudt_EFIGS.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_efigsonly.json",
+ "icudt_no_cjkonly.json",
+ "icudt_base.json",
+ "icudt_efigs_zones.json",
+ "icudt_normalization.json",
+ "icudt_efigs_base.json"
+ ],
+ "hu": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "tr": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "bg": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "sv": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "el": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "fa": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "gu": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "th": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_normalization.json"
+ ],
+ "ca": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "ta": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "zh": [
+ "icudt_zh_base.json",
+ "icudt_coll.json",
+ "icudt_cjk_base.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_cjkonly.json",
+ "icudt_zh.json",
+ "icudt_locales.json",
+ "icudt_cjk_zones.json",
+ "icudt_zones.json",
+ "icudt_cjk_coll.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_normalization.json",
+ "icudt_zh_zones.json",
+ "icudt_CJK.json"
+ ],
+ "sr": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "ms": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "pt": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "fr": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_efigs_coll.json",
+ "icudt_locales.json",
+ "icudt_EFIGS.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_efigsonly.json",
+ "icudt_no_cjkonly.json",
+ "icudt_base.json",
+ "icudt_efigs_zones.json",
+ "icudt_normalization.json",
+ "icudt_efigs_base.json"
+ ],
+ "fi": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "he": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "cs": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "et": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "da": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "sw": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "lv": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "sk": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "am": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "te": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "vi": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "ar": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_locales.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_base.json",
+ "icudt_no_cjkonly.json",
+ "icudt_normalization.json"
+ ],
+ "de": [
+ "icudt_coll.json",
+ "icudt_with_zones.json",
+ "icudt.json",
+ "icudt_no_CJK.json",
+ "icudt_efigs_coll.json",
+ "icudt_locales.json",
+ "icudt_EFIGS.json",
+ "icudt_zones.json",
+ "icudt_no_cjk_base.json",
+ "icudt_currency.json",
+ "icudt_efigsonly.json",
+ "icudt_no_cjkonly.json",
+ "icudt_base.json",
+ "icudt_efigs_zones.json",
+ "icudt_normalization.json",
+ "icudt_efigs_base.json"
+ ]
+}
\ No newline at end of file