Merge "Simplify maintaining the .dat file."
diff --git a/stubdata/icu-data-default.txt b/stubdata/icu-data-default.txt
index 32ba378..99730f2 100644
--- a/stubdata/icu-data-default.txt
+++ b/stubdata/icu-data-default.txt
@@ -1,17 +1,11 @@
-brkitr/res_index.res
-brkitr/root.res
 brkitr/char.brk
 brkitr/cjdict.dict
-brkitr/el.res
-brkitr/en.res
-brkitr/en_US.res
-brkitr/en_US_POSIX.res
-brkitr/fi.res
-brkitr/ja.res
 brkitr/khmerdict.dict
 brkitr/line.brk
 brkitr/line_fi.brk
 brkitr/line_ja.brk
+brkitr/res_index.res
+brkitr/root.res
 brkitr/sent.brk
 brkitr/sent_el.brk
 brkitr/thaidict.dict
@@ -19,1343 +13,47 @@
 brkitr/word.brk
 brkitr/word_POSIX.brk
 
-coll/res_index.res
 coll/invuca.icu
-coll/ucadata.icu
+coll/res_index.res
 coll/root.res
-coll/af.res
-coll/af_NA.res
-coll/af_ZA.res
-coll/ar.res
-coll/ar_001.res
-coll/ar_AE.res
-coll/ar_BH.res
-coll/ar_DJ.res
-coll/ar_DZ.res
-coll/ar_EG.res
-coll/ar_EH.res
-coll/ar_ER.res
-coll/ar_IL.res
-coll/ar_IQ.res
-coll/ar_JO.res
-coll/ar_KM.res
-coll/ar_KW.res
-coll/ar_LB.res
-coll/ar_LY.res
-coll/ar_MA.res
-coll/ar_MR.res
-coll/ar_OM.res
-coll/ar_PS.res
-coll/ar_QA.res
-coll/ar_SA.res
-coll/ar_SD.res
-coll/ar_SO.res
-coll/ar_SY.res
-coll/ar_TD.res
-coll/ar_TN.res
-coll/ar_YE.res
-coll/be.res
-coll/be_BY.res
-coll/bg.res
-coll/bg_BG.res
-coll/bn.res
-coll/bn_BD.res
-coll/bn_IN.res
-coll/ca.res
-coll/ca_AD.res
-coll/ca_ES.res
-coll/cs.res
-coll/cs_CZ.res
-coll/da.res
-coll/da_DK.res
-coll/de.res
-coll/de_.res
-coll/de_AT.res
-coll/de_BE.res
-coll/de_CH.res
-coll/de_DE.res
-coll/de_LI.res
-coll/de_LU.res
-coll/de__PHONEBOOK.res
-coll/el.res
-coll/el_CY.res
-coll/el_GR.res
-coll/en.res
-coll/en_150.res
-coll/en_AG.res
-coll/en_AS.res
-coll/en_AU.res
-coll/en_BB.res
-coll/en_BE.res
-coll/en_BM.res
-coll/en_BS.res
-coll/en_BW.res
-coll/en_BZ.res
-coll/en_CA.res
-coll/en_CM.res
-coll/en_DM.res
-coll/en_FJ.res
-coll/en_FM.res
-coll/en_GB.res
-coll/en_GD.res
-coll/en_GG.res
-coll/en_GH.res
-coll/en_GI.res
-coll/en_GM.res
-coll/en_GU.res
-coll/en_HK.res
-coll/en_IE.res
-coll/en_IM.res
-coll/en_IN.res
-coll/en_JE.res
-coll/en_JM.res
-coll/en_KE.res
-coll/en_KI.res
-coll/en_KN.res
-coll/en_KY.res
-coll/en_LC.res
-coll/en_LR.res
-coll/en_LS.res
-coll/en_MG.res
-coll/en_MH.res
-coll/en_MP.res
-coll/en_MT.res
-coll/en_MU.res
-coll/en_MW.res
-coll/en_NA.res
-coll/en_NG.res
-coll/en_NZ.res
-coll/en_PG.res
-coll/en_PH.res
-coll/en_PK.res
-coll/en_PR.res
-coll/en_PW.res
-coll/en_SB.res
-coll/en_SC.res
-coll/en_SG.res
-coll/en_SL.res
-coll/en_SS.res
-coll/en_TC.res
-coll/en_TO.res
-coll/en_TT.res
-coll/en_TZ.res
-coll/en_UG.res
-coll/en_UM.res
-coll/en_US.res
-coll/en_US_POSIX.res
-coll/en_VC.res
-coll/en_VG.res
-coll/en_VI.res
-coll/en_VU.res
-coll/en_WS.res
-coll/en_ZA.res
-coll/en_ZM.res
-coll/en_ZW.res
-coll/es_.res
-coll/es.res
-coll/es_419.res
-coll/es_AR.res
-coll/es_BO.res
-coll/es_CL.res
-coll/es_CO.res
-coll/es_CR.res
-coll/es_CU.res
-coll/es_DO.res
-coll/es_EA.res
-coll/es_EC.res
-coll/es_ES.res
-coll/es_GQ.res
-coll/es_GT.res
-coll/es_HN.res
-coll/es_IC.res
-coll/es_MX.res
-coll/es_NI.res
-coll/es_PA.res
-coll/es_PE.res
-coll/es_PH.res
-coll/es_PR.res
-coll/es_PY.res
-coll/es_SV.res
-coll/es_US.res
-coll/es_UY.res
-coll/es_VE.res
-coll/es__TRADITIONAL.res
-coll/et.res
-coll/et_EE.res
-coll/fa.res
-coll/fa_AF.res
-coll/fa_IR.res
-coll/fi.res
-coll/fi_FI.res
-coll/fil.res
-coll/fil_PH.res
-coll/fr.res
-coll/fr_BE.res
-coll/fr_BF.res
-coll/fr_BI.res
-coll/fr_BJ.res
-coll/fr_BL.res
-coll/fr_CA.res
-coll/fr_CD.res
-coll/fr_CF.res
-coll/fr_CG.res
-coll/fr_CI.res
-coll/fr_CH.res
-coll/fr_CM.res
-coll/fr_DJ.res
-coll/fr_DZ.res
-coll/fr_FR.res
-coll/fr_GA.res
-coll/fr_GN.res
-coll/fr_GP.res
-coll/fr_GQ.res
-coll/fr_HT.res
-coll/fr_KM.res
-coll/fr_LU.res
-coll/fr_MA.res
-coll/fr_MC.res
-coll/fr_MF.res
-coll/fr_MG.res
-coll/fr_ML.res
-coll/fr_MQ.res
-coll/fr_MR.res
-coll/fr_MU.res
-coll/fr_NC.res
-coll/fr_NE.res
-coll/fr_PF.res
-coll/fr_RE.res
-coll/fr_RW.res
-coll/fr_SC.res
-coll/fr_SN.res
-coll/fr_SY.res
-coll/fr_TD.res
-coll/fr_TG.res
-coll/fr_TN.res
-coll/fr_VU.res
-coll/he.res
-coll/he_IL.res
-coll/hi.res
-coll/hi_IN.res
-coll/hr.res
-coll/hr_BA.res
-coll/hr_HR.res
-coll/hu.res
-coll/hu_HU.res
-coll/id.res
-coll/id_ID.res
-coll/in.res
-coll/in_ID.res
-coll/is.res
-coll/is_IS.res
-coll/it.res
-coll/it_CH.res
-coll/it_IT.res
-coll/it_SM.res
-coll/iw.res
-coll/iw_IL.res
-coll/ja.res
-coll/ja_JP.res
-coll/ko.res
-coll/ko_KP.res
-coll/ko_KR.res
-coll/lt.res
-coll/lt_LT.res
-coll/lv.res
-coll/lv_LV.res
-coll/mr.res
-coll/mr_IN.res
-coll/ms.res
-coll/ms_Latn.res
-coll/ms_Latn_BN.res
-coll/ms_Latn_MY.res
-coll/ms_Latn_SG.res
-coll/nb.res
-coll/nb_NO.res
-coll/nl.res
-coll/nl_AW.res
-coll/nl_CW.res
-coll/nl_BE.res
-coll/nl_NL.res
-coll/nl_SR.res
-coll/nl_SX.res
-coll/pl.res
-coll/pl_PL.res
+coll/ucadata.icu
 # coll/ps.res is needed for fa_AF.
 coll/ps.res
-coll/pt.res
-coll/pt_AO.res
-coll/pt_BR.res
-coll/pt_CV.res
-coll/pt_GW.res
-coll/pt_MO.res
-coll/pt_MZ.res
-coll/pt_PT.res
-coll/pt_ST.res
-coll/pt_TL.res
-coll/ro.res
-coll/ro_MD.res
-coll/ro_RO.res
-coll/ru.res
-coll/ru_BY.res
-coll/ru_KG.res
-coll/ru_KZ.res
-coll/ru_MD.res
-coll/ru_RU.res
-coll/ru_UA.res
-coll/sk.res
-coll/sk_SK.res
-coll/sl.res
-coll/sl_SI.res
-coll/sr.res
-coll/sr_BA.res
-coll/sr_Cyrl.res
-coll/sr_Cyrl_BA.res
-coll/sr_Cyrl_ME.res
-coll/sr_Cyrl_RS.res
-coll/sr_Latn.res
-coll/sr_Latn_BA.res
-coll/sr_Latn_ME.res
-coll/sr_Latn_RS.res
-coll/sr_ME.res
-coll/sr_RS.res
-coll/sv.res
-coll/sv_AX.res
-coll/sv_FI.res
-coll/sv_SE.res
-coll/sw.res
-coll/sw_KE.res
-coll/sw_TZ.res
-coll/sw_UG.res
-coll/ta.res
-coll/ta_IN.res
-coll/ta_LK.res
-coll/ta_MY.res
-coll/ta_SG.res
-coll/th.res
-coll/th_TH.res
-coll/tr.res
-coll/tr_CY.res
-coll/tr_TR.res
-coll/uk.res
-coll/uk_UA.res
-coll/vi.res
-coll/vi_VN.res
-coll/zh.res
-coll/zh_CN.res
-coll/zh_HK.res
-coll/zh_Hans.res
-coll/zh_Hans_CN.res
-coll/zh_Hans_SG.res
-coll/zh_Hant.res
-coll/zh_Hant_HK.res
-coll/zh_Hant_MO.res
-coll/zh_Hant_TW.res
-coll/zh_MO.res
-coll/zh_SG.res
-coll/zh_TW.res
-coll/zu.res
-coll/zu_ZA.res
 
-curr/af.res
-curr/af_NA.res
-curr/am.res
-curr/ar.res
-curr/ar_DJ.res
-curr/ar_DJ.res
-curr/ar_ER.res
-curr/ar_ER.res
-curr/ar_SO.res
-curr/ar_SO.res
-curr/be.res
-curr/bg.res
-curr/bn.res
-curr/bn_IN.res
-curr/ca.res
-curr/cs.res
-curr/da.res
-curr/de.res
-curr/de_CH.res
-curr/de_LU.res
-curr/el.res
-curr/en.res
-curr/en_AG.res
-curr/en_AU.res
-curr/en_BB.res
-curr/en_BE.res
-curr/en_BM.res
-curr/en_BS.res
-curr/en_BW.res
-curr/en_BZ.res
-curr/en_CA.res
-curr/en_CM.res
-curr/en_DM.res
-curr/en_FJ.res
-curr/en_GB.res
-curr/en_GD.res
-curr/en_GH.res
-curr/en_GI.res
-curr/en_GM.res
-curr/en_GY.res
-curr/en_HK.res
-curr/en_IN.res
-curr/en_JM.res
-curr/en_KE.res
-curr/en_KI.res
-curr/en_KN.res
-curr/en_KY.res
-curr/en_LC.res
-curr/en_LR.res
-curr/en_LS.res
-curr/en_MG.res
-curr/en_MT.res
-curr/en_MU.res
-curr/en_MW.res
-curr/en_NA.res
-curr/en_NG.res
-curr/en_NH.res
-curr/en_NZ.res
-curr/en_PG.res
-curr/en_PH.res
-curr/en_PK.res
-curr/en_RH.res
-curr/en_SB.res
-curr/en_SC.res
-curr/en_SG.res
-curr/en_SL.res
-curr/en_SS.res
-curr/en_SZ.res
-curr/en_TO.res
-curr/en_TT.res
-curr/en_TZ.res
-curr/en_UG.res
-curr/en_US.res
-curr/en_VC.res
-curr/en_VU.res
-curr/en_WS.res
-curr/en_ZA.res
-curr/en_ZM.res
-curr/en_ZW.res
-curr/es.res
-curr/es_AR.res
-curr/es_BO.res
-curr/es_CL.res
-curr/es_CO.res
-curr/es_CR.res
-curr/es_CU.res
-curr/es_DO.res
-curr/es_EC.res
-curr/es_GT.res
-curr/es_HN.res
-curr/es_MX.res
-curr/es_NI.res
-curr/es_PA.res
-curr/es_PE.res
-curr/es_PH.res
-curr/es_PR.res
-curr/es_PY.res
-curr/es_US.res
-curr/es_UY.res
-curr/es_VE.res
-curr/et.res
-curr/fa.res
-curr/fa_AF.res
-curr/fi.res
-curr/fil.res
-curr/fil_PH.res
-curr/fr.res
-curr/fr_BI.res
-curr/fr_CA.res
-curr/fr_CD.res
-curr/fr_CH.res
-curr/fr_DJ.res
-curr/fr_DZ.res
-curr/fr_GN.res
-curr/fr_HT.res
-curr/fr_LU.res
-curr/fr_KM.res
-curr/fr_MG.res
-curr/fr_MR.res
-curr/fr_MU.res
-curr/fr_RW.res
-curr/fr_SC.res
-curr/fr_SY.res
-curr/fr_TN.res
-curr/he.res
-curr/he_IL.res
-curr/hi.res
-curr/hr.res
-curr/hr_BA.res
-curr/hu.res
-curr/id.res
-curr/id_ID.res
-curr/in.res
-curr/in_ID.res
-curr/is.res
-curr/it.res
-curr/it_CH.res
-curr/iw.res
-curr/iw_IL.res
-curr/ja.res
-curr/ja_JP.res
-curr/ko.res
-curr/lt.res
-curr/lv.res
-curr/mr.res
-curr/ms.res
-curr/ms_BN.res
-curr/ms_Latn.res
-curr/ms_Latn_BN.res
-curr/ms_Latn_MY.res
-curr/ms_Latn_SG.res
-curr/ms_MY.res
-curr/ms_SG.res
-curr/nb.res
-curr/nb_NO.res
-curr/nl.res
-curr/nl_AW.res
-curr/nl_CW.res
-curr/nl_SR.res
-curr/nl_SX.res
-curr/pl.res
 curr/pool.res
-curr/pt.res
-curr/pt_AO.res
-curr/pt_CV.res
-curr/pt_MO.res
-curr/pt_MZ.res
-curr/pt_PT.res
-curr/pt_ST.res
 curr/res_index.res
-curr/rm.res
-curr/ro.res
-curr/ro_MD.res
 curr/root.res
-curr/ru.res
-curr/ru_BY.res
-curr/ru_KG.res
-curr/ru_KZ.res
-curr/sk.res
-curr/sl.res
-curr/sr.res
-curr/sr_BA.res
-curr/sr_CS.res
-curr/sr_Cyrl.res
-curr/sr_Cyrl_BA.res
-curr/sr_Cyrl_CS.res
-curr/sr_Cyrl_RS.res
-curr/sr_Cyrl_YU.res
-curr/sr_Latn.res
-curr/sr_Latn_BA.res
-curr/sr_Latn_CS.res
-curr/sr_Latn_ME.res
-curr/sr_Latn_RS.res
-curr/sr_Latn_YU.res
-curr/sr_ME.res
-curr/sr_RS.res
-curr/sr_YU.res
 curr/supplementalData.res
-curr/sv.res
-curr/sw.res
-curr/sw_UG.res
-curr/ta.res
-curr/ta_LK.res
-curr/ta_MY.res
-curr/ta_SG.res
-curr/th.res
-curr/th_TH.res
-curr/tl.res
-curr/tl_PH.res
-curr/tr.res
-curr/uk.res
-curr/vi.res
-curr/zh.res
-curr/zh_CN.res
-curr/zh_HK.res
-curr/zh_Hans.res
-curr/zh_Hans_CN.res
-curr/zh_Hans_HK.res
-curr/zh_Hans_SG.res
-curr/zh_Hant.res
-curr/zh_Hant_HK.res
-curr/zh_Hant_MO.res
-curr/zh_Hant_TW.res
-curr/zh_MO.res
-curr/zh_SG.res
-curr/zh_TW.res
-curr/zu.res
 
-lang/res_index.res
 lang/pool.res
+lang/res_index.res
 lang/root.res
-lang/af.res
-lang/am.res
-lang/ar.res
-lang/be.res
-lang/bg.res
-lang/bn.res
-lang/bn_IN.res
-lang/ca.res
-lang/cs.res
-lang/da.res
-lang/de.res
-lang/de_CH.res
-lang/el.res
-lang/en.res
-lang/en_GB.res
-lang/en_NH.res
-lang/en_RH.res
-lang/en_VU.res
-lang/en_ZW.res
-lang/es.res
-lang/es_419.res
-lang/es_CL.res
-lang/et.res
-lang/fa.res
-lang/fa_AF.res
-lang/fi.res
-lang/fil.res
-lang/fil_PH.res
-lang/fr.res
-lang/fr_CA.res
-lang/he.res
-lang/he_IL.res
-lang/hi.res
-lang/hr.res
-lang/hu.res
-lang/id.res
-lang/id_ID.res
-lang/in.res
-lang/in_ID.res
-lang/is.res
-lang/it.res
-lang/iw.res
-lang/iw_IL.res
-lang/ja.res
-lang/ja_JP.res
-lang/ko.res
-lang/lt.res
-lang/lv.res
-lang/mr.res
-lang/ms.res
-lang/ms_BN.res
-lang/ms_Latn.res
-lang/ms_Latn_BN.res
-lang/ms_Latn_MY.res
-lang/ms_Latn_SG.res
-lang/ms_MY.res
-lang/ms_SG.res
-lang/nb.res
-lang/nb_NO.res
-lang/nl.res
-lang/nl_BE.res
-lang/pl.res
-lang/pt.res
-lang/pt_PT.res
-lang/rm.res
-lang/ro.res
-lang/ro_MD.res
-lang/ru.res
-lang/ru_UA.res
-lang/sk.res
-lang/sl.res
-lang/sr.res
-lang/sr_BA.res
-lang/sr_CS.res
-lang/sr_Cyrl.res
-lang/sr_Cyrl_BA.res
-lang/sr_Cyrl_CS.res
-lang/sr_Cyrl_RS.res
-lang/sr_Cyrl_YU.res
-lang/sr_Latn.res
-lang/sr_Latn_BA.res
-lang/sr_Latn_CS.res
-lang/sr_Latn_ME.res
-lang/sr_Latn_RS.res
-lang/sr_Latn_YU.res
-lang/sr_ME.res
-lang/sr_RS.res
-lang/sr_YU.res
-lang/sv.res
-lang/sv_FI.res
-lang/sw.res
-lang/ta.res
-lang/th.res
-lang/th_TH.res
-lang/tl.res
-lang/tl_PH.res
-lang/tr.res
-lang/uk.res
-lang/vi.res
-lang/zh.res
-lang/zh_CN.res
-lang/zh_HK.res
-lang/zh_Hans.res
-lang/zh_Hans_CN.res
-lang/zh_Hans_HK.res
-lang/zh_Hans_SG.res
-lang/zh_Hant.res
-lang/zh_Hant_HK.res
-lang/zh_Hant_MO.res
-lang/zh_Hant_TW.res
-lang/zh_MO.res
-lang/zh_SG.res
-lang/zh_TW.res
-lang/zu.res
 
-region/res_index.res
 region/pool.res
+region/res_index.res
 region/root.res
-region/af.res
-region/am.res
-region/ar.res
-region/be.res
-region/bg.res
-region/bn.res
-region/bn_IN.res
-region/ca.res
-region/cs.res
-region/da.res
-region/de.res
-region/de_CH.res
-region/el.res
-region/en.res
-region/en_GB.res
-region/en_NH.res
-region/en_RH.res
-region/en_VU.res
-region/en_ZW.res
-region/es.res
-region/es_CL.res
-region/et.res
-region/fa.res
-region/fa_AF.res
-region/fi.res
-region/fil.res
-region/fil_PH.res
-region/fr.res
-region/fr_CA.res
-region/he.res
-region/he_IL.res
-region/hi.res
-region/hr.res
-region/hu.res
-region/id.res
-region/id_ID.res
-region/in.res
-region/in_ID.res
-region/is.res
-region/it.res
-region/iw.res
-region/iw_IL.res
-region/ja.res
-region/ja_JP.res
-region/ko.res
-region/lt.res
-region/lv.res
-region/mr.res
-region/ms.res
-region/ms_BN.res
-region/ms_Latn.res
-region/ms_Latn_BN.res
-region/ms_Latn_MY.res
-region/ms_Latn_SG.res
-region/ms_MY.res
-region/ms_SG.res
-region/nb.res
-region/nb_NO.res
-region/nl.res
-region/nl_BE.res
-region/pl.res
-region/pt.res
-region/pt_PT.res
-region/rm.res
-region/ro.res
-region/ro_MD.res
-region/ru.res
-region/sk.res
-region/sl.res
-region/sr.res
-region/sr_BA.res
-region/sr_CS.res
-region/sr_Cyrl.res
-region/sr_Cyrl_BA.res
-region/sr_Cyrl_CS.res
-region/sr_Cyrl_RS.res
-region/sr_Cyrl_YU.res
-region/sr_Latn.res
-region/sr_Latn_BA.res
-region/sr_Latn_CS.res
-region/sr_Latn_ME.res
-region/sr_Latn_RS.res
-region/sr_Latn_YU.res
-region/sr_ME.res
-region/sr_RS.res
-region/sr_YU.res
-region/sv.res
-region/sv_FI.res
-region/sw.res
-region/ta.res
-region/th.res
-region/th_TH.res
-region/tl.res
-region/tl_PH.res
-region/tr.res
-region/uk.res
-region/vi.res
-region/zh.res
-region/zh_CN.res
-region/zh_HK.res
-region/zh_Hans.res
-region/zh_Hans_CN.res
-region/zh_Hans_HK.res
-region/zh_Hans_SG.res
-region/zh_Hant.res
-region/zh_Hant_HK.res
-region/zh_Hant_MO.res
-region/zh_Hant_TW.res
-region/zh_MO.res
-region/zh_SG.res
-region/zh_TW.res
-region/zu.res
 
 translit/el.res
 translit/en.res
 translit/root.res
 
-zone/res_index.res
 zone/pool.res
+zone/res_index.res
 zone/root.res
-zone/af.res
-zone/am.res
-zone/ar.res
-zone/be.res
-zone/bg.res
-zone/bn.res
-zone/bn_IN.res
-zone/ca.res
-zone/cs.res
-zone/da.res
-zone/de.res
-zone/el.res
-zone/en.res
-zone/en_AG.res
-zone/en_AU.res
-zone/en_BB.res
-zone/en_BZ.res
-zone/en_CA.res
-zone/en_CM.res
-zone/en_DM.res
-zone/en_FJ.res
-zone/en_FM.res
-zone/en_GB.res
-zone/en_GD.res
-zone/en_GH.res
-zone/en_GM.res
-zone/en_GU.res
-zone/en_GY.res
-zone/en_HK.res
-zone/en_IE.res
-zone/en_IN.res
-zone/en_JM.res
-zone/en_KE.res
-zone/en_KI.res
-zone/en_KN.res
-zone/en_KY.res
-zone/en_LC.res
-zone/en_LR.res
-zone/en_LS.res
-zone/en_MG.res
-zone/en_MH.res
-zone/en_MP.res
-zone/en_MU.res
-zone/en_MW.res
-zone/en_NA.res
-zone/en_NG.res
-zone/en_NH.res
-zone/en_NZ.res
-zone/en_PG.res
-zone/en_PH.res
-zone/en_PK.res
-zone/en_PW.res
-zone/en_RH.res
-zone/en_SB.res
-zone/en_SC.res
-zone/en_SG.res
-zone/en_SL.res
-zone/en_SS.res
-zone/en_SZ.res
-zone/en_TC.res
-zone/en_TO.res
-zone/en_TT.res
-zone/en_TZ.res
-zone/en_UG.res
-zone/en_VC.res
-zone/en_VG.res
-zone/en_VU.res
-zone/en_WS.res
-zone/en_ZA.res
-zone/en_ZM.res
-zone/en_ZW.res
-zone/es.res
-zone/es_419.res
-zone/es_AR.res
-zone/et.res
-zone/fa.res
-zone/fi.res
-zone/fil.res
-zone/fil_PH.res
-zone/fr.res
-zone/fr_CA.res
-zone/he.res
-zone/he_IL.res
-zone/hi.res
-zone/hr.res
-zone/hu.res
-zone/id.res
-zone/id_ID.res
-zone/in.res
-zone/in_ID.res
-zone/is.res
-zone/it.res
-zone/iw.res
-zone/iw_IL.res
-zone/ja.res
-zone/ja_JP.res
-zone/ko.res
-zone/ko_KP.res
-zone/lt.res
-zone/lv.res
-zone/mr.res
-zone/ms.res
-zone/ms_BN.res
-zone/ms_Latn.res
-zone/ms_Latn_BN.res
-zone/ms_Latn_MY.res
-zone/ms_Latn_SG.res
-zone/ms_MY.res
-zone/ms_SG.res
-zone/nb.res
-zone/nb_NO.res
-zone/nl.res
-zone/pl.res
-zone/pt.res
-zone/pt_AO.res
-zone/pt_CV.res
-zone/pt_GW.res
-zone/pt_MO.res
-zone/pt_MZ.res
-zone/pt_PT.res
-zone/pt_ST.res
-zone/pt_TL.res
-zone/rm.res
-zone/ro.res
-zone/ro_MD.res
-zone/ru.res
-zone/sk.res
-zone/sl.res
-zone/sr.res
-zone/sr_BA.res
-zone/sr_CS.res
-zone/sr_Cyrl.res
-zone/sr_Cyrl_BA.res
-zone/sr_Cyrl_CS.res
-zone/sr_Cyrl_RS.res
-zone/sr_Cyrl_YU.res
-zone/sr_Latn.res
-zone/sr_Latn_BA.res
-zone/sr_Latn_CS.res
-zone/sr_Latn_ME.res
-zone/sr_Latn_RS.res
-zone/sr_Latn_YU.res
-zone/sr_ME.res
-zone/sr_RS.res
-zone/sr_YU.res
-zone/sv.res
-zone/sv_FI.res
-zone/sw.res
-zone/ta.res
-zone/ta_MY.res
-zone/ta_SG.res
-zone/th.res
-zone/th_TH.res
-zone/tl.res
-zone/tl_PH.res
-zone/tr.res
-zone/uk.res
-zone/vi.res
-zone/zh.res
-zone/zh_CN.res
-zone/zh_HK.res
-zone/zh_Hans.res
-zone/zh_Hans_CN.res
-zone/zh_Hans_HK.res
-zone/zh_Hans_SG.res
-zone/zh_Hant.res
-zone/zh_Hant_HK.res
-zone/zh_Hant_MO.res
-zone/zh_Hant_TW.res
-zone/zh_MO.res
-zone/zh_SG.res
-zone/zh_TW.res
-zone/zu.res
 
+pool.res
 res_index.res
 root.res
-pool.res
-af.res
-af_NA.res
-af_ZA.res
-am.res
-am_ET.res
-ar.res
-ar_001.res
-ar_AE.res
-ar_BH.res
-ar_DJ.res
-ar_DZ.res
-ar_EG.res
-ar_EH.res
-ar_ER.res
-ar_IL.res
-ar_IQ.res
-ar_JO.res
-ar_KM.res
-ar_KW.res
-ar_LB.res
-ar_LY.res
-ar_MA.res
-ar_MR.res
-ar_OM.res
-ar_PS.res
-ar_QA.res
-ar_SA.res
-ar_SD.res
-ar_SO.res
-ar_SY.res
-ar_TD.res
-ar_TN.res
-ar_YE.res
-be.res
-be_BY.res
-bg.res
-bg_BG.res
-bn.res
-bn_BD.res
-bn_IN.res
-ca.res
-ca_AD.res
-ca_ES.res
-cs.res
-cs_CZ.res
-da.res
-da_DK.res
-de.res
-de_AT.res
-de_BE.res
-de_CH.res
-de_DE.res
-de_LI.res
-de_LU.res
-el.res
-el_CY.res
-el_GR.res
-en.res
-en_150.res
-en_AG.res
-en_AS.res
-en_AU.res
-en_BB.res
-en_BE.res
-en_BM.res
-en_BS.res
-en_BW.res
-en_BZ.res
-en_CA.res
-en_CM.res
-en_DM.res
-en_FJ.res
-en_FM.res
-en_GB.res
-en_GD.res
-en_GG.res
-en_GH.res
-en_GH.res
-en_GI.res
-en_GM.res
-en_GU.res
-en_GY.res
-en_HK.res
-en_IE.res
-en_IM.res
-en_IN.res
-en_JE.res
-en_JM.res
-en_JM.res
-en_KE.res
-en_KI.res
-en_KN.res
-en_KY.res
-en_LC.res
-en_LR.res
-en_LS.res
-en_MG.res
-en_MH.res
-en_MP.res
-en_MT.res
-en_MU.res
-en_MW.res
-en_NA.res
-en_NG.res
-en_NH.res
-en_NZ.res
-en_PG.res
-en_PH.res
-en_PK.res
-en_PR.res
-en_PW.res
-en_RH.res
-en_SB.res
-en_SC.res
-en_SG.res
-en_SL.res
-en_SS.res
-en_SZ.res
-en_TC.res
-en_TO.res
-en_TT.res
-en_TZ.res
-en_UG.res
-en_UM.res
-en_US.res
-en_US_POSIX.res
-en_VC.res
-en_VG.res
-en_VI.res
-en_VU.res
-en_WS.res
-en_ZA.res
-en_ZM.res
-en_ZW.res
-es.res
-es_419.res
-es_AR.res
-es_BO.res
-es_CL.res
-es_CO.res
-es_CR.res
-es_CU.res
-es_DO.res
-es_EA.res
-es_EC.res
-es_ES.res
-es_GQ.res
-es_GT.res
-es_HN.res
-es_IC.res
-es_MX.res
-es_NI.res
-es_PA.res
-es_PE.res
-es_PH.res
-es_PR.res
-es_PY.res
-es_SV.res
-es_US.res
-es_UY.res
-es_VE.res
-et.res
-et_EE.res
-fa.res
-fa_AF.res
-fa_IR.res
-fi.res
-fi_FI.res
-fil.res
-fil_PH.res
-fr.res
-fr_BE.res
-fr_BF.res
-fr_BI.res
-fr_BJ.res
-fr_BL.res
-fr_CA.res
-fr_CD.res
-fr_CF.res
-fr_CG.res
-fr_CH.res
-fr_CI.res
-fr_CM.res
-fr_DJ.res
-fr_DZ.res
-fr_FR.res
-fr_GA.res
-fr_GF.res
-fr_GN.res
-fr_GP.res
-fr_GQ.res
-fr_HT.res
-fr_KM.res
-fr_LU.res
-fr_MA.res
-fr_MC.res
-fr_MF.res
-fr_MG.res
-fr_ML.res
-fr_MQ.res
-fr_MR.res
-fr_MU.res
-fr_NC.res
-fr_NE.res
-fr_PF.res
-fr_RE.res
-fr_RW.res
-fr_SC.res
-fr_SN.res
-fr_SY.res
-fr_TD.res
-fr_TG.res
-fr_TN.res
-fr_VU.res
-fr_YT.res
-he.res
-he_IL.res
-hi.res
-hi_IN.res
-hr.res
-hr_BA.res
-hr_HR.res
-hu.res
-hu_HU.res
-id.res
-id_ID.res
-in.res
-in_ID.res
-is.res
-is_IS.res
-it.res
-it_CH.res
-it_IT.res
-it_SM.res
-iw.res
-iw_IL.res
-ja.res
-ja_JP.res
-ko.res
-ko_KP.res
-ko_KR.res
-lt.res
-lt_LT.res
-lv.res
-lv_LV.res
-mr.res
-mr_IN.res
-ms.res
-ms_BN.res
-ms_Latn.res
-ms_Latn_BN.res
-ms_Latn_MY.res
-ms_Latn_SG.res
-ms_MY.res
-ms_SG.res
-nb.res
-nb_NO.res
-nl.res
-nl_AW.res
-nl_BE.res
-nl_CW.res
-nl_NL.res
-nl_SR.res
-nl_SX.res
-pl.res
-pl_PL.res
-pt.res
-pt_AO.res
-pt_BR.res
-pt_CV.res
-pt_GW.res
-pt_MO.res
-pt_MZ.res
-pt_PT.res
-pt_ST.res
-pt_TL.res
-rm.res
-rm_CH.res
-ro.res
-ro_MD.res
-ro_RO.res
-ru.res
-ru_BY.res
-ru_KG.res
-ru_KZ.res
-ru_MD.res
-ru_RU.res
-ru_UA.res
-sk.res
-sk_SK.res
-sl.res
-sl_SI.res
-sr.res
-sr_BA.res
-sr_CS.res
-sr_Cyrl.res
-sr_Cyrl_BA.res
-sr_Cyrl_CS.res
-sr_Cyrl_ME.res
-sr_Cyrl_RS.res
-sr_Cyrl_YU.res
-sr_Latn.res
-sr_Latn_BA.res
-sr_Latn_CS.res
-sr_Latn_ME.res
-sr_Latn_RS.res
-sr_Latn_YU.res
-sr_ME.res
-sr_RS.res
-sr_YU.res
-sv.res
-sv_AX.res
-sv_FI.res
-sv_SE.res
-sw.res
-sw_KE.res
-sw_TZ.res
-sw_UG.res
-ta.res
-ta_IN.res
-ta_LK.res
-ta_MY.res
-ta_SG.res
-th.res
-th_TH.res
-tl.res
-tl_PH.res
-tr.res
-tr_CY.res
-tr_TR.res
-uk.res
-uk_UA.res
-vi.res
-vi_VN.res
-zh.res
-zh_CN.res
-zh_Hans.res
-zh_Hans_CN.res
-zh_Hans_HK.res
-zh_Hans_SG.res
-zh_Hant.res
-zh_Hant_HK.res
-zh_Hant_MO.res
-zh_Hant_TW.res
-zh_HK.res
-zh_MO.res
-zh_SG.res
-zh_TW.res
-zu.res
-zu_ZA.res
 
+docomo-shift_jis-2012.cnv
+euc-jp-2007.cnv
+gb18030.cnv
+gsm-03.38-2000.cnv
 ibm-1089_P100-1995.cnv
+ibm-1168_P100-2002.cnv
 ibm-1363_P11B-1998.cnv
 ibm-1373_P100-2002.cnv
+ibm-1375_P100-2007.cnv
 ibm-1386_P100-2001.cnv
 ibm-5012_P100-1999.cnv
 ibm-5346_P100-1998.cnv
@@ -1383,46 +81,40 @@
 iso-8859_11-2001.cnv
 iso-8859_14-1998.cnv
 iso-8859_16-2001.cnv
+kddi-jisx-208-2007.cnv
+kddi-shift_jis-2012.cnv
 macos-0_2-10.2.cnv
 macos-7_3-10.2.cnv
+noop-cns-11643.cnv
+noop-gb2312_gl.cnv
+noop-iso-ir-165.cnv
+softbank-jisx-208-2007.cnv
+softbank-shift_jis-2012.cnv
 windows-874-2000.cnv
 windows-936-2000.cnv
 windows-949-2000.cnv
 windows-950-2000.cnv
-gsm-03.38-2000.cnv
-docomo-shift_jis-2012.cnv
-kddi-jisx-208-2007.cnv
-kddi-shift_jis-2012.cnv
-softbank-jisx-208-2007.cnv
-softbank-shift_jis-2012.cnv
-noop-cns-11643.cnv
-noop-gb2312_gl.cnv
-noop-iso-ir-165.cnv
-ibm-1375_P100-2007.cnv
-ibm-1168_P100-2002.cnv
-gb18030.cnv
-euc-jp-2007.cnv
 # jisx-208.cnv is needed by the iso-2022-jp patch in ucnv2022.cpp.
 jisx-208.cnv
 
 cnvalias.icu
-# Required for Character.getName.
-unames.icu
-supplementalData.res
-numberingSystems.res
-plurals.res
-metaZones.res
-rfc3491.spp
-nfc.nrm
-nfkc.nrm
-timezoneTypes.res
-zoneinfo64.res
+dayPeriods.res
+genderList.res
 icustd.res
 icuver.res
 keyTypeData.res
-uts46.nrm
 likelySubtags.res
 metadata.res
-dayPeriods.res
-genderList.res
+metaZones.res
+nfc.nrm
+nfkc.nrm
+numberingSystems.res
+plurals.res
 postalCodeData.res
+rfc3491.spp
+supplementalData.res
+timezoneTypes.res
+# unames.icu is required for Character.getName.
+unames.icu
+uts46.nrm
+zoneinfo64.res
diff --git a/stubdata/icu_dat_generator.py b/stubdata/icu_dat_generator.py
index 6a25727..0580c65 100755
--- a/stubdata/icu_dat_generator.py
+++ b/stubdata/icu_dat_generator.py
@@ -22,7 +22,6 @@
 # Sample usage:
 #   $ANDROID_BUILD_TOP/external/icu4c/stubdata$ ./icu_dat_generator.py --verbose
 
-import fnmatch
 import getopt
 import glob
 import os
@@ -41,19 +40,6 @@
   sys.exit(1)
 
 
-def FindCountries(pattern, path):
-  result = []
-  for root, dirs, files in os.walk(path):
-    for name in files:
-      if fnmatch.fnmatch(name, pattern):
-        country = re.sub(r"[^_]*?_([[A-Za-z0-9]*).*", r'\1', name)
-        if len(country) > 0:
-          result.append(country)
-    if 'translit' in dirs:
-      dirs.remove('translit')
-  return sorted(set(result))
-
-
 def InvokeIcuTool(tool, working_dir, args):
   command_list = [os.path.join(ICU_PREBUILT_DIR, tool)]
   command_list.extend(args)
@@ -83,7 +69,7 @@
   GenResIndex(input_file)
   CopyAndroidCnvFiles(stubdata_dir)
   # Run "icupkg -tl -s icudtXXl -a icu-data-default.txt new icudtXXl.dat".
-  args = ["-tl", "-s", TMP_DAT_PATH, "-a", input_file, "new", ICU_DATA + ".dat"]
+  args = ["-tl", "-s", TMP_DAT_PATH, "-a", "add_list.txt", "new", ICU_DATA + ".dat"]
   InvokeIcuTool("icupkg", TMP_DAT_PATH, args)
 
 
@@ -111,12 +97,24 @@
   return
 
 
+def AddAllResFiles(collection, dir_name, language):
+  pattern1 = '%s/data/%s/%s.txt' % (ICU4C_DIR, dir_name, language)
+  pattern2 = '%s/data/%s/%s_*.txt' % (ICU4C_DIR, dir_name, language)
+  for path in glob.glob(pattern1) + glob.glob(pattern2):
+    if 'TRADITIONAL' in path:
+      continue
+    parts = path.split('/')
+    if dir_name == 'locales':
+      path = parts[-1].replace('.txt', '')
+    else:
+      path = parts[-2] + '/' + parts[-1].replace('.txt', '.res')
+    collection.add(path)
+
+
 # Open input file (such as icu-data-default.txt).
-# Go through the list and generate res_index.txt for locales, brkitr,
+# Go through the list and generate res_index.res for locales, brkitr,
 # coll, et cetera.
 def GenResIndex(input_file):
-  res_index = "res_index.txt"
-
   brkitrs = set()
   colls = set()
   currs = set()
@@ -125,7 +123,102 @@
   regions = set()
   zones = set()
 
+  languages = [
+    # Group 0.
+    'en',
+
+    # Group 1.
+    'ar',
+    'zh',
+    'nl',
+    'fr',
+    'de',
+    'it',
+    'ja',
+    'ko',
+    'pl',
+    'pt',
+    'ru',
+    'es',
+    'th',
+    'tr',
+
+    # Group 2.
+    'bg',
+    'ca',
+    'hr',
+    'cs',
+    'da',
+    'fil','tl',
+    'fi',
+    'el',
+    'iw','he',
+    'hi',
+    'hu',
+    'id','in',
+    'lv',
+    'lt',
+    'nb',
+    'ro',
+    'sr',
+    'sk',
+    'sl',
+    'sv',
+    'uk',
+    'vi',
+    'fa',
+
+    # Group 3.
+    'af',
+    'am',
+    'bn',
+    'et',
+    'is',
+    'ms',
+    'mr',
+    'sw',
+    'ta',
+    'zu',
+
+    # Group 4.
+    'eu',
+    'gl',
+    'gu',
+    'kn',
+    'ml',
+    'te',
+    'ur',
+
+    # Group 5.
+    'km',
+    'lo',
+    'ne',
+    'si',
+    'ka',
+    'hy',
+    'mn',
+    'cy',
+
+    # Other languages grandfathered in from old Android releases.
+    'be',
+    'rm',
+  ]
+
+  for language in languages:
+    AddAllResFiles(brkitrs, 'brkitr', language)
+    AddAllResFiles(colls, 'coll', language)
+    AddAllResFiles(currs, 'curr', language)
+    AddAllResFiles(langs, 'lang', language)
+    AddAllResFiles(regions, 'region', language)
+    AddAllResFiles(zones, 'zone', language)
+    AddAllResFiles(locales, 'locales', language)
+
+  # We need to merge the human-edited icu-data-default.txt with the
+  # machine-generated list of files needed to support the various languages.
+  new_add_list = []
+
   for line in open(input_file, "r"):
+    new_add_list.append(line)
     if "root." in line or "res_index" in line or "_.res" in line:
       continue
     if "brkitr/" in line:
@@ -141,6 +234,7 @@
     elif "zone/" in line:
       AddResFile(zones, line)
     elif ".res" in line:
+      # TODO: these should all now be misc resources!
       # We need to determine the resource is locale resource or misc resource.
       # To determine the locale resource, we assume max script length is 3.
       end = line.find(".res")
@@ -157,52 +251,38 @@
       "zone": zones
   }
 
-  # Find every locale we've mentioned, for whatever reason.
-  every_locale = set()
-  for locales in kind_to_locales.itervalues():
-    every_locale = every_locale.union(locales)
+  # Merge the machine-generated list into the human-generated list.
+  for kind, res_files in kind_to_locales.items():
+    for res_file in sorted(res_files):
+      if '.' not in res_file:
+        res_file = res_file + '.res'
+      new_add_list.append(res_file)
 
   if VERBOSE:
     for kind, locales in kind_to_locales.items():
       print "%s=%s" % (kind, sorted(locales))
 
-  # Print a human-readable list of the languages supported.
-  every_language = set()
-  for locale in every_locale:
-    language = re.sub(r"(_.*)", "", locale)
-    if language != "pool" and language != "supplementalData":
-      every_language.add(language)
-  input_basename = os.path.basename(input_file)
-  print "%s includes %s." % (input_basename, ", ".join(sorted(every_language)))
-
-  # Find cases where we've included only part of a locale's data.
-  missing_files = []
-  for locale in every_locale:
-    for kind, locales in kind_to_locales.items():
-      p = os.path.join(ICU4C_DIR, "data", kind, locale + ".txt")
-      if not locale in locales and os.path.exists(p):
-        missing_files.append(p)
-
-  # Warn about the missing files.
-  for missing_file in sorted(missing_files):
-    relative_path = "/".join(missing_file.split("/")[-2:])
-    print "warning: missing data for supported locale: %s" % relative_path
-
-  # Find cases where we've included only some of a language's countries.
-  for language in sorted(every_language):
-      all_countries = FindCountries('%s_*.txt' % language, '../data')
-      for country in all_countries:
-          if not '%s_%s' % (language, country) in every_locale:
-              print 'warning: language %s is missing country %s' % (language, country)
-
-
   # Write the genrb input files.
+
+  # First add_list.txt, the argument to icupkg -a...
+  f = open(os.path.join(TMP_DAT_PATH, "add_list.txt"), "w")
+  for line in new_add_list:
+    f.write("%s\n" % line)
+  f.close()
+
+  # Second res_index.txt, used below by genrb.
+  res_index = "res_index.txt"
   WriteIndex(os.path.join(TMP_DAT_PATH, res_index), locales)
   for kind, locales in kind_to_locales.items():
     if kind == "locales":
       continue
     WriteIndex(os.path.join(TMP_DAT_PATH, kind, res_index), locales)
 
+  # Useful if you need to see the temporary input files we generated.
+  if False:
+    os.system("cat %s/add_list.txt" % TMP_DAT_PATH)
+    os.system("cat %s/res_index.txt" % TMP_DAT_PATH)
+
   # Call genrb to generate new res_index.res.
   InvokeIcuTool("genrb", TMP_DAT_PATH, [res_index])
   for kind, locales in kind_to_locales.items():
diff --git a/stubdata/icudt51l-default.dat b/stubdata/icudt51l-default.dat
index 4ee5e63..aea26a0 100644
--- a/stubdata/icudt51l-default.dat
+++ b/stubdata/icudt51l-default.dat
Binary files differ